8
$\begingroup$

Is there already a markdown to XML parser implemented in Mathematica? I wrote a one for my pelican rewrite, but realized I should have asked here first. Mine is almost certainly faulty in a few major ways (I just don't know them yet) and would much rather use some one else's if it exists.

$\endgroup$
  • $\begingroup$ I do not think Mathematica has a ton of support for Markdown in any capacity. Maybe someone knows something I do not though. $\endgroup$ – user6014 Aug 28 '17 at 2:21
  • $\begingroup$ @user6014 I'm pretty sure there's no native implementation for anything. It would be nice, but also something of a blow given the amount of time I've sunk implementing this kind of thing. I was more wondering if the community had some gold-standard markdown parser. $\endgroup$ – b3m2a1 Aug 28 '17 at 2:48
  • $\begingroup$ Most of the discussions I have seen on MSE are about the other direction: from Mathematica to Markdown. You might find some useful ideas in this answer of "CSS Selectors for Symbolic XML". $\endgroup$ – Anton Antonov Aug 28 '17 at 13:21
  • $\begingroup$ @AntonAntonov the issue is less doing it myself as I've already done that. I more wanted to know if someone else has done it better. But that answer on CSS selectors is very useful. I will need to remember that one. $\endgroup$ – b3m2a1 Aug 28 '17 at 15:20
  • $\begingroup$ If you really need this (for using, not self-education), I would write a wrapper for some established library. Or why not just use the XHTML produced by the original application: daringfireball.net/projects/markdown $\endgroup$ – masterxilo Sep 4 '17 at 16:17
4
$\begingroup$

To get the ball rolling, here's my incomplete parser.

And here's a minimal markdown sample.


This is what my markdown parser makes of it, used like so:

CloudExport[
 MarkdownToXML[
   Import["https://raw.githubusercontent.com/b3m2a1/mathematica-BTools/\
 master/Resources/Templates/PacletServer/content/pages/About.md",
    "Text"
    ],
  "StripMetaInformation" -> False
  ],
 "HTML",
 "user:b3m2a1.testing/mdtest.html",
 Permissions -> "Public"
 ]

CloudObject["https://www.wolframcloud.com/objects/b3m2a1.testing/mdtest.html"]

(Note that it will strip that meta-information header block by default, hence the "StripMetaInformation"->False)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.