markdown-transform
markdown-transform copied to clipboard
Cicero Draft normalises indents to 3 spaces instead of the standard 4
Describe the bug Running cicero draft over a template grammar file to create a sample.md file results in indents being normalised to only having three spaces. This can result in inconsistencies in certain implementations where a list item were intended to be sublists but are instead normalised to being on the same level.
From the CommonMark standard: "the position of the text after the list marker determines how much indentation is needed in subsequent blocks in the list item. If the list marker takes up two spaces, and there are three spaces between the list marker and the next non-whitespace character, then blocks must be indented five spaces in order to fall under the list item."
To Reproduce Steps to reproduce the behavior:
- Create a simple template grammar which uses an indented list (see screenshot 1)
- Run cicero draft command (output is screenshot 2)
- Attempt to view resultant markdown file (the VSCode default 'preview' for example) (see screenshot 3)
Expected behavior Relative position of lists and sublists established in the template grammar should be preserved.
Screenshots
1:
2:
3:
Further context From the CommonMark spec: "Indentation. If a sequence of lines Ls constitutes a list item according to rule accordproject/cicero#1, accordproject/cicero#2, or accordproject/cicero#3, then the result of indenting each line of Ls by 1-3 spaces (the same for each line) also constitutes a list item with the same contents and attributes. If a line is empty, then it need not be indented."
See the significant discussion on this point in the commonmark spec
This issue should be discussed and addressed in the markdown-transform project, which powers the draft and parse commands (or generally any markdown-related processing). I'm transferring this issue there.