A collection of tools for the maintenance of this website.

Overview

These scripts must be executed from within their residing directory only, and depend on adjacent files within it in order to function. For convenience it is recommended to create symlinks within this directory to all website directories under maintenance.

md.sh

md.sh is a static site generator from Markdown files.

The script may be executed with a single argument corresponding to the webpage directory containing the input Markdown file, which should be named src.md. The output HTML file, named index.html, will be located in the same directory.

./md.sh <target directory>

Alternatively, the script may be given two arguments consisting of the input and output file paths respectively.

./md.sh <input md> <output html>

Dependencies

Document Metadata

The input file may begin with metadata key-value declarations, as specified by lowdown(5). md.sh recognizes and formats the following:

Page options are denoted by any combination of the following characters:

The table of contents may produce erroneous links if two headers within the page have identical names.

Math Rendering

The rendering of LaTeX math mode expressions given within input files may be enabled by adding the m option. This depends on an installation of KaTeX via npm.

Block expressions are declared as follows:

![...](%tex)

Inline expressions are declared as follows:

![...](%itex)

where ... is the LaTeX expression.

plain.sh

plain.sh converts plain text files to HTML documents.

./plain.sh <input txt> <output html>

Page Title

The HTML page title may be specified within the input document using the following declaration:

<!--title: ... -->

where ... is the page title.

Other Tools

front.sh

front.sh generates the front page.

./front.sh <output html>

nav.sh generates the sitemap navigation pane. Installation of tree is required.

./nav.sh <source dir> <output file>

reload.sh

reload.sh is a meta-script which updates the website’s front page, navigation listings, and XML sitemap, and can optionally regenerate all of the webpages at once.

./reload.sh [-r]

sitemap.sh

sitemap.sh generates the website’s XML sitemap, as specified by sitemaps.org.

./sitemap.sh <target dir> <output xml>

urlencode

urlencode is a small C program which converts a string into a URL-encoded format.

echo "<string>" | ./urlencode