-
-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Serializing mdast to markdown #64
Comments
No, this is not yet possible, as You can work on this. Though, it is involved work that takes a while. The good part is that everything has already been implemented in JavaScript. Finally, “complete” roundtripping ( |
Will this work? Passing on the 'serde_json' serialized format to mdast-util-to-markdown? |
perhaps |
I wrote a likely crummy implementation of this for a personal project here, would something like this make sense as a PR or a new crate? It passes a (much) weaker version of the proptest @Enoumy proposes, where string -> mdast -> string2 -> mdast -> string3 produces an equivalent string2 and string3 (assuming I understand how proptest works 😁 ) I don't think it covers all the possible nodes mdasts can include, and it applies some opinionated formatting. I also suspect this recursive approach is bad for performance. (I'm learning rust through this project, so I wouldn't be surprised to learn something about this code is very far from best practices) |
Nice start and welcome to rust :)
|
I'll leave this code in my own project then. I found this issue when I was already mostly done with this implementation, so I couldn't until it was too late. I'll take a look now, but I don't plan to write something new when I have something that works for me. Edit: if nothing else I need to copy the unsafe character support... |
@wooorm, do you know why wouldn't leveraging the |
“to string” is already a thing in the mdast world, getting just the text out. |
I see. I will try to work on a PR then 🙂. |
(Whoops accidentally hit enter before drafting a content for this question, my apologies for the noise!)
Hi! I have a perhaps newbie question! I can use
markdown::to_mdast
to go from&str
->Node
. Is it possible/is there a function to go back to a string - Node -> &str` - in a way that roundtrips?I came across
Node::to_string
, and it does seem to convert nodes into a string but it also deletes the links/titles/and most other ast nodes, which if re-parsed again, results in a different ast. Unsure if this question is reasonable/within the context of this crate, but is there an alternate function elsewhere that is round-trippable to/from&str <-> Node
? I am also happy to take a stab at implementing this "rountrippable" unparser function myself, but was wondering if a function like it already existed.For further clarification, by "roundtripping", I would be writing a property based test, like
markdown::to_mdast(to_string(node)) == node
be true for allnode
's.Thanks!
The text was updated successfully, but these errors were encountered: