From 2bf6203cf53f5fa06fb40fe9b47debda5d0ee5e1 Mon Sep 17 00:00:00 2001 From: Andreas Hahn Date: Sat, 1 Dec 2018 14:30:00 +0100 Subject: [PATCH] Improvements to the static single tiddler view as well as documentation. (#3386) * Improvements to the static single tiddler view as well as documentation. * Fixed tabs * Fixed tabs * Revert static view path * Documentation updates --- core/modules/server/routes/get-tiddler-html.js | 16 +++++++++------- core/modules/server/server.js | 4 ++-- .../Using the read-only single tiddler view.tid | 8 ++++---- ...Parameter_ system-tiddler-render-template.tid | 4 +++- ...ver Parameter_ system-tiddler-render-type.tid | 4 +++- ...Server Parameter_ tiddler-render-template.tid | 6 ++++-- .../WebServer Parameter_ tiddler-render-type.tid | 4 +++- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/core/modules/server/routes/get-tiddler-html.js b/core/modules/server/routes/get-tiddler-html.js index 6f85a1f18..4fe440821 100644 --- a/core/modules/server/routes/get-tiddler-html.js +++ b/core/modules/server/routes/get-tiddler-html.js @@ -20,16 +20,18 @@ exports.handler = function(request,response,state) { var title = decodeURIComponent(state.params[0]), tiddler = state.wiki.getTiddler(title); if(tiddler) { - var renderType,template; - // Render ordinary tiddlers as HTML, and system tiddlers in plain text + var renderType = tiddler.getFieldString("_render_type"), + renderTemplate = tiddler.getFieldString("_render_template"); + // Tiddler fields '_render_type' and '_render_template' overwrite + // system wide settings for render type and template if(state.wiki.isSystemTiddler(title)) { - renderType = state.server.get("system-tiddler-render-type"); - template = state.server.get("system-tiddler-template"); + renderType = renderType || state.server.get("system-tiddler-render-type"); + renderTemplate = renderTemplate || state.server.get("system-tiddler-render-template"); } else { - renderType = state.server.get("tiddler-render-type"); - template = state.server.get("tiddler-template"); + renderType = renderType || state.server.get("tiddler-render-type"); + renderTemplate = renderTemplate || state.server.get("tiddler-render-template"); } - var text = state.wiki.renderTiddler(renderType,template,{parseAsInline: true, variables: {currentTiddler: title}}); + var text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}}); // Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS response.writeHead(200); response.end(text,"utf8"); diff --git a/core/modules/server/server.js b/core/modules/server/server.js index 4eb692df2..02268d2a2 100644 --- a/core/modules/server/server.js +++ b/core/modules/server/server.js @@ -81,9 +81,9 @@ Server.prototype.defaultVariables = { "root-render-type": "text/plain", "root-serve-type": "text/html", "tiddler-render-type": "text/html", - "tiddler-template": "$:/core/templates/server/static.tiddler.html", + "tiddler-render-template": "$:/core/templates/server/static.tiddler.html", "system-tiddler-render-type": "text/plain", - "system-tiddler-template": "$:/core/templates/wikified-tiddler", + "system-tiddler-render-template": "$:/core/templates/wikified-tiddler", "debug-level": "none" }; diff --git a/editions/tw5.com/tiddlers/webserver/Using the read-only single tiddler view.tid b/editions/tw5.com/tiddlers/webserver/Using the read-only single tiddler view.tid index 3c26bc511..d195a1bdd 100644 --- a/editions/tw5.com/tiddlers/webserver/Using the read-only single tiddler view.tid +++ b/editions/tw5.com/tiddlers/webserver/Using the read-only single tiddler view.tid @@ -1,5 +1,5 @@ created: 20180703095435813 -modified: 20180808094239047 +modified: 20180824073211367 tags: [[WebServer Guides]] title: Using the read-only single tiddler view type: text/vnd.tiddlywiki @@ -11,12 +11,12 @@ Alongside serving the full interactive wiki at the path `/` (e.g. http://127.0.0 * http://127.0.0.1:8080/HelloThere * http://127.0.0.1:8080/Philosophy%20of%20Tiddlers -Ordinary, non-system tiddlers are rendered through a special view template while system tiddlers are rendered through a template that returns the raw text of the rendered output. In this way ordinary tiddlers can be browsed by end users while system tiddlers can be included in their raw form to use them as JS, HTML or CSS templates. +Ordinary, non-system tiddlers are rendered through a special view template while system tiddlers are rendered through a template that returns the raw text of the rendered output. In this way ordinary tiddlers can be browsed by end users while system tiddlers can be included in their raw form to use them as JS, HTML or CSS templates. Additionally these defaults can be overwritten on a per tiddler basis by specifying the `_render_type` and `_render_template` fields accordingly. The templates are controlled by these parameters: * [[system-tiddler-render-type|WebServer Parameter: system-tiddler-render-type]] -* [[system-tiddler-template|WebServer Parameter: system-tiddler-template]] +* [[system-tiddler-template|WebServer Parameter: system-tiddler-render-template]] * [[tiddler-render-type|WebServer Parameter: tiddler-render-type]] -* [[tiddler-template|WebServer Parameter: tiddler-template]] +* [[tiddler-template|WebServer Parameter: tiddler-render-template]] diff --git a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-template.tid b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-template.tid index 83aab4d4e..1f86bd851 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-template.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-template.tid @@ -1,8 +1,10 @@ caption: system-tiddler-render-template created: 20180808094408813 -modified: 20180808094527464 +modified: 20180810053154669 tags: [[WebServer Parameters]] title: WebServer Parameter: system-tiddler-render-template type: text/vnd.tiddlywiki The [[web server configuration parameter|WebServer Parameters]] ''system-tiddler-render-template'' is used to specify the template for serving system tiddlers in the [[read-only single tiddler view|Using the read-only single tiddler view]]. The default value is `$:/core/templates/wikified-tiddler` which renders the tiddler raw, without any special viewing template. + +<<.tip "This setting may be overwritten by specifying the `_render_template` field of a tiddler.">> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-type.tid b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-type.tid index 8776e3a68..5a5c03309 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-type.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ system-tiddler-render-type.tid @@ -1,8 +1,10 @@ caption: system-tiddler-render-type created: 20180808092758577 -modified: 20180808093056528 +modified: 20180810053136312 tags: [[WebServer Parameters]] title: WebServer Parameter: system-tiddler-render-type type: text/vnd.tiddlywiki The [[web server configuration parameter|WebServer Parameters]] ''system-tiddler-render-type'' is used to specify the render type for serving system tiddlers in the [[read-only single tiddler view|Using the read-only single tiddler view]]. The default value is `text/plain`, causing the raw text of rendered system tiddlers to be returned. Alternatively, `text/html` can be used to cause the full HTML of the rendered tiddlers to be returned. + +<<.tip "This setting may be overwritten by specifying the `_render_type` field of a tiddler.">> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-template.tid b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-template.tid index 2bf667687..c6b3e636b 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-template.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-template.tid @@ -1,8 +1,10 @@ caption: tiddler-render-template created: 20180808094255388 -modified: 20180808094407363 +modified: 20180810053232494 tags: [[WebServer Parameters]] title: WebServer Parameter: tiddler-render-template type: text/vnd.tiddlywiki -The [[web server configuration parameter|WebServer Parameters]] ''tiddler-render-template'' is used to specify the template for serving ordinary, non-system tiddlers in the [[read-only single tiddler view|Using the read-only single tiddler view]]. The default value is `$:/core/templates/server/static.tiddler.html` which renders tiddlers in a lightweight page with a simple sidebar. \ No newline at end of file +The [[web server configuration parameter|WebServer Parameters]] ''tiddler-render-template'' is used to specify the template for serving ordinary, non-system tiddlers in the [[read-only single tiddler view|Using the read-only single tiddler view]]. The default value is `$:/core/templates/server/static.tiddler.html` which renders tiddlers in a lightweight page with a simple sidebar. + +<<.tip "This setting may be overwritten by specifying the `_render_template` field of a tiddler.">> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-type.tid b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-type.tid index 87e753565..d674b0e5f 100644 --- a/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-type.tid +++ b/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-type.tid @@ -1,8 +1,10 @@ caption: tiddler-render-type created: 20180808093108099 -modified: 20180808093218128 +modified: 20180810053128531 tags: [[WebServer Parameters]] title: WebServer Parameter: tiddler-render-type type: text/vnd.tiddlywiki The [[web server configuration parameter|WebServer Parameters]] ''tiddler-render-type'' is used to specify the render type for serving ordinary, non-system tiddlers in the [[read-only single tiddler view|Using the read-only single tiddler view]]. The default value is `text/html`, causing the full HTML of the rendered output to be returned. Alternatively, `text/html` can be used to cause the raw text of rendered system tiddlers to be returned. + +<<.tip "This setting may be overwritten by specifying the `_render_type` field of a tiddler.">> \ No newline at end of file