깨진 참조는 빌드를 세운다
풀리지 않는 링크, 없는 템플릿, 같은 URL 을 주장하는 두 페이지, 오타 난 설정 키. 전부 경고가 아니라 에러다.
지금 보고 있는 사이트가 이걸로 만들어졌다. 문서 사이트 도 마찬가지인데, CI 가 방금 컴파일한 바이너리로 그 문서를 빌드하므로 문서가 생성기의 회귀 테스트 노릇을 한다.
설계
취향이 아니다. 하나하나가 다른 데서 먼저 일어난 사고다.
풀리지 않는 링크, 없는 템플릿, 같은 URL 을 주장하는 두 페이지, 오타 난 설정 키. 전부 경고가 아니라 에러다.
링크 재작성, 제목 앵커, 목차가 전부 트리 연산이다. 완성된 HTML 에 정규식을 돌리면 작은따옴표로 감싼 속성을 조용히 건너뛴다.
같은 입력을 두 번 빌드하면 같은 바이트가 나오고, CI 가 푸시마다 확인한다. 렌더는 병렬이고, 결정성은 일정이 아니라 병합이 만든다.
번역이 원문 옆에 있고, 링크는 읽는 사람의 언어로 풀리며, 검색은 부분 문자열로 맞춘다. 검색엔진최적화 안의 최적화를 찾는 방법은 그것뿐이다.
구문 강조가 클래스 이름을 낸다. 인라인 색은 테마 하나를 모든 문서에 영원히 박아 넣고, 엄격한 style-src 를 불가능하게 만든다.
Node 도 Python 도 시스템 라이브러리도 필요 없다. 내려받은 것이 곧 도는 것이다.
빠른 시작
$ sqzass init mysite
# sqzass.toml, content/_index.md, templates/page.html 을 쓴다
$ sqzass serve -i mysite
http://127.0.0.1:3000 라이브 리로드
$ sqzass build -i docs
60 pages → docs/public
실제 출력이다. 이 레포의 문서 사이트가 60 페이지다.
같은 레포의 docs 디렉터리에서 sqzass 로 만들어진다. CI 가 방금 컴파일한 바이너리로 그 문서를 빌드한다.