nextjournal / markdown

A cross-platform clojure/script parser for Markdown
ISC License
46 stars 6 forks source link

markdown parser drops important information causing asymmetric read/write #22

Open timothypratley opened 9 months ago

timothypratley commented 9 months ago

Given an input markdown file, important information is lost

(def text (slurp "md/try-again.md"))
(def doc (md/parse text))
(def result (mdt/->text doc))
(spit "md/try-again2.md" result)

(deftest ttt
  (is (= result text)))
;=> fail
  1. HTML tagged sections are removed
  2. The original text is not preserved (only the content)

It would be useful to preserve the original text (for the same reasons clj-rewrite exists).

I'm trying to convert a Markdown file into a Clojure namespace by just putting comments around everything that is not code, and stripping the blocks around the code, but reproducing the Markdown is not straight forward.

zampino commented 9 months ago

The purpose of n.m.transform/->text is not to rebuild the markdown syntax behind a node.

There's been some work to do the conversion from data back to markdown text that I'd like to resume at some point. Thanks for the reminder :-).

I'm trying to convert a Markdown file into a Clojure namespace

That's covered in a notebook based on the above pr and could possibly land into Clerk in the future.

timothypratley commented 8 months ago

Thank you @zampino