Sandwich Hime
리포지토리 루트에서 작업하세요. .sando 파일은 Sandwich Hime 템플릿으로, .san 파일은 별도의 San 언어 소스로 취급합니다.
실행 전 검사
go.mod를 읽고 정확한gamertan.com/sandwich-hime/sando버전을 기록하세요.- 인접한
.sando.go헤더에서 컴파일러 버전, 런타임 ABI, 소스 다이제스트를 확인하세요. 생성된 파일은 절대 수동으로 편집하지 마세요. himesan version --json을 실행하세요. 호환되는 런타임 ABI를 요구하고 모든 고정된(pinned) 버전을 유지하세요.@latest로 대체하거나 모듈을 자동 업데이트하지 마세요.- 구문, 구성, 출력 컨텍스트 또는 신뢰 경계를 변경할 때는 references/authoring.md를 읽으세요.
- 설치, 마이그레이션, 검토 전용, 생성, CI 및 플랫폼 워크플로에 대해서는 references/workflows.md를 읽으세요.
워크플로 선택
- 검토, 진단 또는 보안 작업의 경우에만
himesan check --json을 실행하세요. 사용자가 변경을 승인하지 않는 한 쓰지 마세요. - 승인된 템플릿 변경의 경우,
.sando를 편집하고, 고정된 컴파일러의himesan generate를 실행한 후,himesan check --json과 프로젝트의 일반 Go 테스트/빌드를 실행하세요. - 런타임 우선 설치 또는 복구: 정확한 Sando 버전을
go get한 후, 정확한 컴파일러 버전을go install하세요. - 타입이 있는 컴포넌트 함수와
<?~ Component(...) ?>구성을 사용하세요. 상속, 블록 또는 암시적 레이아웃 프레임워크를 발명하지 마세요. - 라우팅, HTTP 서버, 헤더, 캐싱, 인증 및 배포는 애플리케이션에 두세요. Sandwich Hime은 템플릿을 컴파일할 뿐, 애플리케이션을 소유하지 않습니다.
보안 경계 시행
- 정적 템플릿 마크업과 Go 코드는 신뢰할 수 있는 프로젝트 소스로 취급합니다.
TrustHTML,TrustURL,TrustJS,TrustCSS, 신뢰 래퍼, 수작업sando.Component각각을 명시적 출력 기능으로 취급합니다. 그 출처와 HTML 파서 상태 효과를 감사하세요.- 컨텍스트 이스케이핑을 유지하세요. 진단을 무음 처리하기 위해 이스케이프된 표현식을 신뢰 래퍼로 대체하지 마세요.
WriteURL을 우회하는 대신, 위험하거나 모호한 URL 스킴을 거부하세요.- 신뢰 경고는 어휘적 감사 힌트이지 전체 프로그램 오염 분석이 아님을 기억하세요. 헬퍼 함수와 호출 지점을 수동으로 검사하세요.
- 신뢰할 수 없는 리포지토리에서
himesan dev를 실행하지 마세요. 이 명령은 해당 리포지토리의 Go 프로그램을 빌드하고 실행합니다. 읽기 전용 검사와check --json을 선호하세요.
결과 보고
컴파일러 버전, 런타임 핀 및 ABI, 실행된 명령어, 변경된 생성 파일, 수행된 일반 Go 검증, 남아 있는 신뢰 또는 호환성 제한 사항을 명시하세요. 공식 튜토리얼(https://sandwichhime.com/docs/tutorial/)과 실행 가능한 스타터(https://gitea.speelman.ca/gamertan/sandwich-hime-tutorial)에 대한 링크를 제공하며 튜토리얼을 중복하지 마세요.