Cicero Draft normalises indents to 3 spaces instead of the standard 4

Aperta
#398 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
markdown, typescript
Ambito
backend

Direzione di ricerca

Start by reading the cicero draft command path that formats template grammar output and trace where indentation is normalized. Reproduce with an indented list and sublist; the expected result is that their relative positions are preserved in the generated Markdown. The issue gives no file or test names, so first locate the command and its formatting tests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

maintainer-engaged

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:

  1. Create a simple template grammar which uses an indented list (see screenshot 1)
  2. Run cicero draft command (output is screenshot 2)
  3. 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: four spaces
2: three spaces
3: error

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

Lingua principale
TypeScript
Stelle
86
Fork
69
Merge medio
6m
PR unite (30g)
3

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di accordproject/markdown-transform

Tutte le issue di accordproject/markdown-transform

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.