Sitelet https://github.com/cuffscript/site/tree/main/content
Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

콘텐츠 작성 가이드

가이드와 홈페이지의 글은 이 폴더의 마크다운(.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에 "이름": "이유" 추가

파일 맨 위 (front matter)

---
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)가 매주 이 검사를 대신 돌려 줍니다.