typst-business-templatesv0.7.2

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 undefined status; the SLA template built its party names and addresses as content instead of values; the title page failed on tags: 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_number or terms, and document footers leave out the status line when no status is set
  • fixedDiagrams: Nodes linked by both parent and 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_invoice failed on the plain date strings and numeric VAT rate of InvoiceData; the templates now accept both these and the date/rate objects of the JSON files
  • fixed**docgen init:** locale/ and .gitignore were written into a nested <name>/<name>/ folder
  • fixedStarter files: cli/templates/invoice.json, offer.json, credentials.json and concept.json now match the template schemas and compile
  • changedREADME: The library needs no Typst installation, the docgen CLI does (all documents except diagrams); the library example compiles as written
  • changed**CompanyContact** implements Default
  • changedCLI help: Removed the references to the SQLite database and the interactive mode, which no longer exist; docgen init suggests docgen build as 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 compile passes --font-path fonts automatically

0.7.1

7 May 2026

  • fixedFont path not passed to typst: docgen compile now passes --font-path fonts to typst compile, so bundled fonts are found as documented
  • fixedHardcoded document language: All templates now read language from company.json instead of always using "de"; added get-language(company) helper to styles.typ

0.7.0

12 April 2026

  • addedMore integrated diagram layouts: Added timeline, swimlane, quadrant, and roadmap to the built-in diagram document 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 parallel docgen compile runs

0.6.12

11 April 2026

  • addedIntegrated diagram document type: New diagram template with internal preprocessing and automatic layout rendering
  • addedSupports tree / hierarchical, flow / layered, mindmap / radial, and simple architecture diagrams
  • addedNo manual positioning required in JSON
  • addedNo external Typst packages required
  • addedCLI support for diagram JSON: docgen compile diagram.json now routes diagram documents through the embedded Rust renderer
  • addedExample diagrams: Added four showcase examples under examples/
  • addeddiagram-flow
  • addeddiagram-mindmap
  • addeddiagram-orgchart
  • addeddiagram-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-page and show-footer
  • addedFunction-based templates (8): show-title-page: true and show-footer: true parameters
  • addedtask-list, documentation, concept, contract, protocol, specification, proposal, sla
  • addedInline/accounting templates (9): show_footer flag via data.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 false to hide title page or footer
  • removedTag rendering removed from task-list template
  • removedTags were visually disruptive and redundant with category headings
  • removedTag data in .typ files is still accepted but no longer rendered

0.6.9

27 January 2026

  • fixedCritical: Fixed missing # prefix for subtask rendering in task-list template
  • fixedif "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 in standard-title-page subtitle rendering
  • fixedv(10pt), align(center) and text(...) 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 subtitle now 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_breakdown optional in offer template
  • fixedOffers without VAT (e.g., international offers) now compile successfully
  • fixedTemplate now checks if vat_breakdown exists 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 in totals-summary.typ
  • fixedRemoved # from rows.push() inside #for loop 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 code at 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
  • fixedstandard-title-page() now accepts both array and dictionary metadata
  • fixeddocument-title-page() already fixed in v0.6.1
  • fixedparties-title-page() now accepts both array and dictionary metadata
  • fixedFixes compilation errors in credentials and contract templates
  • fixedError: type array has no method pairs when 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() and parties-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:
  • removedrusqlite - No longer needed (JSON-based storage)
  • removeddialoguer - No interactive prompts
  • removedconsole - No terminal styling
  • removedcomfy-table - Output simplified
  • removedlopdf - 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/:**
  • addedformatting.typ - Date/money formatting (9 templates)
  • addeddin5008-address.typ - DIN 5008 address blocks (9 templates)
  • addedaccounting-header.typ - Logo + metadata box (9 templates)
  • addedunit-formatter.typ - Unit translations (4 templates)
  • addedlocale-helpers.typ - Locale string resolution
  • addedtotals-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 init now 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_dir crate
  • fixedWorks immediately after installation without repository access
  • fixedFixes issue where docgen template init created 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**.gitignore management** - 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
  • addeddocgen compile now automatically installs templates as Typst packages if not already installed
  • addedNo manual docgen template install required 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.logo path 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-footer from common/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
  • addeddocument-footer: Standard 4-column footer for most document-layout templates
  • addedminimal-footer: Simplified 3-column footer for protocol templates
  • addedaccounting-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 from company.logo path
  • 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:
  • changeddocumentation/default.typ: Uses document-footer with created_at style
  • changedconcept/default.typ: Uses document-footer with created_at style
  • changedprotocol/default.typ: Uses minimal-footer (3-column)
  • changedspecification/default.typ: Uses document-footer with version/last_updated style
  • changedcontract/default.typ: Uses document-footer with created_at style
  • changedproposal/default.typ: Uses document-footer with created_at style
  • changedsla/default.typ: Uses document-footer with 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") zu eval("[" + 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
  • changeddocgen compile erkennt automatisch alle neuen Template-Typen anhand von Pfad und Dateinamen
  • changeddocgen init erstellt vollständige Verzeichnisstruktur mit allen 17 Template-Typen

0.4.6

25 January 2025

  • added12 neue Template-Typen für verschiedene Geschäftsdokumente:
  • addedletter - Geschäftsbrief (DIN 5008 konform)
  • addedcredit-note - Gutschrift für Rückerstattungen
  • addedreminder - Zahlungserinnerung/Mahnung (Multi-Level)
  • addeddelivery-note - Lieferschein mit Unterschriftsfeldern
  • addedorder-confirmation - Auftragsbestätigung
  • addedtime-sheet - Stundenzettel für Arbeitszeiterfassung
  • addedcontract - Vertrag mit Unterschriftsseite
  • addedprotocol - Besprechungsprotokoll/Meeting Notes
  • addedspecification - Spezifikation/Pflichtenheft mit Code-Blocks
  • addedproposal - Projektvorschlag für Agenturen/Beratung
  • addedsla - Service Level Agreement
  • addedquotation-request - Angebotsanfrage an Lieferanten
  • addedNeue Datei DOCUMENT-TYPES.md mit 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 concept und documentation Templates von 100pt auf 80pt korrigiert
  • fixedLogo-Pfade konsistent in allen Templates ("/" + company.logo oder company._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