Gantt 인터프리터는 TSV 계층 구조 텍스트를 SVG Gantt 차트로 렌더링한다.
섹션 편집 시 #!gantt 블록은 InterpreterGantt Editor로 열린다.
#!var defaultEst 3: leaf 작업의 Est 컬럼이 생략되면 3d로 계산한다. 생략하거나 유효하지 않으면 기본값은 1d.각 행은 탭(\t)으로 구분된 컬럼으로 구성된다.
YYYY-MM-DD 형식, 또는 선행 작업 참조. 생략 가능.숫자% 형식 (예: 75%). 0~100 범위. 생략 가능.숫자% 형식 → 진척률.YYYY-MM-DD 형식 → 시작일.작업 간 의존성을 명시할 수 있다.
항목명 끝에 #id를 붙이면 해당 작업에 레이블을 부여한다.
레이블 없이도 항목명 자체가 암묵적 레이블로 사용된다.
설계#Design | 2026-01-05 | 5 |
#은 공백 없이 항목명에 바로 붙어야 한다. C# 개발처럼 # 앞에 공백이 있으면 레이블로 처리되지 않는다.
시작일 위치에 날짜 대신 레이블 이름을 쓰면, 그 작업의 종료일 다음 영업일에 시작한다.
# 접두어는 선택 사항이다.
백엔드 설계 10 ← "설계" 작업 종료 후 시작 (이름 직접 참조) 프론트엔드 #Design 8 ← 명시적 id로 참조
참조는 문서 위쪽에 정의된 레이블만 유효하게 해석된다.
설계#D 2026-01-05 5 → depth=0, name="설계", label="D", start=2026-01-05, est=5
백엔드 설계 10 → depth=0, name="백엔드", afterRef="설계", est=10
테스트 #D 3 → depth=1, name="테스트", afterRef="D", est=3
C# 개발 5 → depth=0, name="C# 개발", est=5 (# 앞 공백 → 레이블 아님)
작업A 2026-01-05 3 75% → depth=0, est=3, progress=75%
작업B 5 100% → depth=0, est=5, progress=100%
작업C 50% → depth=0, progress=50% (est는 defaultEst 사용)우선순위:
afterRef)가 있고 해당 작업의 종료일이 계산된 경우 → 그 다음 영업일CSS Grid 2×2 구조로 레이블 패널과 날짜 헤더를 동시에 freeze한다.
Corner | Header: 날짜 헤더 (가로 freeze) |
|---|---|
Labels (세로 freeze) | Body: 간트 바 (가로+세로 스크롤) |
transform: translateX/Y로 동기화.레이블 패널은 4컬럼으로 구성된다.
컬럼 | 고정폭 | 내용 |
|---|---|---|
# | 36px | 원본 Gantt 행 번호 (1부터 시작, 좌측 고정) |
Task | 나머지 | 항목명 (depth에 따른 들여쓰기, 좌측 색상 바, 접기/펴기 삼각형) |
Period | — |
|
Est | 48px |
|
% | 48px |
|
코너 셀에 각 컬럼 헤더(# / Task / Period / Est)가 표시된다.
yyyy-mm-dd).Nd, 바가 충분히 넓을 때).항목명 (Nd) 형식의 항목명 + 소요일 (항상 표시).Progress N%) 표시.AhaWiki.{hostname}.{pageName}.{YYYYMMDD}.{HHmmss}.svg섹션 편집 진입 시 Gantt 전용 인라인 에디터(InterpreterGantt Editor)로 열린다.
data-depth로 표현한다.app/logics/wikis/interpreters/InterpreterGantt.scala — Scala 인터프리터app/views/Wiki/InterpreterGantt.scala.html — Twirl 템플릿app/assets/gantt.less — 스타일 (소스)app/assets/gantt.css — 컴파일된 CSSpublic/js/AhaWiki.Gantt.js — 파싱·렌더링·접기펴기·스크롤 동기화app/views/Wiki/edit.scala.html — Gantt 전용 인라인 에디터 UIpublic/js/Wiki/edit.page.js — GanttEditor 감지·편집·직렬화·Undo/RedoSimilar pages by cosine similarity. Words after page name are term frequency.