legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
74 lines (53 loc) • 2.34 kB
Markdown
# Handlebars Helper Functions Example
# This example demonstrates the current Handlebars syntax for helper functions
# See formatted-contract-legacy.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'
# {{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):
- 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)