tommoor / slate-md-serializer

A Markdown serializer for the Slate editor framework
MIT License
64 stars 36 forks source link

slate → md → slate (lossy data conversion) #9

Closed signalwerk closed 6 years ago

signalwerk commented 6 years ago

TL;DR:

slate-paragraph: # Hellomd: # Hello instead of md: \# Hello

Details

If someone is writing in the slate Editor a Markdown-Command (img, link, ...) it doesn't get escaped when converting to md. This is an edge-case I know...

I write # Hello and get in JSON

{
  "object": "value",
  "document": {
    "object": "document",
    "data": {},
    "nodes": [
      {
        "object": "block",
        "type": "paragraph",
        "isVoid": false,
        "data": {},
        "nodes": [
          {
            "object": "text",
            "leaves": [
              {
                "object": "leaf",
                "text": "# Hello",
                "marks": []
              }
            ]
          }
        ]
      }
    ]
  }
}

The markdown is then: # Hello but that parsed again leads to

{
  "object": "value",
  "document": {
    "object": "document",
    "data": {},
    "nodes": [
      {
        "object": "block",
        "type": "heading1",
        "isVoid": false,
        "data": {},
        "nodes": [
          {
            "object": "text",
            "leaves": [
              {
                "object": "leaf",
                "text": "Hello",
                "marks": []
              }
            ]
          }
        ]
      }
    ]
  }
}

The written md should be \# Hello