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
- 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 ↗ - 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 ↗ - 3y ago
First release: the extensible yarn R6 class
⚡ SPARKThe 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 ↗