All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.1 - 2026-02-27
- Pop/Shift Filters Swapped:
popnow correctly returns the last element andshiftreturns the first, matching Ruby/Jekyll semantics - ReadCollections Error Handling: Fixed
ReadCollectionssilently discarding errors instead of propagating them - Tags vs Categories: Fixed
site.tagsincorrectly containing categories instead of tags due togroupPagesByignoring its getter argument - Data File Reading: Fixed
readDataFilesstopping at the first subdirectory, skipping data files that followed it alphabetically - Liquid String-to-Number Conversion: Updated liquid engine to v1.8.1, fixing a string-to-number conversion regression briefly introduced in v1.8.0
- Liquid Engine Performance: Updated liquid template engine from v1.6.0 to v1.8.1, which includes performance improvements
- GoReleaser Config: Updated
.goreleaser.yamlto v2 format; fixed ldflags to correctly set version at build time
0.3.0 - 2026-02-27
- Table of Contents (TOC) Support (#76, #62): Added Kramdown-style TOC generation with
{:toc}and{::toc}markers, including support for Jekyll'stoc_levelsconfiguration and heading exclusion with{:.no_toc}. Thanks @tekknolagi for requesting - Permalink Timezone Configuration (#67): Added
permalink_timezoneconfiguration option to control timezone for permalink date generation - Markdown Attributes Support (#85, #64): Added support for full Kramdown markdown attribute syntax (
markdown=1,markdown=0,markdown=block,markdown=span) in HTML blocks - CLI Flags (#103, #17, #18): Added
--baseurland--configcommand-line flags for overriding site configuration - Math Support (#110): Added MathJax/KaTeX compatibility for rendering math expressions in markdown
- Sassify Filter: Implemented
sassifyLiquid filter for indented Sass syntax - jekyll-relative-links Plugin (#25): Implemented plugin to convert relative markdown links to site URLs
- README Page Remapping Plugin (#106): Added plugin to remap README pages to index URLs
- jekyll-gist Noscript Option: Implemented noscript fallback for jekyll-gist plugin
- Build Diagnostics (#118): Added diagnostic output for skipped files during site builds
- Unicode Slugs (#122, #125): Fixed
Slugifyto use Unicode-aware regex, preserving Chinese characters, accented letters, and other non-ASCII text in permalinks - Permalink Case Preservation (#123, #125): Permalink slugs now preserve filename case, matching Ruby Jekyll behavior
- Page Permalinks (#124, #125): Custom global permalink patterns (e.g.,
/:title/) now apply to non-post pages with date/category placeholders stripped, matching Ruby Jekyll - HTML Void Elements in Markdown (#66, #126): Fixed
<br>,<hr>,<img>, and other void elements insidemarkdown="1"blocks causing "unexpected EOF" errors - Permalink :title Variable (#114, #121): Fixed
:titlein permalink patterns to use the filename slug instead of the frontmatter title - {:.no_toc} Paragraphs (#112): Fixed removal of
{:.no_toc}marker paragraphs from HTML output - Indented HTML Rendering (#117): Fixed indented HTML inside HTML blocks being incorrectly rendered as code blocks
- page.date for Non-Posts (#116): Fixed
page.dateto be undefined for non-post pages instead of returning a zero date - TOC List Replacement (#93, #89): Fixed TOC to replace adjacent lists correctly, matching Jekyll's exact behavior. Thanks @tekknolagi for reporting
- SCSS Compilation Error (#92, #90): Fixed "connection is shut down" error when compiling SCSS. Thanks @tekknolagi for reporting
- Custom Permalink Handling (#82, #81): Fixed issue where
index.mdwas not being rendered when custom permalink patterns were set in_config.yml. Thanks @tekknolagi for reporting - Canonical URL in SEO Plugin (#72, #70): Fixed jekyll-seo-tag plugin to respect page's
canonical_urlfront matter instead of always auto-generating. Thanks @tekknolagi for reporting - Page Permalink Configuration (#73, #71, #74, #61): Fixed pages to respect global permalink configuration from
_config.yml, with proper handling of directory-style permalinks and URL routing without trailing slashes. Thanks @tekknolagi for requesting - File Watching Issues (#84): Fixed multiple critical bugs in file watching, dry-run mode, and live-reload including stale site references, missing render during dry-run, stale Sass partials, and spurious live-reload with
--no-watch - First Parse Error Handling (#79, #51): Changed build and serve commands to collect all rendering errors instead of stopping at the first error. Thanks @manastungare for reporting
- Symlink Preservation (#80, #48): Fixed issue where
_sitedirectory symlinks were replaced with regular directories. Thanks @edgan for reporting - URL Routing (#74, #52): Fixed server to correctly handle URLs without trailing slashes for directory-style permalinks. Thanks @abhijeetbodas2001 for reporting
- Layout Handling (#78): Fixed pages with
layout: noneorlayout: nullin front matter to skip layout rendering instead of causing errors - Windows Test Failures (#96): Resolved remaining Windows test failures
- Logging System (#75, #35): Replaced scattered
fmt.Printfstatements with centralized logging package supporting proper log levels (Debug, Info, Warning, Error) and quiet mode - File Watcher: Improved file watcher with automatic fallback to polling when directory count exceeds 500, preventing file descriptor exhaustion on large sites
- Error Handling (#97): Replaced
log.Fatalwithpanicandfmt.Errorffor better error propagation
- Go Version (#119): Updated supported Go versions to 1.25+; configured golangci-lint v2
- GitHub Actions (#87): Updated CI workflows to test on Ubuntu, macOS, and Windows; updated actions to latest versions
- Code Quality: Fixed lint issues, ran go fmt for consistent formatting
- Documentation: Improved documentation structure and clarity, added configuration documentation
0.2.16 - 2025-06-01
- Updated liquid template engine dependency
0.2.15 - 2025-06-01
- Fixed linter errors (#69)
- Fixed tests to pass in all environments
- Updated GitHub Actions workflow to enforce strict linting
0.2.14 - 2024-10-28
- Tidied dependencies
0.2.13 - 2024-10-28
- Updated dependencies (#59). Thanks @danog
0.2.12 - 2024-10-17
- Improved build script
0.2.11 - 2024-10-17
- Fixed CI workflow
- Updated dependencies
- Bumped versions
0.2.10 - 2024-04-21
- Footnote Support (#58): Added support for footnotes in markdown files to match Jekyll behavior. Thanks @sirwart
- Slug Generation (#56): Fixed slug generation to remove leading and trailing hyphens to match Jekyll behavior. Thanks @sirwart
- Updated golangci-lint version
- Improved build process
0.2.9 - 2023-11-17
- Extensionless URL Serving (#54): Server now serves extensionless URLs like
/some-urlfrom files like/some-url.html. Thanks @chimbori
- Test Coverage (#55): Fixed test that wasn't calling the function being tested (
mustMarkdownString). Thanks @chimbori
- Improved documentation and README
0.2.8 - 2023-08-26
- Added Docker image support with multi-architecture builds (amd64, armv5, armv6, armv7)
- Improved release process
0.2.7 - 2023-08-26
- Switched from Ruby Sass to Dart Sass
- Improved GitHub Actions workflows
- Updated test infrastructure
0.2.6 - 2023-08-23
- Updated dependencies (#49). Thanks @danog
For releases prior to v0.2.6, please see the GitHub Releases page.
Notable earlier releases:
- v0.2.5 (2017-08-18): Renamed pipeline to renderers
- v0.2.4 (2017-08-10): Render non-collection pages
- v0.2.3 (2017-08-08): Better reload functionality
- v0.2.2 (2017-08-03): Fixed race condition
- v0.2.1 (2017-07-26): Tweaked in-page error display
- v0.2.0 (2017-07-25): Created PageEmbed feature
- v0.1.1 (2017-07-19): Updated goreleaser version varname target
- v0.1.0 (2017-07-17): Push site build errors to open web pages