[rfc-i] [Tools-discuss] Recommendation 9 from Results and analysis of the survey of I-D authors on formats and tools

Leonard Rosenthol lrosenth at adobe.com
Fri Feb 5 06:35:01 PST 2021

Thanks for the history, Carsten – very helpful.

So then kramdown-rfc is *both* a piece of software *and* an extension specification for Markdown.  Yes?    If so, does there exist a document that describes those extensions and their behavior?   Because, to me as a standards guy, that is the important thing.   Making sure that there is a formal specification which *anyone* can use to develop their own tooling.

NOTE: I read the README at https://github.com/cabo/kramdown-rfc2629 (which I assume is the software we are referring to below) which seems like a great starting point for a language specification.


From: Carsten Bormann <cabo at tzi.org>
Date: Thursday, February 4, 2021 at 7:57 PM
To: Leonard Rosenthol <lrosenth at adobe.com>
Cc: "rfc-interest at rfc-editor.org" <rfc-interest at rfc-editor.org>, tools-discuss <tools-discuss at ietf.org>
Subject: Re: [Tools-discuss] [rfc-i] Recommendation 9 from Results and analysis of the survey of I-D authors on formats and tools

On 4. Feb 2021, at 22:02, Leonard Rosenthol <lrosenth=40adobe.com at dmarc.ietf.org<mailto:lrosenth=40adobe.com at dmarc.ietf.org>> wrote:

Supporting Markdown as an input option is a good idea - but why would you support a non-standard version of it?   CommonMark (https://commonmark.org/<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcommonmark.org%2F&data=04%7C01%7Clrosenth%40adobe.com%7Ceb0a5ba25d4f442de8e108d8c97111bd%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637480834764385146%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Ph5Th2uC3p7MN2RUoOGFm6r8D4UquZE31HvizTRljus%3D&reserved=0>) is the relevant "specification" for markdown.  Kramdown, on the other hand, is a specific tool that promotes its own flavor…

Hi Leonard,

the short answer is that in 2010, when kramdown-rfc was created, commonmark wasn’t even on the horizon.

From my point of view, the most important requirement for an authoring language to be used in the IETF is that it remains stable.
Drafts often have a 3-5 year lifetime before they finally get published as an RFC.  People are working on, and text is moving back and forth between, drafts in various of these stages.
So compatibility timelines on the order of a decade or more are required.

Of course, we could decide to “upgrade” to commonmark after kramdown-rfc now has been around for a decade.
With migration aids, this could be palatable (if enough development resources are poured into those; maybe we want to use those for completing the RFXMLv3 migration instead).
But what would be the upside?

Let’s ignore for the moment that commonmark is missing tables, definition lists, anchors, attributes, and a few more things that I forget because one might take them for granted.
A move to commonmark would not be addressing the larger problem with markdown interoperability, which is that RFCXML needs more from an authoring language than markdown provides.
Few of the various features that needed to be invented for kramdown-rfc [1] are provided by commonmark.
One of the most important contributions by kramdown-rfc, painless reference management in the context of IETF documents, is situated to our usage.
I would also chalk up the input of structured data (“metadata”) using YAML as one of the successes.

The underlying kramdown library is run by a developer that shares the goal of compatibility for decades.
Only recently, a mild cleanup was made in the form of kramdown 2.x (adoption of which is still on the to-do list for kramdown-rfc because kramdown recently dropped PI support).
This of course meant that the author couldn’t wholesale adopt the changes made to markdown’s core by commonmark.
But, in reality, kramdown syntax is rather close to commonmark, outside of pathological cases (and the cases where commonmark is just missing needed functionality).

One of the less obvious sources of strength of kramdown-rfc is that it is implemented in less than 1800 lines of code.
This was possible because the kramdown library (an about an order of magnitude larger effort) is doing the heavy lifting.
(The first version of kramdown-rfc was done in less than a day.)
This means kramdown-rfc can be a community project, without the need for support staff.
This is something we might want to change at some point, but not without a really good reason.

Grüße, Carsten

[1]: https://github.com/cabo/kramdown-rfc2629/wiki/Syntax<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcabo%2Fkramdown-rfc2629%2Fwiki%2FSyntax&data=04%7C01%7Clrosenth%40adobe.com%7Ceb0a5ba25d4f442de8e108d8c97111bd%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637480834764385146%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=32q5amTwOJ6HCU3pVKiDfZWCnUBekCF8CMKu27CEx4M%3D&reserved=0>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.rfc-editor.org/pipermail/rfc-interest/attachments/20210205/b0e709e0/attachment.html>

More information about the rfc-interest mailing list