Skip to main content

Python simple implementation of converting ProseMirror doc to markdown

Project description

prosemirror-py-converter

中文指引

Python simple implementation of converting ProseMirror doc to markdown

Core features

  • Based on ProseMirror basic model
  • Support custom extension
  • ProseMirror document converter: Json to Markdown in ProseMirror format
  • Mainly used for data analysis and display after spider ProseMirror documents.

Quick start

  • Install prosemirror-py-converter
pip3 install prosemirror-py-converter
  • Convert ProseMirror document to Markdown
from pmconverter import prose2markdown

doc = {
     "type": "doc",
     "content": [
         {
             "type": "heading",
             "attrs": {
                 "level": 3
             },
             "content": [
                 {
                     "type": "text",
                     "text": "Example heading."
                 }
             ]
         }
     ]
}
print(prose2markdown(doc))
  • output markdown
### Example heading.

Standard ProseMirror implementation

mark type list

  • link
  • bold
  • strong
  • code
  • italic
  • strike
  • subscript
  • superscript
  • underline

node type list

  • doc
  • heading
  • paragraph
  • image
  • bullet_list
  • ordered_list
  • table
  • blockquote
  • code_block
  • hard_break
  • horizontal_rule

Custom ProseMirror extension examples

iwiki doc converter

  • custom mark converter example
from pmconverter.basic_model import CommonSimpleMark
from pmconverter.model_factory import register_mark_class


class CustomMark(CommonSimpleMark):

    def __init__(self):
        super().__init__()
        self.type = "custom_mark"
        self.md_pre_mark = "<u>"
        self.md_after_mark = "</u>"


register_mark_class("custom_mark", CustomMark)
  • custom node converter example
from pmconverter.basic_model import Node
from pmconverter.model_factory import register_node_class


class CustomeImage(Node):

    def __init__(self):
        super().__init__()
        self.type = "custom_image"

    def convert_to_markdown(self, **kwargs) -> str:
        name = self.get_attr("name", "")
        url = self.get_attr("url", "")
        return f"![{name}]({url})"
        

register_node_class("custom_image", CustomeImage)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prosemirror-py-converter-0.2.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

prosemirror_py_converter-0.2-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file prosemirror-py-converter-0.2.tar.gz.

File metadata

File hashes

Hashes for prosemirror-py-converter-0.2.tar.gz
Algorithm Hash digest
SHA256 de6962591f9a88d478200c96aa9ad07ae7cbfadf8d32196290884d6aedd74aa1
MD5 29fd97a05a346ff78ff5ebfcb117b525
BLAKE2b-256 2e0a926cc6295f1b7e3dd1a8cbc8828401000868bce223d5354ab08d59cb87dd

See more details on using hashes here.

File details

Details for the file prosemirror_py_converter-0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for prosemirror_py_converter-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2c630f14e456d77c101bf61ea745716b3b844aed1eeec87208c058fa1edaed48
MD5 ee8d8360df6ca78d6fda2ad279acaa2f
BLAKE2b-256 61c45df6f2b63ccb5a01cf2056686b66dd99d0338a9834ccfd993f6f4763a218

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page