feat(qsgen3): Enhance output naming, URL structure, and sitemap

Implements several improvements to the qsgen3 site generator:

- **Filename Sanitization**: Introduces robust sanitization for output HTML filenames, converting to lowercase, replacing special characters with hyphens, and ensuring clean names.
- **Blog Post URL Structure**: Blog posts from content/posts/ are now generated with a blog/YYYY/MM/DD/ URL structure if a valid date is present in frontmatter. Defaults to blog/filename.html if no valid date.
- **Improved Title Fallback**: Uses the original filename (before sanitization) as a fallback title if not specified in frontmatter.
- **Enhanced Pandoc Error Handling**: Better logging for Pandoc execution and explicit check of its exit code, allowing the script to continue on single file errors.
- **Sitemap Integration**: Adds successfully generated pages to sitemap URL list.
- **Non-fatal Sitemap Generation**: Sitemap generation failures are now logged as warnings and do not halt the script.

Also, unignores the /scripts/ directory in .gitignore to include migration scripts in the repository.
This commit is contained in:
2025-05-31 01:15:18 +02:00
parent 1283eb30cb
commit 4b95426256
2 changed files with 160 additions and 20 deletions

1
.gitignore vendored
View File

@ -22,7 +22,6 @@ include/qsgen2/lang/*.en
output/
# Scripts directory (temporary/conversion scripts)
/scripts/
/tools/
# Build output