jacewiki
최근 수정 시각: 2026-08-28 22:20:10
1. 개요
jacewiki는 지금 이 문서를 렌더하고 있는 위키다. 나무위키를 개인 규모로 다시 만든 것으로, 확장 마크다운 파서와 정적 빌더를 직접 짜서 올렸다.
설계의 뼈대는 한 문장이다 — 문서의 진실은 DB가 아니라 content/ 안의 마크다운 파일에 있다. 그래서 편집은 에디터로 하고, 이력은 git이 갖고, 배포는 파일을 HTML로 굽는 것으로 끝난다. 백업할 데이터베이스도, 마이그레이션도 없다.
한 저장소가 세 개의 위키를 담는 모노레포다. 앱 카탈로그(지금 이 문서가 사는 곳), Yggdrasil 게임 위키, 그리고 앱도 게임도 아닌 것들이 뿌리내리는 범용 위키. 각 위키를 자기 폴더 기준으로 따로 빌드한 뒤 한 사이트로 병합하기 때문에, 문서명에 폴더 이름이 붙지 않고 내부 위키링크가 그대로 살아남는다.
2. 핵심 기능
- 확장 마크다운 문법 — 표준 GFM 위에 위키 문법을 얹었다.
[[내부링크]](없는 문서는 빨간 링크),[[문서명|보일 텍스트]],[* 각주](자동 번호·하단 수집),[[분류:이름]],#redirect. - 자동 목차와 번호 — h2~h4가 둘 이상이면 목차가 자동으로 붙고
1. / 1.1. / 1.1.1.번호가 매겨진다. 문서 제목은 파일명에서 자동 생성되므로 본문에 h1을 쓰지 않는다. - 분류 체계 — 문서 하단의 분류 바를 누르면 같은 성격의 문서가 모인 분류 페이지로 간다.
- 통합 대문 — 루트에서 세 위키로 분기한다. 범용 위키 카드는 문서 목록을 자동 스캔해 채운다.
- 로컬 편집 서버 — 위키 하나를 지정해 띄우면 브라우저에서 읽기·저장·역사·검색을 할 수 있다.
- 자동 생성 문서 — 일부 문서는 손으로 쓰지 않는다. 범용 위키의 스킬 카탈로그는 스킬 마스터 폴더를 스캔해 스크립트가 다시 찍고, 앱 카탈로그는 크론이 부르는 무인 갱신 진입점이 최신화한다.
- 문법 계약서 — 각 위키 폴더의
_SPEC.md가 문법의 단일 진실이다. 파서를 고치면 스펙도 함께 고친다는 규약이 걸려 있다.
3. 기술 스택
| 영역 | 기술 |
|---|---|
| 뷰어 | Next 15 + React 19 |
| 파서 | marked 기반 자작 확장 MD 파서 — 위키링크·각주·목차 번호·리다이렉트 |
| 저장 | 파일시스템 + git. DB 없음 |
| 빌드 | 위키별 정적 HTML 빌드 후 한 사이트로 병합 |
| 호스팅 | Cloudflare Pages — ⚠️ 프로덕션 브랜치가 master다(main으로 배포하면 프리뷰로 샌다) |
4. 개발 배경
개인 지식을 쌓아 두는 도구는 이미 많다. 그런데 하나같이 자기 데이터베이스에 글을 가둔다. 서비스가 문을 닫거나 요금제가 바뀌면 내보내기 버튼 하나에 몇 년 치 기록의 운명이 달린다.
jacewiki는 그 불안을 없애려고 만들었다. 마크다운 파일과 git 저장소 — 30년 뒤에도 열릴 형식만 쓴다. 뷰어가 사라져도 문서는 남고, 사실 뷰어 없이 텍스트 에디터로 읽어도 대체로 읽힌다.
나무위키 문법을 고른 건 취향이자 실용이다. [[링크]] 하나로 문서 사이를 잇고, 없는 문서가 빨간 링크로 표시되면 "여기 언젠가 써야 할 게 있다"는 표시가 저절로 남는다. 위키가 스스로 할 일 목록을 만드는 셈이다.
5. 링크
- 라이브: jacewiki.pages.dev
- GitHub: architectofthoughts/jacewiki
6. 관련 문서
- 범용 위키 · 게임 위키 — 같은 저장소의 다른 두 위키
- jacepages — 위키가 아닌 단발 HTML 페이지의 거처
- JaceApps 대문