인터프리터는 본문을 무엇으로 읽을지 고르는 장치입니다. 같은 글자라도 어느 인터프리터가 읽느냐에 따라 위키 문법이 되기도 하고, Markdown 이 되기도 하고, 표나 다이어그램이 되기도 합니다.
Macro가 문서 안에서 짧은 기능 하나를 부르는 것이라면, 인터프리터는 그 구간의 문법 자체를 바꿉니다. 매크로는 문장 사이에 끼워 넣고, 인터프리터는 문서나 구간을 통째로 맡깁니다.
문서 첫 줄에 Shebang(#!)과 이름을 적습니다. 첫 줄이 #!Markdown 이면 그 문서 전체가 Markdown 으로 읽힙니다.
지정하지 않으면 InterpreterWiki 입니다.
대괄호 3개로 감싼 구간은 그 안의 첫 줄이 가리키는 인터프리터가 읽습니다. 아래는 왼쪽이 쓴 것, 오른쪽이 그려진 것입니다.
| Raw | Preview | ||||||
|---|---|---|---|---|---|---|---|
[[[#!Table tsv 1 이름 설명 가 첫째 줄 나 둘째 줄 ]]] |
|
구간 안의 기본값은 InterpreterText 입니다. 문서 기본값(Wiki)과 다릅니다 — 이름 없이 감싸면 위키 문법으로 읽지 않고 쓴 글자 그대로 나옵니다(백틱은 예외 — 아래 구간 안의 백틱). 단, 첫 줄이 #!var · #!read · #!write · #!redirect 같은 디렉티브이면 Text 가 아니라 위키 문법으로 읽고, 그 #! 줄들은 화면에 나오지 않습니다. 이런 줄을 보여 주려면 [[[#!Vim text 로 감쌉니다.
구간은 하나씩 따로 편집됩니다. 그려진 구간마다 그 구간의 줄 범위를 가리키는 편집 링크가 붙어서, 긴 문서에서도 표나 차트 하나만 열어 고칠 수 있습니다.
이름 다음의 낱말들은 그 인터프리터에게 넘어갑니다.
#!Vim scala - InterpreterVim 에게 scala#!Table tsv 1 - InterpreterTable 에게 tsv 와 1이름은 대소문자를 가리지 않습니다. #!table, #!Table, #!TABLE 이 모두 같습니다. 2026-09-12 전에는 #!Vim 과 #!Schema 만 이 표기 그대로 써야 했습니다 — #!vim 은 Error! 를 냈고, #!schema 는 페이지 전체를 오류로 끝냈습니다.
문서 맨 위의 #! 줄은 여러 개 이어 쓸 수 있고, 인터프리터 이름이 아닌 것도 섞입니다. redirect, var, read, write 는 인터프리터를 찾을 때 건너뜁니다 — 그래서 #!redirect 를 적은 문서가 redirect 라는 인터프리터를 찾다가 실패하는 일이 없습니다.
#!read 와 #!write 는 이름만 남아 있고 권한 판정에는 더 이상 쓰이지 않습니다. AccessControl 을 보세요.
Interpreter not found. 오류 상자에 쓴 그대로가 다시 나옵니다. Macro 의 인자 오류와 같은 방식이라, 어느 구간의 어느 이름이 문제인지 문서에서 바로 보입니다.
닫는 ]]] 를 빠뜨려도 오류는 나지 않습니다. 여는 괄호는 그 뒤 처음 나오는 ]]](보통 다음 구간의 것)와 짝이 되어, 사이의 글과 다음 구간의 여는 줄까지 한 구간으로 먹힙니다. 뒤에 ]]] 가 하나도 없을 때만 여는 괄호부터 문서 끝까지가 본문 글자가 됩니다. 구간이 이상하게 보이면 닫는 괄호부터 찾으세요.
인터프리터가 예외를 내면 그 구간 자리에 #!이름 failed - 예외 오류 상자가 나오고, 문서의 나머지는 그대로 그려집니다. 예외 전체는 서버 로그에 남습니다. 2026-09-26 전에는 구간 하나의 예외가 문서 전체를 500 으로 만들었습니다 — 빈 #!Map 하나, vi 를 못 부른 #!Vim 하나가 그 문서의 다른 구간까지 전부 안 보이게 했습니다. 소유자가 «실패하지 않기로» 정해서, 못 찾은 이름과 같은 방식으로 상자에 담습니다. 매크로도 같습니다(Macro).
리터럴 구간 안의 백틱은 쓴 그대로 나옵니다. [[[#!Text · [[[#!Vim 구간, InterpreterWikiSyntaxPreview 의 Raw 칸, 그리고 Text 로 읽히는 이름 없는 [[[...]]] 구간에서는 백틱이 코드로 바뀌지 않고 쓴 글자 그대로 보입니다. 백틱은 문서 전체에서 구간보다 먼저 처리되지만(백틱 안의 [[[ 와 {{변수}} 를 지키려는 것), 리터럴 구간은 그 처리에서 비켜 둡니다. 2026-05-30~2026-09-15 사이에는 그 범위가 구간 안까지 닿아 코드 모양(백틱 둘이면 복사 상자)으로 나왔었습니다.
본문을 그대로 넘기는 구간도 마찬가지입니다. #!Kanban · #!Gantt · #!Mermaid · #!Math · #!Html 은 본문을 브라우저 쪽이나 페이지에 그대로 넘깁니다. 넘기기 전에 백틱을 코드로 바꾸면 Mermaid 다이어그램이나 MathJax 수식, 직접 쓴 HTML 안에 <code> 가 들어갑니다. 가장 나빴던 것은 Kanban 입니다 — 보드는 그려진 본문을 태그를 떼고 읽어서, 다음 보드 저장이 백틱을 지운 채로 문서를 다시 썼습니다. 2026-09-25 부터 이 다섯도 백틱을 그대로 둡니다. 카드 글은 어차피 보드가 AhaMark 로 다시 그리므로, 백틱이 코드로 보이는 것은 거기서 일어납니다(InterpreterKanban).
위키형 구간(#!Quote · #!Table · #!Fold 등)은 본문을 다시 위키로 읽으므로, 그 안의 백틱은 예전과 같이 코드로 나옵니다. #!Markdown 도 그대로 둡니다 — txtmark 이 같은 코드 모양을 만들기 때문에 바꿀 이유가 없습니다. 문장 안에서도 백틱 둘로 감싸 코드로 보여 줍니다 — Copied!!.
Similar pages by cosine similarity. Words after page name are term frequency.