vim-pandoc / vim-pandoc-syntax

pandoc markdown syntax, to be installed alongside vim-pandoc
MIT License
425 stars 61 forks source link

Misidentified headers #338

Open heyrict opened 4 years ago

heyrict commented 4 years ago

Related issue: #95

I'd request reverting 634d830b0f73fea73526d4ea294cb3f33a4e79ef in this issue. In contrast to the original issue, headers do not have to be preceded by a blank line in markdown actually.

Here is an example:

# 1
## 2
B

##3
C
## 4
D

With default markdown parser (pandoc temp.md -t json), header 1, 2 are both valid headers.

{
  "blocks": [
    {
      "t": "Header",
      "c": [1, ["section", [], []], [{ "t": "Str", "c": "1" }]]
    },
    {
      "t": "Header",
      "c": [2, ["section-1", [], []], [{ "t": "Str", "c": "2" }]]
    },
    { "t": "Para", "c": [{ "t": "Str", "c": "B" }] },
    {
      "t": "Para",
      "c": [
        { "t": "Str", "c": "##3" },
        { "t": "SoftBreak" },
        { "t": "Str", "c": "C" },
        { "t": "SoftBreak" },
        { "t": "Str", "c": "##" },
        { "t": "Space" },
        { "t": "Str", "c": "4" },
        { "t": "SoftBreak" },
        { "t": "Str", "c": "D" }
      ]
    }
  ],
  "pandoc-api-version": [1, 20],
  "meta": {}
}

With Original strict markdown (pandoc temp.md -f markdown_strict -t json), all the four headers are valid.

{
  "blocks": [
    { "t": "Header", "c": [1, ["", [], []], [{ "t": "Str", "c": "1" }]] },
    { "t": "Header", "c": [2, ["", [], []], [{ "t": "Str", "c": "2" }]] },
    { "t": "Para", "c": [{ "t": "Str", "c": "B" }] },
    { "t": "Header", "c": [2, ["", [], []], [{ "t": "Str", "c": "3" }]] },
    { "t": "Para", "c": [{ "t": "Str", "c": "C" }] },
    { "t": "Header", "c": [2, ["", [], []], [{ "t": "Str", "c": "4" }]] },
    { "t": "Para", "c": [{ "t": "Str", "c": "D" }] }
  ],
  "pandoc-api-version": [1, 20],
  "meta": {}
}