JSFiddle - React, Tailwind, and code Playground
JavaScript
(function($) {
"use strict"
$.fn.newswidget = function(options) {
var defaults = {
source: ['http://rss.news.yahoo.com/rss/us',
'http://rss.news.yahoo.com/rss/world',
'http://feeds.bbci.co.uk/news/rss.xml'
],
itemWrapElement: 'li',
itemTitleElement: 'h4',
linkTitle: false,
itemDescriptionElement: 'div',
itemDateElement: 'div',
itemLinkElement: 'span',
itemWebsiteTitleElement: 'div',
itemWebsiteLinkElement: 'div',
itemLinkText: 'read mores',
newPageLink: true,
proxyUrl: 'proxy.php',
limitDescription: 100,
limitDescriptionSuffix: "...",
limitItems: 10,
stripHtml: true,
prettyDate: true,
format: "title,description,date,link",
animationSpeed: 500,
random: true,
refresh: 0,
showFilter: function() {},
columns : 3,
columnElement : 'ul'
},
settings = $.extend({}, defaults, options),
newsHolder = this,
items = [],
busyRequests = 0,
timer;
if (settings.refresh > 0) clearTimeout(timer);
busyRequests = $.isArray(settings.source) ? settings.source.length : 1;
$.each($.isArray(settings.source) ? settings.source : [settings.source], function(_,item) {
load(item);
});
function cleanText(text) {
var cleanText = text;
var index = cleanText.indexOf('<?xml');
if (index > -1) {
cleanText = cleanText.substring(0, index);
}
var index = cleanText.indexOf('<div class="feedflare">');
if (index > -1) {
cleanText =...