Harnessing YAML's expressive power for defining citation styles. A robust, Rust-powered evolution designed for modern publishing workflows.
$ cargo install --git https://github.com/citum/citum-core --bin citum
Requires Rust toolchain
info: title: "APA 7th Edition (Citum)" id: "https://www.zotero.org/styles/apa-7th-citum" link: "https://apastyle.apa.org/" options: processing: author-date contributors: initialize-with: ". " and: !mode-dependent integral: text non-integral: symbol
Significant evolution over CSL 1.0, targeting modern scholarly needs.
Process full documents with native draft Djot syntax support. Scan markers and replace them with formatted citations and bibliographies.
Sophisticated support for narrative citations, mid-citation "infix" text, and context-aware conjunctions (and vs &).
Configurable bibliography sections with per-group sorting. Essential for legal hierarchies, multilingual bibliographies, and primary/secondary source divisions.
First-class support for multilingual citations, RTL languages, and locale-aware title casing and transliterations.
Handle complex historical ranges, uncertain dates, and non-Gregorian calendars with native EDTF precision.
Evolution of macros into reusable "presets" for common configuration patterns like APA or Chicago.
Distinct title/subtitle formatting and declarative rules for text transformations and automatic linking.
Declaratively render components differently for each reference type without procedural conditional logic.
Generate semantic output in Plain Text, HTML, Djot, or LaTeX. High-fidelity PDF publishing workflows via native LaTeX escaping.
Seamlessly integrate the Rust core into Python, Node.js, or Lua. A LuaLaTeX
proof-of-concept lets you use \cite{key} backed
by the Citum engine — no Biber required.
Rust 2024 edition engine with binary CBOR support for near-instant loading of massive bibliographies. Zero-overhead processing with lazy iterator pipelines.
Planned async service mode: a long-running background process that eliminates startup latency for interactive editors (Word, Zotero, web apps). Modelled on Haskell citeproc’s server design, powered by Tokio and axum.
Progressive enhancement for HTML citations. Add bidirectional navigation, hover tooltips, and responsive sidebars to any Citum-generated HTML view.
Designed for developers and automation. Generate citations directly from your terminal or integrate into your build pipeline.
$ citum render refs -b tests/fixtures/references-expanded.json -s mla -f html
$ citum render refs -b tests/fixtures/references-expanded.json -s mla -f djot
$ citum render refs -b tests/fixtures/references-expanded.json -s mla -f latex
$ citum render doc examples/document.djot -b examples/document-refs.json -s mla
$ citum render refs -b refs.json -s apa
$ citum styles list
$ citum convert styles/apa-7th.yaml --output /tmp/apa-7th.cbor
Smith, J. A. (2023). The Future of Citations. Academic Press.
Doe, A., & Lee, B. (2024). Rust in Publishing. Journal of Open Source, 12(4), 45-67. https://doi.org/10.1234/jos.2024.12
... generated in 4ms
Generated compatibility metrics are the source of truth for progress.
CI-generated per-style fidelity and SQI metrics for the core production style set.
Source: scripts/report-core.js -> docs/compat.html
Live tracking for top parent styles, strict citation scenarios, and current migration priorities.
Source: docs/TIER_STATUS.md
Fidelity is the release gate; SQI is a secondary quality metric used for style robustness.
Policy: no SQI gain may regress fidelity
Validation tools for developers and style authors. Use these in your IDE for autocomplete and real-time validation.
Schema files on this site are published automatically by CI. The local CLI
schema command is feature-gated to keep the
default binary smaller.
Core Citum style definition.
Input reference format.
Terms and date patterns.
Citation list format.
To get real-time validation and autocomplete in editors with YAML language server support (including VS Code, Helix, Zed, and many others), add this comment as the first line of your YAML file:
# yaml-language-server: $schema=https://citum.github.io/citum-core/schemas/style.json
Note: Replace style.json with
bib.json,
locale.json, or
citations.json depending on the file type.
Citum is a mission-driven project led by Bruce D'Arcus, who created the initial CSL prototype in 2005. While that vision successfully evolved into the CSL 1.0 standard through a significant community effort, Citum represents a "full-circle" return to the project's roots.
After two decades of observing the ecosystem, Citum was built to address the fundamental complexity of modern scholarly communication. By moving from procedural XML to declarative, type-safe YAML, we aim to make style authoring accessible to a new generation of researchers while providing the performance and precision required for the next 20 years of publishing.