A better implementation of craft blocks to Markdown transformation methods

Craft’s markdown api has the following problems:
1. Nested lists are not supported.
2. The order of Nested blockquote and is incorrectly.
3. only the latter will be recognized as a reference block.
4. urlBlock (may called ‘bookmark’?) will be recognized as a link(in this function, you can custom render tag of jekyll, you can modify this as you wish)
5. no language add after blockcode ```

Note:
1. not support toggle/formula, because markdown not support those too, but you can make it.
2. I use this function for may jekyll blog workflow, you can modify it to fit your workflow.
3. caption(#####) is used for image caption if it is right next to the image(in my case, it not render as ###### xxx).
Usage: use craft.dataApi.getCurrentPage() first, get the result, then invoke result.subblocks.map(craftBlockToMarkdown).filter(Boolean).join('\n') to get the markdown

more detail see github gist: craftBlockToMarkdown · GitHub

Thanks @Xheldon! Since the Developer Preview of Craft eXtensions we’re reviewing how they can be improved before we launch them in any other capacity. Feedback like this helps, thank you!

I love the work @Xheldon did, it really gives me more reason to use craft longer.

For this issue, I register an account, just for leaving my opinion here. I paid for one year immediately after i spend 1-3 days in using craft and introduce it to my friends. After using more, I am getting very upset about the usage of:

  • terrible feeling of recroding code snippets here (you have to click many times to enter the editor ;D)
  • terrible feeling when copy/paste sections which contains table/link (it will come up with markdown value when pasting in other app)

well, dev extension seems very exciting, but then to me to goes back to the road of logseq. As of me (only my own opinion again), I was searching a lot, want to simply pay for something to resolve my record problem (basically what I want to is Notion + Better Better Offline DB), now if it comes back to “dev extension” — means I have to pay more time to resolve the problem, pay for membership doesnt work simply ---- then I am very floating these days.

sorry for above such many wordings, thanks for @Xheldon 's work again, i love it, marked your blog in my todo list but…

(to Craft’s team) Now I simply dont want to pay more time for just “recording something” (in a tool’s layer), over engineer sometimes, tiring.