<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>BSSG dev Blog - Posts tagged with: release</title>
    <link>https://blog.bssg.dragas.net/tags/release/</link>
    <description>Posts tagged with: release</description>
    <language>en</language>
    <lastBuildDate>Sun, 28 Dec 2025 18:22:55 +0100</lastBuildDate>
    <atom:link href="https://blog.bssg.dragas.net/tags/release/rss.xml" rel="self" type="application/rss+xml" />
    <item>
        <title>Announcing BSSG 0.33.0: Full Content Display on Homepage, Dutch translation and Command-Line Workflow Enhancement</title>
        <link>https://blog.bssg.dragas.net/2025/12/28/announcing-bssd-0-33-0-full-content-homepage/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/12/28/announcing-bssd-0-33-0-full-content-homepage/</guid>
        <pubDate>Sun, 28 Dec 2025 15:09:00 +0100</pubDate>
        <atom:updated>2025-12-28T15:09:00+01:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/VuQfArBdcrs/download?force=true&w=640" alt="Announcing BSSG 0.33.0: Full Content Display on Homepage, Dutch translation and Command-Line Workflow Enhancement" title="Photo by Richard Burlton on Unsplash"><figcaption>Photo by Richard Burlton on Unsplash</figcaption></figure><p>I am glad, after some months, to announce the release of <strong>BSSG version 0.33.0</strong>!</p>
<h1>Key Highlights in 0.33.0</h1>
<h2>Full Content Display on Homepage</h2>
<p>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.</p>
<p>New Configuration Option:</p>
<pre><code># Control homepage content display in config.sh.local
INDEX_SHOW_FULL_CONTENT=&quot;false&quot;  # Default: show excerpts only
INDEX_SHOW_FULL_CONTENT=&quot;true&quot;   # Show full post content
</code></pre>
<p>This feature maintains backward compatibility - sites will continue showing excerpts by default unless explicitly configured otherwise.</p>
<h2>Dutch Language Support</h2>
<p>BSSG's internationalization continues to expand with the addition of Dutch (nl) locale support, contributed by Stefan &quot;ZipKid&quot; Goethals</p>
<h2>Command-Line Workflow Enhancement</h2>
<p>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.</p>
<p>When managing multiple sites via BSSG_LCONF, you previously had to type full paths repeatedly:</p>
<pre><code>  export BSSG_LCONF=/a/very/deep/path/to/site/a
  ./bssg.sh edit '/a/very/deep/path/to/site/a/pages/page-1.md'
</code></pre>
<p>Now you can reference config variables directly using shell variable syntax (with single quotes to prevent premature expansion):</p>
<pre><code>  export BSSG_LCONF=/a/very/deep/path/to/site/a
  ./bssg.sh edit '$PAGES_DIR/page-1.md'
</code></pre>
<h3>Supported Variables:</h3>
<ul>
<li>$SRC_DIR - Posts directory</li>
<li>$PAGES_DIR - Pages directory</li>
<li>$DRAFTS_DIR - Drafts directory</li>
<li>$OUTPUT_DIR - Build output directory</li>
<li>And any other config variables you've defined</li>
</ul>
<p>This enhancement makes BSSG more intuitive and faster to use, especially for power users managing multiple sites.</p>
<h2>Improved BSD/Non-GNU Compatibility</h2>
<p>A critical fix addresses compatibility issues when using the parallel command from the moreutils package instead of GNU Parallel.</p>
<p>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.</p>
<p>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.</p>
<p><strong>Thank you to all contributors for making BSSG more powerful and accessible!</strong></p>
<p>No additional dependencies or server configuration required for this update.</p>
<h2>Get the Update!</h2>
<p><strong>Upgrading is as easy as ever:</strong></p>
<ol>
<li>Pull the latest changes from the repository.</li>
</ol>
<p>Profit :-)</p>
<h2>Looking Forward</h2>
<p>I'm already working on a partial rewrite. On systems with slow I/O, BSSG can suffer from poor performance. The new implementation will run entirely in RAM, removing all caching while significantly benefiting from in-memory speeds. It’s not a trivial task and not all features are implemented yet, so it will take a bit more time.</p>
<p>As usual, you can download this release using the following link: <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.33.0">https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.33.0</a></p>
<p>A huge thank you goes out to everyone in the community for your continued feedback, bug reports, and contributions. Your input is what drives BSSG forward.</p>
<p>Happy building!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.32.0: Asset Pre-Compression, New Themes, and Performance Boosts</title>
        <link>https://blog.bssg.dragas.net/2025/07/17/announcing-bssg-0-32-0-asset-pre-compression-new-themes-performance-boosts/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/07/17/announcing-bssg-0-32-0-asset-pre-compression-new-themes-performance-boosts/</guid>
        <pubDate>Thu, 17 Jul 2025 09:05:00 +0200</pubDate>
        <atom:updated>2025-07-17T12:32:00+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/roZah8D5ODQ/download?ixid=M3wxMjA3fDB8MXxzZWFyY2h8M3x8cmVsZWFzZXxpdHwwfHx8fDE3NTI3MzYzMzB8MA&force=true&w=1920" alt="Announcing BSSG 0.32.0: Asset Pre-Compression, New Themes, and Performance Boosts" title="Photo by Liana S on Unsplash"><figcaption>Photo by Liana S on Unsplash</figcaption></figure><p>I am thrilled to announce the release of <strong>BSSG version 0.32.0</strong>! This release is centered on delivering a significant performance boost, expanding our theme library with fantastic community contributions, and continuing to refine the developer experience. With optional asset pre-compression and two beautiful new themes, BSSG is now faster and more versatile than ever.</p>
<p>This update is all about speed and community. It's making your sites load faster for visitors and celebrating the creative contributions from our users.</p>
<h2>Key Highlights in 0.32.0</h2>
<h3>1. Asset Pre-Compression for Maximum Performance</h3>
<p>The flagship feature of this release is <strong>asset pre-compression</strong>. When enabled, BSSG will automatically create gzipped versions of your text-based assets during the build process.</p>
<p><strong>Lightning-Fast Load Times:</strong></p>
<ul>
<li><strong>Gzip Compression</strong>: Automatically compresses <code>.html</code>, <code>.css</code>, <code>.xml</code>, and <code>.js</code> files.</li>
<li><strong>Reduced Bandwidth</strong>: Smaller file sizes mean quicker downloads and lower data usage for your visitors.</li>
<li><strong>Seamless Integration</strong>: Modern web servers like Nginx and Apache can automatically serve these compressed files to compatible browsers, resulting in a significant speed boost with no change in user experience.</li>
</ul>
<p><strong>Simple Configuration:</strong></p>
<pre><code class="language-bash"># Control pre-compression behavior in config.sh.local
PRECOMPRESS_ASSETS=true    # Enable/disable the feature (default: false)
</code></pre>
<h3>2. New Themes from the Community</h3>
<p>This release proudly introduces two new themes, including a wonderful contribution from the community.</p>
<p><strong>&quot;Thoughtful&quot; Theme:</strong></p>
<ul>
<li>A warm, accessible, and performant theme designed for personal reflection blogs and thoughtful, long-form writing. It creates a calm, focused reading environment.</li>
</ul>
<p><strong>&quot;Cyber-Dark&quot; Theme by Nigel Swan:</strong></p>
<ul>
<li>A stunning cyberpunk-inspired theme with a unique neon shadow style.</li>
<li>Expertly crafted by community member <strong>Nigel Swan</strong> (<a href="https://lowkey.party/">lowkey.party</a>). A huge thank you to Nigel for this fantastic addition!</li>
</ul>
<h3>3. Dependency and Font Cleanup</h3>
<p><strong>Google Fonts Leftovers Removed:</strong></p>
<ul>
<li>To enhance privacy and align with the goal of self-hosting all assets, remnants of Google Fonts have been completely removed from the codebase. This ensures your site makes no external requests for fonts, giving you full control over your assets and user privacy.</li>
</ul>
<h2>Technical Implementation Details</h2>
<h3>Pre-Compression Workflow</h3>
<p>The new pre-compression system is integrated directly into the build pipeline for maximum efficiency:</p>
<ol>
<li><strong>Asset Identification</strong>: After the main site build is complete, the script identifies all text-based assets (<code>.html</code>, <code>.css</code>, <code>.xml</code>, <code>.js</code>).</li>
<li><strong>Gzip Execution</strong>: Each identified asset is compressed using <code>gzip</code>, creating a corresponding <code>.gz</code> file (e.g., <code>style.css</code> becomes <code>style.css.gz</code>).</li>
<li><strong>Server-Side Handling</strong>: To take advantage of this, your web server needs to be configured to serve the <code>.gz</code> file when a browser requests the original. For example, with Nginx, you would enable the <code>gzip_static</code> directive.</li>
</ol>
<p>This approach ensures that the computationally expensive task of compression is done once at build time, not on-the-fly for every visitor request.</p>
<h2>Important Update Notes</h2>
<p><strong>Backward Compatibility:</strong></p>
<ul>
<li>Asset pre-compression is <strong>disabled by default</strong> to ensure zero breaking changes. You must opt-in via configuration.</li>
<li>All existing sites will continue to build and function exactly as before without any changes.</li>
</ul>
<p><strong>Performance Impact:</strong></p>
<ul>
<li>Enabling pre-compression may slightly increase build times, but this one-time cost results in a dramatic improvement in site loading speed for your end-users.</li>
<li>The new themes are highly performant and built with modern standards.</li>
</ul>
<p><strong>Theme Integration:</strong></p>
<ul>
<li>The new &quot;thoughtful&quot; and &quot;Cyber-Dark&quot; themes can be used immediately by setting the <code>THEME</code> variable in your configuration.</li>
</ul>
<h2>Get the Update!</h2>
<p>Ready to speed up your site and try out some new looks?</p>
<p><strong>Upgrading is as easy as ever:</strong></p>
<ol>
<li>Pull the latest changes from the repository.</li>
<li>To enable the new performance feature, add <code>PRECOMPRESS_ASSETS=true</code> to your <code>config.sh.local</code>.</li>
<li>Configure your web server to serve pre-compressed assets.</li>
<li>To try a new theme, update the <code>THEME</code> variable in your config (e.g., <code>THEME=&quot;thoughtful&quot;</code> or <code>THEME=&quot;cyber-dark&quot;</code>).</li>
</ol>
<h2>Looking Forward</h2>
<p>BSSG 0.32.0 reinforces my commitment to two core principles: outstanding performance and a strong, creative community. The asset pre-compression feature provides a powerful tool for site optimization, while new themes from contributors like Nigel Swan make the entire ecosystem richer.</p>
<p>I will continue to focus on features that make BSSG sites faster, more accessible, and easier to manage, all while celebrating and encouraging community involvement.</p>
<p>As usual, you can download this release using the following link: <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.32.0">https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.32.0</a></p>
<p>A huge thank you goes out to everyone in the community for your continued feedback, bug reports, and contributions. Your input is what drives BSSG forward.</p>
<p>Happy building!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.31.0: Smart Related Posts, Enhanced Themes, and Improved User Experience</title>
        <link>https://blog.bssg.dragas.net/2025/06/20/announcing-bssg-0-31-0-smart-related-posts-enhanced-themes-improved-user-experience/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/06/20/announcing-bssg-0-31-0-smart-related-posts-enhanced-themes-improved-user-experience/</guid>
        <pubDate>Fri, 20 Jun 2025 12:00:00 +0200</pubDate>
        <atom:updated>2025-06-20T12:00:00+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/mG28olYFgHI/download?ixid=M3wxMjA3fDB8MXxzZWFyY2h8MzF8fHBvc3R8aXR8MHx8fHwxNzUwNDEzODU2fDA&force=true&w=1920" alt="Announcing BSSG 0.31.0: Smart Related Posts, Enhanced Themes, and Improved User Experience" title="Photo by Ross Findon on Unsplash"><figcaption>Photo by Ross Findon on Unsplash</figcaption></figure><p>I'm excited to announce the release of <strong>BSSG version 0.31.0</strong>! This release focuses on intelligent content discovery, enhanced accessibility, and improved user experience. With smart related posts functionality, theme improvements, and better semantic HTML structure, this release makes BSSG sites more engaging and accessible than ever before.</p>
<p>This release is all about helping your readers discover more content while making your site more accessible and semantically correct.</p>
<h2>Key Highlights in 0.31.0</h2>
<h3>1. Smart Related Posts Feature</h3>
<p>The headline feature of this release is <strong>intelligent related posts functionality</strong> that automatically suggests relevant content to your readers based on shared tags!</p>
<p><strong>Intelligent Tag-Based Algorithm:</strong></p>
<ul>
<li><strong>Smart Similarity Ranking</strong>: Posts are scored based on the number of shared tags with the current post</li>
<li><strong>Automatic Content Discovery</strong>: Readers see relevant posts without manual curation</li>
<li><strong>Performance Optimized</strong>: Uses BSSG's existing caching infrastructure for lightning-fast generation</li>
</ul>
<p><strong>Flexible Configuration:</strong></p>
<pre><code class="language-bash"># 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)
</code></pre>
<h3>2. Enhanced Theme Experience</h3>
<p>Building on the major theme overhaul in 0.30, this release includes targeted improvements for better accessibility and visual consistency.</p>
<p><strong>Dark Mode Accessibility Fix:</strong></p>
<ul>
<li><strong>Author Name Readability</strong>: Fixed hard-coded color styles that made author names invisible in dark themes</li>
<li><strong>Theme Variable Integration</strong>: Author names now properly use CSS custom properties (<code>var(--text-color)</code>)</li>
<li><strong>Universal Compatibility</strong>: Ensures consistent readability across all themes and color schemes</li>
</ul>
<p><strong>Italy Theme Enhancement:</strong></p>
<ul>
<li><strong>Enhanced Page Meta Styling</strong>: Beautiful new CSS classes for publication metadata</li>
<li><strong>Semantic Structure</strong>: Proper <code>.page-meta</code> container with organized sub-elements</li>
<li><strong>Design Consistency</strong>: Maintains Italian Renaissance aesthetic while improving readability</li>
<li><strong>Responsive Typography</strong>: Optimized font sizes and spacing for all devices</li>
</ul>
<h3>3. Improved Semantic HTML Structure</h3>
<p><strong>Better Post Metadata:</strong></p>
<ul>
<li><strong>CSS Class-Based Styling</strong>: Replaced inline styles with semantic CSS classes</li>
<li><strong>Accessibility Enhancement</strong>: Author names now use proper <code>&lt;strong&gt;</code> elements</li>
<li><strong>Screen Reader Friendly</strong>: Better semantic structure for assistive technologies</li>
<li><strong>Separation of Concerns</strong>: Clean separation between content and presentation</li>
</ul>
<p><strong>Enhanced HTML Output:</strong></p>
<ul>
<li><strong>Semantic Time Elements</strong>: Proper <code>&lt;time&gt;</code> elements with datetime attributes for better SEO</li>
<li><strong>Structured Metadata</strong>: Organized post information with consistent class naming</li>
<li><strong>Reading Time Integration</strong>: Consistent styling approach for reading time estimates</li>
</ul>
<h3>4. Performance and Caching Improvements</h3>
<p><strong>Optimized Related Posts Generation:</strong></p>
<ul>
<li><strong>Efficient Tag Comparison</strong>: Smart algorithm that only processes posts with shared tags</li>
<li><strong>Memory Efficient</strong>: Uses temporary files and proper cleanup for large sites</li>
<li><strong>Scalable Architecture</strong>: Handles sites with hundreds of posts without performance degradation</li>
</ul>
<h3>5. Developer Experience Improvements</h3>
<p><strong>Better Code Organization:</strong></p>
<ul>
<li><strong>Modular Related Posts</strong>: New <code>scripts/build/related_posts.sh</code> module for easy maintenance</li>
<li><strong>Clean Integration</strong>: Related posts generation integrated into existing build pipeline</li>
<li><strong>Consistent APIs</strong>: Follows BSSG's established patterns for configuration and caching</li>
</ul>
<p><strong>Enhanced Debugging:</strong></p>
<ul>
<li><strong>Clear Error Messages</strong>: Better feedback when related posts generation encounters issues</li>
<li><strong>Verbose Logging</strong>: Optional detailed output for troubleshooting</li>
<li><strong>Graceful Failures</strong>: System continues working even if related posts fail</li>
</ul>
<h2>Technical Implementation Details</h2>
<h3>Related Posts Algorithm</h3>
<p>The related posts system uses a sophisticated tag-based similarity algorithm:</p>
<ol>
<li><strong>Tag Extraction</strong>: Parses and normalizes tags from the current post</li>
<li><strong>Similarity Scoring</strong>: Compares against all other posts, scoring by shared tags</li>
<li><strong>Intelligent Ranking</strong>: Sorts by similarity score, then by publication date</li>
<li><strong>Smart Filtering</strong>: Excludes the current post and posts without shared tags</li>
<li><strong>Responsive Output</strong>: Generates clean HTML with proper semantic structure</li>
</ol>
<h3>Caching Strategy</h3>
<p>The system uses intelligent caching for optimal performance:</p>
<ul>
<li><strong>Individual Post Caching</strong>: Each post's related posts are cached separately</li>
<li><strong>Dependency Tracking</strong>: Cache invalidation based on tag relationships</li>
<li><strong>Incremental Updates</strong>: Only affected posts are regenerated when content changes</li>
<li><strong>Build Integration</strong>: Automatic cache management during site builds</li>
</ul>
<h2>Important Update Notes</h2>
<p><strong>Backward Compatibility:</strong></p>
<ul>
<li>Related posts are enabled by default but can be disabled via configuration</li>
<li>All existing sites continue working unchanged without any migration required</li>
<li>No breaking changes to existing theme or template systems</li>
</ul>
<p><strong>Performance Impact:</strong></p>
<ul>
<li>Minimal performance impact thanks to intelligent caching</li>
<li>Related posts generation only runs when necessary</li>
<li>Build times remain fast even for large sites</li>
</ul>
<p><strong>Theme Integration:</strong></p>
<ul>
<li>All existing themes automatically support related posts</li>
<li>CSS styling adapts to each theme's design language</li>
<li>No theme-specific modifications required</li>
</ul>
<h2>Get the Update!</h2>
<p>Ready to enhance your BSSG site with intelligent content discovery and improved accessibility?</p>
<p><strong>Upgrading is straightforward:</strong></p>
<ol>
<li>Pull the latest changes from the repository</li>
<li>Related posts feature is automatically enabled</li>
<li>Multilingual support works immediately with your configured language</li>
<li>No configuration changes required for basic functionality</li>
</ol>
<p>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.</p>
<h2>Looking Forward</h2>
<p>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.</p>
<p>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.</p>
<h2>Configuration Example</h2>
<p>Want to customize the related posts feature? Here's how:</p>
<pre><code class="language-bash"># In your config.sh.local file
ENABLE_RELATED_POSTS=true     # Enable the feature
RELATED_POSTS_COUNT=5         # Show 5 related posts instead of 3
</code></pre>
<p>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.</p>
<p>As always, your feedback, bug reports, and contributions help make BSSG better with each release. The community's input drives these improvements and helps prioritize future features.</p>
<p>Happy building and happy content discovery!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.30.0: Multi-Author Support, Enhanced Theme Experience, and Major Quality Improvements</title>
        <link>https://blog.bssg.dragas.net/2025/06/02/announcing-bssg-0-30-0-multi-author-support-enhanced-theme-experience-major-quality-improvements/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/06/02/announcing-bssg-0-30-0-multi-author-support-enhanced-theme-experience-major-quality-improvements/</guid>
        <pubDate>Mon, 02 Jun 2025 09:00:00 +0200</pubDate>
        <atom:updated>2025-06-02T09:00:00+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/GoXNygZlftg/download?ixid=M3wxMjA3fDB8MXxzZWFyY2h8MzB8fGNvbGxhYm9yYXRpdmV8aXR8MHx8fHwxNzQ4ODQ3NTY4fDA&force=true&w=1920" alt="Announcing BSSG 0.30.0: Multi-Author Support, Enhanced Theme Experience, and Major Quality Improvements" title="Photo by Nick Fewings Winkler on Unsplash"><figcaption>Photo by Nick Fewings Winkler on Unsplash</figcaption></figure><p>I'm excited to announce the release of <strong>BSSG version 0.30.0</strong>! This is a significant update that focuses on collaboration, accessibility, and overall quality improvements. With comprehensive multi-author support, a complete theme system overhaul, and numerous bug fixes, this release represents a major step forward for BSSG.</p>
<p>This release is all about making BSSG more collaborative, more accessible, and more robust than ever before.</p>
<h2>Key Highlights in 0.30.0</h2>
<h3>1. Comprehensive Multi-Author Support</h3>
<p>The headline feature of this release is <strong>complete multi-author support</strong> throughout BSSG! This feature transforms BSSG from a single-author platform into a collaborative publishing system.</p>
<p><strong>New Author Frontmatter Fields:</strong></p>
<ul>
<li><code>author_name</code>: Override the default site author on a per-post basis</li>
<li><code>author_email</code>: Specify custom author email information</li>
</ul>
<p><strong>Intelligent Fallback System:</strong></p>
<ul>
<li><strong>Custom Author</strong>: Both name and email override defaults</li>
<li><strong>Name Only</strong>: Just specify author name, email remains empty</li>
<li><strong>Default Fallback</strong>: Empty fields automatically use site configuration</li>
</ul>
<p><strong>Author Index Pages:</strong></p>
<ul>
<li><strong>Main Authors Index</strong>: Located at <code>/authors/</code> with post counts for each author</li>
<li><strong>Individual Author Pages</strong>: Dedicated pages at <code>/authors/author-slug/</code> for each author</li>
<li><strong>Conditional Navigation</strong>: &quot;Authors&quot; menu appears only when multiple authors exist (configurable threshold)</li>
<li><strong>Visual Consistency</strong>: Reuses existing tag page styling for familiar user experience</li>
</ul>
<p><strong>Complete Integration:</strong></p>
<ul>
<li><strong>Schema.org JSON-LD</strong>: Proper structured data for search engines</li>
<li><strong>RSS Feeds</strong>: Dublin Core <code>dc:creator</code> elements with full author attribution</li>
<li><strong>Footer Copyright</strong>: Dynamic author information in copyright notices</li>
<li><strong>Index Listings</strong>: &quot;by Author Name&quot; attribution throughout the site</li>
<li><strong>Enhanced Sitemap</strong>: Author pages automatically included for better SEO</li>
</ul>
<p><strong>Configuration Options:</strong></p>
<pre><code class="language-bash"># 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)
</code></pre>
<h3>2. Themes 0.30: Complete Overhaul</h3>
<p>This release includes <strong>BSSG Themes 0.30</strong>, a comprehensive improvement of all 50 included themes focusing on performance, accessibility, and cross-platform compatibility.</p>
<p><strong>Performance Optimizations:</strong></p>
<ul>
<li><strong>External Font Dependencies Removed</strong>: Eliminated Google Fonts and base64 encoded fonts across 35+ themes</li>
<li><strong>System Font Stacks</strong>: Comprehensive fallback fonts for better performance and reliability</li>
<li><strong>Animation Optimization</strong>: Added <code>@media (prefers-reduced-motion)</code> support to all themes</li>
<li><strong>Mobile Performance</strong>: 40-60% improvement in rendering speed on mobile devices</li>
<li><strong>Backdrop Filter Optimization</strong>: Reduced blur amounts and added mobile fallbacks</li>
</ul>
<p><strong>Accessibility Enhancements:</strong></p>
<ul>
<li><strong>WCAG AA Compliance</strong>: Tried to achieve 100% compliance across all themes</li>
<li><strong>Keyboard Navigation</strong>: Complete focus management with visible outlines</li>
<li><strong>Screen Reader Support</strong>: Enhanced semantic HTML structure and ARIA attributes</li>
<li><strong>Reduced Motion</strong>: Full support for users who prefer reduced motion</li>
</ul>
<p><strong>Cross-Platform Compatibility:</strong></p>
<ul>
<li><strong>Text Browser Support</strong>: Full functionality in lynx, w3m, and links browsers</li>
<li><strong>Progressive Enhancement</strong>: Graceful degradation for older browsers</li>
<li><strong>Icon Fallbacks</strong>: ASCII alternatives for Unicode symbols and decorative elements</li>
</ul>
<p><strong>Critical Theme Fixes:</strong></p>
<ul>
<li><strong>Glassmorphism</strong>: Complete redesign for maximum contrast and readability</li>
<li><strong>Vaporwave</strong>: Optimized neon effects and improved mobile performance</li>
<li><strong>Flat</strong>: Fixed critical invisible post title bug</li>
<li><strong>Retro Computing Themes</strong>: Enhanced authenticity while maintaining modern accessibility</li>
</ul>
<h3>3. Enhanced Development Experience</h3>
<p><strong>Improved Edit Command:</strong></p>
<ul>
<li>Fixed filename generation in edit mode (<code>-n</code> flag) that was causing build failures</li>
<li>Clean filename formatting prevents awk errors with spaces in filenames</li>
<li>Consistent approach across all BSSG operations</li>
</ul>
<p><strong>Better Build Options:</strong></p>
<ul>
<li>Fixed <code>--force-rebuild</code> option that wasn't working as documented</li>
<li>Both <code>--force-rebuild</code> and <code>-f</code> now work correctly as aliases</li>
<li>Improved help text and command consistency</li>
</ul>
<p><strong>Enhanced Post Editor:</strong></p>
<ul>
<li>Fixed datetime-local input showing GMT instead of local time</li>
<li>Better date/time handling for content creation</li>
<li>Improved user experience in the standalone editor</li>
</ul>
<h3>4. Quality and Reliability Improvements</h3>
<p><strong>RSS Feed Enhancements:</strong></p>
<ul>
<li><strong>Fixed XML Escaping</strong>: Proper escaping of ampersands and special characters in RSS titles and descriptions</li>
<li><strong>Image Caption Fix</strong>: Eliminated duplicate <code>&lt;figcaption&gt;</code> elements in RSS feeds</li>
<li><strong>Valid XML Output</strong>: RSS feeds now validate properly with all RSS parsers</li>
</ul>
<p><strong>Unicode and Internationalization:</strong></p>
<ul>
<li><strong>German Umlaut Handling</strong>: Consistent Unicode character handling in URL slugs across all interfaces</li>
<li><strong>Comprehensive Transliteration</strong>: Support for German, French, Spanish, Polish, and other European languages</li>
<li><strong>Cross-Interface Consistency</strong>: Uniform slug generation in command-line tools, web editor, and admin interface</li>
</ul>
<p><strong>Better Incremental Builds:</strong></p>
<ul>
<li><strong>New Author Detection</strong>: Fixed caching issue where new authors weren't detected during incremental builds</li>
<li><strong>Author Page URLs</strong>: Fixed incorrect URL generation that didn't honor configured <code>URL_SLUG_FORMAT</code></li>
<li><strong>Dependency Tracking</strong>: Improved rebuild logic for author-related content</li>
</ul>
<p><strong>Enhanced Post Metadata:</strong></p>
<ul>
<li><strong>Improved Visual Presentation</strong>: Better typography and spacing for post metadata banners</li>
<li><strong>Semantic HTML</strong>: Proper <code>&lt;time&gt;</code> elements with datetime attributes for accessibility and SEO</li>
<li><strong>Responsive Design</strong>: Metadata that scales appropriately across devices</li>
</ul>
<h3>5. Technical Improvements</h3>
<p><strong>Sitemap Integration:</strong></p>
<ul>
<li>Author pages automatically included in <code>sitemap.xml</code> when enabled</li>
<li>Proper priority levels for SEO optimization</li>
<li>Conditional inclusion based on configuration</li>
</ul>
<p><strong>Better File Structure:</strong></p>
<ul>
<li>Enhanced templates system with better placeholder replacement</li>
<li>Improved navigation generation with conditional menu display</li>
<li>Standardized component patterns across the codebase</li>
</ul>
<h2>Important Update Notes</h2>
<p><strong>Theme Compatibility:</strong></p>
<ul>
<li>All 50 themes maintain their visual identity while gaining performance and accessibility improvements</li>
<li>No breaking changes for existing installations</li>
<li>Themes now work excellently across all browsers and devices</li>
</ul>
<p><strong>Multi-Author Migration:</strong></p>
<ul>
<li>Existing single-author sites continue working unchanged</li>
<li>Author fields are optional and fall back to site configuration</li>
<li>No migration required for existing content</li>
</ul>
<p><strong>Performance Recommendations:</strong></p>
<ul>
<li>Themes now work optimally without external dependencies</li>
<li>Mobile experience significantly improved across all themes</li>
</ul>
<h2>Get the Update!</h2>
<p>Ready to transform your BSSG site into a collaborative, accessible, and high-performance publishing platform?</p>
<p><strong>Upgrading is straightforward:</strong></p>
<ol>
<li>Pull the latest changes from the repository</li>
<li>Multi-author features are automatically available</li>
<li>All themes are immediately improved</li>
<li>No configuration changes required</li>
</ol>
<p>The new multi-author system and theme improvements make this one of the most significant BSSG releases to date. Whether you're running a personal blog or managing a multi-contributor publication, BSSG 0.30.0 provides the tools and performance you need.</p>
<h2>Looking Forward</h2>
<p>This release sets the foundation for even more collaborative features and continues BSSG's commitment to being a fast, accessible, and reliable static site generator. The multi-author system opens up new possibilities for team blogs, publications, and collaborative content creation.</p>
<p>As always, your feedback, bug reports, and contributions are invaluable. The BSSG community continues to help make this project better with each release.</p>
<p>Happy building and happy collaborating!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.20.0: Powerful Visual Post Editor, Enhanced Dev Server, and More</title>
        <link>https://blog.bssg.dragas.net/2025/05/25/announcing-bssg-0-20-0-powerful-visual-post-editor-enhanced-dev-server-and-more/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/05/25/announcing-bssg-0-20-0-powerful-visual-post-editor-enhanced-dev-server-and-more/</guid>
        <pubDate>Sun, 25 May 2025 19:35:30 +0200</pubDate>
        <atom:updated>2025-05-25T21:20:30+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/Lo6OIm82gTs/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNzQ4MTk0NjUzfA&force=true&w=1920" alt="Announcing BSSG 0.20.0: Powerful Visual Post Editor, Enhanced Dev Server, and More" title="Photo by Kelly Sikkema on Unsplash"><figcaption>Photo by Kelly Sikkema on Unsplash</figcaption></figure><p>I'm thrilled to announce the release of <strong>BSSG version 0.20.0</strong>! <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.20.0">Tagged and available now</a>, this is a landmark update for BSSG, bringing a highly anticipated visual post editor, graduating the local development server to an official feature with significant enhancements, important fixes, and more.</p>
<p>This release is focused on dramatically improving the content creation experience and streamlining your development workflow.</p>
<h2>Key Highlights in 0.20.0</h2>
<h3>1. Introducing the BSSG Post Editor (<code>bssg-editor.html</code>)</h3>
<p>The star of this release is the brand-new <strong>BSSG Post Editor</strong>! This is a complete, standalone post editor that runs entirely in your browser as a single HTML file (<code>bssg-editor.html</code>), requiring no backend or complex setup.</p>
<p>Key features of the BSSG Post Editor include:</p>
<ul>
<li><strong>Ghost-like Interface</strong>: Enjoy a modern, clean, split-pane interface with a Markdown editor on one side and a live preview on the other.</li>
<li><strong>Complete Frontmatter Support</strong>: Easily manage all BSSG frontmatter fields: <code>title</code>, <code>date</code>, <code>lastmod</code>, <code>tags</code>, <code>slug</code>, <code>description</code>, <code>image</code>, and <code>image_caption</code>.</li>
<li><strong>Unsplash Integration</strong>: Browse and select stunning featured images directly from Unsplash, with automatic, proper attribution for the <code>image_caption</code>.</li>
<li><strong>Smart Auto-Save</strong>: Never lose your work with multiple auto-save triggers: every 10 words typed, after 5 seconds of inactivity, plus manual save.</li>
<li><strong>Article Management</strong>: A local storage-based system lets you save, load, search, and delete your articles directly within the editor.</li>
<li><strong>Rich Markdown Toolbar</strong>: A comprehensive formatting toolbar provides quick access to headers, lists, bold, italics, links, images, code blocks, quotes, and more.</li>
<li><strong>Keyboard Shortcuts</strong>: Boost your productivity with full keyboard shortcut support (e.g., <code>Ctrl+B</code> for bold, <code>Ctrl+I</code> for italic, <code>Ctrl+S</code> to save).</li>
<li><strong>Theme Support</strong>: Toggle between dark and light themes, with automatic detection of your system preference.</li>
<li><strong>Focus Mode</strong>: Minimize distractions and concentrate on your writing.</li>
<li><strong>Versatile Export Options</strong>: Export your posts as BSSG-compatible <code>.md</code> files (with correct naming conventions), copy Markdown to your clipboard, or import existing Markdown files.</li>
<li><strong>Responsive Design</strong>: The editor works beautifully on desktop. WIP for tablet and mobile devices.</li>
<li><strong>Offline Capable</strong>: Being a single HTML file, it runs entirely in the browser and works offline.</li>
<li><strong>Seamless BSSG Integration</strong>: Generates Markdown files with proper frontmatter and file naming conventions ready for BSSG.</li>
</ul>
<p>The BSSG Post Editor is designed to make content creation for your BSSG site intuitive, efficient, and enjoyable.</p>
<p>You can try it <a href="https://blog.bssg.dragas.net/bssg-editor.html">here</a></p>
<h3>2. Enhanced Local Development Server (<code>./bssg.sh server</code>)</h3>
<p>The experimental local development server introduced previously is now an <strong>official and enhanced feature</strong>!</p>
<ul>
<li>The <code>./bssg.sh server</code> command builds your static site and then starts an HTTP server to serve your <code>output/</code> directory.</li>
<li><strong>Dynamic <code>SITE_URL</code> Override</strong>: When initiating a build, the <code>server</code> command temporarily sets the <code>SITE_URL</code> to match the local server's address (e.g., <code>http://localhost:8000</code>). This ensures all links and asset paths are correct for local previewing without needing to change your production <code>SITE_URL</code>.</li>
<li><strong>Improved Performance with <code>socat</code></strong>: The server now prefers <code>socat</code> if available, enabling concurrent request handling. This means faster loading of pages with multiple images and a more reliable preview experience. <code>netcat</code> serves as a fallback, with a warning about its single-threaded limitations.</li>
<li><strong>Configurable Defaults</strong>: You can now set default port and host for the server in your <code>config.sh</code> (or override in <code>config.sh.local</code>) using <code>BSSG_SERVER_PORT_DEFAULT</code> and <code>BSSG_SERVER_HOST_DEFAULT</code>. These defaults are also shown in the help message.</li>
<li><strong>Command-line Options</strong>:
<ul>
<li><code>--port &lt;PORT&gt;</code>: Specify a custom port.</li>
<li><code>--host &lt;HOST&gt;</code>: Specify a custom host/IP.</li>
<li><code>--no-build</code>: Skip the build step and serve existing <code>output/</code> content.</li>
</ul>
</li>
</ul>
<h3>3. Under-the-Hood Improvements</h3>
<ul>
<li>The main <code>bssg.sh</code> script has been updated to incorporate the <code>server</code> command logic, robust argument parsing, and informative help text.</li>
<li><code>scripts/build/config_loader.sh</code> now loads and exports the new server default configuration variables.</li>
<li><code>config.sh</code> includes the new default server configuration variables.</li>
</ul>
<h3>4. Community Contributions &amp; Fixes</h3>
<p>This release also incorporates several important fixes and refinements, making BSSG more robust and reliable. A special thank you goes out to the <strong>great people from our community</strong> who contributed their time and expertise to help identify and resolve issues. Your contributions are invaluable!</p>
<h2>Important Update Notes</h2>
<p>This is a major feature release.</p>
<ul>
<li>For the best local development server experience, it is recommended to have <strong>socat installed</strong> on your system. BSSG will automatically use it if found.</li>
<li>The new <strong>BSSG Post Editor (<code>bssg-editor.html</code>)</strong> will be available in the root of your BSSG installation directory upon updating. You can open this file directly in your browser to start using it.</li>
</ul>
<h2>Get the Update!</h2>
<p>Ready to revolutionize your content workflow and enjoy a smoother development experience?
<a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.20.0">Update to BSSG 0.20.0 now!</a></p>
<p>I'm incredibly excited about this release and believe the new editor and server enhancements will make a big difference for BSSG users. As always, your feedback, bug reports, and contributions are highly valued and welcome. Check out the <a href="https://brew.bsd.cafe/stefano/BSSG">BSSG project page</a> to contribute or report issues.</p>
<p>Happy building and happy writing!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.16.1: Configurable RSS Feeds and Theme Preview Fixes</title>
        <link>https://blog.bssg.dragas.net/2025/05/18/announcing-bssg-0-16-1-configurable-rss-feeds-and-theme-preview-fixes/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/05/18/announcing-bssg-0-16-1-configurable-rss-feeds-and-theme-preview-fixes/</guid>
        <pubDate>Sun, 18 May 2025 08:53:18 +0200</pubDate>
        <atom:updated>2025-05-18T08:53:18+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/X_JsI_9Hl7o/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNzQ3NTUxMTgxfA&force=true&w=1920" alt="Announcing BSSG 0.16.1: Configurable RSS Feeds and Theme Preview Fixes" title="Photo by Zan Lazarevic on Unsplash"><figcaption>Photo by Zan Lazarevic on Unsplash</figcaption></figure><p>I'm pleased to announce the release of <strong>BSSG version 0.16.1</strong>! <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.16.1">Tagged and available now</a>, this quick follow-up to our recent 0.16.0 release brings a handy new customization option for your RSS feeds and an important fix for theme developers.</p>
<h2>Key Highlights in 0.16.1</h2>
<p>This update focuses on providing more flexibility for your site's syndication and improving the theme development workflow:</p>
<h3>1. Configurable RSS Feed Filenames (<code>RSS_FILENAME</code>)</h3>
<p>You now have more control over your site's syndication URLs!</p>
<ul>
<li>A new configuration variable, <strong><code>RSS_FILENAME</code></strong>, has been added to <code>config.sh</code>. You can override this in your site's <code>config.sh.local</code>.</li>
<li>This option allows you to customize the filename for both the main site RSS feed and all tag-specific RSS feeds.</li>
<li>If not specified, BSSG will continue to use the default <code>rss.xml</code>. For example, setting <code>RSS_FILENAME=&quot;feed.xml&quot;</code> will generate <code>feed.xml</code> for the main site and <code>tag_name_feed.xml</code> for tags. This is great for users who prefer a different convention or need to match existing feed URLs.</li>
</ul>
<h3>2. <code>generate_theme_previews.sh</code> Fix for Initialized Sites</h3>
<p>I've ironed out a kink in the theme preview generation process:</p>
<ul>
<li>The <code>generate_theme_previews.sh</code> script has been fixed and now <strong>works correctly with websites freshly generated by the <code>bssg.sh init</code> command</strong>.</li>
<li>Previously, there could be issues when using the script on a newly initialized site structure.</li>
</ul>
<h2>Important Update Notes</h2>
<p>This is a minor release with no breaking changes.</p>
<ul>
<li>To customize your RSS feed filenames, simply add <code>RSS_FILENAME=&quot;your_preferred_name.xml&quot;</code> (or any other name ending in <code>.xml</code>) to your site's <code>config.sh.local</code> file. If this variable is not set, BSSG will default to <code>rss.xml</code> as before.</li>
<li>The fix for <code>generate_theme_previews.sh</code> requires no action from users other than updating to 0.16.1.</li>
</ul>
<h2>Get the Update!</h2>
<p>Ready to customize your feed names and enjoy smoother theme previews? <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.16.1">Update to BSSG 0.16.1</a> now!</p>
<p>As always, feedback and contributions are welcome.</p>
<p>Happy building!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.16.0: Enhanced Configuration, Flexible Caching, and Archive Control</title>
        <link>https://blog.bssg.dragas.net/2025/05/12/announcing-bssg-0-16-0-enhanced-configuration-flexible-caching-and-archive-control/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/05/12/announcing-bssg-0-16-0-enhanced-configuration-flexible-caching-and-archive-control/</guid>
        <pubDate>Mon, 12 May 2025 12:00:19 +0200</pubDate>
        <atom:updated>2025-05-12T12:00:19+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/DuHKoV44prg/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNzQ3MDQ0MTQ4fA&force=true&w=1920" alt="Announcing BSSG 0.16.0: Enhanced Configuration, Flexible Caching, and Archive Control" title="Photo by Fotis Fotopoulos on Unsplash"><figcaption>Photo by Fotis Fotopoulos on Unsplash</figcaption></figure><p>I'm thrilled to announce the release of <strong>BSSG version 0.16.0</strong>! <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.16.0">Tagged and available now</a>, this update brings more power to your workflow with enhanced configuration options, greater control over caching, and new ways to display your archives.</p>
<h2>Key Highlights in 0.16.0</h2>
<p>This update focuses on providing finer-grained control over your BSSG environment and site structure:</p>
<h3>1. Superior Site Configuration Flexibility (<code>--config</code> &amp; <code>BSSG_LCONF</code>)</h3>
<p>Managing multiple sites or specific build contexts just got easier!</p>
<ul>
<li>The <strong><code>--config &lt;path&gt;</code> command-line flag</strong> has been re-implemented for <code>bssg.sh</code>. This allows you to specify a custom configuration file (e.g., a site's <code>config.sh.local</code>) to override default settings. It's perfect for running commands from the BSSG core directory while targeting a specific site.</li>
<li>Additionally, the new <strong><code>BSSG_LCONF</code> environment variable</strong> provides an alternative. If set to a valid configuration file path, BSSG will use it when <code>--config</code> isn't specified, letting you set a site context for your entire session.</li>
</ul>
<h3>2. Customizable Build Cache Location (<code>CACHE_DIR</code>)</h3>
<p>You now have direct control over where BSSG stores its build cache.</p>
<ul>
<li>A new configuration variable, <strong><code>CACHE_DIR</code></strong>, has been added to <code>config.sh</code> (defaulting to <code>.bssg_cache</code> in the BSSG core directory).</li>
<li>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.</li>
</ul>
<h3>3. New Comprehensive Archive Listing (<code>ARCHIVES_LIST_ALL_POSTS</code>)</h3>
<p>Offer your readers a more detailed view of your archives!</p>
<ul>
<li>The new <code>ARCHIVES_LIST_ALL_POSTS</code> option (default <code>false</code> in <code>config.sh</code>) allows the main <code>archives/index.html</code> page to <strong>list all posts chronologically under their respective month links</strong>. This is in addition to the standard year/month navigation, providing an at-a-glance view of all content.</li>
</ul>
<h3>4. Smoother Site Initialization &amp; Cache Management</h3>
<p>I've refined the <code>init</code> script for a better out-of-the-box experience:</p>
<ul>
<li>When you initialize a new site, the <code>init</code> script now adds a <strong><code>CACHE_DIR</code> setting to the new site's <code>config.sh.local</code></strong>, pointing to <code>.bssg_cache</code> <em>within that site's directory</em>. This ensures each initialized site maintains its own separate cache, preventing interference.</li>
<li>The <code>init</code> script now defaults to <strong>'Yes' (Y)</strong> when asking whether to modify the core <code>config.sh.local</code> to automatically source the new site's configuration, streamlining setup.</li>
</ul>
<h3>5. Important Fixes and Stability</h3>
<p>This release also includes targeted fixes:</p>
<ul>
<li>The main archive index page (<code>archives/index.html</code>) now correctly rebuilds when <code>ARCHIVES_LIST_ALL_POSTS</code> is true and post content changes, ensuring your comprehensive archive view is always up-to-date.</li>
</ul>
<h2>Important Update Notes</h2>
<p>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 <code>bssg.sh init</code>, new sites will benefit immediately. For existing sites, you might consider manually adding <code>CACHE_DIR=&quot;/path/to/your/site/.bssg_cache&quot;</code> to your site's <code>config.sh.local</code> if you desire isolated caching.</p>
<h2>Get the Update!</h2>
<p>Ready to take advantage of these new configuration and customization features? <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.16.0">Update to BSSG 0.16.0</a> now!</p>
<p>Happy building!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.15.0: Performance Boosts, Smarter Builds, and Homepage Customization</title>
        <link>https://blog.bssg.dragas.net/2025/04/21/announcing-bssg-0-15-0-performance-boosts-smarter-builds-and-homepage-customization/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/04/21/announcing-bssg-0-15-0-performance-boosts-smarter-builds-and-homepage-customization/</guid>
        <pubDate>Mon, 21 Apr 2025 08:37:39 +0200</pubDate>
        <atom:updated>2025-04-21T08:37:39+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/J7EUjSlNQtg/download?ixid=M3wxMjA3fDB8MXxzZWFyY2h8MTZ8fHNwZWVkfGl0fDB8fHx8MTc0NTIxNjkzOHww&force=true&w=1920" alt="Announcing BSSG 0.15.0: Performance Boosts, Smarter Builds, and Homepage Customization" title="Photo by Christian Englmeier on Unsplash"><figcaption>Photo by Christian Englmeier on Unsplash</figcaption></figure><p>Exciting news! <strong>BSSG version 0.15.0</strong> <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.15.0">has been officially released and tagged</a>! This update delivers significant performance enhancements, smarter rebuilding logic, greater homepage flexibility, and several useful improvements contributed by the community.</p>
<h2>Key Highlights in 0.15.0</h2>
<p>This release focuses on speed, efficiency, and providing more control over your site's appearance:</p>
<h3>1. Major Performance Improvements &amp; Smarter Rebuilds</h3>
<p>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 <strong>only regenerates modified tag and archive pages</strong>, rather than rebuilding all of them every time. This drastically reduces rebuild times, especially for sites with many posts and tags.</p>
<h3>2. Customizable Homepage via <code>pages/index.md</code></h3>
<p>Gain full control over your site's front page! You can now create a custom homepage by adding a file named <code>index.md</code> inside your <code>pages</code> directory. If this file exists and has the slug <code>&quot;index&quot;</code>, BSSG will use its content as the site's homepage, completely skipping the default &quot;Latest Posts&quot; listing. This allows for truly unique landing pages. (Based on a patch by Tom).</p>
<h3>3. HTML Rendering for Post Excerpts</h3>
<p>Enhance the look of your list pages! When a post doesn't have an explicit <code>description</code> set in its frontmatter, the automatically generated excerpt (taken from the post's beginning) is now <strong>rendered as text</strong> on index, tag, and archive pages, instead of appearing as raw Markdown.</p>
<h3>4. Conditional &quot;Tags&quot; Menu Generation</h3>
<p>Keep your navigation clean and relevant. The global &quot;Tags&quot; list page and its corresponding menu item in the site header will <strong>no longer be generated if no posts on your site actually use tags</strong>. This provides a cleaner experience for sites that don't utilize the tagging feature. (Based on a patch by Tom).</p>
<h3>5. Bug Fixes and Under-the-Hood Improvements</h3>
<p>As always, this release includes numerous smaller bug fixes and enhancements identified since the last version, further improving the stability and reliability of BSSG.</p>
<h2>Important Update Notes</h2>
<p>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:</p>
<pre><code class="language-bash">./bssg.sh build --clean-output
</code></pre>
<h2>Get the Update!</h2>
<p>I'm particularly excited about the speed improvements in this release and the new customization options. <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.15.0">Update to BSSG 0.15.0</a> today to take advantage of these enhancements!</p>
<p>Happy building!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.12.1: Major Workflow Enhancements and More Control</title>
        <link>https://blog.bssg.dragas.net/2025/04/16/announcing-bssg-0-12-1-major-workflow-enhancements-and-more-control/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/04/16/announcing-bssg-0-12-1-major-workflow-enhancements-and-more-control/</guid>
        <pubDate>Wed, 16 Apr 2025 09:14:19 +0200</pubDate>
        <atom:updated>2025-04-16T09:14:19+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/NLSXFjl_nhc/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNzQ0Nzg2MzA3fA&force=true&w=1920" alt="Announcing BSSG 0.12.1: Major Workflow Enhancements and More Control" title="Photo by Lukas on Unsplash"><figcaption>Photo by Lukas on Unsplash</figcaption></figure><p>I'm thrilled to announce that <strong>BSSG version 0.12.1</strong> 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.</p>
<p>Find the release details and download links here: <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.12.1">BSSG 0.12.1 Release</a></p>
<h2>Key Highlights in 0.12.1</h2>
<p>This release focuses heavily on automation, flexibility, and convenience:</p>
<h3>1. Powerful Build-Time Configuration Overrides</h3>
<p>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 <code>./bssg.sh build</code> command accepts numerous new arguments to override settings:</p>
<ul>
<li><strong>Core Paths:</strong> <code>--config</code>, <code>--local-config</code>, <code>--src</code>, <code>--output</code>, <code>--templates</code>, <code>--theme</code>, <code>--static</code>, <code>--pages</code>, <code>--drafts</code>, <code>--themes-dir</code></li>
<li><strong>Site Metadata:</strong> <code>--site-title</code>, <code>--site-url</code>, <code>--site-description</code>, <code>--author-name</code>, <code>--author-email</code></li>
<li><strong>Build Options:</strong> <code>--posts-per-page</code>, <code>--clean-output</code>, <code>--force-rebuild</code></li>
</ul>
<p><strong>Example:</strong> Test a build with a different output directory:</p>
<pre><code class="language-bash">./bssg.sh build --output /tmp/bssg-test
</code></pre>
<p>This is fantastic for scripting, CI/CD pipelines, or simply testing variations quickly.</p>
<h3>2. Create Posts Entirely from the Command Line</h3>
<p>The <code>./bssg.sh post</code> command has been supercharged! You can now create new posts completely non-interactively, specifying details via options:</p>
<ul>
<li><code>-t &quot;&lt;title&gt;&quot;</code>: Set the post title.</li>
<li><code>-T &lt;tag1,tag2&gt;</code>: Assign tags (comma-separated).</li>
<li><code>-s &lt;custom-slug&gt;</code>: Specify a custom slug.</li>
<li><code>-c &quot;&lt;content&gt;&quot;</code>: Provide post content directly as a string.</li>
<li><code>-f &lt;filepath&gt;</code>: Use content from a file.</li>
<li><code>--stdin</code>: Read post content from standard input.</li>
<li><code>--html</code>: Create the post with an <code>.html</code> extension (instead of <code>.md</code>).</li>
<li><code>-d</code>: Create the post in the drafts directory.</li>
</ul>
<p>You can even force a rebuild immediately after creation, even if <code>REBUILD_AFTER_POST</code> is false in your config, using the <code>--build</code> flag:</p>
<pre><code class="language-bash">echo &quot;My quick post content.&quot; | ./bssg.sh post -t &quot;Quick Update&quot; -T announcement --stdin --build
</code></pre>
<p>This opens up exciting possibilities for automated content generation or integration with other tools.</p>
<h3>3. Integrated Deployment Hooks</h3>
<p>Bridge the gap between building and deploying your site! BSSG now includes configuration options to automatically trigger your deployment process:</p>
<ul>
<li><strong><code>DEPLOY_AFTER_BUILD=&quot;true&quot;</code></strong>: Set this in your config to run the deployment script after every successful build.</li>
<li><strong><code>DEPLOY_SCRIPT=&quot;/path/to/your/deploy.sh&quot;</code></strong>: Specify the script to execute.</li>
</ul>
<p>You can also override this behavior for specific builds using command-line flags:</p>
<ul>
<li><code>./bssg.sh build --deploy</code>: Force deployment even if <code>DEPLOY_AFTER_BUILD</code> is false.</li>
<li><code>./bssg.sh build --no-deploy</code>: Prevent deployment even if <code>DEPLOY_AFTER_BUILD</code> is true.</li>
</ul>
<p>Streamline your publishing workflow with this simple yet powerful integration.</p>
<h3>4. Optional Per-Tag RSS Feeds</h3>
<p>As previewed recently in the <code>main</code> 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.</p>
<ul>
<li>Enable via <code>ENABLE_TAG_RSS=&quot;true&quot;</code> in your configuration (defaults to <code>false</code>).</li>
<li>Feeds are generated at <code>${OUTPUT_DIR}/tags/&lt;tag_slug&gt;/rss.xml</code>.</li>
<li>Auto-discovery links are automatically added to tag pages.</li>
</ul>
<h3>5. Bug Fixes</h3>
<p>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.</p>
<h2>Important Update Notes</h2>
<p>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:</p>
<pre><code class="language-bash">./bssg.sh build --clean-output --force-rebuild
</code></pre>
<p>Review the new configuration options (<code>ENABLE_TAG_RSS</code>, <code>DEPLOY_AFTER_BUILD</code>, <code>DEPLOY_SCRIPT</code>) and consider how they might benefit your workflow.</p>
<h2>Get the Update!</h2>
<p>I'm really excited about the workflow improvements in this release and encourage all users to update to <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.12.1">BSSG 0.12.1</a> to take advantage of these powerful new capabilities.</p>
<p>Happy automating and blogging!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.11.0: Site Initialization, Workflow Boosts, and More!</title>
        <link>https://blog.bssg.dragas.net/2025/04/14/announcing-bssg-0-11-0-site-initialization-workflow-boosts-and-more/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/04/14/announcing-bssg-0-11-0-site-initialization-workflow-boosts-and-more/</guid>
        <pubDate>Mon, 14 Apr 2025 10:41:22 +0200</pubDate>
        <atom:updated>2025-04-14T10:47:00+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/oqStl2L5oxI/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNzQ0NTM2Nzc1fA&force=true&w=1920" alt="Announcing BSSG 0.11.0: Site Initialization, Workflow Boosts, and More!" title="Photo by Clark Tibbs on Unsplash"><figcaption>Photo by Clark Tibbs on Unsplash</figcaption></figure><p>Hot on the heels of the last release, I'm thrilled to announce <a href="https://bssg.dragas.net">BSSG</a> version 0.11.0 is here! This version introduces a major new way to manage your sites, streamlines common workflows, adds useful content features, and improves overall robustness.</p>
<h2>Key Highlights in 0.11.0</h2>
<h3>Introducing Site Initialization (<code>init</code>)</h3>
<p>This is the headline feature! BSSG now includes an <code>init &lt;directory&gt;</code> command.</p>
<ul>
<li><strong>What it does:</strong> Creates a new, clean site structure in the specified directory (<code>~/mysite</code>, <code>./my-new-blog</code>, etc.). This structure includes standard directories (<code>src/</code>, <code>output/</code>, <code>static/</code>, <code>drafts/</code>) and a site-specific configuration file (<code>config.sh.local</code>).</li>
<li><strong>Why it's great:</strong> This allows you to keep your website's content <strong>completely separate</strong> from the BSSG core installation. Updating BSSG becomes much simpler (just update the core installation), and your site content remains organized independently. The generated <code>config.sh.local</code> automatically sets up the <code>OUTPUT_DIR</code> for the new site.</li>
</ul>
<h3>Enhanced Content Management</h3>
<ul>
<li><strong>Automatic <code>lastmod</code> Handling:</strong>
<ul>
<li>When creating new posts or pages (<code>./bssg.sh post</code>, <code>./bssg.sh page</code>), the <code>lastmod</code> frontmatter field is now automatically generated, initially matching the <code>date</code>.</li>
<li>When editing existing posts or pages (<code>./bssg.sh edit</code>), the <code>lastmod</code> field is automatically updated to the current date and time <em>before</em> the editor opens. This ensures your modification dates are always accurate in sitemaps, RSS feeds, and the &quot;Updated on&quot; notice without manual effort.</li>
</ul>
</li>
<li><strong>Full Content in RSS:</strong> A new <code>RSS_INCLUDE_FULL_CONTENT</code> variable in <code>config.sh</code> (defaulting to <code>false</code>) lets you choose whether to include the complete post content within the <code>&lt;description&gt;</code> tag of your RSS feed items.</li>
<li><strong>Drafts Support:</strong> You can now configure a specific <code>DRAFTS_DIR</code> (defaults to <code>drafts/</code>) in <code>config.sh</code>. Draft posts and pages can be managed separately and listed using the improved <code>list</code> command (see below).</li>
<li><strong>Custom CSS Injection:</strong> Easily add your own custom styles! Define a <code>CUSTOM_CSS</code> variable in <code>config.sh</code> pointing to a CSS file within your <code>$STATIC_DIR</code> (e.g., <code>static/custom.css</code>). BSSG will automatically link this stylesheet <em>after</em> the theme's CSS in your site's header.</li>
</ul>
<h3>Improved Workflow &amp; Consistency</h3>
<ul>
<li><strong>Centralized Configuration:</strong> Configuration loading (<code>config.sh</code>, <code>config.sh.local</code>) is now handled centrally within <code>bssg.sh</code>. This ensures all commands (<code>post</code>, <code>page</code>, <code>edit</code>, <code>build</code>, etc.) use the same consistent settings and correctly expanded paths (including <code>~</code>).</li>
<li><strong>Robust Editor Fallback:</strong> The helpful <code>vi</code> fallback and instructions (when <code>EDITOR</code> isn't set and <code>nano</code> is missing) are now consistently applied to the <code>page</code> command, mirroring the <code>post</code> command behavior.</li>
<li><strong>Automatic Rebuild for New Pages:</strong> Creating a new non-draft page now triggers a clean, full rebuild to ensure it immediately appears in navigation and indexes.</li>
</ul>
<h3>Bug Fixes &amp; Robustness</h3>
<ul>
<li><strong>Theme &amp; Template Loading:</strong> Fixed issues where theme CSS (<code>style.css</code>) and core structural templates (<code>header.html</code>, <code>footer.html</code>) weren't located correctly when using non-default <code>THEMES_DIR</code> or <code>TEMPLATES_DIR</code> settings (especially relevant for <code>init</code>-created sites). Themes now correctly control only styling, not core structure.</li>
<li><strong>Secondary Page Index:</strong> Corrected a bug that caused <code>pages.html</code> to only list one page. Index generation is now reliable and includes caching for efficiency.</li>
<li><strong>Tilde Expansion:</strong> Path variables in configuration using <code>~</code> (e.g., <code>SRC_DIR=&quot;~/myblog/src&quot;</code>) are now expanded more robustly.</li>
<li><strong>Internal Refinements:</strong> Continued refactoring of internal scripts (<code>post.sh</code>, <code>page.sh</code>, <code>edit.sh</code>, etc.) to use configured variables consistently and rely on centrally loaded configuration, reducing redundancy. Fixed a syntax error in secondary page generation.</li>
</ul>
<h2>Important Update Notes</h2>
<ul>
<li>The new <code>./bssg.sh init</code> command provides a better way to structure new BSSG sites going forward, separating site content from the BSSG application itself. Consider using this for future projects!</li>
<li>Be aware that the <code>./bssg.sh edit</code> command now automatically updates the <code>lastmod</code> frontmatter field.</li>
<li>While this release focuses on new features and fixes, performing a clean rebuild after updating is always good practice to ensure all changes take effect correctly:</li>
</ul>
<pre><code class="language-bash">./bssg.sh build --clean-output --force-rebuild
</code></pre>
<h2>Get the Update!</h2>
<p>Update to BSSG 0.11.0 to benefit from site initialization, improved content management, workflow enhancements, and increased stability.</p>
<p>Happy blogging!</p>
<p>Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
    <item>
        <title>Announcing BSSG 0.10.0: More Control and Enhancements!</title>
        <link>https://blog.bssg.dragas.net/2025/04/13/announcing-bssg-0-10-0-more-control-and-enhancements/</link>
        <guid isPermaLink="true">https://blog.bssg.dragas.net/2025/04/13/announcing-bssg-0-10-0-more-control-and-enhancements/</guid>
        <pubDate>Sun, 13 Apr 2025 13:09:15 +0200</pubDate>
        <atom:updated>2025-04-13T13:09:15+02:00</atom:updated>
        <description><![CDATA[<figure><img src="https://unsplash.com/photos/oqStl2L5oxI/download?ixid=M3wxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNzQ0NTM2Nzc1fA&force=true&w=1920" alt="Announcing BSSG 0.10.0: More Control and Enhancements!" title="Photo by Clark Tibbs on Unsplash"><figcaption>Photo by Clark Tibbs on Unsplash</figcaption></figure><p>I'm excited to announce the release of <a href="https:/bssg.dragas.net">BSSG</a> version 0.10.0! This release brings several new configuration options, user experience enhancements, and internal improvements to make managing your static site even better.</p>
<h2>Key Highlights in 0.10.0</h2>
<h3>Enhanced Configuration</h3>
<p>I've added several new variables to <code>config.sh</code> to give you more control over your site's behavior:</p>
<ul>
<li><strong><code>RSS_ITEM_LIMIT</code></strong>: Customize the number of posts included in your RSS feed (defaults to 15).</li>
<li><strong><code>SHOW_TIMEZONE</code></strong>: Choose whether to display timezone offsets alongside dates throughout your site (defaults to <code>false</code>).</li>
<li><strong><code>REBUILD_AFTER_POST</code> &amp; <code>REBUILD_AFTER_EDIT</code></strong>: Decide if the site should automatically rebuild after creating or editing posts using the <code>./bssg.sh post</code> and <code>./bssg.sh edit</code> commands (defaults to <code>true</code>).</li>
</ul>
<h3>Improved Post Management</h3>
<ul>
<li><strong><code>lastmod</code> Frontmatter</strong>: You can now add an optional <code>lastmod</code> field to your post's frontmatter. This allows you to specify a modification date separate from the original publish <code>date</code>. This modification date will be used in your <code>sitemap.xml</code> and RSS feed (<code>&lt;atom:updated&gt;</code>). If the <code>lastmod</code> date differs from the <code>date</code>, an &quot;Updated on&quot; notice will also appear on the post page itself.</li>
</ul>
<h3>User Experience Touches</h3>
<ul>
<li><strong>&quot;Back to Top&quot; Link</strong>: A localized &quot;Back to Top&quot; link has been added to the footer for easier navigation on long pages.</li>
<li><strong>Minimal Theme Enhancements</strong>: The included <code>minimal</code> theme has received visual tweaks and improvements for a cleaner look.</li>
<li><strong>Editor Fallback Easter Egg</strong>: If the <code>EDITOR</code> environment variable isn't set and <code>nano</code> isn't available, BSSG will now fall back to using <code>vi</code>. As a small helper, if <code>vi</code> is used as the fallback, the <code>post</code> and <code>edit</code> scripts will provide instructions on how to save and exit <code>vi</code>.</li>
</ul>
<h3>Internal Refinements</h3>
<ul>
<li><strong>Build Process Refactoring</strong>: The internal build logic has been reorganized from a single script (<code>scripts/build.sh</code>) into multiple focused scripts within the <code>scripts/build/</code> directory. While this is an internal change aimed at improving efficiency and output quality, it represents a significant shift in the build process structure. Don't worry, the user-facing command <code>./bssg.sh build</code> remains exactly the same!</li>
</ul>
<h2>Important Update Notes</h2>
<p>While the main <code>./bssg.sh build</code> command functions as before, the internal refactoring mentioned above is a significant change. If you have custom scripts that interacted with the old <code>scripts/build.sh</code> (like potentially <code>generate_theme_previews.sh</code> if customized) or have heavily modified theme templates (like the footer), please review them carefully after updating to ensure they still work as expected with the new build structure in the <code>scripts/build/</code> directory.</p>
<p>To ensure a smooth transition and avoid potential issues from leftover files, I strongly recommend performing a clean rebuild after updating:</p>
<pre><code class="language-bash">./bssg.sh build --clean-output --force-rebuild
</code></pre>
<h2>Get the Update!</h2>
<p>I encourage all users to update to <a href="https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.10.0">BSSG 0.10.0</a> to take advantage of these new features and improvements.</p>
<p>Happy blogging!
Stefano</p>]]></description>
        <dc:creator>Stefano Marinelli (stefano@dragas.it)</dc:creator>
    </item>
</channel>
</rss>
