<html>
<head>
<meta name="generator" content="Windows Mail 17.5.9600.20573">
<style><!--
.EmailQuote {
margin-left:1pt;
padding-left:4pt;
border-left:#800000 2px solid;
}
--></style><style data-externalstyle="true"><!--
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
}
p.MsoNormal, li.MsoNormal, div.MsoNormal {
margin:0in;
margin-bottom:.0001pt;
}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst, 
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle, 
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
}
--></style></head>
<body dir="ltr">
<div data-externalstyle="false" dir="ltr" style="font-family: 'Calibri', 'Segoe UI', 'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif';font-size:12pt;"><div style="color: rgb(0, 0, 0);">Parsing is all about syntactic analysis, a parser may well just return true and false depending on whether the input is syntactically correct or not.</div><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);">I’m not very comfortable about calling them libraries if they are actually executables or scripts. They are either one of them but not both. Like you pointed out, a _Markdown_ library consists of a parser and one or more formatters (bare in mind that formatters are responsible for transforming/translating something from internal memory, an instance, into a format that can be physically stored on external memory, hdd, and later retrieved (e.g.: formatting an instance to XML and later reconstructing the instance from that same XML, just like one would save a word document to a .docx file and later “opening” it to continue writing the same document)). Eventually the library will allow the user to write his own formatters (e.g.: your library has a html formatter but I want to save as pdf, I need a way to extend your library in my application to write my own pdf formatter without writing the parser all over again).</div><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);">Now the application/script that gets shipped with the library to make use of it from the command line is something apart from the library itself like you pointed out. How will this application/script be called since it can’t be parser or formatter? It does both things in a very specific order. I’m still willing to call it a translator because it takes file A and translates it to file B under a different format. The shipped application/script is nothing more than an _application_ to the Markdown library and if it’s open sourced it can serve as a tutorial for “here’s how you use this library”.</div><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);">A library must primarily expose an interface and one or more dlls that can be referenced and consumed. If it’s just an exe that does all the work then I’m hesitant to calling it a library. I know that CLI Assemblies are either .dll or .exe and both can act as libraries but the primary intent of an .exe is to be executed and maybe referenced not the other way around.<br></div><div style="color: rgb(0, 0, 0);" data-signatureblock="true"><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);">Andrei Fangli</div><div style="color: rgb(0, 0, 0);"><br></div></div><div style="padding-top: 5px; border-top-color: rgb(229, 229, 229); border-top-width: 1px; border-top-style: solid;"><div><font face=" 'Calibri', 'Segoe UI', 'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif'" style='line-height: 15pt; letter-spacing: 0.02em; font-family: "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 12pt;'><b>From:</b> <a href="mailto:waylan.limberg@icloud.com" target="_parent">Waylan Limberg</a><br><b>Sent:</b> ‎Sunday‎, ‎7‎ ‎September‎ ‎2014 ‎17‎:‎06<br><b>To:</b> <a href="mailto:markdown-discuss@six.pairlist.net" target="_parent">markdown-discuss@six.pairlist.net</a></font></div></div><div><br></div><div dir="auto"><div>Actually, on rereading my previous response, a realized that I also referred to it as a "library" (see <a href="http://en.m.wikipedia.org/wiki/Library_%28computing%29%29" target="_parent">http://en.m.wikipedia.org/wiki/Library_(computing))</a> which most (all?) markdown parsers are. So a "markdown editor" (a GUI app like MarkdownPad) would make calls to a "markdown library" to covert the markdown text typed by the user to HTML.</div><div><br></div><div><span>Strictly speaking, a library would generally consist of a "parser" and a "formatter". The parser parses the text ( identifies the different parts) and a formatter coverts those parts (the parse tree) into the final format. Therefore some libraries (like Pandoc) have multiple formatters, whereas others (most) only have one. Given the lack of choice of formatters, most people forget about the formatter part of the process. Thus the common </span><span style="background-color: rgba(255, 255, 255, 0);">nomenclature used is often "parser".</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">To add additional confusion most libraries also ship with a command line script which wraps the underlying library. That script usually defaults to parsing Markdown text and outputting HTML. So most people (perhaps incorrectly) think of that wrapping script as the final product and refer to the whole thing as the "parser".</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">So I would say that "library" is probably the technically correct term, but the generally accepted (and most widely understood) term is "parser".</span></div><div><br>Waylan Limberg</div><div><br>On Sep 7, 2014, at 9:39 AM, Waylan Limberg <<a href="mailto:waylan.limberg@icloud.com" target="_parent">waylan.limberg@icloud.com</a>> wrote:<br><br></div><blockquote style="margin-top: 0px; margin-bottom: 0px;"><div><div>I would have to agree with Andrei mostly. Those of us that have implemented markdown libraries generally refer to them as implementations of a **parser**. "Processor" or "translator" are not words I've ever seen used.<br><br>Waylan Limberg</div><div><br>On Sep 7, 2014, at 3:50 AM, Andrei Fangli <<a href="mailto:andrei_fangli@hotmail.com" target="_parent">andrei_fangli@hotmail.com</a>> wrote:<br><br></div><blockquote style="margin-top: 0px; margin-bottom: 0px;"><div>





<div style="color: rgb(0, 0, 0);">Hi,</div><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);">I think not. When I hear Markdown processor I think of a specialized word/text processor (see <a href="http://en.wikipedia.org/wiki/Word_processor" target="_parent">http://en.wikipedia.org/wiki/Word_processor</a>) which is more an application that helps you write stuff and print it, eventually export it to html. If you were to write an application that helps you write documents (e.g.: insert list, quote etc. via buttons/commands) and use Markdown as the underlying format would be a Markdown processor. If you would write an application that translates a Markdown document to html, that would be a Markdown translator and the whole process would be called translation (or Markdown to Html Translation). See <a href="http://en.wikipedia.org/wiki/Translation" target="_parent">http://en.wikipedia.org/wiki/Translation</a>.</div><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);">For me, Markdown implementation sounds a bit odd. Markdown is not standardized nor is its specification clear enough to draw a deterministic procedure for translating Markdown into html (or an Abstract Syntax Tree). You cannot say that there are multiple Markdown implementations if they do not yield the same output for any given input (if you would then I could swap implementations however I wish and get the same result).</div><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);">I’d simply name the specification (or flavour) and append “Translator” at the end (e.g.: Github flavoured Markdown Translator, Common Markdown Translator etc.). That way it’s all clear what specification is used and what the intent of the application is. The real working horse behind a translator is a parser, once you have that you can pretty much do anything else. Saying that you have a Markdown parser is almost the same as saying that you have a Markdown translator, the remaining effort is close to a days work if you want to make it really fancy.</div><div style="color: rgb(0, 0, 0);"><br></div><div style="color: rgb(0, 0, 0);"><div style="color: rgb(0, 0, 0);">Andrei Fangli</div></div><div style="color: rgb(0, 0, 0);"><br></div><div style="padding-top: 5px; border-top-color: rgb(229, 229, 229); border-top-width: 1px; border-top-style: solid;"><div><font face=" 'Calibri', 'Segoe UI', 'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif'" style='line-height: 15pt; letter-spacing: 0.02em; font-family: "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 12pt;'><b>From:</b> <a href="mailto:dev+ietf@seantek.com" target="_parent">Sean Leonard</a><br><b>Sent:</b> ‎Sunday‎, ‎7‎ ‎September‎ ‎2014 ‎02‎:‎55<br><b>To:</b> <a href="mailto:markdown-discuss@six.pairlist.net" target="_parent">markdown-discuss@six.pairlist.net</a></font></div></div><div><br></div><div dir="">
<div class="PlainText">Hello Markdown World,<br>
<br>
Last month draft-seantek-text-markdown-media-type was adopted by the <br>
IETF Apps Area Working Group (APPSAWG). I am working on revising it.<br>
<br>
I am trying to use uniform terms. An implementation that converts <br>
Markdown content to another format--most typically HTML--is called...a <br>
Markdown processor, right?<br>
<br>
I have been using the term "Markdown processor". Just want to see if <br>
there is substantial disagreement about using that term to refer to the <br>
collective set of Markdown implementations out there.<br>
<br>
Thanks,<br>
<br>
Sean<br>
<br>
PS I suppose it could also be called a "Markdown implementation". But <br>
I'm going to stick to my original nomenclature in the absence of a push <br>
for something else. For instance, graphical tools such as [MarkdownPad] <br>
may be implementations of Markdown, but they are not processors. <br>
MarkdownPad is a Markdown editor, that has built-in support for various <br>
Markdown processors (such as a GitHub Flavored Markdown processor, and a <br>
Markdown Extra processor).<br>
<br>
[MarkdownPad]: <a href="http://markdownpad.com/" target="_parent">http://markdownpad.com/</a><br>
<br>
_______________________________________________<br>
Markdown-Discuss mailing list<br>
<a href="mailto:Markdown-Discuss@six.pairlist.net" target="_parent">Markdown-Discuss@six.pairlist.net</a><br>
<a href="http://six.pairlist.net/mailman/listinfo/markdown-discuss" target="_parent">http://six.pairlist.net/mailman/listinfo/markdown-discuss</a><br>
</div>


</div>


</div></blockquote><blockquote style="margin-top: 0px; margin-bottom: 0px;"><div><span>_______________________________________________</span><br><span>Markdown-Discuss mailing list</span><br><span><a href="mailto:Markdown-Discuss@six.pairlist.net" target="_parent">Markdown-Discuss@six.pairlist.net</a></span><br><span><a href="http://six.pairlist.net/mailman/listinfo/markdown-discuss" target="_parent">http://six.pairlist.net/mailman/listinfo/markdown-discuss</a></span><br></div></blockquote></div></blockquote><blockquote style="margin-top: 0px; margin-bottom: 0px;"><div><span>_______________________________________________</span><br><span>Markdown-Discuss mailing list</span><br><span><a href="mailto:Markdown-Discuss@six.pairlist.net" target="_parent">Markdown-Discuss@six.pairlist.net</a></span><br><span><a href="http://six.pairlist.net/mailman/listinfo/markdown-discuss" target="_parent">http://six.pairlist.net/mailman/listinfo/markdown-discuss</a></span><br></div></blockquote></div></div>
</body>
</html>