Changelog
Generated from CHANGELOG.md in the project repository. Never maintained twice.
Unreleased
- fixedExample documents that did not compile: The it-consultant order confirmation, time sheet and SLA fixtures used wrong field names or unescaped
#/@in Typst content; the contract template referenced an undefinedstatus; the SLA template built its party names and addresses as content instead of values; the title page failed ontags: none(protocol) - fixedDelivery note printed Typst code: The address block call was missing its
#, so the note showed the raw call instead of the address - fixedOptional fields: The order confirmation no longer requires
order_numberorterms, and document footers leave out the status line when no status is set - fixedDiagrams: Nodes linked by both
parentand an edge are placed once (the org chart was shifted and doubled), edge labels no longer pile up where edges share a node, and text and padding scale with the layout so labels stay inside their nodes. The org chart and mind map examples now have edges, the architecture example uses a 4:3 page - fixedTyped invoice API:
compile_invoicefailed on the plain date strings and numeric VAT rate ofInvoiceData; the templates now accept both these and the date/rate objects of the JSON files - fixed**
docgen init:**locale/and.gitignorewere written into a nested<name>/<name>/folder - fixedStarter files:
cli/templates/invoice.json,offer.json,credentials.jsonandconcept.jsonnow match the template schemas and compile - changedREADME: The library needs no Typst installation, the
docgenCLI does (all documents except diagrams); the library example compiles as written - changed**
CompanyContact** implementsDefault - changedCLI help: Removed the references to the SQLite database and the interactive mode, which no longer exist;
docgen initsuggestsdocgen buildas next step - changedCrate homepage: now https://casoon.github.io/typst-business-templates/
0.7.2
7 May 2026
- changedInstallation: Removed Homebrew support; curl install script is now the recommended method
- changedREADME: Clarified that
docgen compilepasses--font-path fontsautomatically
0.7.1
7 May 2026
- fixedFont path not passed to typst:
docgen compilenow passes--font-path fontstotypst compile, so bundled fonts are found as documented - fixedHardcoded document language: All templates now read
languagefromcompany.jsoninstead of always using"de"; addedget-language(company)helper tostyles.typ
0.7.0
12 April 2026
- addedMore integrated diagram layouts: Added
timeline,swimlane,quadrant, androadmapto the built-indiagramdocument type - addedMore diagram examples: Added showcase examples for all four new layouts under
examples/ - fixedParallel compile race in local template updates:
.docgen/templates/now uses a version marker and lock file to avoid concurrent delete/extract failures during paralleldocgen compileruns
0.6.12
11 April 2026
- addedIntegrated diagram document type: New
diagramtemplate with internal preprocessing and automatic layout rendering - addedSupports
tree/hierarchical,flow/layered,mindmap/radial, and simplearchitecturediagrams - addedNo manual positioning required in JSON
- addedNo external Typst packages required
- addedCLI support for diagram JSON:
docgen compile diagram.jsonnow routes diagram documents through the embedded Rust renderer - addedExample diagrams: Added four showcase examples under
examples/ - added
diagram-flow - added
diagram-mindmap - added
diagram-orgchart - added
diagram-architecture
0.6.11
27 January 2026
- changedTask-list template: Description now renders inline after title with
--separator - changedPreviously: Description on separate line with vertical spacing
- changedNow: Compact inline display, reducing visual clutter
0.6.10
27 January 2026
- addedDisplay options for all templates:
show-title-pageandshow-footer - addedFunction-based templates (8):
show-title-page: trueandshow-footer: trueparameters - addedtask-list, documentation, concept, contract, protocol, specification, proposal, sla
- addedInline/accounting templates (9):
show_footerflag viadata.metadata.show_footer - addedinvoice, offer, credit-note, delivery-note, letter, order-confirmation, quotation-request, reminder, time-sheet
- addedBoth default to
true— existing behavior is fully preserved - addedSet to
falseto hide title page or footer - removedTag rendering removed from task-list template
- removedTags were visually disruptive and redundant with category headings
- removedTag data in
.typfiles is still accepted but no longer rendered
0.6.9
27 January 2026
- fixedCritical: Fixed missing
#prefix for subtask rendering in task-list template - fixed
if "subtasks" in task ...inside content block was rendered as plain text - fixedAdded
#prefix so subtasks are now recursively rendered instead of showing raw Typst code - fixedImpact: Task lists with subtasks now display correctly
0.6.8
27 January 2026
- fixedCritical: Fixed missing
#prefix instandard-title-pagesubtitle rendering - fixed
v(10pt),align(center)andtext(...)were rendered as plain text instead of being executed as Typst functions - fixedAdded
#prefix to all function calls inside the content block - fixedImpact: Task list and other templates using
subtitlenow display correctly instead of showing raw code - fixedError:
v(10pt) align(center)[ text(size: size-large, fill: color-text-light)[...] ]visible in PDF
0.6.7
27 January 2026
- fixedCritical: Made
vat_breakdownoptional in offer template - fixedOffers without VAT (e.g., international offers) now compile successfully
- fixedTemplate now checks if
vat_breakdownexists before accessing it - fixedFalls back to empty array
()if not present - fixedError:
dictionary does not contain key "vat_breakdown"
0.6.6
27 January 2026
- fixedCritical: Fixed incorrect
#prefix inside for-loop intotals-summary.typ - fixedRemoved
#fromrows.push()inside#forloop body (line 58) - fixedContext: Typst
#for { }creates a code block where#is NOT allowed - fixedImpact: Invoices and offers now compile successfully
- fixedError:
the character # is not valid in codeat line 58
0.6.5
27 January 2026
- fixedPartial Fix: Added
#to code inside content blocks, but incorrectly added it inside for-loop body - fixedNote: v0.6.5 introduced a new error. Upgrade to v0.6.6 for complete fix
0.6.4
27 January 2026
- fixedPartial Fix: Changed for-loop brackets from
[]to{}but missed#prefix - fixedNote: v0.6.4 didn't fully fix the issue. Upgrade to v0.6.5 for complete fix
0.6.3
27 January 2026
- fixedCritical: Fixed missing
#prefix in accounting templates causing function calls to render as text - fixedFixed
invoice/default.typ: Added#to accounting-header, din5008-address-block, invoice-totals - fixedFixed
offer/default.typ: Added#to accounting-header, din5008-address-block, invoice-totals - fixedFixed
delivery-note/default.typ: Added#to accounting-header, din5008-address-block - fixedFixed
reminder/default.typ: Added#to accounting-header, din5008-address-block - fixedFixed
time-sheet/default.typ: Added#to accounting-header, din5008-address-block - fixedImpact: PDFs now display correctly with rendered headers, addresses, and totals instead of raw code
0.6.2
27 January 2026
- fixedCritical: Fixed metadata type handling in ALL title-page components
- fixed
standard-title-page()now accepts both array and dictionary metadata - fixed
document-title-page()already fixed in v0.6.1 - fixed
parties-title-page()now accepts both array and dictionary metadata - fixedFixes compilation errors in credentials and contract templates
- fixedError:
type array has no method pairswhen using array-based metadata - fixedType checking in all three title-page functions handles both data formats, so every template using title-page components works with either:
- fixedArray format:
[(key1, value1), (key2, value2)](used by some templates) - fixedDictionary format:
(key1: value1, key2: value2)(used by other templates)
0.6.1
27 January 2026
- fixedPartial Fix: Fixed metadata type handling in
document-title-page()only - fixedNote: v0.6.1 missed fixes for
standard-title-page()andparties-title-page() - fixedUpgrade to v0.6.2 for complete fix
0.6.0
27 January 2026
- breakingSimplification & code consolidation: complete architectural simplification following Unix philosophy — do one thing well, plain text over binary, composable tools, DRY (Don't Repeat Yourself)
- removedSQLite database → Replaced with JSON files (
data/clients.json,data/projects.json,data/counters.json) - removedInteractive TUI → Removed 696 lines of terminal UI code
- removedGlobal package management → Removed 304 lines of dead code
- removed5 dependencies removed:
- removed
rusqlite- No longer needed (JSON-based storage) - removed
dialoguer- No interactive prompts - removed
console- No terminal styling - removed
comfy-table- Output simplified - removed
lopdf- Was never used - changedData storage: Human-readable JSON files instead of binary SQLite
- changedCLI behavior: No arguments → shows help (was: interactive UI)
- changedCommands: All require explicit parameters (e.g.,
docgen client add --name "Name") - changedBinary size: ~20% smaller due to dependency reduction
- changedGit-friendly: JSON files can be diff'd, merged, and version controlled
- addedNew task-list template: Professional task/todo list template with checklists, priorities, categories, dependencies
- addedClient/Project delete commands:
docgen client delete <id>,docgen project delete <id> - added**6 reusable components in
templates/common/:** - added
formatting.typ- Date/money formatting (9 templates) - added
din5008-address.typ- DIN 5008 address blocks (9 templates) - added
accounting-header.typ- Logo + metadata box (9 templates) - added
unit-formatter.typ- Unit translations (4 templates) - added
locale-helpers.typ- Locale string resolution - added
totals-summary.typ- Right-aligned totals (4 templates) - added4 title-page components: standard, document, parties, enhanced (used by 9 templates)
- addedIntegration tests: 14 test cases covering client, project, and delete operations
- addedSimpler workflow: Direct CLI commands integrate easily into scripts and AI workflows
- addedCode reduction: ~1,200+ lines of duplicate code eliminated
- added~710 lines in Phase 1 (formatting, DIN 5008, headers)
- added~100 lines in Phase 2 (units, totals)
- added~425 lines (title pages)
- addedCLI refactoring: Commands moved to
cli/src/commands/module, main.rs reduced by 333 lines (-23%)
0.5.2
25 January 2026
- fixedCritical: JSON workflow template paths
- fixedFixed: JSON documents (invoice, offer, credentials) used wrong template path
- fixedChanged from
templates/to.docgen/templates/for JSON workflow - fixedFixed: Syntax error in offer template (extra closing brackets)
- fixedFixed:
docgen initnow uses new v0.5.0 template system - fixedAll JSON and .typ documents now work correctly
0.5.1
25 January 2026
- fixedCritical: Templates now embedded in binary
- fixedFixed: Templates were not extracted from binary (empty .docgen/templates/)
- fixedTemplates are now embedded at compile-time using
include_dircrate - fixedWorks immediately after installation without repository access
- fixedFixes issue where
docgen template initcreated empty directory
0.5.0
25 January 2026
- breakingProject-local template system: complete redesign of template architecture for portability and simplicity (see the migration guide below)
- breakingTemplates installed globally in
~/Library/Application Support/typst/packages/ - breakingRequired manual version management
- breakingNot portable across machines
- breakingHard to customize
- breakingStandard templates in
.docgen/templates/(auto-updated, not in Git) - breakingCustom templates in
templates/(stable, in Git) - breakingEverything project-local - works on any machine
- breakingSimple forking workflow for customization
- added**
docgen template init** - Initialize project templates - added**
docgen template fork <name> --name <custom>** - Fork and customize templates - added**
docgen template list** - List standard and custom templates - added**
docgen template update** - Manually update standard templates - addedAuto-update on compile - Standard templates sync with docgen version automatically
- added**
.gitignoremanagement** - Auto-adds.docgen/to gitignore - changedTemplate imports now use project-relative paths:
- changedStandard:
#import "/.docgen/templates/concept/default.typ": concept - changedCustom:
#import "/templates/my-concept/default.typ": my_concept - changedNo more package installation - Templates copied to project instead
- changedDocumentation rewritten - New workflow explained in README
- removed~~
docgen template install~~ - No longer needed - removed~~
docgen template remove~~ - No longer needed - removed~~Global package management~~ - All templates are project-local now
- removed~~Version pinning in imports~~ - Standard templates always current
0.4.12
25 January 2025
- addedAutomatic Template Package Installation
- added
docgen compilenow automatically installs templates as Typst packages if not already installed - addedNo manual
docgen template installrequired anymore - addedEnsures templates are always at the correct version matching docgen CLI
- addedVersionless Package Imports (Recommended)
- addedSymlinks created for versionless imports:
@local/docgen-concept→ latest version - addedOld versioned imports still supported:
@local/docgen-concept:0.4.12 - addedRecommendation: Use versionless imports to always get latest template version
- addedTemplates automatically update when docgen is updated
- changedDocumentation Updated for Versionless Imports
- changedExample code now shows recommended versionless syntax:
#import "@local/docgen-concept": concept - changedInstallation message shows both versionless (recommended) and versioned options
- changedSolves fundamental versioning problem: templates now sync with docgen version
- fixedTemplate Version Mismatch
- fixedFixed: Hard-coded template versions in .typ files prevented updates from taking effect
- fixedFixed: Users had to manually update version numbers in all .typ files after docgen update
- fixedNow: Versionless imports automatically use newest installed version
0.4.11
25 January 2025
- fixedConcept Template Logo & Footer
- fixedLogo now displays correctly in package-import mode (
@local/docgen-concept) - fixedLogo pre-loading: Automatically converts
company.logopath to_logo_image - fixedFooter: Changed to simple one-line layout (like credentials template)
- fixedFormat: [Client Name] | [Page X] | [Date]
- fixedPrevious multi-line accounting-footer was incorrect for concept documents
- fixedConcept template now matches credentials template layout (clean & minimal)
0.4.10
25 January 2025
- fixedConcept Template Footer
- fixedConcept template now uses
accounting-footer(same as invoice/offer) - fixedConsistent business footer across all accounting and concept documents
- changedComplete Footer Migration to Centralized System
- changedAll accounting templates now use
accounting-footerfromcommon/footers.typ: - changedinvoice, offer, credit-note, delivery-note, letter
- changedorder-confirmation, quotation-request, reminder, time-sheet
- changedConcept template migrated to
accounting-footer - changedCode reduction: -515 lines of duplicate footer code eliminated
- changedTotal footer code reduction (v0.4.9 + v0.4.10): -806 lines
- changedSingle source of truth for all footer layouts
0.4.9
25 January 2025
- addedCentralized Footer System in
templates/common/footers.typ - added
document-footer: Standard 4-column footer for most document-layout templates - added
minimal-footer: Simplified 3-column footer for protocol templates - added
accounting-footer: Business-specific footer (reserved for invoice/offer) - addedReduces code duplication: -291 lines of duplicate footer code eliminated
- addedSingle source of truth for footer styling and layout
- fixedLogo Loading in Package-Import Mode
- fixedLogo now displays correctly when using
#import "@local/docgen-documentation:0.4.9" - fixedFixed: Logo pre-loading (
_logo_image) only worked in JSON-workflow mode - fixedChanged to direct
image()loading fromcompany.logopath - fixedWorks in both package-import and JSON-workflow modes
- fixedFooter Consistency Across Templates
- fixedAll document-layout templates now use centralized footer functions
- fixedUnified footer styling and layout across documentation, concept, protocol, specification, contract, proposal, sla
- changedUpdated all document-layout templates to use
common/footers.typ: - changed
documentation/default.typ: Usesdocument-footerwith created_at style - changed
concept/default.typ: Usesdocument-footerwith created_at style - changed
protocol/default.typ: Usesminimal-footer(3-column) - changed
specification/default.typ: Usesdocument-footerwith version/last_updated style - changed
contract/default.typ: Usesdocument-footerwith created_at style - changed
proposal/default.typ: Usesdocument-footerwith created_at style - changed
sla/default.typ: Usesdocument-footerwith version/last_updated style
0.4.8
25 January 2025
- fixedContent-Loading in protocol und specification Templates
- fixedProtocol Template rendert jetzt vollständigen Content aus JSON
- fixedSpecification Template rendert jetzt vollständigen Content aus JSON
- fixedSyntax-Fehler mit
#v()in protocol Template behoben - fixed
<Zeichen in JSON-Beispielen escaped um "unclosed label" Fehler zu vermeiden - changedProtocol Template: Content-Loading von
eval(data.content, mode: "markup")zueval("[" + data.content + "]", mode: "code") - changedSpecification Template: Content-Check vereinfacht (direkter Zugriff auf
data.content)
0.4.7
25 January 2025
- fixedCLI Template-Erkennung für alle 12 neuen Template-Typen erweitert
- fixedletter, credit-note, reminder, delivery-note, order-confirmation, time-sheet, quotation-request
- fixedcontract, protocol, specification, proposal, sla
- fixedInit-Befehl erstellt jetzt Verzeichnisse für alle Template-Typen
- changed
docgen compileerkennt automatisch alle neuen Template-Typen anhand von Pfad und Dateinamen - changed
docgen initerstellt vollständige Verzeichnisstruktur mit allen 17 Template-Typen
0.4.6
25 January 2025
- added12 neue Template-Typen für verschiedene Geschäftsdokumente:
- added
letter- Geschäftsbrief (DIN 5008 konform) - added
credit-note- Gutschrift für Rückerstattungen - added
reminder- Zahlungserinnerung/Mahnung (Multi-Level) - added
delivery-note- Lieferschein mit Unterschriftsfeldern - added
order-confirmation- Auftragsbestätigung - added
time-sheet- Stundenzettel für Arbeitszeiterfassung - added
contract- Vertrag mit Unterschriftsseite - added
protocol- Besprechungsprotokoll/Meeting Notes - added
specification- Spezifikation/Pflichtenheft mit Code-Blocks - added
proposal- Projektvorschlag für Agenturen/Beratung - added
sla- Service Level Agreement - added
quotation-request- Angebotsanfrage an Lieferanten - addedNeue Datei
DOCUMENT-TYPES.mdmit vollständiger Übersicht aller Templates - addedUmfangreiche Examples für IT-Consultant Szenario hinzugefügt:
- added12 vollständige JSON-Beispieldateien
- addedREADME mit Verwendungsbeispielen und Szenarien
- addedRealistische Projekt-Workflows (API-Migration, Cloud-Migration)
- fixedFooter-Position in
conceptunddocumentationTemplates von 100pt auf 80pt korrigiert - fixedLogo-Pfade konsistent in allen Templates (
"/" + company.logoodercompany._logo_image) - changedAlle Templates verwenden jetzt konsistente Margins und Footer-Position (80pt)
- changedTemplates folgen durchgängig Accounting-Layout oder Document-Layout Standards
0.4.5
24 January 2025
- fixedInvoice footer positioning corrected (bottom margin 122pt → 80pt)
- fixedLogo path consistency across all templates
- fixedConsistent use of
image("/" + company.logo)pattern
0.4.4
23 January 2025
- fixedInvoice footer positioning issue (bottom margin reduced from 122pt to 71pt)
0.4.3
23 January 2025
- addedInitial templates for invoice, offer, concept, documentation, credentials
0.4.2
20 January 2025
- addedBasic CLI functionality
- addedTemplate generation support
- addedJSON-based document workflow
0.4.1
18 January 2025
- addedInitial release
- addedCore template system
- addedTypst integration