config.macros.saveRss = {}; config.macros.saveRss.handler = function(place) { if(!readOnly) createTiddlyButton(place,'save rss','save rss',function(e){saveMultiRss();return false;}); } window.getRssMarkers = function() { var s = []; myregexp=/\|(?:.*?)\|(?:.*?)\|(.*?)\|(?:.*?)\|(.*?)\|/g; while((m = myregexp.exec(store.getTiddlerText("MultiRssConfig"))) != null) s.push("<link rel='alternate' type='application/rss+xml' title='%0' href='%1'>".format([m[1].trim(),m[2].trim()])); return s.splice(1,s.length).join("\n"); } updateMarkupBlock_old_multirss = window.updateMarkupBlock; window.updateMarkupBlock = function (s,blockName,tiddlerName) { s = updateMarkupBlock_old_multirss.apply(this,arguments); if (blockName == "PRE-HEAD") s = lewcidRSSAddToMarkupBlock(s); return s; } window.lewcidRSSAddToMarkupBlock = function (s) { var pos = s.indexOf("<!--PRE-HEAD-END-->"); return ( s.substring(0,pos).replace("<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'>","") + "\n" + getRssMarkers() + "\n" + s.substring(pos) ); } TiddlyWiki.prototype.rssgetTiddlers = function(field,includeTag,excludeTag) { var results = []; this.forEachTiddler(function(title,tiddler) { if(excludeTag == undefined || excludeTag == '' || tiddler.tags.find(excludeTag) == null) if(includeTag == undefined || includeTag == '' || tiddler.tags.find(includeTag)!=null) results.push(tiddler); }); if(field) results.sort(function (a,b) {if(a[field] == b[field]) return(0); else return (a[field] < b[field]) ? -1 : +1; }); return results; } window.generateRss = function (tiddlers,title,subtitle) { var s = []; var d = new Date(); var u = store.getTiddlerText("SiteUrl"); s.push("<" + "?xml version=\"1.0\"?" + ">"); s.push("<rss version=\"2.0\">"); s.push("<channel>"); s.push("<title" + ">" + ((title && title != '') ? wikifyPlain("SiteTitle").htmlEncode()+ " | "+ title: wikifyPlain("SiteTitle").htmlEncode()) + "</title" + ">"); if(u) s.push("<link>" + u.htmlEncode() + "</link>"); s.push("<description>" + ((subtitle && subtitle != '')? subtitle : wikifyPlain("SiteSubtitle").htmlEncode()) + "</description>"); s.push("<language>en-us</language>"); s.push("<copyright>Copyright " + d.getFullYear() + "" + config.options.txtUserName.htmlEncode() + "</copyright>"); s.push("<pubDate>" + d.toGMTString() + "</pubDate>"); s.push("<lastBuildDate>" + d.toGMTString() + "</lastBuildDate>"); s.push("<docs>http://blogs.law.harvard.edu/tech/rss</docs>"); s.push("<generator>TiddlyWiki " + version.major + "." + version.minor + "." + version.revision + "</generator>"); if (!tiddlers) var tiddlers = store.getTiddlers("modified","excludeLists"); var n = config.numRssItems > tiddlers.length ? 0 : tiddlers.length-config.numRssItems; for (var t=tiddlers.length-1; t>=n; t--) s.push(tiddlers[t].saveToRss(u)); s.push("</channel>"); s.push("</rss>"); return s.join("\n"); } old_multiRss_saveChanges = window.saveChanges; window.saveChanges = function(onlyIfDirty) { var rssStatus = config.options.chkGenerateAnRssFeed; config.options.chkGenerateAnRssFeed = false; old_multiRss_saveChanges.apply(this,arguments); config.options.chkGenerateAnRssFeed = rssStatus; if(config.options.chkGenerateAnRssFeed) saveMultiRss(); } window.saveMultiRss = function() { var rssIndex = store.getTiddlerText("MultiRssConfig").split("\n"); rssIndex = rssIndex.splice(1,rssIndex.length); for (var i=0; i<rssIndex.length; i++) { var rss = rssIndex[i].split("|"); var localPath = getLocalPath(document.location.toString()); var rssPath = getRssPath(localPath)+ (rss[5].trim()); var rssSave = saveFile(rssPath,convertUnicodeToUTF8(generateRss(store.rssgetTiddlers("modified",rss[1].trim(),rss[2].trim()),rss[3].trim(),rss[4].trim()))); if(rssSave) displayMessage(config.messages.rssSaved,"file://" + rssPath); else alert(config.messages.rssFailed); } } window.getRssPath = function(str) { var slash = (str.indexOf('/')!=-1)? '/':'\\'; return str.substring(0,str.lastIndexOf(slash) + 1); } config.shadowTiddlers.MultiRssConfig = "| !includeTag | !excludeTag | !title | !description | !filename |\n| rss | |rss only| this feed has rss tiddlers only | rss-feed.xml |\n| systemConfig| |plugins| tiddlywiki plugins only |plugins.xml|\n| | systemConfig excludeRSS| Main RSS feed | everything but plugins | rss.xml|";
MultiRSSPlugin
↧
↧
Trending Articles
More Pages to Explore .....