TiddlyWiki5/editions/tw5.com/tiddlers/howtos/Using TiddlyWiki for GitHub...

37 lines
2.1 KiB
Plaintext

created: 20130825150100000
modified: 20140908153204226
tags: dev howto
title: Using TiddlyWiki for GitHub Pages project documentation
type: text/vnd.tiddlywiki
TiddlyWiki5 can be used to produce documentation for GitHub projects. It lets you maintain a single set of documentation as a [[TiddlyWikiFolder|TiddlyWikiFolders]] containing separate tiddler files under source code control, and then use it to produce `readme.md` files for inclusion in project folders, or HTML files for storage in [[GitHub Pages|http://pages.github.com/]]. Both features are demonstrated by TiddlyWiki5 itself.
! Generating `readme.md` files
When displaying the contents of a folder GitHub will look for a `readme.md` file and display it. Note that it will not display full HTML files in this way, just static MarkDown files (this is a security measure). Happily MarkDown permits a safe subset of HTML, and thus to generate a `readme.md` file that is suitable for GitHub it is just necessary for TiddlyWiki5 to generate the content of the `<body>` element of an HTML document, and give it the appropriate filename.
This is done in `bin/bld.sh` by this command:
```
--rendertiddler ReadMe ./readme.md text/html
```
It saves the tiddler ReadMe to the file `./readme.md` in the `text/html` format.
By default, tiddler links will be rendered as `<a>` links to a relative URI consisting of the title of the tiddler. This behaviour can be overridden by defining the macro `tv-wikilink-template`, as is done at the top of the tiddler ReadMe:
```
\define tv-wikilink-template() http://tiddlywiki.com/static/$uri_doubleencoded$.html
```
See the LinkWidget for more details.
In this example, tiddler links are rendered as links to the static rendering of tw5.com.
! Publishing to GitHub Pages
Publishing to GitHub Pages is very straightforward. In the case of TiddlyWiki5, several different build products are published.
The `bld.sh` script deposits the build products directly into the local clone of the repo associated with the GitHub Pages account. There is then a manual step to review changes and push them up to github.com.