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

Đang mở
#398 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
markdown, typescript
Lĩnh vực
backend

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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

Ngôn ngữ chính
TypeScript
Star
86
Fork
69
Merge trung bình
6 phút
Pull request đã merge (30 ngày)
3

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của accordproject/markdown-transform

Tất cả issue của accordproject/markdown-transform

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.