aboutsummaryrefslogtreecommitdiff
path: root/v2/src/bin
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-04-10 16:18:01 -0300
committerEuAndreh <eu@euandre.org>2023-04-10 16:18:01 -0300
commit4b9cddca7f0f75e321319c79e94b3af3ce37e5ef (patch)
tree3cbbaba20deadebb9169c6c2a1ea65d984da05ae /v2/src/bin
parentv2: <link /> to translated version in <head /> (diff)
downloadeuandre.org-4b9cddca7f0f75e321319c79e94b3af3ce37e5ef.tar.gz
euandre.org-4b9cddca7f0f75e321319c79e94b3af3ce37e5ef.tar.xz
v2: <link /> to collection feed inside <head>
Diffstat (limited to '')
-rwxr-xr-xv2/src/bin/collection-for23
-rwxr-xr-xv2/src/bin/conf36
-rwxr-xr-xv2/src/bin/feed2
-rwxr-xr-xv2/src/bin/index9
4 files changed, 43 insertions, 27 deletions
diff --git a/v2/src/bin/collection-for b/v2/src/bin/collection-for
index 87f1204..e46f345 100755
--- a/v2/src/bin/collection-for
+++ b/v2/src/bin/collection-for
@@ -71,16 +71,17 @@ eval "$(assert_arg "$FILE" 'FILE')"
lang="$(lang-for "$FILE")"
DIR="$(dirname "$FILE")"
-if [ "$DIR" = "$CONTENT_PREFIX/$lang" ]; then
- echo
+PAGE="${FILE%.*}.page"
+
+if [ -e "$PAGE" ]; then
+ exit 1
else
- NAME="$(basename "$DIR")"
- NTH="$(
- collections |
- xargs -I% coll2path "$lang" % |
- awk '{ print NR, substr($0, 1, length($0) - 1) }' |
- grep " $NAME$" |
- cut -d' ' -f1
- )"
- collections | awk -vNTH="$NTH" 'NR == NTH'
+ collections | awk -v l="$lang" -v pre="$CONTENT_PREFIX" -v dir="$DIR" '{
+ "coll2path " l " " $0 | getline coll_path
+ d = pre "/" l "/" coll_path
+ sub(/\/$/, "", d)
+ if (d == dir) {
+ print $0
+ }
+ }'
fi
diff --git a/v2/src/bin/conf b/v2/src/bin/conf
index 3b56dbd..9fb4664 100755
--- a/v2/src/bin/conf
+++ b/v2/src/bin/conf
@@ -118,10 +118,32 @@ done < "$FILENAME" | tee -a "$FILENAME".tmp
rm -f "$FILENAME".tmp
+lang="$(lang-for "$FILENAME")"
+export lang
+printf 'export lang="%s"\n' "$lang"
+
+cat src/lib/base."${lang:?}".conf
+# shellcheck source=/dev/null
+. src/lib/base."$lang".conf
+if [ -z "${title:-}" ]; then
+ title="${site_name:?}"
+ printf 'export title="%s"\n' "$(printf '%s' "$title" | shesc)"
+fi
+
+
collection="$(collection-for "$FILENAME" ||:)"
if [ -n "$collection" ]; then
export collection
printf 'export collection="%s"\n' "$collection"
+
+ coll_path="$(coll2path "$lang" "$collection")"
+ feed_title="$(eval "echo \"\$feed_${collection}_title\"" | htmlesc)"
+
+ collection_head_html="$(printf ' <link rel="alternate" type="application/atom+xml" href="%s" title="%s" />' \
+ "$(url-for "$lang/$coll_path")" \
+ "$(htmlesc "$feed_title")"
+ )"
+ printf 'export collection_head_html="%s"\n' "$(shesc "$collection_head_html")"
fi
if [ -z "${layout:-}" ]; then
@@ -142,21 +164,9 @@ if [ -z "${layout:-}" ]; then
fi
-lang="$(lang-for "$FILENAME")"
-export lang
-printf 'export lang="%s"\n' "$lang"
-
-cat src/lib/base."${lang:?}".conf
-# shellcheck source=/dev/null
-. src/lib/base."$lang".conf
-if [ -z "${title:-}" ]; then
- title="${site_name:?}"
- printf 'export title="%s"\n' "$(printf '%s' "$title" | shesc)"
-fi
-
if [ -r "$FILENAME".i18n ]; then
translations_head="$(awk -F: -v lang="$lang" '$1 != lang{
- printf " <link rel=\"alternate\" type=\"text/html\" href=\"%s\" hreflang=\"%s\" />\n",
+ printf " <link rel=\"alternate\" type=\"text/html\" href=\"%s\" hreflang=\"%s\" />\n",
$3, $1
}' "$FILENAME".i18n)"
translations_body="$(cat <<-EOF
diff --git a/v2/src/bin/feed b/v2/src/bin/feed
index f55ba89..4e0d2f5 100755
--- a/v2/src/bin/feed
+++ b/v2/src/bin/feed
@@ -76,7 +76,7 @@ eval "$(assert_arg "$FILENAME" 'FILENAME')"
now="$(date -uIs)"
url_absolute="$(url-for "${FILENAME#"$CONTENT_PREFIX"/}" | absolute)"
site_name_html="$(htmlesc "${site_name:?}")"
-collection="$(sh src/bin/collection-for "$FILENAME")"
+collection="$(collection-for "$FILENAME")"
coll_path="$(coll2path "${lang:?}" "$collection")"
collection_url_absolute="$(url-for "${lang:?}/$coll_path" | absolute)"
feed_title_html="$(eval "echo \"\$feed_${collection}_title\"" | htmlesc)"
diff --git a/v2/src/bin/index b/v2/src/bin/index
index 36abd2e..6212544 100755
--- a/v2/src/bin/index
+++ b/v2/src/bin/index
@@ -85,11 +85,16 @@ index_category_title_html="$(eval "echo \"\$index_category_${collection}_title\"
export url_absolute feed_url by_category_url title_html index_recent_title_html \
index_category_title_html
+feed_title="$(eval "echo \"\$feed_${collection}_title\"")"
+collection_head_html="$(printf ' <link rel="alternate" type="application/atom+xml" href="%s" title="%s" />' \
+ "$feed_url" \
+ "$(htmlesc "$feed_title")")"
+
translations_head_html="$(langs |
awk -v lang="${lang:?}" -v coll="$collection" '$0 != lang {
"coll2path " $0 " " coll | getline coll_path
"url-for " $0 "/" coll_path | getline url
- printf " <link rel=\"alternate\" type=\"text/html\" href=\"%s\" hreflang=\"%s\" />\n",
+ printf " <link rel=\"alternate\" type=\"text/html\" href=\"%s\" hreflang=\"%s\" />\n",
url, $0
}'
)"
@@ -103,7 +108,7 @@ translations_body_html="$(cat <<-EOF
</ul>
EOF
)"
-export translations_head_html translations_body_html
+export collection_head_html translations_head_html translations_body_html