lexicon-docx 0.2.0

Lexicon Markdown to DOCX processor for legal contracts
Documentation
# Lexicon Style Configuration
# Copy this file and pass it with: cargo run -- build input.md -o output.docx --style style.toml
# All fields are optional — defaults are shown below.

# Typography
font_family = "Times New Roman"
font_size = 12.0
heading_font_family = "Times New Roman"
title_size = 20.0             # document title (cover page or inline)
heading1_size = 14.0          # ## headings
heading2_size = 12.0          # ### headings
heading_space_before = 18.0  # space before section headings (pt)
heading_space_after = 12.0   # space after section headings (pt)
paragraph_space_before = 0.0 # space before paragraphs (pt)
paragraph_space_after = 6.0  # space after paragraphs (pt)
line_spacing = 1.5

# Page setup
page_size = "a4"              # "a4" or "letter"
margin_top_cm = 2.54
margin_bottom_cm = 2.54
margin_left_cm = 2.54
margin_right_cm = 2.54

# Clause indentation
indent_per_level_cm = 1.27    # step between each clause level
hanging_indent_cm = 1.27      # distance from number position to text indent
body_align_first_level = false      # true: body levels 0 and 1 share the same indent
recitals_align_first_level = false  # true: recitals levels 0 and 1 share the same indent

# Defined terms
defined_term_style = "bold"   # "bold", "quoted" (curly quotes), or "bold_quoted"

# Date formatting
date_format = "%e %B %Y"     # chrono format string (e.g. "%d/%m/%Y", "%B %d, %Y")

# Placeholder text
name_placeholder = "[Name]"  # shown in preamble/cover/signatures when a party has no name

# Branding
# brand_color = "#2E5090"     # web colour for title and ## heading text

# Schedule placement
schedule_position = "end"     # "end" (after addenda/exhibits) or "after_toc" (before contract body)

# Cover page
[cover]
enabled = true                # false: inline title block instead of full cover page
between_label = "BETWEEN"    # heading above parties block
party_format = "name_spec_role" # "name_spec_role", "name_role", or "name_only"
show_ref = true               # show reference number on cover
show_author = true            # show author/firm on cover
show_status = true            # show status and version on cover

# Parties preamble (rendered before the contract body)
[preamble]
enabled = false               # true: render a parties preamble block before the body
style = "simple"              # "simple", "prose", or "custom"

# Custom preamble templates (used when style = "custom")
# Placeholders: {title}, {type}, {date}
# Use **text** for bold, \n for new paragraphs
# template = "This {title} (**{type}**) is dated {date} between"
#
# Party template placeholders: {name}, {specifier}, {role}
# Empty {specifier} automatically removes surrounding ()
# party_template = "{name} ({specifier}) (**{role}**)"
#
# Separator appended to each party line except the last
# party_separator = "; and"

# Footer
[footer]
show_ref = true               # show reference number in footer
show_page_number = true        # show "Page X of Y" in footer
show_version = false           # append version to ref, e.g. "Ref: OK:RP:20260115v3"

# Table of contents
[toc]
enabled = true
heading = "Contents"          # heading text above the TOC

# Signature pages
[signatures]
enabled = true                # true: render signature blocks for each party
# heading = "EXECUTION"       # optional heading above all signature blocks
# default_template = "au.company.deed"  # override default template for all parties
# separate_pages = false      # true: each party's signature block on its own page

# Per-party overrides (key = party role from front-matter)
# [signatures.party.Employer]
# template = "au.company.agreement"       # override template for this party
# signatories = [
#   { title = "Managing Director" },
#   { title = "Company Secretary" },
# ]
# witness = true                           # force a witness column for this party