diff options
| author | Marc Vertes <mvertes@free.fr> | 2025-06-23 22:41:02 +0200 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2025-06-23 22:41:02 +0200 |
| commit | bf8297543935fbcf3e608d38246e5435b3afbc77 (patch) | |
| tree | ad266e90674aa704eb2dba87361964e49413739c /build.sh | |
| parent | 0b09eab4f26d3fdb4f210156640be6e8dfcc238f (diff) | |
Improve HTML generation
Diffstat (limited to 'build.sh')
| -rwxr-xr-x | build.sh | 73 |
1 files changed, 29 insertions, 44 deletions
@@ -1,36 +1,10 @@ #!/bin/sh -header='<meta charset="UTF-8"> -<meta name="viewport" content="width=device-width, initial-scale=1"> -<style> - body { - max-width: 45rem; - margin: auto; - padding: 0.5em; - text-align: justify; - } - h1 { text-align: center } - pre { - padding: 1ch; - background-color: #f5f5f5; - overflow: auto; - } - img { - display: block; - margin: auto; - } - .footer { - text-align: center; - font-size: 0.8em; - } -</style> -' - md2html() { # Usage: # md2html file.md > file.html # Options: -v esc=false to not escape html -awk ' + awk ' function newblock(nblock) { if (text) print "<" block ">" text "</" block ">" @@ -192,44 +166,55 @@ awk ' newblock() while (nl > 0) print "</" list[nl--] ">" - }' "$1" + }' "$@" } genhtml() ( cd "$1" || return - . ./meta.sh + . ./meta exec 1>index.html # Header - echo "<!DOCTYPE html>" - echo "<!-- generated by build.sh. DO NOT EDIT. -->" - echo "<html lang=\"${lang:-en}\">" - echo "<title>$title</title>" - [ "$description" ] && echo "<meta name=\"description\" content=\"$description\">" - echo "$header" - [ "$1" != . ] && echo "<a href=\"..\">$blog_title</a><hr>" + cat <<- EOT + <!doctype html> + <html lang="${lang:-en}"> + <title>$title</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width"> + <link rel="stylesheet" href="/style.css"> + EOT # Body + [ "$1" != . ] && echo "<a href=\"..\">$blog_title</a><hr>" # pandoc *.md - for f in *.md; do - [ -f "$f" ] && md2html "$f" - done + md2html *.md # Footer - [ "$1" != . ] && echo "<hr>From: $author, $date" + [ "$1" = . ] && return + echo "<hr>From: $author, $date. <a href=\"mailto:marc@vertes.org?subject=$(urlenc "Re: $link")\">Feedback</a>" ) +urlenc() { + while [ -n "$1" ]; do + set -- "${1#?}" "${1%${1#?}}" + case $2 in + ([-._~0-9A-Za-z]) printf %c "$2" ;; + (*) printf %%%02x "'$2" ;; + esac + done + echo +} + for d in *; do [ -d "$d" ] && genhtml "$d" done genhtml . -# Fix for mastodon. -sed '/mstdn/s/href=/rel="me" href=/' index.html >xx && mv xx index.html # Put a license in index footer. -echo '<hr><div class="footer"> +echo '<footer> +<hr> <a href="feed.xml">RSS feed</a>.     Licensed under <a href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. -</div>' >>index.html +</footer>' >>index.html |
