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 =...