prosberry/insert-references.sh

55 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Konfiguracija
SNIPPET_FILE="references-snippet.html"
# Marker, pred katerega vstavimo vsebino (mora biti unique v HTML)
TARGET_MARKER='<section class="final-cta">'
# Marker, s katerim preverimo, ali je vsebina že vstavljena (da ne podvajamo)
CHECK_MARKER='class="references-section"'
# Preveri, če snippet obstaja
if [ ! -f "$SNIPPET_FILE" ]; then
echo "NAPAKA: Datoteka $SNIPPET_FILE ne obstaja!"
exit 1
fi
# Poišči vse HTML datoteke, razen v mapi cene-in-reference in templates
# Prav tako izključimo reference-snippet.html samega sebe
FILES=$(find . -type f -name "*.html" \
! -path "./cene-in-reference/*" \
! -path "./$SNIPPET_FILE" \
! -path "./header-template.html" \
! -path "./footer-template.html" \
! -path "./assets/*")
echo "Začenjam vstavljanje referenc..."
for file in $FILES; do
# 1. Preveri, če datoteka sploh ima ciljni marker (final-cta)
if ! grep -Fq "$TARGET_MARKER" "$file"; then
echo "PRESKOČENO (ni final-cta): $file"
continue
fi
# 2. Preveri, če datoteka že vsebuje reference (da ne podvojimo)
if grep -Fq "$CHECK_MARKER" "$file"; then
echo "PRESKOČENO (že vsebuje reference): $file"
continue
fi
# 3. Izvedi vstavljanje z AWK
# Logika: Ko najde TARGET_MARKER, najprej izpiše vsebino snippeta, nato marker
awk -v snippet_file="$SNIPPET_FILE" -v target="$TARGET_MARKER" '
$0 ~ target {
while ((getline line < snippet_file) > 0) {
print line
}
close(snippet_file)
}
{ print }
' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
echo "POSODOBLJENO: $file"
done
echo "Končano!"