diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2023-08-19 18:22:10 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2023-08-19 18:22:10 +0200 |
| commit | 3a2940a9648a4a6e3b47b5a55643f357fc7e6790 (patch) | |
| tree | b9226f19078297665848344c198b97080b521662 | |
| parent | 555bbbac1a475639b21a8ceebdd3cf0a06c742d3 (diff) | |
| download | sebastiano.tronto.net-3a2940a9648a4a6e3b47b5a55643f357fc7e6790.tar.gz sebastiano.tronto.net-3a2940a9648a4a6e3b47b5a55643f357fc7e6790.zip | |
Refactored build script; bye gemini
| -rw-r--r-- | Makefile | 12 | ||||
| -rwxr-xr-x | build.sh | 89 | ||||
| -rw-r--r-- | src/blog/2022-06-04-gemini/gemini.md | 2 |
3 files changed, 36 insertions, 67 deletions
| @@ -1,20 +1,16 @@ | |||
| 1 | DEST="tronto.net:/var/www/htdocs/sebastiano.tronto.net" | 1 | DEST="tronto.net:/var/www/htdocs/sebastiano.tronto.net" |
| 2 | DESTGEMINI="tronto.net:/var/gemini" | ||
| 3 | RSYNC=$$( (command -V rsync 2>&1 > /dev/null && echo rsync) || echo openrsync) | 2 | RSYNC=$$( (command -V rsync 2>&1 > /dev/null && echo rsync) || echo openrsync) |
| 4 | 3 | ||
| 5 | all: clean | 4 | all: clean |
| 6 | ./build.sh | 5 | ./build.sh |
| 7 | 6 | ||
| 8 | clean: | 7 | clean: |
| 9 | rm -rf http gemini | 8 | rm -rf http |
| 10 | mkdir -p http gemini | 9 | mkdir -p http |
| 11 | 10 | ||
| 12 | deploy: syncgemini synchttp | 11 | deploy: synchttp |
| 13 | |||
| 14 | syncgemini: | ||
| 15 | ${RSYNC} -rv --delete --rsync-path=openrsync gemini/ ${DESTGEMINI} | ||
| 16 | 12 | ||
| 17 | synchttp: | 13 | synchttp: |
| 18 | ${RSYNC} -rv --delete --rsync-path=openrsync http/ ${DEST} | 14 | ${RSYNC} -rv --delete --rsync-path=openrsync http/ ${DEST} |
| 19 | 15 | ||
| 20 | .PHONY: all clean deploy syncgemini synchttp | 16 | .PHONY: all clean deploy synchttp |
| @@ -2,53 +2,46 @@ | |||
| 2 | 2 | ||
| 3 | recursivebuild() { | 3 | recursivebuild() { |
| 4 | local destdir=$(echo $1 | sed 's|^src|http|') | 4 | local destdir=$(echo $1 | sed 's|^src|http|') |
| 5 | local destdir_gmi=$(echo $1 | sed 's|^src|gemini|') | ||
| 6 | mkdir -p "$destdir" | 5 | mkdir -p "$destdir" |
| 7 | mkdir -p "$destdir_gmi" | ||
| 8 | for file in $(ls $1); do | 6 | for file in $(ls $1); do |
| 9 | if [ -d "$1/$file" ]; then | 7 | if [ -d "$1/$file" ]; then |
| 10 | mkdir -p "$destdir/$file" | 8 | mkdir -p "$destdir/$file" |
| 11 | mkdir -p "$destdir_gmi/$file" | ||
| 12 | recursivebuild "$1/$file" | 9 | recursivebuild "$1/$file" |
| 13 | else | 10 | else |
| 14 | extension=$(echo "$file" | sed 's/.*\.//') | 11 | copyfile "$1/$file" "$destdir" |
| 15 | if [ "$extension" = "md" ]; then | ||
| 16 | sed "s/TITLE/$(grep '^\# ' < "$1/$file" \ | ||
| 17 | | head -n 1 \ | ||
| 18 | | sed 's/^\# //')/" < top.html \ | ||
| 19 | > "$destdir/index.html" | ||
| 20 | lowdown "$1/$file" >> "$destdir/index.html" | ||
| 21 | cat bottom.html >> "$destdir/index.html" | ||
| 22 | |||
| 23 | # TODO: the following lines contain a dirty fix | ||
| 24 | # to deal with a bug in lowdown. Remove all the | ||
| 25 | # sed lines when fixed. | ||
| 26 | lowdown -Tgemini --gemini-link-roman \ | ||
| 27 | "$1/$file" \ | ||
| 28 | | sed '/```./i\ | ||
| 29 | ``` | ||
| 30 | ' \ | ||
| 31 | | sed '/```./ s/```//' \ | ||
| 32 | > "$destdir_gmi/index.gmi" | ||
| 33 | cat bottom.gmi >> "$destdir_gmi/index.gmi" | ||
| 34 | elif [ "$extension" = "html" ]; then | ||
| 35 | cat top.html "$1/$file" bottom.html \ | ||
| 36 | | sed "s/TITLE/$(grep '<!--TITLE: ' <\ | ||
| 37 | "$1/$file" \ | ||
| 38 | | sed 's/^<!--TITLE: //' \ | ||
| 39 | | sed 's/-->$//')/" \ | ||
| 40 | > "$destdir/index.html" | ||
| 41 | elif [ "$extension" = "gmi" ]; then | ||
| 42 | cat "$1/$file" bottom.gmi > \ | ||
| 43 | "$destdir_gmi/index.gmi" | ||
| 44 | else | ||
| 45 | cp "$1/$file" "$destdir/$file" | ||
| 46 | cp "$1/$file" "$destdir_gmi/$file" | ||
| 47 | fi | ||
| 48 | fi | 12 | fi |
| 49 | done | 13 | done |
| 50 | } | 14 | } |
| 51 | 15 | ||
| 16 | copyfile() { | ||
| 17 | file=$1 | ||
| 18 | dest=$2 | ||
| 19 | ind=$dest/index.html | ||
| 20 | extension=$(echo "$file" | sed 's/.*\.//') | ||
| 21 | case "$extension" in | ||
| 22 | md) | ||
| 23 | t="$(markdowntitle $file)" | ||
| 24 | sed "s/TITLE/$t/" < top.html > "$ind" | ||
| 25 | lowdown "$file" >> "$ind" | ||
| 26 | cat bottom.html >> "$ind" | ||
| 27 | ;; | ||
| 28 | html) | ||
| 29 | t="$(htmltitle $file)" | ||
| 30 | cat top.html "$file" bottom.html | sed "s/TITLE/$t/" > "$ind" | ||
| 31 | ;; | ||
| 32 | *) | ||
| 33 | cp "$file" "$dest/$(basename $file)" | ||
| 34 | esac | ||
| 35 | } | ||
| 36 | |||
| 37 | markdowntitle() { | ||
| 38 | grep '^# ' $1 | head -n 1 | sed 's/^# //' | ||
| 39 | } | ||
| 40 | |||
| 41 | htmltitle() { | ||
| 42 | grep '<!--TITLE: ' "$1" | sed 's/^<!--TITLE: //' | sed 's/-->$//' | ||
| 43 | } | ||
| 44 | |||
| 52 | makeblog() { | 45 | makeblog() { |
| 53 | bf=src/blog/blog.md | 46 | bf=src/blog/blog.md |
| 54 | ff=src/blog/feed.xml | 47 | ff=src/blog/feed.xml |
| @@ -85,27 +78,5 @@ makeblog() { | |||
| 85 | echo "</rss>" >> $ff | 78 | echo "</rss>" >> $ff |
| 86 | } | 79 | } |
| 87 | 80 | ||
| 88 | gemblog() { | ||
| 89 | bg=gemini/blog/index.gmi | ||
| 90 | |||
| 91 | printf "# Blog\n\n=> feed.xml RSS Feed\n\n" > $bg | ||
| 92 | for i in $(ls src/blog | sort -r); do | ||
| 93 | if [ -d src/blog/$i ]; then | ||
| 94 | d=$(echo $i | grep -oE '^[0-9]{4}-[0-9]{2}-[0-9]{2}') | ||
| 95 | t=$(head -n 1 src/blog/$i/*.md | sed 's/# //') | ||
| 96 | |||
| 97 | thisyear=$(echo $d | sed 's/-.*//') | ||
| 98 | if [ "$thisyear" != "$lastyear" ]; then | ||
| 99 | printf "\n## $thisyear\n\n" >> $bg | ||
| 100 | lastyear=$thisyear | ||
| 101 | fi | ||
| 102 | echo "=> $i $d $t" >> $bg | ||
| 103 | fi | ||
| 104 | done | ||
| 105 | echo "" >> $bg | ||
| 106 | cat bottom.gmi >> $bg | ||
| 107 | } | ||
| 108 | |||
| 109 | makeblog | 81 | makeblog |
| 110 | recursivebuild src | 82 | recursivebuild src |
| 111 | gemblog | ||
diff --git a/src/blog/2022-06-04-gemini/gemini.md b/src/blog/2022-06-04-gemini/gemini.md index db258e8..b04a8ac 100644 --- a/src/blog/2022-06-04-gemini/gemini.md +++ b/src/blog/2022-06-04-gemini/gemini.md | |||
| @@ -191,3 +191,5 @@ stay html-first. This means that inline links will look a bit ugly in gemini | |||
| 191 | and, more annoyingly for the few gemini users, I am going to use | 191 | and, more annoyingly for the few gemini users, I am going to use |
| 192 | http(s) links even when a gemini counterpart is available. | 192 | http(s) links even when a gemini counterpart is available. |
| 193 | 193 | ||
| 194 | *Update: as of August 2023, my website is still available on gemini, | ||
| 195 | but new blog posts are no longer mirrore there* | ||
