Source Files
Any supported format
Unified Tree
Lambda / Mark
Operations
Transform · Validate · Render

Input Formats

Lightweight Markup Languages

All markup flavors are parsed into the same Mark Doc schema — an element tree rooted at <doc>, with HTML-compatible element names.

FormatInput TypeNotes
CommonMark / GFM Markdownmarkdown100% CommonMark pass rate
reStructuredTextrst
MediaWiki / DokuWikiwiki
AsciiDocasciidoc
Emacs Org-modeorg
Textiletextile
troff / man pagesman
MDX (Markdown + JSX)mdxInline React/JSX components
HTML5html100% html5lib pass rate
LaTeXlatex

Data Interchange Formats

FormatInput TypeNotes
JSONjsonMaps to Lambda maps/arrays
YAMLyaml100% YAML 1.2 pass rate
TOMLtoml
CSVcsv
INIini
XMLxmlMaps to Lambda elements
Mark NotationmarkNative Lambda/Mark format

Other Formats

FormatInput TypeNotes
PDFpdfText extraction and structure
RTFrtf
Email (EML)emlBuilt-in schema available
Calendar (ICS)icsBuilt-in schema available
vCard (VCF)vcfBuilt-in schema available
CSScss
Mermaid diagramsmermaid
D2 diagramsd2
GraphViz DOTdot

Output Formats

Conversion Output (lambda convert -t <format>)

mark json xml html yaml toml ini css jsx mdx latex rst org wiki textile text markdown properties

Render Output (lambda render -o <file>)

SVG PDF PNG JPEG

The Unified Mark Doc Schema

All lightweight markup parsers produce the same element-tree shape, aligned with HTML element names:

CategoryMark Element(s)
Document root<doc>
Metadata<meta title: … author: … date: …>
Headings<h1><h6>
Paragraph<p>
Block quote<blockquote>
Code block<pre><code>
Lists<ul> / <ol> / <li>
Tables<table> / <thead> / <tbody> / <tr> / <th> / <td>
Strong / Emphasis<strong> / <em>
Links / Images<a href:…> / <img src:…>
Math<math mode:'inline'> / <math mode:'display'>
Footnotes<footnote id:…>

How Parsing Works

In Lambda scripts, load any format with input():

let md   = input("readme.md",    'markdown')
let html = input("page.html",    'html')
let json = input("data.json",    'json')
let yaml = input("config.yaml",  'yaml')
let csv  = input("data.csv",     'csv')
let tex  = input("paper.tex",    'latex')
let pdf  = input("report.pdf",   'pdf')

From the CLI, convert directly:

lambda convert input.json -t yaml -o output.yaml
lambda convert doc.md -t html -o doc.html