2026년 3월 8일 일요일

[DokuWiki] 문서 폭을 좁게 만드는 TOC, 어떻게 할 것인가?

DokuWiki에서는 문서 내에 자동으로 TOC(table of contents, 목차)를 만들어 준다. TOC는 문서의 내용을 신속하게 파악하고 특정 위치로 빨리 이동하는데 큰 도움을 준다.


요즘은 ChatGPT를 써서 마크다운 문서를 만든 뒤 Commonmark Plugin을 써서 DokuWiki에 삽입하는 일이 많다. 마크다운 문서는 GitHub에 넣기에 좋고, 웹브라우저에서 쉽게 열리기 때문이다. DokuWiki에서는 새로 만든 문서를 <!DOCTYPE markdown>이라는 줄로 시작한 다음 마크다운 본문을 복사해서 넣으면 된다.

그런데 이렇게 만들어진 문서에서는 TOC가 끝나고 나서야 비로소 본문이 시작된다. 그래서 길게 여백이 생겨서 매우 보기가 좋지 않다. 왜 그럴까? Commonmark Plugin의 렌더링 방식 차이 때문이다. DokiWiki 문법으로 작성된 문서는 본문이 먼저 시작되고 TOC는 오른쪽에 float, 본문은 TOC 옆으로 자연스럽게 흐른다. 그러나 내가 사용한 Markdown wrapper div는 CSS 문제로 인해 이렇게 공백이 많이 생기는 것이다.

다음은 너무 긴 여백이 보기 흉해서 그림을 삽입한 것이다. TOC가 너무 길어지면, 그림도 별 소용이 없다.

글 원본 링크는 여기.

conf/userstyle.css에서 TOC를 나오지 않게 하면 어떤가? 하지만 이 방법은 위키 사이트 내의 모든 문서에서 TOC가 표시되지 않게 만들기 때문에 바람직한 해결책이 아니다. TOC를 표시하지 않을 문서를 일일이 css에 나열하거나 또는 네임스페이스 단위로 설정할 수 있다고는 하나 이것 또한 번거로운 일이다.

문서마다 개별적으로 자동 TOC를 나오게 하거나 혹은 나오지 않게 하면 가장 좋겠지만(문서 상단에 위키 매크로인 '~~NOTOC~~' 삽입), 현재 내가 쓰는 플러그인에서는 잘 먹지 않는다.

DokuWiki 안에서 Markdown을 쓰는 순간 위키 기능의 절반을 잃는다!

Markdown 문서는 구조화된 기술 관련 문서를 작성하기에는 최적의 방법은 아니다. 위키에 넣을 문서는 위키 문법으로 만들어 달라고 해야 되겠다.

오늘 이 문제를 해결해 보고자 ChatGPT와 더불어 노력을 해 보았으나 'futile cycle'만 돌고 말았다. 인공지능에 약간의 실망을 한 날이다.


댓글 없음: