website-htmx-rustelo-code/scripts/others/add-html-file-field.sh
2026-07-10 03:44:13 +01:00

54 lines
No EOL
1.6 KiB
Bash
Executable file

#!/bin/bash
# Add html_file field to content index JSON files
# This script adds the required html_file field based on the existing source_file field
set -e
# Function to update a single JSON file
update_json_file() {
local json_file="$1"
echo "Updating: $json_file"
# Create a temporary file for the updated JSON
local temp_file=$(mktemp)
# Use jq to add html_file field to each item based on source_file
jq '
if type == "object" then
if has("blog") then
.blog |= map(
if .source_file then
.html_file = (.source_file | gsub("\\.md$"; ".html") | gsub("^[^/]+/[^/]+/"; ""))
else . end
)
elif has("recipes") then
.recipes |= map(
if .source_file then
.html_file = (.source_file | gsub("\\.md$"; ".html") | gsub("^[^/]+/[^/]+/"; ""))
else . end
)
else . end
else . end
' "$json_file" > "$temp_file"
# Check if jq succeeded
if [ $? -eq 0 ]; then
mv "$temp_file" "$json_file"
echo "✅ Successfully updated $json_file"
else
echo "❌ Failed to update $json_file"
rm -f "$temp_file"
exit 1
fi
}
# Find all index.json files in content directory
echo "🔍 Looking for index.json files..."
find content -name "index.json" -type f | while read -r json_file; do
update_json_file "$json_file"
done
echo "🎉 All index.json files have been updated with html_file field!"