• 0.40.0 608a82aec4

    0.40.0 Stable

    stefano released this 2026-03-27 11:29:59 +01:00 | 0 commits to main since this release

    Key Highlights in 0.40.0

    New "RAM-First" Build Mode

    Version 0.40.0 introduces a massive performance overhaul with a new "RAM-first" build mode, aimed at delivering significantly faster full rebuilds with lower disk churn. Alongside this, the entire build pipeline - across indexing, content parsing, templates, and post generation - has been heavily optimized. Large builds now also report stage timing output so you can see exactly where time is spent.

    New Configuration Option:

    # Control build mode in config.sh.local
    BUILD_MODE="ram"     # Use the new memory-first path (default for new features)
    BUILD_MODE="normal"  # Revert to previous disk-backed behavior
    

    You can also trigger this on the fly using ./bssg.sh build --build-mode ram.

    Fediverse Creator Metadata & Profile Verification

    BSSG now provides robust native integration for Mastodon and the broader Fediverse. You can attribute posts to Fediverse creators and seamlessly verify your site ownership on your profile using rel="me" links.

    New Configuration Options:

    # Add to config.sh.local for site-wide verification
    FEDIVERSE_CREATOR="@username@mastodon.social"
    REL_ME_URL="https://mastodon.social/@username"
    # REL_ME_URLS=("https://url1" "https://url2") # For multiple profiles
    

    This is fully customizable: you can override attribution per-post via fediverse_creator: in the frontmatter, or map specific authors using AUTHOR_FEDIVERSE_CREATORS. The standalone browser editor has also been updated to support this new frontmatter.

    Note for custom template users: The bundled templates/header.html has been updated. If you use a custom <head> template, simply add {{fediverse_creator_meta}} and {{rel_me_link}} to enable this output.

    Smarter Incremental Rebuilds & Parallel Execution

    Building on the GNU Parallel improvements from 0.33.0, parallel execution support has been vastly expanded. BSSG now features shell-worker fallbacks if GNU parallel is unavailable or unsuitable.

    Incremental rebuild behavior is much smarter, boasting better file and metadata caching, stricter dependency checks, and more selective regeneration. Asset pre-compression is now parallelized as well, making gzip generation for text assets incremental and much faster.

    Expanded Command-Line Overrides

    Working with BSSG from the CLI or CI/CD pipelines is now much more flexible. We have extended build CLI overrides, allowing you to pass configuration directly via flags:

    ./bssg.sh build --site-title "My Blog" --author-name "Alice" --posts-per-page 10
    

    New supported overrides include --build-mode, --site-title, --site-description, --site-url, --author-name, --author-email, --posts-per-page, alongside a new global --config workflow flag for advanced multi-site setups.

    Semantic HTML, SEO Improvements, and 8 New Themes

    We’ve standardized list-page article headings from <h3> to <h2> across the homepage, archives, authors, tags, and secondary pages. This improves heading hierarchy, accessibility, and semantic consistency. All existing BSSG themes have been carefully updated to match this new markup, preserving their original typography, hover, and spacing rules without inheriting unwanted ornaments.

    SEO meta tags have also been refined: og:title and twitter:title now strictly use the post/page title rather than awkwardly appending the site title. Open Graph URL generation has been fixed to ensure perfectly concatenated leading-slash paths.

    We are also thrilled to introduce 8 new themes: liquid-glass, freebsd, netbsd, openbsd, field-journal, microfiche, museum-label, and mynotes. Generating previews for these is now vastly faster, as generate_theme_previews.sh defaults to a smart clone-and-swap workflow rather than forcing a full build per theme (though --full-build remains available as a fallback).


    Upgrade Instructions

    Because this is a major pipeline and template update, please follow these steps when upgrading:

    1. Update your checkout to the 0.40.0 release and review your config.sh.local for the newly available options.
    2. Decide on your build mode. Set BUILD_MODE="ram" for the new performance path, or BUILD_MODE="normal" for the legacy disk-backed behavior.
    3. If using custom templates, update your <head> template to include {{fediverse_creator_meta}} and {{rel_me_link}}.
    4. (Optional) Configure FEDIVERSE_CREATOR, AUTHOR_FEDIVERSE_CREATORS, and REL_ME_URL/REL_ME_URLS for Mastodon verification.
    5. Run a clean rebuild to ensure the new HTML semantics and pipeline caches apply correctly:
      ./bssg.sh build --force-rebuild --clean-output true
    6. Verify your generated homepage, post pages, feeds, and archives.

    Thank you to all contributors for making BSSG faster, more powerful, and semantic!

    No content migration is required for this update. Existing posts and pages will continue to work unchanged, and all new metadata/configuration features are entirely optional. No additional dependencies or server configuration are required.

    Downloads
  • 0.33.0 e91a1344b0

    0.33.0 Stable

    stefano released this 2025-12-28 15:01:42 +01:00 | 7 commits to main since this release

    Key Highlights in 0.33.0

    Full Content Display on Homepage

    Version 0.33 introduces a highly requested feature: the ability to display complete post content directly on your homepage index, rather than just excerpts or descriptions.

    New Configuration Option:

    # Control homepage content display in config.sh.local
    INDEX_SHOW_FULL_CONTENT="false"  # Default: show excerpts only
    INDEX_SHOW_FULL_CONTENT="true"   # Show full post content
    

    This feature maintains backward compatibility - sites will continue showing excerpts by default unless explicitly configured otherwise.

    Dutch Language Support

    BSSG's internationalization continues to expand with the addition of Dutch (nl) locale support, contributed by Stefan "ZipKid" Goethals

    Command-Line Workflow Enhancement

    A quality-of-life improvement from contributor Tj makes working with multiple BSSG sites significantly easier through automatic config variable expansion in command-line arguments.

    When managing multiple sites via BSSG_LCONF, you previously had to type full paths repeatedly:

      export BSSG_LCONF=/a/very/deep/path/to/site/a
      ./bssg.sh edit '/a/very/deep/path/to/site/a/pages/page-1.md'
    

    Now you can reference config variables directly using shell variable syntax (with single quotes to prevent premature expansion):

      export BSSG_LCONF=/a/very/deep/path/to/site/a
      ./bssg.sh edit '$PAGES_DIR/page-1.md'
    

    Supported Variables:

    • $SRC_DIR - Posts directory
    • $PAGES_DIR - Pages directory
    • $DRAFTS_DIR - Drafts directory
    • $OUTPUT_DIR - Build output directory
    • And any other config variables you've defined

    This enhancement makes BSSG more intuitive and faster to use, especially for power users managing multiple sites.

    Improved BSD/Non-GNU Compatibility

    A critical fix addresses compatibility issues when using the parallel command from the moreutils package instead of GNU Parallel.

    BSSG's parallel processing feature assumed that any parallel command was GNU Parallel. Systems with moreutils installed would fail during post processing because the two tools have incompatible command-line interfaces.

    BSSG now explicitly checks for GNU Parallel by querying the version string, ensuring it only enables parallel processing when the correct tool is available. This fix improves compatibility across FreeBSD, various Linux distributions, and other Unix-like systems.

    Thank you to all contributors for making BSSG more powerful and accessible!

    No additional dependencies or server configuration required for this update.

    Downloads
  • 0.32.0 f8f4e18be7

    0.32.0 Stable

    stefano released this 2025-07-17 09:11:26 +02:00 | 15 commits to main since this release

    Key Highlights in 0.32.0

    1. Asset Pre-Compression Feature

    The headline feature of this release is the introduction of asset pre-compression. This powerful new capability allows for the creation of gzipped versions of text-based assets (.html, .css, .xml, .js) during the build process.

    Performance-First Architecture:

    • Faster Load Times: By serving smaller, pre-compressed files, your website's loading speed can be dramatically improved. This leads to a better user experience and can positively impact SEO rankings.
    • Reduced Server Load: Compression is a CPU-intensive task. By compressing assets once during the build process instead of on-the-fly for every request, server CPU cycles are saved, which is particularly beneficial for high-traffic sites.
    • Bandwidth Savings: Smaller file sizes translate directly to reduced bandwidth consumption, which can lower hosting costs and improve performance for users on slower networks.

    Flexible Configuration:

    # Control asset pre-compression in config.sh.local
    PRECOMPRESS_ASSETS=true    # Enable/disable the feature (default: false)
    

    To leverage this feature, your web server (like Nginx or Apache) needs to be configured to serve the .gz files when available.

    2. New Themes

    This release is enriched by the addition of two new themes, showcasing the creativity and collaborative spirit of the BSSG community.

    "Thoughtful" Theme:

    • A minimalist and accessible theme designed to provide an optimal reading experience, perfect for personal blogs and long-form content. Its design focuses on clean typography and a layout that keeps the reader's attention on the content.

    "Cyber-Dark" Theme by Nigel Swan:

    • A visually striking, cyberpunk-inspired theme featuring neon shadows and a dark, futuristic aesthetic.
    • This theme was contributed by community member Nigel Swan (lowkey.party). A special thanks to Nigel for this unique and exciting addition to our theme collection.

    3. Enhanced Privacy and Dependency Cleanup

    In a move to improve user privacy and reduce external dependencies, all remaining Google Fonts have been removed from the BSSG codebase.

    • Improved Privacy: Self-hosting fonts prevents the transmission of user IP addresses to third-party servers, which is a key consideration for GDPR compliance.
    • Better Performance: Removing requests to external font providers can reduce DNS lookups and improve page load times.
    • Full Control: This change gives site owners complete control over their assets, ensuring that their sites are self-contained and not reliant on external services.

    Technical Implementation Details

    Asset Pre-Compression Workflow

    The pre-compression system is seamlessly integrated into the existing build process.

    1. Asset Discovery: The build script identifies all text-based assets (.html, .css, .xml, .js) within the public directory.
    2. Gzip Compression: Each discovered asset is then compressed using gzip, creating a corresponding .gz file alongside the original.
    3. Server Configuration: For this to be effective, web servers like Nginx can be configured with gzip_static on; to automatically serve the compressed versions to browsers that support them. Apache can achieve similar results with mod_deflate and mod_rewrite.

    This build-time approach ensures that the performance cost of compression is incurred only once, rather than with every visitor request.

    Important Update Notes

    Backward Compatibility:

    • Asset pre-compression is disabled by default. You must enable it in config.sh.local to use it, ensuring no breaking changes for existing sites.
    • All current themes and configurations will continue to work without any required modifications.

    Performance Impact:

    • Enabling pre-compression will result in a negligible increase in build time.
    • The trade-off is a significant improvement in your site's loading speed and a reduction in server overhead.

    Theme Integration:

    • The new "thoughtful" and "Cyber-Dark" themes can be enabled by setting the THEME variable in your configuration file.

    Get the Update!

    Ready to speed up your site and explore new designs?

    Upgrading is straightforward:

    1. Pull the latest changes from the repository.
    2. To enable asset pre-compression, add PRECOMPRESS_ASSETS=true to your config.sh.local file.
    3. Ensure your web server is configured to serve pre-compressed content.
    4. To switch to a new theme, simply update the THEME variable in your configuration.
    Downloads
  • 0.31.0 70760825b0

    0.31.0 Stable

    stefano released this 2025-06-20 12:02:01 +02:00 | 20 commits to main since this release

    Key Highlights in 0.31.0

    The headline feature of this release is intelligent related posts functionality that automatically suggests relevant content to your readers based on shared tags!

    Intelligent Tag-Based Algorithm:

    • Smart Similarity Ranking: Posts are scored based on the number of shared tags with the current post
    • Automatic Content Discovery: Readers see relevant posts without manual curation
    • Performance Optimized: Uses BSSG's existing caching infrastructure for lightning-fast generation

    Flexible Configuration:

    # Control related posts behavior in config.sh.local
    ENABLE_RELATED_POSTS=true    # Enable/disable the feature (default: true)
    RELATED_POSTS_COUNT=3        # Number of related posts to show (default: 3)
    

    2. Enhanced Theme Experience

    Building on the major theme overhaul in 0.30, this release includes targeted improvements for better accessibility and visual consistency.

    Dark Mode Accessibility Fix:

    • Author Name Readability: Fixed hard-coded color styles that made author names invisible in dark themes
    • Theme Variable Integration: Author names now properly use CSS custom properties (var(--text-color))
    • Universal Compatibility: Ensures consistent readability across all themes and color schemes

    Italy Theme Enhancement:

    • Enhanced Page Meta Styling: Beautiful new CSS classes for publication metadata
    • Semantic Structure: Proper .page-meta container with organized sub-elements
    • Design Consistency: Maintains Italian Renaissance aesthetic while improving readability
    • Responsive Typography: Optimized font sizes and spacing for all devices

    3. Improved Semantic HTML Structure

    Better Post Metadata:

    • CSS Class-Based Styling: Replaced inline styles with semantic CSS classes
    • Accessibility Enhancement: Author names now use proper <strong> elements
    • Screen Reader Friendly: Better semantic structure for assistive technologies
    • Separation of Concerns: Clean separation between content and presentation

    Enhanced HTML Output:

    • Semantic Time Elements: Proper <time> elements with datetime attributes for better SEO
    • Structured Metadata: Organized post information with consistent class naming
    • Reading Time Integration: Consistent styling approach for reading time estimates

    4. Performance and Caching Improvements

    Optimized Related Posts Generation:

    • Efficient Tag Comparison: Smart algorithm that only processes posts with shared tags
    • Memory Efficient: Uses temporary files and proper cleanup for large sites
    • Scalable Architecture: Handles sites with hundreds of posts without performance degradation

    5. Developer Experience Improvements

    Better Code Organization:

    • Modular Related Posts: New scripts/build/related_posts.sh module for easy maintenance
    • Clean Integration: Related posts generation integrated into existing build pipeline
    • Consistent APIs: Follows BSSG's established patterns for configuration and caching

    Enhanced Debugging:

    • Clear Error Messages: Better feedback when related posts generation encounters issues
    • Verbose Logging: Optional detailed output for troubleshooting
    • Graceful Failures: System continues working even if related posts fail

    Technical Implementation Details

    The related posts system uses a sophisticated tag-based similarity algorithm:

    1. Tag Extraction: Parses and normalizes tags from the current post
    2. Similarity Scoring: Compares against all other posts, scoring by shared tags
    3. Intelligent Ranking: Sorts by similarity score, then by publication date
    4. Smart Filtering: Excludes the current post and posts without shared tags
    5. Responsive Output: Generates clean HTML with proper semantic structure

    Caching Strategy

    The system uses intelligent caching for optimal performance:

    • Individual Post Caching: Each post's related posts are cached separately
    • Dependency Tracking: Cache invalidation based on tag relationships
    • Incremental Updates: Only affected posts are regenerated when content changes
    • Build Integration: Automatic cache management during site builds

    Important Update Notes

    Backward Compatibility:

    • Related posts are enabled by default but can be disabled via configuration
    • All existing sites continue working unchanged without any migration required
    • No breaking changes to existing theme or template systems

    Performance Impact:

    • Minimal performance impact thanks to intelligent caching
    • Related posts generation only runs when necessary
    • Build times remain fast even for large sites

    Theme Integration:

    • All existing themes automatically support related posts
    • CSS styling adapts to each theme's design language
    • No theme-specific modifications required

    Get the Update!

    Ready to enhance your BSSG site with intelligent content discovery and improved accessibility?

    Upgrading is straightforward:

    1. Pull the latest changes from the repository
    2. Related posts feature is automatically enabled
    3. Multilingual support works immediately with your configured language
    4. No configuration changes required for basic functionality

    The new related posts system helps your readers discover more of your content while the theme improvements ensure better accessibility and visual consistency across all devices and themes.

    Looking Forward

    This release significantly enhances content discoverability and user engagement on BSSG sites. The intelligent related posts system opens up new possibilities for content curation and reader engagement, while the accessibility improvements ensure your site works excellently for all users.

    The foundation laid in this release sets the stage for even more intelligent content features and continues BSSG's commitment to being a fast, accessible, and user-friendly static site generator.

    Configuration Example

    Want to customize the related posts feature? Here's how:

    # In your config.sh.local file
    ENABLE_RELATED_POSTS=true     # Enable the feature
    RELATED_POSTS_COUNT=5         # Show 5 related posts instead of 3
    

    The related posts will automatically appear at the bottom of each post, showing relevant content based on shared tags and encouraging readers to explore more of your site.

    Downloads
  • 0.30.0 3c88fc7e69

    0.30.0 Stable

    stefano released this 2025-06-02 08:50:16 +02:00 | 21 commits to main since this release

    Key Highlights in 0.30.0

    1. Comprehensive Multi-Author Support

    The headline feature of this release is complete multi-author support throughout BSSG! This feature transforms BSSG from a single-author platform into a collaborative publishing system.

    New Author Frontmatter Fields:

    • author_name: Override the default site author on a per-post basis
    • author_email: Specify custom author email information

    Intelligent Fallback System:

    • Custom Author: Both name and email override defaults
    • Name Only: Just specify author name, email remains empty
    • Default Fallback: Empty fields automatically use site configuration

    Author Index Pages:

    • Main Authors Index: Located at /authors/ with post counts for each author
    • Individual Author Pages: Dedicated pages at /authors/author-slug/ for each author
    • Conditional Navigation: "Authors" menu appears only when multiple authors exist (configurable threshold)
    • Visual Consistency: Reuses existing tag page styling for familiar user experience

    Complete Integration:

    • Schema.org JSON-LD: Proper structured data for search engines
    • RSS Feeds: Dublin Core dc:creator elements with full author attribution
    • Footer Copyright: Dynamic author information in copyright notices
    • Index Listings: "by Author Name" attribution throughout the site
    • Enhanced Sitemap: Author pages automatically included for better SEO

    Configuration Options:

    # Control author page behavior in config.sh.local
    ENABLE_AUTHOR_PAGES=false # Enable/disable author pages (default: false)
    SHOW_AUTHORS_MENU_THRESHOLD=2 # Minimum authors to show menu (default: 2)
    ENABLE_AUTHOR_RSS=false # Author-specific RSS feeds (default: false)
    

    2. Themes 0.30: Complete Overhaul

    This release includes BSSG Themes 0.30, a comprehensive improvement of all 50 included themes focusing on performance, accessibility, and cross-platform compatibility.

    Performance Optimizations:

    • External Font Dependencies Removed: Eliminated Google Fonts and base64 encoded fonts across 35+ themes
    • System Font Stacks: Comprehensive fallback fonts for better performance and reliability
    • Animation Optimization: Added @media (prefers-reduced-motion) support to all themes
    • Mobile Performance: 40-60% improvement in rendering speed on mobile devices
    • Backdrop Filter Optimization: Reduced blur amounts and added mobile fallbacks

    Accessibility Enhancements:

    • WCAG AA Compliance: Tried to achieve 100% compliance across all themes
    • Keyboard Navigation: Complete focus management with visible outlines
    • Screen Reader Support: Enhanced semantic HTML structure and ARIA attributes
    • Reduced Motion: Full support for users who prefer reduced motion

    Cross-Platform Compatibility:

    • Text Browser Support: Full functionality in lynx, w3m, and links browsers
    • Progressive Enhancement: Graceful degradation for older browsers
    • Icon Fallbacks: ASCII alternatives for Unicode symbols and decorative elements

    Critical Theme Fixes:

    • Glassmorphism: Complete redesign for maximum contrast and readability
    • Vaporwave: Optimized neon effects and improved mobile performance
    • Flat: Fixed critical invisible post title bug
    • Retro Computing Themes: Enhanced authenticity while maintaining modern accessibility

    3. Enhanced Development Experience

    Improved Edit Command:

    • Fixed filename generation in edit mode (-n flag) that was causing build failures
    • Clean filename formatting prevents awk errors with spaces in filenames
    • Consistent approach across all BSSG operations

    Better Build Options:

    • Fixed --force-rebuild option that wasn't working as documented
    • Both --force-rebuild and -f now work correctly as aliases
    • Improved help text and command consistency

    Enhanced Post Editor:

    • Fixed datetime-local input showing GMT instead of local time
    • Better date/time handling for content creation
    • Improved user experience in the standalone editor

    4. Quality and Reliability Improvements

    RSS Feed Enhancements:

    • Fixed XML Escaping: Proper escaping of ampersands and special characters in RSS titles and descriptions
    • Image Caption Fix: Eliminated duplicate <figcaption> elements in RSS feeds
    • Valid XML Output: RSS feeds now validate properly with all RSS parsers

    Unicode and Internationalization:

    • German Umlaut Handling: Consistent Unicode character handling in URL slugs across all interfaces
    • Comprehensive Transliteration: Support for German, French, Spanish, Polish, and other European languages
    • Cross-Interface Consistency: Uniform slug generation in command-line tools, web editor, and admin interface

    Better Incremental Builds:

    • New Author Detection: Fixed caching issue where new authors weren't detected during incremental builds
    • Author Page URLs: Fixed incorrect URL generation that didn't honor configured URL_SLUG_FORMAT
    • Dependency Tracking: Improved rebuild logic for author-related content

    Enhanced Post Metadata:

    • Improved Visual Presentation: Better typography and spacing for post metadata banners
    • Semantic HTML: Proper <time> elements with datetime attributes for accessibility and SEO
    • Responsive Design: Metadata that scales appropriately across devices

    5. Technical Improvements

    Sitemap Integration:

    • Author pages automatically included in sitemap.xml when enabled
    • Proper priority levels for SEO optimization
    • Conditional inclusion based on configuration

    Better File Structure:

    • Enhanced templates system with better placeholder replacement
    • Improved navigation generation with conditional menu display
    • Standardized component patterns across the codebase

    Important Update Notes

    Theme Compatibility:

    • All 50 themes maintain their visual identity while gaining performance and accessibility improvements
    • No breaking changes for existing installations
    • Themes now work excellently across all browsers and devices

    Multi-Author Migration:

    • Existing single-author sites continue working unchanged
    • Author fields are optional and fall back to site configuration
    • No migration required for existing content

    Performance Recommendations:

    • Themes now work optimally without external dependencies
    • Mobile experience significantly improved across all themes

    Get the Update!

    Ready to transform your BSSG site into a collaborative, accessible, and high-performance publishing platform?

    Upgrading is straightforward:

    1. Pull the latest changes from the repository
    2. Multi-author features are automatically available
    3. All themes are immediately improved
    4. No configuration changes required
    Downloads
  • 0.20.0 e8c98d10ab

    0.20.0 Stable

    stefano released this 2025-05-25 19:34:58 +02:00 | 25 commits to main since this release

    Key Highlights in 0.20.0

    1. Introducing the BSSG Post Editor (bssg-editor.html)

    The star of this release is the brand-new BSSG Post Editor! This is a complete, standalone post editor that runs entirely in your browser as a single HTML file (bssg-editor.html), requiring no backend or complex setup.

    Key features of the BSSG Post Editor include:

    • Ghost-like Interface: Enjoy a modern, clean, split-pane interface with a Markdown editor on one side and a live preview on the other.
    • Complete Frontmatter Support: Easily manage all BSSG frontmatter fields: title, date, lastmod, tags, slug, description, image, and image_caption.
    • Unsplash Integration: Browse and select stunning featured images directly from Unsplash, with automatic, proper attribution for the image_caption.
    • Smart Auto-Save: Never lose your work with multiple auto-save triggers: every 10 words typed, after 5 seconds of inactivity, plus manual save.
    • Article Management: A local storage-based system lets you save, load, search, and delete your articles directly within the editor.
    • Rich Markdown Toolbar: A comprehensive formatting toolbar provides quick access to headers, lists, bold, italics, links, images, code blocks, quotes, and more.
    • Keyboard Shortcuts: Boost your productivity with full keyboard shortcut support (e.g., Ctrl+B for bold, Ctrl+I for italic, Ctrl+S to save).
    • Theme Support: Toggle between dark and light themes, with automatic detection of your system preference.
    • Focus Mode: Minimize distractions and concentrate on your writing.
    • Versatile Export Options: Export your posts as BSSG-compatible .md files (with correct naming conventions), copy Markdown to your clipboard, or import existing Markdown files.
    • Responsive Design: The editor works beautifully across desktop, tablet, and mobile devices. (Not perfect on mobile, yet)
    • Offline Capable: Being a single HTML file, it runs entirely in the browser and works offline.
    • Seamless BSSG Integration: Generates Markdown files with proper frontmatter and file naming conventions ready for BSSG.

    The BSSG Post Editor is designed to make content creation for your BSSG site intuitive, efficient, and enjoyable.

    2. Enhanced Local Development Server (./bssg.sh server)

    The experimental local development server introduced previously is now an official and enhanced feature!

    • The ./bssg.sh server command builds your static site and then starts an HTTP server to serve your output/ directory.
    • Dynamic SITE_URL Override: When initiating a build, the server command temporarily sets the SITE_URL to match the local server's address (e.g., http://localhost:8000). This ensures all links and asset paths are correct for local previewing without needing to change your production SITE_URL.
    • Improved Performance with socat: The server now prefers socat if available, enabling concurrent request handling. This means faster loading of pages with multiple images and a more reliable preview experience. netcat serves as a fallback, with a warning about its single-threaded limitations.
    • Configurable Defaults: You can now set default port and host for the server in your config.sh (or override in config.sh.local) using BSSG_SERVER_PORT_DEFAULT and BSSG_SERVER_HOST_DEFAULT. These defaults are also shown in the help message.
    • Command-line Options:
      • --port <PORT>: Specify a custom port.
      • --host <HOST>: Specify a custom host/IP.
      • --no-build: Skip the build step and serve existing output/ content.

    3. Under-the-Hood Improvements

    • The main bssg.sh script has been updated to incorporate the server command logic, robust argument parsing, and informative help text.
    • scripts/build/config_loader.sh now loads and exports the new server default configuration variables.
    • config.sh includes the new default server configuration variables.

    4. Community Contributions & Fixes

    This release also incorporates several important fixes and refinements, making BSSG more robust and reliable. A special thank you goes out to the great people from our community who contributed their time and expertise to help identify and resolve issues. Your contributions are invaluable!

    Downloads
  • 0.16.1 e494aed35b

    stefano released this 2025-05-18 08:49:46 +02:00 | 33 commits to main since this release

    • Configurable RSS feed filenames. The main RSS feed and tag-specific RSS feeds can now have their filenames customized via the RSS_FILENAME option in config.sh (or config.sh.local). Defaults to rss.xml if not specified.

    • Fixed the generate_theme_previews.sh - now working with a website generated by the init command

    Downloads
  • 0.16.0 ded254d171

    stefano released this 2025-05-12 11:59:50 +02:00 | 36 commits to main since this release

    Key Highlights in 0.16.0

    This update focuses on providing finer-grained control over your BSSG environment and site structure:

    1. Superior Site Configuration Flexibility (--config & BSSG_LCONF)

    Managing multiple sites or specific build contexts just got easier!

    • The --config <path> command-line flag has been re-implemented for bssg.sh. This allows you to specify a custom configuration file (e.g., a site's config.sh.local) to override default settings. It's perfect for running commands from the BSSG core directory while targeting a specific site.
    • Additionally, the new BSSG_LCONF environment variable provides an alternative. If set to a valid configuration file path, BSSG will use it when --config isn't specified, letting you set a site context for your entire session.

    2. Customizable Build Cache Location (CACHE_DIR)

    You now have direct control over where BSSG stores its build cache.

    • A new configuration variable, CACHE_DIR, has been added to config.sh (defaulting to .bssg_cache in the BSSG core directory).
    • You can set this to a custom path, allowing you to, for example, place caches on a different drive, organize them per-project outside the site directory, or manage them according to your backup strategy.

    3. New Comprehensive Archive Listing (ARCHIVES_LIST_ALL_POSTS)

    Offer your readers a more detailed view of your archives!

    • The new ARCHIVES_LIST_ALL_POSTS option (default false in config.sh) allows the main archives/index.html page to list all posts chronologically under their respective month links. This is in addition to the standard year/month navigation, providing an at-a-glance view of all content.

    4. Smoother Site Initialization & Cache Management

    I've refined the init script for a better out-of-the-box experience:

    • When you initialize a new site, the init script now adds a CACHE_DIR setting to the new site's config.sh.local, pointing to .bssg_cache within that site's directory. This ensures each initialized site maintains its own separate cache, preventing interference.
    • The init script now defaults to 'Yes' (Y) when asking whether to modify the core config.sh.local to automatically source the new site's configuration, streamlining setup.

    5. Important Fixes and Stability

    This release also includes targeted fixes:

    • The main archive index page (archives/index.html) now correctly rebuilds when ARCHIVES_LIST_ALL_POSTS is true and post content changes, ensuring your comprehensive archive view is always up-to-date.

    Important Update Notes

    No major breaking changes requiring specific actions like a clean rebuild are anticipated with this release. However, to take advantage of the new site-specific caching initialized by bssg.sh init, new sites will benefit immediately. For existing sites, you might consider manually adding CACHE_DIR="/path/to/your/site/.bssg_cache" to your site's config.sh.local if you desire isolated caching.

    Downloads
  • 0.15.1 81e8b8d5de

    stefano released this 2025-04-21 12:43:05 +02:00 | 46 commits to main since this release

    Just a small release, fixing a (minor, mainly cosmetic) issue with the indexing procedure - changed the file comparison procedure for NetBSD compatibility

    Downloads
  • 0.15.0 7b3539de65

    stefano released this 2025-04-21 08:36:44 +02:00 | 47 commits to main since this release

    Key Highlights in 0.15.0

    This release focuses on speed, efficiency, and providing more control over your site's appearance:

    1. Major Performance Improvements & Smarter Rebuilds

    Get ready for faster builds! This release incorporates a significant performance boost, thanks in large part to a partial rewrite of the caching and index generation logic. Now, BSSG intelligently detects changes and only regenerates modified tag and archive pages, rather than rebuilding all of them every time. This drastically reduces rebuild times, especially for sites with many posts and tags.

    2. Customizable Homepage via pages/index.md

    Gain full control over your site's front page! You can now create a custom homepage by adding a file named index.md inside your pages directory. If this file exists and has the slug "index", BSSG will use its content as the site's homepage, completely skipping the default "Latest Posts" listing. This allows for truly unique landing pages. (Based on a patch by Tom).

    3. HTML Rendering for Post Excerpts

    Enhance the look of your list pages! When a post doesn't have an explicit description set in its frontmatter, the automatically generated excerpt (taken from the post's beginning) is now rendered as text on index, tag, and archive pages, instead of appearing as raw Markdown.

    4. Conditional "Tags" Menu Generation

    Keep your navigation clean and relevant. The global "Tags" list page and its corresponding menu item in the site header will no longer be generated if no posts on your site actually use tags. This provides a cleaner experience for sites that don't utilize the tagging feature. (Based on a patch by Tom).

    5. Bug Fixes and Under-the-Hood Improvements

    As always, this release includes numerous smaller bug fixes and enhancements identified since the last version, further improving the stability and reliability of BSSG.

    Important Update Notes

    Given the significant changes to the caching and index generation systems, performing a clean rebuild after updating is highly recommended to ensure everything functions correctly and you benefit fully from the performance improvements:

    ./bssg.sh build --clean-output
    

    Happy building!

    Stefano

    Downloads