Skip to content
created by Aha00aAha00a at 2026-10-25
last modified by Aha00aAha00a at 2026-10-25
revision: 1

Blame of PageTemplate

older newer
DateTime Nickname Rev # Content Comment
2026-10-25T14:41:37 Aha00aAha00a 1 0 = PageTemplate Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 1 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 2 새 페이지를 빈 `= 이름` 대신 미리 만들어 둔 틀에서 시작하게 합니다. 옵시디언의 Templates, 노션의 데이터베이스 템플릿과 같은 쓰임입니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 3 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 4 == 템플릿은 그냥 페이지입니다 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 5 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 6 이름이 `Template:` 로 시작하는 페이지가 템플릿입니다(`Template:Person`, `Template:Restaurant Review`). 위키에서 따로 다루는 것이 없습니다 — 일반 페이지처럼 AhaMark 로 쓰고, 같은 권한·이력·링크를 가집니다. 템플릿을 페이지로 둔 까닭이 그것입니다: 고치고 검토하고 링크하는 방법이 따로 없습니다. 템플릿을 안 쓰는 위키는 그런 페이지가 없을 뿐입니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 7 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 8 [[[#!Vim text Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 9 = {{PageName}} Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 10 작성일 {{Date}} Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 11 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 12 == 메모 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 13 ]]] Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 14 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 15 속성을 미리 적어 두려면 `#!Schema` 블록을 그 안에 그대로 쓰면 됩니다(`name {{PageName}}` 처럼 이름 칸에도 토큰을 쓸 수 있습니다). Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 16 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 17 == 쓰는 법 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 18 * '''없는 페이지 화면'''에 «create from template: 이름» 이 템플릿마다 한 줄씩 나옵니다. 누르면 그 이름의 편집 화면이 템플릿 내용으로 채워진 채 열립니다. 읽을 권한이 없는 템플릿은 목록에 나오지 않습니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 19 * 주소로 바로 열려면 `/w/새 페이지?action=edit&template=Template:Person`. 이 주소를 문서 안에 링크로 걸어 두면 «새 사람 추가» 같은 버튼이 됩니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 20 * 저장하기 전까지는 아무것도 만들어지지 않습니다. 템플릿으로 연 편집 화면도 새 페이지의 편집 화면과 같습니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 21 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 22 == 채워지는 것 두 가지 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 23 템플릿을 연 순간 이 둘이 바뀝니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 24 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 25 [[[#!Table tsv 1 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 26 토큰 바뀌는 것 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 27 `{{PageName}}` 만드는 페이지의 이름 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 28 `{{Date}}` 오늘 날짜(`2026-10-25` 꼴) Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 29 ]]] Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 30 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 31 '''이 둘뿐이고, 다른 `{{이름}}` 은 그대로 둡니다.''' 새 페이지가 쓰려는 변수([Variable])일 수 있어서, `{{...}}` 를 전부 채우는 템플릿은 그런 변수를 아무 말 없이 깨뜨립니다. 채우는 것은 만들 때 한 번이고, 그 뒤 템플릿을 고쳐도 이미 만든 페이지는 바뀌지 않습니다 — 복사이지 포함이 아닙니다(포함은 [MacroInclude]). Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 32 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 33 == 정한 것과 그 이유 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 34 * '''자동으로 고르지 않습니다.''' «`Person` 이름이면 `Template:Person`» 같은 짐작을 하지 않고, 사람이 고릅니다. 이름과 틀이 맞는다는 보장이 없고, 틀린 짐작은 눈에 안 띄게 엉뚱한 내용으로 시작합니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 35 * '''`?template=` 이 없으면 종전대로입니다.''' 날짜 페이지(`2026-10-24`)와 `--MM-DD` 페이지는 기본 내용, 나머지는 `= 이름` 한 줄. 템플릿은 사람이 명시했을 때만 그것들을 이깁니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 36 * '''`Template:` 이 아닌 이름은 `?template=` 로 줘도 무시합니다.''' 아무 페이지나 새 페이지의 틀로 복사하는 길을 열지 않으려는 것입니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 37 * 자리 표시자 문법을 더 늘리지 않았습니다(`{{Title}}` 별칭, 날짜 형식 지정 등). 필요가 생기면 그때 더합니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 38 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 39 == 아직 없는 것 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 40 * 편집 화면 안의 «템플릿 고르기» 상자. 지금은 없는 페이지 화면과 주소로만 시작합니다. CodeMirror 의 내용을 바꾸는 쪽이라 따로 다듬어야 해서 미뤘습니다. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 41 * 이미 있는 페이지에 템플릿을 넣는 것. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 42 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 43 == 구현 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 44 `PageTemplate`(순수 함수: 이름 판별, 토큰 채우기)이 규칙을 갖고, `Wiki.view` 의 새 페이지 편집 분기가 `?template=` 을 읽으며, `WikiSnippet.notFound` 가 목록을 그립니다. `PageTemplateSpec`·`WikiSnippetSpec` 이 확인합니다 — 특히 템플릿이 없을 때 목록 중간에 빈 줄이 끼어 목록이 끊기지 않는 것과, 템플릿 이름에 든 `)`·태그가 매크로를 끝내거나 태그를 여는 것을 막는 것. Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 45 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 46 == 관련 Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 47 * [MacroInclude] Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 48 * [Variable] Add PageTemplate page
2026-10-25T14:41:37 Aha00aAha00a 1 49 * [InterpreterSchema] Add PageTemplate page