mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-27 03:57:21 +00:00
Add support for static site generation
See http://five.tiddlywiki.com/static.html for an example
This commit is contained in:
parent
c24c00e8d6
commit
15a9e04a6a
5
bld.sh
5
bld.sh
@ -19,6 +19,10 @@ echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
|
||||
|
||||
echo "five.tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
|
||||
|
||||
# Create the `static` directory if necessary
|
||||
|
||||
mkdir -p $TW5_BUILD_OUTPUT/static
|
||||
|
||||
# First,
|
||||
# readme.md: the readme file for GitHub
|
||||
# index.html: the main file, including content
|
||||
@ -30,6 +34,7 @@ node ./tiddlywiki.js \
|
||||
--savetiddler ReadMe ./readme.md text/html \
|
||||
--savetiddler $:/core/templates/tiddlywiki5.template.html $TW5_BUILD_OUTPUT/index.html text/plain \
|
||||
--savetiddler $:/core/templates/static.template.html $TW5_BUILD_OUTPUT/static.html text/plain \
|
||||
--savetiddlers [!is[shadow]] $:/core/templates/static.tiddler.html $TW5_BUILD_OUTPUT/static text/plain \
|
||||
|| exit 1
|
||||
|
||||
# Second, encrypted.html: a version of the main file encrypted with the password "password"
|
||||
|
54
core/modules/commands/savetiddlers.js
Normal file
54
core/modules/commands/savetiddlers.js
Normal file
@ -0,0 +1,54 @@
|
||||
/*\
|
||||
title: $:/core/modules/commands/savetiddlers.js
|
||||
type: application/javascript
|
||||
module-type: command
|
||||
|
||||
Command to save several tiddlers to a file
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.info = {
|
||||
name: "savetiddlers",
|
||||
synchronous: false
|
||||
};
|
||||
|
||||
var Command = function(params,commander,callback) {
|
||||
this.params = params;
|
||||
this.commander = commander;
|
||||
this.callback = callback;
|
||||
};
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
if(this.params.length < 2) {
|
||||
return "Missing filename";
|
||||
}
|
||||
var self = this,
|
||||
fs = require("fs"),
|
||||
path = require("path"),
|
||||
wiki = this.commander.wiki,
|
||||
filter = this.params[0],
|
||||
template = this.params[1],
|
||||
pathname = this.params[2],
|
||||
type = this.params[3] || "text/html",
|
||||
extension = this.params[4] || ".html",
|
||||
parser = wiki.parseTiddler(template),
|
||||
tiddlers = wiki.filterTiddlers(filter);
|
||||
$tw.utils.each(tiddlers,function(title) {
|
||||
var renderTree = new $tw.WikiRenderTree(parser,{wiki: wiki});
|
||||
renderTree.execute({tiddlerTitle: title});
|
||||
var text = renderTree.render(type);
|
||||
fs.writeFile(path.resolve(pathname,title + extension),text,"utf8",function(err) {
|
||||
self.callback(err);
|
||||
});
|
||||
});
|
||||
return null;
|
||||
};
|
||||
|
||||
exports.Command = Command;
|
||||
|
||||
})();
|
@ -1,12 +1,13 @@
|
||||
title: $:/core/templates/static.template.html
|
||||
type: text/vnd.tiddlywiki-html
|
||||
|
||||
\define tw-wikilink-template() static/$uri_encoded$.html
|
||||
\rules only filteredtranscludeinline transcludeinline
|
||||
<!doctype html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="generator" content="TiddlyWiki" />
|
||||
<meta name="tiddlywiki-version" content="{{version}}" />
|
||||
<meta name="tiddlywiki-version" content="{{$:/core/templates/version}}" />
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="copyright" content="{{$:/core/copyright.txt}}" />
|
||||
<title>{{$:/core/wiki/title}}</title>
|
||||
|
36
core/templates/static.tiddler.html.tid
Normal file
36
core/templates/static.tiddler.html.tid
Normal file
@ -0,0 +1,36 @@
|
||||
title: $:/core/templates/static.tiddler.html
|
||||
|
||||
\define tw-wikilink-template() $uri_encoded$.html
|
||||
`<!doctype html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="generator" content="TiddlyWiki" />
|
||||
<meta name="tiddlywiki-version" content="`{{$:/core/templates/version}}`" />
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="copyright" content="`{{$:/core/copyright.txt}}`" />
|
||||
<title>`{{$:/core/wiki/title}}`</title>
|
||||
<div id="styleArea">
|
||||
`{{{ [is[shadow]type[text/css]] ||$:/core/templates/css-tiddler}}}`
|
||||
</div>
|
||||
<style type="text/css">
|
||||
`{{$:/core/styles/base}}`
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<section class="story-river">
|
||||
<div class="tw-tiddler-frame">
|
||||
<span class="title">
|
||||
`<$view field="title"/>`
|
||||
</span>
|
||||
<div class="small">`<$view field="modifier" format="link"/>` `<$view field="modified" format="date"/>`</div>
|
||||
|
||||
<div class="tw-tags-wrapper">`<$list filter="[is[current]tags[]]" template="$:/templates/TagTemplate" />`</div>
|
||||
|
||||
<div class="body">
|
||||
`<$transclude template="$:/core/templates/html-tiddler" />`
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
`
|
@ -5,6 +5,7 @@ The core TiddlyWiki5 code is packaged into several distinct editions designed fo
|
||||
|
||||
* [[TiddlyWiki5 Standalone Edition]] for working purely within the browser
|
||||
** Including [[TiddlyWiki5 in the Sky for TiddlySpot|TiddlySpot]]
|
||||
** And incorporating [[TiddlyWiki5 Static Site Generation]]
|
||||
* [[TiddlyWiki5 Node Edition]] for advanced command line work
|
||||
** Including [[Building classic TiddlyWiki with TiddlyWiki5]]
|
||||
* [[TiddlyWiki5 in the Sky for TiddlyWeb]] (and TiddlySpace)
|
||||
|
14
editions/tw5.com/tiddlers/commands/SaveTiddlersCommand.tid
Normal file
14
editions/tw5.com/tiddlers/commands/SaveTiddlersCommand.tid
Normal file
@ -0,0 +1,14 @@
|
||||
title: SaveTiddlersCommand
|
||||
tags: docs command
|
||||
|
||||
Save a set of tiddlers matching a filter as separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).
|
||||
|
||||
```
|
||||
--savetiddlers <filter> <template> <pathname> [<type>] [<extension>]
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
--savetiddlers [!is[shadow]] $:/core/templates/static.tiddler.html ./static text/plain
|
||||
```
|
@ -0,0 +1,16 @@
|
||||
title: TiddlyWiki5 Static Site Generation
|
||||
tags: edition docs
|
||||
|
||||
TiddlyWiki5 can be used to generate a static HTML representation of a TiddlyWiki that doesn't need JavaScript.
|
||||
|
||||
! Example
|
||||
|
||||
You can explore a static representation of the TiddlyWiki5 site at <a href="static.html">static.html</a>. That file is a static representation of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form `/static/HelloThere.html` that point to HTML representations of individual tiddlers.
|
||||
|
||||
The included `bld.sh` script includes these commands that are involved in generating the sample static version of the TiddlyWiki5 site:
|
||||
|
||||
```
|
||||
--savetiddler $:/core/templates/static.template.html $TW5_BUILD_OUTPUT/static.html text/plain \
|
||||
--savetiddlers [!is[shadow]] $:/core/templates/static.tiddler.html $TW5_BUILD_OUTPUT/static text/plain \
|
||||
```
|
||||
The SaveTiddlerCommand saves the static version of the DefaulTiddlers and the SaveTiddlersCommand generates the HTML representations of individual tiddlers.
|
14
readme.md
14
readme.md
@ -105,6 +105,20 @@ text/html</code> </p><pre>
|
||||
<h3 class=''>
|
||||
<span class='tw-view-link'>
|
||||
<span>
|
||||
SaveTiddlersCommand</span></span></h3><div>
|
||||
<div class='tw-transclude'>
|
||||
<p>
|
||||
Save a set of tiddlers matching a filter as separate files of a specified <span>
|
||||
ContentType</span> (defaults to <code>
|
||||
text/html</code>) and extension (defaults to <code>
|
||||
.html</code>).</p><pre>
|
||||
--savetiddlers <filter> <template> <pathname> [<type>] [<extension>]</pre><p>
|
||||
For example:</p><pre>
|
||||
--savetiddlers [!is[shadow]] $:/core/templates/static.tiddler.html ./static text/plain</pre></div></div></span></div><div class='tw-list-element'>
|
||||
<span class='tw-transclude'>
|
||||
<h3 class=''>
|
||||
<span class='tw-view-link'>
|
||||
<span>
|
||||
ServerCommand</span></span></h3><div>
|
||||
<div class='tw-transclude'>
|
||||
<p>
|
||||
|
Loading…
Reference in New Issue
Block a user