hsmwebsite/README.md
2024-11-26 20:41:25 +01:00

53 lines
1.6 KiB
Markdown

# Jocelyns HSMW website
This repository contains the generator, static files and source files for my [HSMW website](https://www.student.hs-mittweida.de/~jotto5)
## 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` into `dist`
## 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.