Pandoc에서 Markdown에서 HTML로 변환하면 글머리 기호 중첩이 반영되지 않습니다.

2406 단어 PandocMarkdown

TL;DR



Pandoc에서 Markdown에서 HTML로 변환했을 때, 글머리 기호의 중첩이 반영되지 않는(모두 플랫이 되어 버린다) 원인은, Pandoc가 공백 4개의 들여쓰기를 기대하고 있어, 공백 2개의 들여쓰기를 무시하기 때문.

문제



VSCode에서 Markdown 문서를 작성해 봅니다. 이런 느낌.
# This is test

* test
  * test1
  * test2

미리보기 화면을 보더라도 문제 없습니다.



그러나 Pandoc로 변환하면 중첩이 사라집니다.
$ pandoc -s test.md -o test.html



원인



원인은, Pandoc가 리스트의 들여쓰기로서 「공백 4개」를 디폴트로 하고 있기 때문. 그러므로, 공백 4개로 쓰면 좋지만, 그렇다면 markdownlint에 분노해 버린다. VSCode에서 Markdown 문서를 쓸 때 markdownlint를 넣고 있는 사람은 많다고 생각한다. 이 markdownlint의 디폴트의 들여쓰기가 「공백 2개」가 되어 있다. 그래서 공백 4개로 하면 화난다.



해결책



해결책은 간단하고, markdownlint의 설정을 「들여쓰기는 공백 4개」로 하면 된다. 알맞은 장소에 .markdownlint.json를 쓰면 좋다.

.markdownlint.json
{
  "MD007": {
    "indent": 4
  }
}

요약



markdownlint의 들여쓰기의 기본값이 2, pandoc가 4이고 pandoc에 "들여쓰기 2"글머리 기호를 먹여도 아무것도 메시지를 보내지 않기 때문에 중첩된 글머리 기호가 평평하다는 것을 잠시 깨닫지 못하는 사람 도 있는 것이 아닐까 생각한다(예를 들어 나). 다른 사람들이 같은 실수를하지 않도록 여기에 경험을 제공하십시오.

덧붙여서 markdownlint의 issue에서도 들여쓰기를 2로 할지 4로 할지 논의가 되고 있는 것 같네요. → MD007: default value of 2 vs. 4 spaces

좋은 웹페이지 즐겨찾기