Merge branch 'main' of https://git.jossco.de/Jocelyn/hsmwebsite
This commit is contained in:
commit
77c9234c9f
7 changed files with 68 additions and 6 deletions
53
README.md
Normal file
53
README.md
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
# 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.
|
5
build.sh
5
build.sh
|
@ -1,17 +1,16 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
source_to_target() { sed -E -e 's:\.\./src/:\./:' -e 's/.md$/.html/'; }
|
source_to_target() { sed -E -e 's:\.\./src/:\./:' -e 's/.md$/.html/'; }
|
||||||
escape_newlines() { tr -d "\\n"; }
|
|
||||||
|
|
||||||
shopt -s globstar
|
shopt -s globstar
|
||||||
rm -rf dist/
|
rm -rf dist/
|
||||||
mkdir dist&&cd dist
|
mkdir dist&&cd dist
|
||||||
cp ../style.css .
|
cp -r ../static/* .
|
||||||
for file in $(du -a ../src/ | cut -f2 | grep -E '.md$'); do
|
for file in $(du -a ../src/ | cut -f2 | grep -E '.md$'); do
|
||||||
target="$(echo $file | source_to_target)"
|
target="$(echo $file | source_to_target)"
|
||||||
export CONTENT="$(pandoc --from markdown+emoji --wrap=none -i $file)"
|
export CONTENT="$(pandoc --from markdown+emoji --wrap=none -i $file)"
|
||||||
export PREFIX=$(realpath --relative-to $(dirname $target) .)
|
export PREFIX=$(realpath --relative-to $(dirname $target) .)
|
||||||
export SIDEBAR=$(for x in ../src/**/*.md; do echo "<li><a href=\"$(echo $PREFIX/$x | source_to_target)\">$(realpath --relative-to ../src/ $x | sed -e 's/.md$//')</a></li>"; done)
|
export SIDEBAR=$(for x in ../src/**/*.md; do echo "<li><a href=\"$(echo $PREFIX/$x | source_to_target)\">$(realpath --relative-to ../src/ $x | sed -e 's/.md$//')</a></li>"; done)
|
||||||
mkdir -p $(dirname $target)
|
mkdir -p $(dirname $target)
|
||||||
cat ../template.tpl | awk -f ../template.awk | bash > $target
|
awk -f ../template.awk ../template.tpl | bash > $target
|
||||||
done
|
done
|
||||||
|
|
|
@ -7,6 +7,6 @@ You can contact me in the following ways:
|
||||||
* Others on request
|
* Others on request
|
||||||
|
|
||||||
If you don't know what to contact me about: Try computers graphics, programming, music and trains! You can also talk to me if you want
|
If you don't know what to contact me about: Try computers graphics, programming, music and trains! You can also talk to me if you want
|
||||||
to talk about trans-topics, or just want to vent about the difficulties of being queer :heart:
|
to talk about trans-topics, or just want to vent about the difficulties of being queer (see the `queer` page) :heart:
|
||||||
|
|
||||||
While not a contact channel per se, I can also be found in the fediverse as [@joss@tech.lgbt](https://tech.lgbt/@joss)!
|
While not a contact channel per se, I can also be found in the fediverse as [@joss@tech.lgbt](https://tech.lgbt/@joss)!
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
This is a place for me to put links to friendly websites!
|
This is a place for me to put links to friendly websites!
|
||||||
|
|
||||||
* Emil's site: [~emarche](https://www.student.hs-mittweida.de/~emarche)
|
* Emilian's site: [~emarche](https://www.student.hs-mittweida.de/~emarche)
|
||||||
* My private homepage at [jossco.de](https://jossco.de)
|
* My private homepage at [jossco.de](https://jossco.de)
|
||||||
|
|
||||||
If you want to be here, contact me :grin:
|
If you want to be here, contact me :grin:
|
||||||
|
|
10
src/queer.md
10
src/queer.md
|
@ -1 +1,9 @@
|
||||||
# Yes.
|
# Being queer...
|
||||||
|
|
||||||
|
...can be an endless struggle, no matter which unique (and totally valid!) flavor of queer one might identify as. If you have any questions about being queer or queer identities in general you can reach out to me, see the `contact` page for more information.
|
||||||
|
|
||||||
|
My experience is mostly with being transfeminine, but I can talk about a lot more fields. I also have some ties with the queer community of the university.
|
||||||
|
|
||||||
|
Also please note that I am no psychologist, and can't help with everything.
|
||||||
|
|
||||||
|
<center>:rainbow_flag:</center>
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
% echo $CONTENT
|
% echo $CONTENT
|
||||||
|
<hr>
|
||||||
|
<i>%(Last built $(date -I) on $(hostname)%)</i>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue