legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
70 lines (50 loc) • 2.55 kB
Markdown
# Handlebars Helper Functions Example
# This example demonstrates the current Handlebars syntax for helper functions
# See docs/handlebars-migration.md for the deprecated legacy syntax
amount: 50000
client_name: 'john doe'
company_name: 'ACME corp'
payment_terms: 30
interest_rate: 0.05
project_duration: 6
currency: 'USD'
today: 2025-01-15 # ISO date - will be auto-parsed as Date object
# {{titleCase client_name}} Service Agreement
**Date:** {{formatDate today "MMMM Do, YYYY"}}
**Client:** {{capitalizeWords client_name}}
**Company:** {{titleCase company_name}}
## Financial Terms
**Total Amount:** {{formatCurrency amount currency}}
**Amount in Words:** {{capitalize (numberToWords amount)}} dollars
**Interest Rate:** {{formatPercent interest_rate 1}} per annum
## Payment Schedule
**Payment Terms:** {{payment_terms}} days
**Due Date:** {{formatDate (addDays today payment_terms) "MMMM Do, YYYY"}}
**Project Duration:** {{project_duration}} {{pluralize "month" project_duration}}
**Project End Date:** {{formatDate (addMonths today project_duration) "MMMM Do, YYYY"}}
## Additional Information
**Document ID:** {{upper (replaceAll (kebabCase client_name) "-" "")}}{{formatDate today "YYMMDD"}}
**Client Initials:** {{initials client_name}}
**Generated:** {{formatDate today "dddd, MMMM Do, YYYY"}}
## Terms and Conditions
This agreement is valid for {{project_duration}} {{pluralize "month" project_duration}} starting from
{{formatDate today "MMMM Do, YYYY"}} and ending on {{formatDate (addMonths today project_duration) "MMMM Do, YYYY"}}.
The total amount of {{formatCurrency amount currency}} ({{numberToWords amount}} dollars) shall be paid within {{payment_terms}} days of the contract date.
**Signatures**
{{capitalizeWords client_name}} ({{initials client_name}})
Date: {{formatDate today "DD/MM/YYYY"}}
## Syntax Notes
This document uses **Handlebars syntax** (current standard since v3.5.0):
- Helper functions use space-separated arguments: `\{\{helper arg1 arg2\}\}`
- Subexpressions use parentheses: `\{\{helper (subhelper arg1) arg2\}\}`
- No commas between arguments
**Examples:**
- `\{\{formatDate today "MMMM Do, YYYY"\}\}` - Date formatting
- `\{\{formatCurrency amount currency\}\}` - Currency formatting
- `\{\{titleCase client_name\}\}` - String manipulation
- `\{\{formatDate (addMonths today 6) "YYYY-MM-DD"\}\}` - Nested helpers (subexpressions)
For the deprecated legacy syntax `\{\{helper(arg1, arg2)\}\}`, see [Handlebars migration guide](../../../docs/handlebars-migration.md).