Hello - I’ve been hacking on wrap(1) and wrapc(1) that are text and source-code-comment reformatters, respectively, for a long time. I started them to scratch my particular itch, namely the ability to easily rewrap text (and, in particular, comments in source code) while in an editor. See:
https://github.com/paul-j-lucas/wrap The relevance for this mailing list is that I’ve recently completed adding Markdown support since source-code-comment-formatting tools like Doxygen now support Markdown. Unlike other Markdown formatters that convert Markdown into some other format (typically HTML), wrap does source-to-source reformatting, i.e., it rewraps Markdown text into nicer-looking Markdown text. For example, if I had a Markdown comment like: // // While blank lines don't change state directly, we do have to keep track of // when we've seen one because: // // + They help determine whether the line after the blank line is a // continuation of the current state based on indentation. // + They disambiguate "---" between a Setext 2nd-level header and a // horizontal rule. // and then I edit the comment by inserting text into the second bullet: // // While blank lines don't change state directly, we do have to keep track of // when we've seen one because: // // + They help determine whether the line after the blank line is a // continuation of the current state based on indentation. // + They disambiguate "---" between a Setext 2nd-level header (that has to have a text line before it) and a // horizontal rule (that doesn't). // then the text of the bullet is too long. To make it look nice, ordinarily I’ve have to insert a newline, add another //, and join the second line of the bullet. Instead, while in vim (after having bound the key sequence `c for wrap comment), I can just type said sequence while the cursor is in that comment and it will instantly reformat the comment to: // // While blank lines don't change state directly, we do have to keep track of // when we've seen one because: // // + They help determine whether the line after the blank line is a // continuation of the current state based on indentation. // + They disambiguate "---" between a Setext 2nd-level header (that // has to have a text line before it) and a horizontal rule (that // doesn't). // - Paul _______________________________________________ Markdown-Discuss mailing list Markdown-Discuss@six.pairlist.net https://pairlist6.pair.net/mailman/listinfo/markdown-discuss