Development notes, release, and insights on BSSG - Bash Static Site Generator

Announcing BSSG 0.12.1: Major Workflow Enhancements and More Control

Published on: 16-04-2025 09:14:19 • 3 min read

I'm thrilled to announce that BSSG version 0.12.1 has been officially released and tagged! This is a significant update packed with features designed to enhance your workflow, provide greater control via the command line, and streamline the entire process from creation to deployment.

Find the release details and download links here: BSSG 0.12.1 Release

Key Highlights in 0.12.1

This release focuses heavily on automation, flexibility, and convenience:

1. Powerful Build-Time Configuration Overrides

You now have fine-grained control over your build process directly from the command line, without needing to edit configuration files for temporary changes or specific scenarios. The ./bssg.sh build command accepts numerous new arguments to override settings:

  • Core Paths: --config, --local-config, --src, --output, --templates, --theme, --static, --pages, --drafts, --themes-dir
  • Site Metadata: --site-title, --site-url, --site-description, --author-name, --author-email
  • Build Options: --posts-per-page, --clean-output, --force-rebuild

Example: Test a build with a different output directory:

./bssg.sh build --output /tmp/bssg-test

This is fantastic for scripting, CI/CD pipelines, or simply testing variations quickly.

2. Create Posts Entirely from the Command Line

The ./bssg.sh post command has been supercharged! You can now create new posts completely non-interactively, specifying details via options:

  • -t "<title>": Set the post title.
  • -T <tag1,tag2>: Assign tags (comma-separated).
  • -s <custom-slug>: Specify a custom slug.
  • -c "<content>": Provide post content directly as a string.
  • -f <filepath>: Use content from a file.
  • --stdin: Read post content from standard input.
  • --html: Create the post with an .html extension (instead of .md).
  • -d: Create the post in the drafts directory.

You can even force a rebuild immediately after creation, even if REBUILD_AFTER_POST is false in your config, using the --build flag:

echo "My quick post content." | ./bssg.sh post -t "Quick Update" -T announcement --stdin --build

This opens up exciting possibilities for automated content generation or integration with other tools.

3. Integrated Deployment Hooks

Bridge the gap between building and deploying your site! BSSG now includes configuration options to automatically trigger your deployment process:

  • DEPLOY_AFTER_BUILD="true": Set this in your config to run the deployment script after every successful build.
  • DEPLOY_SCRIPT="/path/to/your/deploy.sh": Specify the script to execute.

You can also override this behavior for specific builds using command-line flags:

  • ./bssg.sh build --deploy: Force deployment even if DEPLOY_AFTER_BUILD is false.
  • ./bssg.sh build --no-deploy: Prevent deployment even if DEPLOY_AFTER_BUILD is true.

Streamline your publishing workflow with this simple yet powerful integration.

4. Optional Per-Tag RSS Feeds

As previewed recently in the main branch, you can now enable the generation of separate RSS feeds for each tag on your site. This allows your readers to subscribe specifically to the topics they care about most.

  • Enable via ENABLE_TAG_RSS="true" in your configuration (defaults to false).
  • Feeds are generated at ${OUTPUT_DIR}/tags/<tag_slug>/rss.xml.
  • Auto-discovery links are automatically added to tag pages.

5. Bug Fixes

This release also incorporates several bug fixes identified since 0.11.0, enhancing the overall stability and reliability of BSSG. Particular attention has been paid to improving the backup and restore procedures.

Important Update Notes

While this release primarily adds new features and options, the scope of changes (especially around build overrides and deployment hooks) is significant. To ensure all new functionalities work correctly and integrate smoothly with your setup, performing a clean rebuild after updating is recommended:

./bssg.sh build --clean-output --force-rebuild

Review the new configuration options (ENABLE_TAG_RSS, DEPLOY_AFTER_BUILD, DEPLOY_SCRIPT) and consider how they might benefit your workflow.

Get the Update!

I'm really excited about the workflow improvements in this release and encourage all users to update to BSSG 0.12.1 to take advantage of these powerful new capabilities.

Happy automating and blogging!

Stefano