가이드와 홈페이지의 글은 이 폴더의 마크다운(.md) 입니다. HTML을 직접 고칠 일은 없습니다.
npm run dev를 켜 두고 .md를 저장하면 브라우저가 자동으로 새로고침됩니다.
content/
guide/
_lead.md 가이드 제목 + 첫 문단
01-start.md ... 파일 하나 = 목차 그룹 하나 (파일명 순서가 곧 목차 순서)
home/
00-hero.md ... 파일 하나 = 홈페이지 카드 하나 (파일명 순서 = 화면 순서)
| 하고 싶은 일 | 방법 |
|---|---|
| 문장 수정 | 해당 .md를 열어 고치고 저장 |
| 가이드에 섹션 추가 | 그룹 파일 안에 ## 제목 {#영문-id} 추가. 목차는 자동으로 생깁니다 |
| 가이드에 그룹 추가 | content/guide/09-이름.md 생성 (맨 위 group: 필수). 목차와 홈의 "문서 살펴보기" 카드에 자동 반영 |
| 홈에 카드 추가 | content/home/NN-이름.md 생성 (id, title 필수). 사이드바에 자동 반영 |
| 순서 바꾸기 | 파일명의 숫자(01-, 02-)를 바꿈 |
| IDE 예제 추가 | src/examples/에 NN_이름.cuff (멀티파일은 NN_이름/main.cuff + 다른 파일) 추가. 메뉴 이름은 src/examples/labels.json(없으면 자동) |
| IDE에서 막을 라이브러리 | src/engine/webPolicy.json의 blockedDlcs에 "이름": "이유" 추가 |
---
group: 함수 # 가이드 그룹 이름 (목차 제목)
summary: 함수 정의, 비동기, 스코프 # 홈 "문서 살펴보기" 카드 설명 (생략 가능)
home: false # 홈 카드에서 빼려면
---
홈 카드는 id:, title:, 선택으로 toc:(사이드바에 보일 짧은 이름), type:(hero / news / docs, 생략하면 일반 카드).
일반 마크다운에 아래 몇 가지가 더해집니다.
| 쓰는 것 | 결과 |
|---|---|
## 제목 {#id} |
가이드 섹션 (id는 주소 #id가 됨). 목차 이름을 다르게: {#id toc="짧은 이름"} |
`코드` **굵게** *기울임* [링크](url) |
인라인. 바깥 주소(https://)는 새 탭으로 열림 |
| 파이프로 칸을 나눈 표 | 표. 칸 안에서 ` |
::: callout 제목 … ::: |
파란 안내 상자. 빨간 상자는 ::: warn 제목 |
::: p 클래스 … ::: |
클래스가 붙은 문단 |
줄이 <로 시작 |
HTML 그대로 통과 (버튼 같은 특수한 것용) |
코드는 항상 자동으로 이스케이프됩니다. <year:[num]4> 같은 것도 그대로 적으면 됩니다.
cuff 코드블록은 npm run check:engine이 실제 엔진으로 실행합니다. 설명용으로 일부러 틀린
코드나 조각이면 펜스에 표시를 붙이세요.
```cuff 그냥 실행해서 성공(종료코드 0)해야 함
```cuff error=E4006 이 에러로 실패해야 함 (에러를 설명하는 예제)
```cuff fragment 앞뒤 문맥이 필요한 조각이라 실행하지 않음
```cuff skip 실행하지 않음 (네트워크를 쓰는 예제 등)
코드블록 바로 뒤에 output 블록을 두면, 엔진의 실제 출력과 비교합니다. 독자에게는 "실행 결과"로 보입니다.
오류 없이 아무것도 출력하지 않는 예제는 종료코드만으로는 못 잡으니, 결과가 중요한 예제엔 꼭 붙이세요.
```cuff
print(1 + 2)
```
```output
3
```
글 안에 {{이름}}으로 적으면 빌드할 때 실제 값으로 바뀝니다 (코드블록·인라인 코드 안에서는 치환 안 됨).
숫자를 손으로 적지 마세요. 엔진이나 예제가 바뀌면 어긋납니다.
| 이름 | 값 |
|---|---|
{{engine.dlcCount}} / {{engine.dlcNames}} |
내장 라이브러리 개수 / 이름 목록 (math/string/...) |
{{engine.functionCount}} / {{engine.errorCodeCount}} |
내장 함수 / 에러 코드 개수 |
{{examples.count}} |
IDE 예제 개수 |
{{docs.count}} |
가이드 그룹 개수 (홈 전용) |
{{site.githubUrl}} {{site.blobUrl}} {{site.cloneUrl}} {{site.changelogUrl}} {{site.repoName}} |
저장소 주소들 (src/siteConfig.json) |
코드블록 안에서도 치환하려면 펜스에 vars를 붙입니다 (```vars).
한 줄을 통째로 표로 바꾸는 것도 있습니다:
| 줄 | 결과 |
|---|---|
{{engine:dlc-reference}} |
라이브러리별 전체 함수 표 (IDE에서 막힌 것은 표시됨) |
{{engine:error-codes}} |
에러 코드 전체 목록 (접이식) |
node scripts/sync-engine.mjs ../cuffscript # 1. 엔진 소스에서 키워드·함수·에러코드를 다시 읽어옴
npm run check:engine -- --cuffc ../cuffscript/cuffc # 2. 글·예제가 새 엔진에서도 도는지 검사- 1번이 자동으로 따라가는 것: 코드 하이라이트 키워드, 내장 함수 전체 표, 에러 코드 목록,
{{engine.*}}숫자. 함수가 추가·삭제·이름변경돼도 손댈 게 없습니다. 바뀐 내용이 요약으로 출력됩니다. - 2번이 알려주는 것: 더 이상 안 도는 예제, 존재하지 않는 함수 이름을 언급한 글, 결과가 달라진 출력. 이건 사람이 문장을 고쳐야 하는 부분이고, 어느 파일 몇 번째 줄인지 알려줍니다.
- 엔진이 없으면
node scripts/sync-engine.mjs --clone으로 GitHub에서 받아올 수 있습니다. - GitHub Actions(
.github/workflows/engine-compat.yml)가 매주 이 검사를 대신 돌려 줍니다.