aboutsummaryrefslogtreecommitdiff
path: root/src/development
diff options
context:
space:
mode:
Diffstat (limited to 'src/development')
-rw-r--r--src/development/config.env5
-rwxr-xr-xsrc/development/dynmake.sh22
-rwxr-xr-xsrc/development/genhtml.sh112
3 files changed, 125 insertions, 14 deletions
diff --git a/src/development/config.env b/src/development/config.env
new file mode 100644
index 0000000..69466be
--- /dev/null
+++ b/src/development/config.env
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+FQDN='euandre.org'
+BASE_URL='' # '/subfolder'
+lang=en
diff --git a/src/development/dynmake.sh b/src/development/dynmake.sh
index 3f173da..9c60b88 100755
--- a/src/development/dynmake.sh
+++ b/src/development/dynmake.sh
@@ -4,7 +4,7 @@ set -eu
usage() {
cat <<-'EOF'
Usage:
- dynmake.sh -n VARNAME -d DIR
+ dynmake.sh
dynmake.sh -h
EOF
}
@@ -32,14 +32,8 @@ for flag in "$@"; do
esac
done
-while getopts 'd:n:h' flag; do
+while getopts 'h' flag; do
case "$flag" in
- d)
- DIR="$OPTARG"
- ;;
- n)
- NAME="$OPTARG"
- ;;
h)
usage
help
@@ -55,18 +49,18 @@ shift $((OPTIND - 1))
assert_arg() {
if [ -z "$1" ]; then
- printf 'Missing %s.' "$2" >&2
+ printf 'Missing %s.\n' "$2" >&2
exit 2
fi
}
-assert_arg "${DIR:-}" '-d DIR'
-assert_arg "${NAME:-}" '-n NAME'
-
-printf '%s = \\\n' "$NAME"
-find "$DIR" -type f |
+printf 'pastebins.md = \\\n'
+find src/content/pastebin -name '*.md' |
sed -e 's/^/ /' \
-e 's/$/ \\/'
printf '\n'
+
+find src/content/pastebin -name '*.md' |
+ sed 's/^\(.*\)\.md$/\1.html: \1.env/'
diff --git a/src/development/genhtml.sh b/src/development/genhtml.sh
new file mode 100755
index 0000000..34588ef
--- /dev/null
+++ b/src/development/genhtml.sh
@@ -0,0 +1,112 @@
+#!/bin/sh
+set -eu
+
+MD="$1"
+
+escape() {
+ sed 's/a/a/'
+}
+
+url_for() {
+ printf 'https://%s%s%s' "$FQDN" "$BASE_URL" "$1"
+}
+
+_() {
+ printf '%s' "$1"
+}
+
+# FIXME
+langs='en pt fr eo es'
+# langs=''
+. src/development/config.env
+. "${MD%.md}.env"
+
+cat <<-EOF
+ <!DOCTYPE html>
+ <html lang="$lang">
+ <head>
+ <meta charset="UTF-8" />
+ <meta viewport content="width=device-width, initial-scale=1" />
+ <link rel="stylesheet" type="text/css" href="$(url_for '/static/styles.css')" />
+ <link rel="icon" type="image/svg+xml" href="$(url_for '/static/lord-favicon.svg')" />
+ <link rel="alternate" type="application/atom+xml" hreflang="$lang" href="$(url_for '/feed.articles.en.atom')" title="$(_ "EuAndreh's blog" | escape)" />
+ <link rel="alternate" type="application/atom+xml" hreflang="$lang" href="$(url_for '/feed.tils.en.atom')" title="$(_ "EuAndreh's TIL" | escape)" />
+ <link rel="alternate" type="application/atom+xml" hreflang="$lang" href="$(url_for '/feed.podcasts.en.atom')" title="$(_ "EuAndreh's podcasts" | escape)" />
+ <link rel="alternate" type="application/atom+xml" hreflang="$lang" href="$(url_for '/feed.screencasts.en.atom')" title="$(_ "EuAndreh's screencasts" | escape)" />
+
+ <title>EuAndreh</title>
+
+ <meta name="author" content="EuAndreh" />
+ <meta property="og:site_name" content="$(_ 'FIXME 1')" />
+ <meta property="og:locale" content="$lang" />
+ <meta property="og:title" content="$(_ 'FIXME 2')" />
+
+ <link rel="canonical" href="$(url_for '/')" />
+ <meta property="og:url" content="$(url_for '/')" />
+ <!-- FIXME: link to next and prev -->
+ </head>
+ <body>
+ <header>
+ <nav>
+ <ul>
+ <a href="$(url_for "/$lang/")">$(_ 'FIXME homepage link name')</a>
+ <a href="$(url_for "$(_ '/about.html')")">$(_ 'About')</a>
+ </ul>
+EOF
+
+if [ -n "$langs" ]; then
+ printf ' <ul>\n'
+ for l in $langs; do
+ cat <<-EOF
+ <li>
+ <a href="FIXME 3">$l</a>
+ </li>
+ EOF
+ done
+ printf ' </ul>\n'
+fi
+
+cat <<-EOF
+ </nav>
+ </header>
+ <main>
+ <article>
+EOF
+
+awk '
+ BEGIN {
+ separator = 0
+ should_print = 0
+ }
+
+ /^---$/ {
+ separator++
+ }
+
+ should_print {print}
+
+ separator == 2 && !should_print { should_print = !should_print }
+' "$MD" |
+ md2html
+
+cat <<-EOF
+ </article>
+ </main>
+ <footer>
+ <ul>
+ <li>
+ <img class="FIXME" src="$(url_for '/static/envelog.svg' alt="FIXME")" />
+ <a href="mailto:eu@euandre.org">eu@euandre.org</a>
+ </li>
+ <li>
+ <img class="FIXME" src="$(url_for '/static/lock.svg' alt="FIXME")" />
+ <a href="$(url_for '/static/public.asc')">81F90EC3CD356060</a>
+ </li>
+ </ul>
+ <p>
+ $(_ 'The content for this site is licensed under <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>. The <a href="https://euandreh.xyz/website.git">code</a> is <a rel="license" href="https://euandreh.xyz/website.git/tree/COPYING">AGPLv3 or later</a>. Patches welcome.')
+ </p>
+ </footer>
+ </body>
+ </html>
+EOF