created: 20130825150100000
modified: 20140912141559011
tags: [[TiddlyWiki on Node.js]]
title: Using TiddlyWiki for GitHub 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 with 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.
