src | ||
static | ||
.gitignore | ||
build.sh | ||
README.md | ||
template.awk | ||
template.tpl |
Jocelyns HSMW website
This repository contains the generator, static files and source files for my HSMW website
Build
To build this website you need:
- GNU Bash (5.2.32)
- GNU awk (1.3.4)
- sed (4.9)
- Pandoc (3.1.11.1)
Any half-recent version should suffice, I added a tested version in parentheses. To run the build, execute the build.sh
script from the root directory. This will:
- Delete the
dist
folder if it exists - Create a dist folder
- Copy over all static files
- Compile the website from
src
intodist
Templates
Templates use a custom template language heavily inspired by the one used by werc
. It works by embedding bash code directly into the html skeleton used to build the pages. There are two ways of doing so:
Escaped lines
If a line starts with an arbitrary amount of whitespace (even 0) followed by a percent sign, the rest of the line will be treated as a shell command, and the commands output will be inserted in its place. For example:
<h1>
% echo 'Hallo Mittweida!'
</h1>
will be evaluated to
<h1>
Hallo Mittweida!
</h1>
NOTE: Keep control over your templates, as they could expose information about your system!
Inline expressions
Inline expressions can be written by encasing the expression in %(
and %)
. Those expressions will be evaluated as if put in double quotes, and the result will be inserted in their place. Example:
<a href="%($LINK%)">link</a>
will put the contents of the shell variable LINK
in the href
-attribute field of the link object.