How to create a tree from a markdown file?

Viewed 1528

I would like to create a tree from a markdown file using Python. From what I have researched, it seems that I can use Python's markdown module to do this.

For example by using this file: https://github.com/Python-Markdown/markdown/blob/master/markdown/treeprocessors.py

I am stuck because I am not sure how to access the modules which Python-Markdown have not quite exposed to end users.

Here is what I would like to do for an example Markdown file:

# Heading 1

## Heading 2

Line 1
- Bullet 1
  - Bullet 1.1

I would like to be able to receive an output that has a structure something like this:

tree = process_markdown(markdown_text)

And tree[0].title can contain "# Heading 1" and tree[0].value can contain the entire markdown text inside of "# Heading 1" and including "#Heading 1".

Likewise, tree[0][0].title be equal to "## Heading 2".

Would ideally also be able to have a tree element represent "- Bullet 1" and the sub-bullet be included in the text in the value of that tree element.

I hope this makes sense. Now, I believe this can be obtained using the functions/classes in Python-Markdown but I am not able to figure out the syntax of those inside functions as to how to extract it.

Edit:

  1. As I was researching further, stumbled upon the documentation for creating extensions for Python-Markdown. And in there is this reference to tree - https://python-markdown.github.io/extensions/api/#working_with_et. I can tell that this is what I think I need to figure out how to use, but still unable to because not able to figure out the syntax and how to use the related functions in Python-Markdown.
  2. This question from 2014 is similar. The first answer there suggests Mistune, however, mistune does not seem to create the tree either.
0 Answers
Related