site

Francesco Saccone's site content.
git clone git://git.francescosaccone.com/site
Log | Files | Refs | README | LICENSE

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:
Dscripts/generate-gemini-sitemap.sh | 44--------------------------------------------
Dscripts/generate-html-sitemap.sh | 44--------------------------------------------
Ascripts/generate-sitemap.sh | 43+++++++++++++++++++++++++++++++++++++++++++
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"