[[Policy]]
/***\n|''Name:''|GenerateRssHijack|\n|''Description:''|Generate an RSSFeed with plaintext, html and TiddlyWiki content|\n|''Version:''|0.1.4|\n|''Date:''|Oct 23, 2006|\n|''Source:''|http://tiddlywiki.bidix.info/#GenerateRssHijack|\n|''Documentation:''|http://tiddlywiki.bidix.info/#GenerateRssHijackDoc|\n|''Author:''|BidiX (BidiX (at) bidix (dot) info)|\n|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|\n|''~CoreVersion:''|2.0.0|\n|''Browser:''|Firefox 1.5; InternetExplorer 6.0; Safari|\n|''Include:''|none|\n|''Require:''|none|\n***/\n//{{{\nversion.extensions.GenerateRssHijack= {\n major: 0, minor: 1, revision: 3, \n date: new Date(2006,9,29),\n source: 'http://tiddlywiki.bidix.info/#GenerateRssHijack',\n documentation: 'http://tiddlywiki.bidix.info/#GenerateRssHijackDoc',\n author: 'BidiX (BidiX (at) bidix (dot) info',\n license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',\n coreVersion: '2.0.0',\n browser: 'Firefox 1.5; InternetExplorer 6.0; Safari' \n};\n\n// Return the tiddlers as a sorted array\nTiddlyWiki.prototype.getTiddlersTaggedWith = function(field,includeTag)\n{\n var results = [];\n this.forEachTiddler(function(title,tiddler) {\n if(tiddler.tags.find(includeTag) != null)\n results.push(tiddler);\n });\n if(field)\n results.sort(function (a,b) {if(a[field] == b[field]) return(0); else return (a[field] < b[field]) ? -1 : +1; });\n return results;\n}\n\n// generate RSS file with tiddlers tagged with toRSS\nwindow.generateRss_ori = window.generateRss;\nwindow.generateRss = function ()\n{\n var s = [];\n var d = new Date();\n var u = store.getTiddlerText("SiteUrl",null);\n // Assemble the header \n s.push("<" + "?xml version=\s"1.0\s"" + " encoding='UTF-8'" + "?>");\n s.push("<rss version=\s"2.0\s" xmlns:tiddlywiki=\s"http://tiddlywiki.bidix.info/#TiddlyWikiNamespace\s" xmlns:content=\s"http://purl.org/rss/1.0/modules/content/\s">");\n s.push("<channel>");\n s.push("<title>" + wikifyPlain("SiteTitle").htmlEncode() + "</title>");\n if(u)\n s.push("<link>" + u.htmlEncode() + "</link>");\n s.push("<description>" + wikifyPlain("SiteSubtitle").htmlEncode() + "</description>");\n s.push("<language>en-us</language>");\n s.push("<copyright>Copyright " + d.getFullYear() + " " + config.options.txtUserName.htmlEncode() + "</copyright>");\n s.push("<pubDate>" + d.toGMTString() + "</pubDate>");\n s.push("<lastBuildDate>" + d.toGMTString() + "</lastBuildDate>");\n s.push("<docs>http://blogs.law.harvard.edu/tech/rss</docs>");\n s.push("<generator>TiddlyWiki " + version.major + "." + version.minor + "." + version.revision + "</generator>");\n // The body\n var tiddlers = store.getTiddlersTaggedWith("modified","toRSS");\n var n = config.numRssItems > tiddlers.length ? 0 : tiddlers.length-config.numRssItems;\n for (var t=tiddlers.length-1; t>=n; t--)\n s.push(tiddlers[t].saveToRss(u));\n // And footer\n s.push("</channel>");\n s.push("</rss>");\n // Save it all\n return s.join("\sn");\n}\n\nTiddler.prototype.getAsInnerHTML = function() {\n var wrapper = createTiddlyElement(document.body,"span",null,null);\n wikify(this.text,wrapper ,null,this);\n var text = wrapper.innerHTML;\n wrapper.parentNode.removeChild(wrapper);\n //replace tddlylink with externallink\n var u = store.getTiddlerText("SiteUrl",null);\nvar pattern;\nvar substitution;\n if ((version.major = 2) && (version.minor > 0)) {\n pattern = /<a\ss+tiddlylink="([^"]+)"\ss+refresh="link"\ss+class=\s"([^"]+)\s"\ss+title=\s"([^"]+)\s"\ss+href="([^"]+)"/mg;\n substitution = "<a href=\s""+u+"#[[$1]]\s" class=\s"$2\s" title=\s"$3\s" tiddlylink=\s"$1\s" refresh=\s"link\s" ";\n }\n else {\n pattern = /<a\ss+tiddlylink="([^"]+)"\ss+refresh="link"\ss+title="([^"]+)"\ss+href="([^"]+)"/mg;\n substitution = "<a tiddlylink=\s"$1\s" refresh=\s"link\s" title=\s"$2\s" href=\s""+u+"#[[$1]]\s"";\n }\n text = text.replace(pattern, substitution);\n return text;\n};\n\nTiddler.prototype.saveToRss = function(url)\n{\n var s = [];\n s.push("<item>");\n s.push("<title>" + this.title.htmlEncode() + "</title>");\n //plain text\n s.push("<description>" + this.text.replace(regexpNewLine,"<br />").htmlEncode() + "</description>");\n // html text\n s.push("<content:encoded><![CDATA[ " + this.getAsInnerHTML() +"]]></content:encoded>");\n // tiddler\n s.push("<tiddlywiki:title>" + this.title.htmlEncode() + "</tiddlywiki:title>");\n s.push("<tiddlywiki:wikitext>" + this.text.htmlEncode() + "</tiddlywiki:wikitext>");\n s.push("<tiddlywiki:modifier>" + this.modifier.htmlEncode() + "</tiddlywiki:modifier>");\n s.push("<tiddlywiki:modified>" + this.modified.convertToYYYYMMDDHHMM() + "</tiddlywiki:modified>");\n s.push("<tiddlywiki:created>" + this.created.convertToYYYYMMDDHHMM() + "</tiddlywiki:created>");\n //s.push("<tiddlywiki:links>" + this.text.htmlEncode() + "</tiddlywiki:links>");\n s.push("<tiddlywiki:tags>" + this.getTags().htmlEncode() + "</tiddlywiki:tags>");\n for(var t=0; t<this.tags.length; t++)\n s.push("<category>" + this.tags[t] + "</category>");\n s.push("<link>" + url + "#" + encodeURIComponent(String.encodeTiddlyLink(this.title)) + "</link>");\n s.push("<pubDate>" + this.modified.toGMTString() + "</pubDate>");\n s.push("</item>");\n return(s.join("\sn"));\n}\n//}}}
[[Policy]]
* mount http://specs.dachary.org/ as a DAV directory. There is no user and password required.\n* create a directory ''SPEC''\n* copy http://garden.dachary.org/empty.html into ''SPEC/index.html''
without any predefined links between them
Specification Collection
http://specs.dachary.org/