💾 Archived View for midnight.pub › replies › 515 captured on 2022-07-16 at 17:15:51. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
#!/bin/sh echo "m4_include(website.m4) m4_define([__title], []) m4_define([__description], []) m4_include(article-header.html) <section>" pandoc "$1" echo "</section> m4_include(footer.html)"
Thanks. I'm actually embarrassed right now because I think I should have thought of that myself. And if I use printf instead of echo I can pass in the title and description as arguments along with the filename. Then again echo would probably work fine, too, but I'm used to printf because of my feedgen script.
I use this to generate Atom feeds from a tab-delimited file. Though the usage function needs updating.
#!/bin/sh -e main() { test -n "$1" || usage test -n "$2" || usage url="$1" head="$2" entries="$3" feed_start "$head" process_entries "$url" "$entries" feed_end "" } usage() { echo "usage:\n\t${0##*/} <header file> <entries file>" >&2 echo "\tHeader file is tab-delimited: title, subtitle, link, name, email." >&2 echo "\tEntries file is tab-delimited: title, link, id, updated, summary." >&2 echo "\tPlease note that entries file will be read in reverse order." >&2 exit 1 } feed_start() { title=`cut -f 1 ${1}` subtitle=`cut -f 2 ${1}` link=`cut -f 3 ${1}` updated=`date "+%Y-%m-%dT%H:%M:%S.000-05:00"` name=`cut -f 4 ${1}` email=`cut -f 5 ${1}` printf '<?xml version="1.0" encoding="utf-8"?>\n' printf '<feed xmlns="http://www.w3.org/2005/Atom">\n' printf '\t<title>%s</title>\n' "$title" printf '\t<subtitle>%s</subtitle>\n' "$subtitle" printf '\t<link href="%s"/>\n' "$link" printf '\t<updated>%s</updated>\n' "$updated" printf '\t<author>\n' printf '\t\t<name>%s</name>\n' "$name" printf '\t\t<email>%s</email>\n' "$email" printf '\t</author>\n' printf '\t<id>%s</id>\n' "$link" } process_entries() { url=$1 while IFS= read -r line do write_entry "$url" "$line" done < $2 } write_entry() { url=$1 title=`echo "$2" | cut -f 3` link=`echo "$2" | cut -f 2` updated=`echo "$2" | cut -f 1` summary=`echo "$2" | cut -f 4` printf '\t<entry>\n' printf '\t\t<title>%s</title>\n' "$title" printf '\t\t<link rel="alternate" href="%s%s"/>\n' "$url" "$link" printf '\t\t<id>%s%s</id>\n' "$url" "$link" printf '\t\t<updated>%sT23:58:00.000-0500</updated>\n' "$updated" printf '\t\t<summary>%s</summary>\n' "$summary" printf '\t</entry>\n' } feed_end() { printf '</feed>\n' } main "$@"