← Back to all sparks
T

tinkr

ANALYTICS
Velocity0.0

Convert (R)Markdown files to XML, edit them, write them back as (R)Markdown

Markdown round-tripping through XML, where every release is another thing it learned not to mangle.

markdownxmlr-packageropenscidocument-tooling
Current state
tinkr parses Markdown into XML, lets callers manipulate it with XPath, and writes it back out — the yarn R6 class is the whole interface. Its development is defined by a single hard problem: surviving the round trip without corrupting syntax the XML representation does not natively model. Maintenance is shared between two active contributors and release cadence is roughly annual.
Where it's heading
Each release extends the set of constructs that get protected across the round trip — curly braces, escaped brackets, inline math, dollar signs used as currency, French-style dollars, fenced divs, frontmatter. The 0.3.0 notes also add get_protected(), append_md(), and prepend_md(), which is the first sign of building a manipulation API on top of the protection machinery rather than only widening it.
Prediction
Expect the protection list to keep growing toward full Quarto syntax coverage, which the first release named as the long-term goal and which fenced divs and frontmatter both move toward.

Recent moves

  1. 1y ago

    Frontmatter, fenced divs, and content-insertion methods

    The largest release in the window, and the first that adds ways to modify a document rather than only preserve it — append_md() and prepend_md() sit alongside frontmatter and fenced-div protection. Note the release explicitly exists to unblock downstream packages, with the CRAN version to follow.

    View source ↗
  2. 3y ago

    Protects curly braces, escaped brackets, and link anchors

    Squarely on the round-trip-fidelity arc: three more syntax classes that previously came back changed, plus dropping the stringr dependency. Curly-brace protection is the one that matters for Quarto-style attributes.

    View source ↗
  3. 3y ago

    First release: the extensible yarn R6 class

    ⚡ SPARK

    The founding release, and the one that set the design every later release extends — a document as an R6 object wrapping XML, with protection rules layered on top.

    View source ↗