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.3.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

prosemirror_py_converter-0.3-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for prosemirror-py-converter-0.3.tar.gz
Algorithm Hash digest
SHA256 650be9881beea21e9ac079dfcdad16c8000339906f9024a92a995b1a67be4283
MD5 8d24f55103fe94665bac4e24c58bdb6b
BLAKE2b-256 6310f70e032d6cf060c3b1acb4ee517b8fde1643ab34ecbf1862c614e23b5ffd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for prosemirror_py_converter-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2395eb34bb67a7da44443d89755cd3b7d6b74b615c67b9e2c0187d5056164e84
MD5 ae745899044c7c249607c958ff26568c
BLAKE2b-256 c2555885cf8bf51245228b4b90fa9e06a926736d6ab4b00c2dfa0619136deabe

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