Skip to content
Docs

Configuration

A markmeld project is configured using _markmeld.yaml. This file specifies targets to build, each with data, templates, and build options.

version: "1"
targets:
# targets defined here
imports:
- other_config.yaml
  • version — Config specification version (use “1”)
  • targets — Build targets
  • imports — Import other markmeld configs
  • target_factories — Auto-generate targets with plugins
targets:
my_target:
jinja_template: template.jinja
output_file: output/{today}_document.pdf
command: pandoc -o "{output_file}"
data:
md_files:
content: manuscript.md
yaml_files:
metadata: data.yaml
variables:
author: "Jane Doe"
AttributeDescription
jinja_templatePath to Jinja template
output_fileOutput path (supports {today}, {target_name})
commandShell command (receives rendered output on stdin)
typeTarget type (raw for no jinja rendering)
dataInput content specification
DirectiveDescription
md_filesNamed markdown files
md_globsGlob patterns for markdown
yaml_filesNamed YAML files
yaml_globsGlob patterns for YAML
variablesInline YAML data
targets:
my_target:
frontmatter:
csl: nature.csl # Default, doc can override
frontmatter_overrides:
lab: "Sheffield Lab" # Always wins
targets:
base:
jinja_template: shared.jinja
derived:
inherit_from: base
data:
md_files:
content: specific.md
targets:
main:
prebuild:
- build_figures
postbuild:
- cleanup
targets:
my_target:
recursive_render: false # Disable double-rendering
stopopen: true # Don't auto-open output