aboutsummaryrefslogtreecommitdiff
path: root/v2/src/bin/feed
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xv2/src/bin/feed44
1 files changed, 32 insertions, 12 deletions
diff --git a/v2/src/bin/feed b/v2/src/bin/feed
index 0488c86..52c6199 100755
--- a/v2/src/bin/feed
+++ b/v2/src/bin/feed
@@ -27,7 +27,7 @@ help() {
Generate a feed for TILs:
- $ feed src/en/feeds/til.xml
+ $ feed src/en/tils/feed.xml
EOF
}
@@ -68,24 +68,44 @@ FILENAME="${1:-}"
eval "$(assert_arg "$FILENAME" 'FILENAME')"
-COLLECTION="$(basename "$FILENAME" '.xml')"
-LANGUAGE="$(lang-for "$FILENAME")"
-DIR="$(dirname "$(dirname "$FILENAME")")/$COLLECTION"
-
-
. src/lib/base.conf
# shellcheck source=/dev/null
-. src/lib/base."$LANGUAGE".conf
+. src/lib/base."$(lang-for "$FILENAME")".conf
+
now="$(date -uIs)"
-url="$(url-for "${FILENAME#"$CONTENT_PREFIX"}" | absolute)"
+url_absolute="$(url-for "${FILENAME#"$CONTENT_PREFIX"/}" | absolute)"
site_name_html="$(htmlesc "${site_name:?}")"
-export now url site_name_html
+collection="$(collection-for "$FILENAME")"
+collection_url_absolute="$(url-for "${lang:?}/$collection/" | absolute)"
+feed_title_html="$(eval "echo \"\$feed_${collection}_title\"" | htmlesc)"
+export now url_absolute site_name_html collection_url_absolute feed_title_html
-
-mkdir -p "$(dirname "$FILENAME")"
+DIR="$(dirname "$FILENAME")"
+mkdir -p "$DIR"
{
envsubst < src/lib/feed.xml
- find "$DIR"/*.sortdata 2>/dev/null | sort -nr | xargs cat | xargs cat
+ find "$DIR"/*.sortdata 2>/dev/null |
+ sort -nr |
+ xargs cat |
+ sed 's|\.md$|.xmlentry|' |
+ xargs cat
printf '</feed>\n'
} > "$FILENAME"
+
+printf '' > "$DIR"/index.extrafeeds
+while read -r category; do
+ url_absolute="$(url-for "${DIR#"$CONTENT_PREFIX"/}/feed.$category.xml" | absolute)"
+ collection_url_absolute="$(url-for "${DIR#"$CONTENT_PREFIX"/}/${by_category_url_part:?}#$category" | absolute)"
+ feed_title_html="$(eval "echo \"\$index_category_${collection}_title\"" | htmlesc)"
+ export url_absolute collection_url_absolute feed_title_html
+
+ {
+ envsubst < src/lib/feed.xml
+ < "$DIR/$category.category" \
+ sed 's|\.md$|.xmlentry|' |
+ xargs cat
+ printf '</feed>\n'
+ } > "$DIR/feed.$category.xml"
+ echo "$DIR/feed.$category.xml" >> "$DIR"/index.extrafeeds
+done < "$DIR"/index.categories