Hi Arlen > Here is the result of my exploring today.
Great stuff, well done. I'd be happy to take a pull request for these changes, if you're able. The associated documentation also needs updating. There are a few related tickets on the HTTP server module: https://github.com/Jermolene/TiddlyWiki5/issues/512 - Refactor routes from server.js as separate modules https://github.com/Jermolene/TiddlyWiki5/issues/1148 - Route to static files in the --server mode https://github.com/Jermolene/TiddlyWiki5/pull/976 - Allow additional server paths Best wishes Jeremy On Tue, Dec 9, 2014 at 9:51 PM, Arlen Beiler <[email protected]> wrote: > Actually, if you change the first one to "path: /^\/static.html$/", it > would work fine too. > -Arlen > > On Tue, Dec 9, 2014 at 4:48 PM, Arlen Beiler <[email protected]> wrote: > >> Thank you. >> >> Here is the result of my exploring today. In order to generate static >> pages dynamically (!!!???), this code gets inserted into server.js. The >> only other change was to clone the $:/core/templates/static.template.html >> tiddler and change the link you mentioned to remove the static/ prefix. So >> here's the code. It comes right after the GET request for the root of the >> site. >> >> this.server.addRoute({ >> method: "GET", >> path: /^\/static\/$/, >> handler: function(request,response,state) { >> response.writeHead(200, {"Content-Type": >> state.server.get("serveType")}); >> var text = >> state.wiki.renderTiddler("text/plain","$:/arlen/static.template.html") >> response.end(text,"utf8"); >> } >> }); >> this.server.addRoute({ >> method: "GET", >> path: /^\/static\/static.css$/, >> handler: function(request,response,state) { >> response.writeHead(200, {"Content-Type": "text/css"}); >> var text = >> state.wiki.renderTiddler("text/plain","$:/core/templates/static.template.css"); >> response.end(text,"utf8"); >> } >> }); >> this.server.addRoute({ >> method: "GET", >> path: /^\/static\/(.+).html$/, >> handler: function(request,response,state) { >> var title = >> decodeURIComponent(decodeURIComponent(state.params[0])), >> tiddler = state.wiki.getTiddler(title); >> if(tiddler) { >> response.writeHead(200, {"Content-Type": >> state.server.get("serveType")}); >> var text = >> state.wiki.renderTiddler("text/plain","$:/core/templates/static.tiddler.html",{ >> variables: { currentTiddler: title }}) >> response.end(text,"utf8"); >> } else { >> response.writeHead(404); >> response.end(); >> } >> } >> }); >> >> *Now to put it in a plugin...* >> >> *And make the tabs work...* >> >> *And add a static sidebar...* >> >> *And add the supporting libraries...* >> >> >> *And...and...and...* >> But I like the idea of having a clean, fast interface that does most of >> it's processing on the server. >> >> Enjoy! >> -Arlen >> >> On Tue, Dec 9, 2014 at 3:35 PM, Jeremy Ruston <[email protected]> >> wrote: >> >>> Hi Arlen >>> >>> The default static templates reconfigure the way that links are rendered >>> so as to convert internal tiddler links into file links. >>> >>> At the top of "$:/core/templates/static.template.html" you'll see: >>> >>> \define tv-wikilink-template() static/$uri_doubleencoded$.html >>> >>> The docs for the link widget explain how the tv-wikilink-template macro >>> is used: >>> >>> http://tiddlywiki.com/#LinkWidget >>> >>> Best wishes >>> >>> Jeremy. >>> >>> >>> >>> >>> >>> >>> On Tue, Dec 9, 2014 at 8:30 PM, Arlen Beiler <[email protected]> wrote: >>> >>>> To explain in more detail, I am working on adding single page views to >>>> tiddlywiki that use the static mechanism but are generated on request. I >>>> think if I would put the title through decodeURIcomponent twice it would be >>>> fine, but I wanted to make sure that this is according to design. >>>> -Arlen >>>> On Dec 9, 2014 2:42 PM, "Arlen Beiler" <[email protected]> wrote: >>>> >>>>> Hi all, >>>>> I am working with the renderTiddler command and the tiddlywiki server, >>>>> and the renderTiddler command seems to URI encode links to other tiddly >>>>> documents. I am referring to the commands in this tiddler: >>>>> http://tiddlywiki.com/#Generating%20Static%20Sites%20with%20TiddlyWiki >>>>> >>>>> For instance, the command >>>>> >>>>> --rendertiddler $:/core/templates/static.template.html static.html >>>>> text/plain >>>>> >>>>> renders internal links as >>>>> >>>>> static/Ten%2520reasons%2520to%2520switch%2520to%2520TiddlyWiki.html >>>>> >>>>> "$:/core/templates/static.tiddler.html" does the same thing, except >>>>> without the static folder prefix. >>>>> >>>>> Thanks, Arlen >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "TiddlyWikiDev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/tiddlywikidev. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Jeremy Ruston >>> mailto:[email protected] >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "TiddlyWikiDev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/tiddlywikidev. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- > You received this message because you are subscribed to the Google Groups > "TiddlyWikiDev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/tiddlywikidev. > For more options, visit https://groups.google.com/d/optout. > -- Jeremy Ruston mailto:[email protected] -- You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/tiddlywikidev. For more options, visit https://groups.google.com/d/optout.
