spellcheck/make

83 lines
3.9 KiB
Plaintext
Raw Permalink Normal View History

2020-02-25 23:05:12 +00:00
#!/bin/sh -e
#
# Simple static site builder.
cat <<EOF > /tmp/meow
<!doctype html>
<html lang=en>
<link href='data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Mt5V9jLebrYy3no2Mt5/9jLef/Yy3no2Mt5utjLeVcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoIwAwKCMAfSgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAfSgjADAAAAAAAAAAAAAAAADYy3lX2Mt569jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3nr2Mt5VwAAAAAAAAAAKCMAfSgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAIwoIwCMKCMAjCgjAH0AAAAAy6yMQNjLeffYy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5V7d8qbrAkpz42Mp5/tjLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/8mnj8K3fKnot3yp/8mmj//Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9C3hf+4fqjot3yp/7d8qf+8iaH/2Mt5/9jLef/Yy3n/2Mt5/9jKev/Yy3n/2Mt5/9jLef/Yy3n/2Mt5/9TCf/+4f6f/t3yp/7d8qf+3fKn/t3yp/9bFff/Yy3n/2Mt5/8qpjv+4fqj/xJuW/9jLef/Yy3n/2Mt5/9jLef/Bk5v/t3yp/7d8qf+3fKnot3yp/7d8qf/Mr4r/2Mt5/9C5hP+3fKn/t3yp/7d8qf/SvIL/2Mt5/9jLef/Ru4P/t3yp/7d8qf+3fKnot3ypurd8qf+3fKn/u4Wk/8imkP+6hKT/t3yp/7d8qf+3fKn/vYug/9bGfP/Yy3n/wpaZ/7d8qf+3fKn/t3ypurd8qVe3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+7haT/wJCd/7d8qf+3fKn/t3yp/7d8qVcAAAAAt3yp47d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qeMAAAAAAAAAALd8qVe3fKnrt3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qeu3fKlXAAAAAAAAAAAAAAAAt3ypV7d8qeO3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qf+3fKn/t3yp/7d8qeO3fKlXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3ypV7d8qbq3fKnot3yp/7d8qf+3fKnot3ypurd8qVcAAAAAAAAAAAAAAAAAAAAA8A8AAMADAACAAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAIABAADAAwAA8A8AAA==' rel=icon>
<title>Cyberia Computer Club</title>
<meta charset=utf-8>
<meta name=viewport content="width=device-width,initial-scale=1.0">
<meta name=Description content="Cyberia Computer Club">
<style>
%%CAPSUL_CSS%%
</style>
2020-02-25 23:05:12 +00:00
<pre>
2021-09-22 05:41:14 +00:00
<a href=/><b>Cyberia</b></a> <a href=/culture>Culture</a> <a href=/blog>Blog</a> <a href=/calendar>Calendar</a> <a href=/donate>Donate</a> <a href=/matrix>Matrix (Chat)</a> <a href=/mumble>Mumble</a>
2020-02-25 23:05:12 +00:00
2021-09-19 18:31:45 +00:00
<a href="https://capsul.org">Capsul -&gt;</a> &nbsp; <a href="https://nullhex.com">Nullhex -&gt;</a> &nbsp; <a href="https://git.cyberia.club">Git -&gt;</a> &nbsp; <a href="https://wiki.cyberia.club">Wiki -&gt;</a> &nbsp; <a href="https://stream.cyberia.club">Stream -&gt;</a>
2020-02-25 23:05:12 +00:00
<pre>
%%CONTENT%%
(c) Attribution-ShareAlike 4.0 International
2020-02-25 23:14:02 +00:00
Cyberia Computer Club 2020-∞
2020-02-25 23:05:12 +00:00
<a href="%%SOURCE%%">View page source</a>
</pre></pre>
EOF
2020-02-26 00:39:35 +00:00
rm -f build/*.txt build/*.html
mkdir -p build
cd build
2020-02-25 23:05:12 +00:00
# Iterate over each file in the source tree under /site/.
2020-09-04 20:09:18 +00:00
(cd ../si*; find . -type f -a -not -path ./templates/\*) |
2020-02-25 23:05:12 +00:00
while read -r page; do
mkdir -p "${page%/*}"
case $page in
2020-05-02 06:18:49 +00:00
*.txt)
2020-05-02 05:42:38 +00:00
2020-05-02 06:18:49 +00:00
sed -E "s|([^=][^\'\"])(https[:]//[^ )]*)|\1<a href='\2'>\2</a>|g" \
"../site/$page" |
2020-02-25 23:05:12 +00:00
# link https
sed -E "s|^(https[:]//[^ )]{32})([^ )]{3,1000})([^ )]{15})|<a href='\0'>\1...\3</a>|g" |
sed -E "s|^(https[:]//[^ )]{1,50})|<a href='\0'>\0</a>|g" |
2020-02-25 23:05:12 +00:00
# link mailto
sed -E "s|mailto:([^ ]*)|<a href='mailto:\1'>\1</a>|g" |
2020-02-25 23:05:12 +00:00
# color hexcodes
sed -E 's|(#[a-f0-9]{6})|<font color="\1">\1</font>|g' |
# color cyberia
2021-12-18 10:02:01 +00:00
sed -E 's@(Cyberia('"'"'s)?n?)([^A-Za-z0-9_/-])@<font color="#b294bb">\1</font>\3@g' |
2020-02-25 23:05:12 +00:00
sed -E 's|CYBERIA|<font color="#b294bb">CYBERIA</font>|g' |
sed '/%%CONTENT%%/r /dev/stdin' /tmp/meow |
sed '/%%CONTENT%%/d' |
2020-03-14 22:25:32 +00:00
sed "s|%%CAPSUL_CSS%%|$(cat ../cyberia.css | tr '\n' ' ')|g" |
2020-02-25 23:05:12 +00:00
sed "s %%SOURCE%% /${page##./} " \
> "${page%%.txt}.html"
ln -f "../site/$page" "$page"
printf '%s\n' "CC $page"
;;
# Copy over any images or non-txt files.
*)
cp "../site/$page" "$page"
printf '%s\n' "CP $page"
;;
esac
done