diff options
| author | EuAndreh <eu@euandre.org> | 2024-09-01 09:14:28 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2024-09-28 14:00:03 -0300 |
| commit | 438014583ba2c244675d0f8d7f7f8bf9d568a7c8 (patch) | |
| tree | d2aad0e1c819bbf318ff3ec24dbd3734889b1fa6 /src/feed | |
| parent | Import code from website repository (diff) | |
| download | mkwb-438014583ba2c244675d0f8d7f7f8bf9d568a7c8.tar.gz mkwb-438014583ba2c244675d0f8d7f7f8bf9d568a7c8.tar.xz | |
Initial version
Diffstat (limited to '')
| -rwxr-xr-x | src/feed | 60 | ||||
| -rwxr-xr-x | src/feedentry (renamed from src/xmlentry) | 25 |
2 files changed, 45 insertions, 40 deletions
@@ -1,52 +1,52 @@ #!/bin/sh -set -eu +set -euo pipefail -usage() { - echo 'Usage: feed FILENAME' -} - -FILENAME="${1:-}" -eval "$(assert-arg -- "$FILENAME" 'FILENAME')" - -absolute() { - printf 'https://domain-here.com/%s' "$(cat -)" +usage() { + echo 'Usage: feed BASECONF GLOBALCONF FILENAME.sortdata...' } -feed_article_title='' -site_name=' ' -lang=en -now="$(date -uIs)" -url_absolute="$(printf '%s' "${FILENAME#src/}" | absolute)" -site_name_html="$(htmlesc "${site_name:?}")" -collection=article -collection_url_absolute="$(printf '%s' ${lang:?}/ | absolute)" -feed_title_html="$(eval "echo \"\$feed_${collection}_title\"" | htmlesc)" -export now url_absolute site_name_html collection_url_absolute feed_title_html +BASECONF="${1:-}" +GLOBALCONF="${2:-}" +FILES="${3:-}" +eval "$(assert-arg -- "$BASECONF" 'BASECONF')" +eval "$(assert-arg -- "$GLOBALCONF" 'GLOBALCONF')" +eval "$(assert-arg -- "$FILES" 'FILENAME.sortdata...')" +. "$(realpath -- "$BASECONF")" +. "$(realpath -- "$GLOBALCONF")" +shift +shift -DIR="$(dirname "$FILENAME")" -author= -email= -cat <<EOF +pre() { + cat <<EOF | sed '/^$/d' <feed xmlns="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" - xml:lang="$lang"> - <link href="$url_absolute" rel="self" type="application/atom+xml" /> - <link href="$collection_url_absolute" rel="alternate" type="text/html" hreflang="$lang" /> + xml:lang="en"> + <link rel="self" type="application/atom+xml" href="$feed_url_absolute" /> + <link rel="alternate" type="text/html" href="$feed_alternate_url_absolute" hreflang="en" /> <title>$site_name_html</title> <subtitle>$feed_title_html</subtitle> - <id>$url_absolute</id> - <updated>$now</updated> + <id>$feed_url_absolute</id> + <updated>$now_iso</updated> <author> <name>$author</name> <email>$email</email> </author> EOF +} + +post() { + printf '</feed>\n' +} + +pre find "$@" | xargs cat | sort -nr | + xargs cat | + sed 's/\.conf$/.feedentry/' | xargs cat -printf '</feed>\n' +post diff --git a/src/xmlentry b/src/feedentry index c2458d1..6299e6f 100755 --- a/src/xmlentry +++ b/src/feedentry @@ -1,21 +1,26 @@ #!/bin/sh -set -eu +set -euo pipefail usage() { - echo 'Usage: xmlentry FILENAME' + echo 'Usage: feedentry FILENAME.htmlbody' } FILENAME="${1:-}" -eval "$(assert-arg -- "$FILENAME" 'FILENAME')" -. "${FILENAME%.*}.conf" +eval "$(assert-arg -- "$FILENAME" 'FILENAME.htmlbody')" +. "$(realpath -- "${FILENAME%.*}.conf")" -title_html= -url_absolute= update_xml= -cat <<EOF - <entry xml:lang="$lang"> +if [ -n "${updated_at:-}" ]; then + update_iso="$(date -ud "$updated_at" -Is)" + update_xml=" <updated> + $update_iso + </updated>" +fi + +cat <<EOF | sed '/^$/d' + <entry xml:lang="en"> <title type="html"> $title_html </title> @@ -39,10 +44,10 @@ $update_xml <summary type="html"> EOF -head -n1 < "${FILENAME%.*}.htmlbody" | htmlesc +head -n5 < "$FILENAME" | htmlesc printf ' </summary>\n' printf ' <content type="html" xml:base="%s">\n' "${url:?}" -htmlesc < "${FILENAME%.*}.htmlbody" +htmlesc < "$FILENAME" printf ' </content>\n' printf ' </entry>\n' |
