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.
- Bartender mode metric rounding threshold increased from 10ml to 30ml
- Amounts < 30ml now round to nearest 2.5ml (was 5ml for amounts >= 10ml)
- Amounts >= 30ml continue to round to nearest 5ml
- This provides more precision for typical cocktail measurements (e.g., 22.5ml stays as 22.5ml instead of becoming 25ml)
1.0.1 - 2026-01-12
- HTML output from
renderandscalecommands now includes complete document structure with<meta charset="UTF-8">for proper emoji rendering
- Updated
golang.org/x/cryptofrom v0.37.0 to v0.46.0 (fixes CVE-2025-22869, CVE-2025-22872) - Updated
github.com/go-viper/mapstructure/v2from v2.2.1 to v2.4.0 (fixes sensitive data logging issues) - Updated
golangci-lintfrom v2.1.6 to v2.8.0 - Updated
go-taskfrom v3.43.3 to v3.46.4
1.0.0 - 2026-01-11
CreateShoppingListForServings()to create shopping lists scaled to target servingsCreateShoppingListForServingsWithUnit()for combined servings scaling and unit conversionRecipe.ScaleToServings()method for convenient servings-based scaling- Comprehensive Go doc comments for all public API functions
- New examples:
ExampleRecipe_Scale,ExampleRecipe_ScaleToServings,ExampleCreateShoppingListForServings - Known Usages section in README
Recipe.Scale()now respects theFixedflag on ingredients (won't scale fixed quantities)ConsolidateByName()now converts single ingredients to the target unit when specified- Improved documentation for array field handling in FrontmatterEditor (tags, images)
- Minimum Go version set to 1.24
- Shopping list
--servingsCLI flag now properly scales recipes before consolidation
0.4.0 - 2026-01-09
- Full Cooklang specification v7 compliance
- Fixed quantities support with
=prefix (e.g.,@salt{=1%tsp}) - Note blocks per Cooklang spec proposal (
> Note text) - Canonical extensions spec tests for block comments, sections, and notes
- Comprehensive unit tests for token package
- Unit tests for comments, sections, and notes
0.3.1 - 2026-01-08
- Parse comments, block comments, and sections after newlines correctly
0.3.0 - 2026-01-08
Recipe.Scale()method for scaling recipes to different serving sizes- Block comments support (
[- comment -]) per Cooklang spec - Section headers (
=== Section Name ===) for organizing recipe steps - Improved comment rendering in all output formats
- Aligned CLI commands with library features
0.2.2 - 2025-12-28
- Include unit in
Timer.RenderDisplay()output
0.2.1 - 2025-12-27
- Remove "some" prefix from
RenderDisplay()for unspecified quantities
0.2.0 - 2025-12-25
- Bartender mode for cocktail-friendly unit conversions
NewIngredientconstructor and exportedCreateTypedUnitfunction- Print-optimized HTML renderer for single-page recipe output
- Multi-line YAML block scalar support in frontmatter
- Windows CRLF and old Mac line ending support
RenderDisplaymethods for user-friendly text rendering- Comprehensive documentation for all public methods
GetCookware()method on Recipe type- Unicode fraction character support in measurements (e.g., ½, ¼)
- Complex fraction handling (e.g., "1 1/2")
- Image detection for recipes
- Frontmatter CRUD operations
- Unit conversion system (metric, imperial, US)
- Multiple renderers (Cooklang, Markdown, HTML)
- Extended spec mode with multi-word timers, annotations, and comment preservation
- CLI tool with parse, render, scale, ingredients, and shopping-list commands
- Shopping list generation with automatic consolidation
- GitHub Actions CI workflows for testing and linting
- Improved recipe data structure with linked-list step/component design