commit 14472849d413641ab0c5832d9fbaa7ad0bdc743e
parent d9f4477c0d3ac2eab846c5e158b47d169257dc03
Author: Francesco Saccone <francesco@francescosaccone.com>
Date: Sun, 9 Mar 2025 15:39:15 +0100
refactor: use a single generate-sitemap script for every protocol
That was actually easy to do, because every page should solely be
a index.md file inside a directory which will then become the
head of the URL path: you do not need to specify any extension.
Signed-off-by: Francesco Saccone <francesco@francescosaccone.com>
Diffstat:
3 files changed, 43 insertions(+), 88 deletions(-)
diff --git a/scripts/generate-gemini-sitemap.sh b/scripts/generate-gemini-sitemap.sh
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-for program in date dirname echo find mkdir realpath; do
- if ! command -v "$program" > /dev/null 2>&1; then
- echo "Error: Required program '$program' is not installed."
- exit 1
- fi
-done
-
-if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <destination> <base-url>"
- exit 1
-fi
-
-SOURCE="$(realpath $(dirname $0)/..)"
-DESTINATION="$1"
-SITEMAP_FILE="$DESTINATION/sitemap.xml"
-BASE_URL="$2"
-
-mkdir -p "$DESTINATION"
-
-{
- echo -n '<?xml version="1.0" encoding="UTF-8"?>'
- echo -n '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap-image/1.1">'
-} > "$SITEMAP_FILE"
-
-for md_file in $(find "$SOURCE" -type f -name "*.md"); do
- relative_path="${md_file#$SOURCE/}"
- gemini_relative_path="${relative_path%.md}.gmi"
-
- url="$BASE_URL/$gemini_relative_path"
- last_modified=$(date -ur "$md_file" +"%Y-%m-%dT%H:%M:%SZ")
-
- {
- echo -n "<url>"
- echo -n "<loc>$url</loc>"
- echo -n "<lastmod>$last_modified</lastmod>"
- echo -n "</url>"
- } >> "$SITEMAP_FILE"
-done
-
-echo -n "</urlset>" >> "$SITEMAP_FILE"
-
-echo "Sitemap generated: $SITEMAP_FILE"
diff --git a/scripts/generate-html-sitemap.sh b/scripts/generate-html-sitemap.sh
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-for program in date dirname echo find mkdir realpath; do
- if ! command -v "$program" > /dev/null 2>&1; then
- echo "Error: Required program '$program' is not installed."
- exit 1
- fi
-done
-
-if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <destination> <base-url>"
- exit 1
-fi
-
-SOURCE="$(realpath $(dirname $0)/..)"
-DESTINATION="$1"
-SITEMAP_FILE="$DESTINATION/sitemap.xml"
-BASE_URL="$2"
-
-mkdir -p "$DESTINATION"
-
-{
- echo -n '<?xml version="1.0" encoding="UTF-8"?>'
- echo -n '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap-image/1.1">'
-} > "$SITEMAP_FILE"
-
-for md_file in $(find "$SOURCE" -type f -name "*.md"); do
- relative_path="${md_file#$SOURCE/}"
- html_relative_path="${relative_path%.md}.html"
-
- url="$BASE_URL/$html_relative_path"
- last_modified=$(date -ur "$md_file" +"%Y-%m-%dT%H:%M:%SZ")
-
- {
- echo -n "<url>"
- echo -n "<loc>$url</loc>"
- echo -n "<lastmod>$last_modified</lastmod>"
- echo -n "</url>"
- } >> "$SITEMAP_FILE"
-done
-
-echo -n "</urlset>" >> "$SITEMAP_FILE"
-
-echo "Sitemap generated: $SITEMAP_FILE"
diff --git a/scripts/generate-sitemap.sh b/scripts/generate-sitemap.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+for program in date dirname echo find mkdir realpath; do
+ if ! command -v "$program" > /dev/null 2>&1; then
+ echo "Error: Required program '$program' is not installed."
+ exit 1
+ fi
+done
+
+if [ "$#" -ne 2 ]; then
+ echo "Usage: $0 <destination> <base-url>"
+ exit 1
+fi
+
+SOURCE="$(realpath $(dirname $0)/..)"
+DESTINATION="$1"
+SITEMAP_FILE="$DESTINATION/sitemap.xml"
+BASE_URL="$2"
+
+mkdir -p "$DESTINATION"
+
+{
+ echo -n '<?xml version="1.0" encoding="UTF-8"?>'
+ echo -n '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap-image/1.1">'
+} > "$SITEMAP_FILE"
+
+for md_file in $(find "$SOURCE" -type f -name "index.md"); do
+ md_relative_file="${md_file#$SOURCE/}"
+
+ url="$BASE_URL/$(dirname $md_relative_file)"
+ last_modified=$(date -ur "$md_file" +"%Y-%m-%dT%H:%M:%SZ")
+
+ {
+ echo -n "<url>"
+ echo -n "<loc>$url</loc>"
+ echo -n "<lastmod>$last_modified</lastmod>"
+ echo -n "</url>"
+ } >> "$SITEMAP_FILE"
+done
+
+echo -n "</urlset>" >> "$SITEMAP_FILE"
+
+echo "Sitemap generated: $SITEMAP_FILE"