@로 템플릿과 템플릿이 아닌 텍스트를 구분
다음과 같은 문자는 실제 텍스트로 읽혀지는 것이 아니라 구분자로 사용됨
‘.’,
‘$’는 엔터를 포함하지 않도록 한다.
템플릿 key
‘<‘ 첫글자 대문자
‘>’ 첫글자 소문자
‘?’가 작성되면 optional, 반드시 key의 끝에 작성 – 공백문자를 처리하기 위해
‘?’ 뒤에 ‘+’가 작성되면 optional인 것이 있는 경우 ‘ ‘를 추가한다.
[옵션]
underscore 예)fish_food
‘-‘ 뒤에 ‘,’로 분리된 문자열들
값에서 특정 문자열을 제거
예) @name-is, has
hasValue => Value
조건에 따라 다른 값을 작성할 수 있는 방법을 제공
괄호 안에 다음과 같은 형식으로 조건을 작성
‘조건값:작성값’
조건값은 !, |, &와 같은 논리 연산자로 다수 작성할 수 있다.
조건값이 여러개 인 경우 ‘,’로 구분한다.
조건식에는 공백이 있으면 안된다.
조건 값에 공백이 있는 경우는 ‘ ‘로 작성한다.
포맷 – %추가문자열:라인별공백개수:[옵션]%
옵션 – m: 멀티라인으로 작성한 경우 추가문자열이 처음과 끝에 추가 됨, s: 공백 추가가 우선
예약어를 직접적으로 문자열로 사용하고자 하는 경우 #’예약어’와 같이 작성한다.
제어
‘@{‘로 시작, 중간 닫기는 ‘@}로, 마지막 닫기는 ‘~}’로
제어문은
if, for
제어조건은 괄호안에 작성
for
조건을 여러 개 작성하는 경우 ‘;’로 구분
여러 개를 반복해서 렌더링하는 경우 구분자가 필요, 구분자는 조건 다음에 ‘,’ 뒤에 작성
,를 작성하지 않으면 기본 값(new line), ,를 작성하고 아무것도 작성하지 않으면 빈문자열이 적용
new line과 ,를 조합하는 것과 같은 경우 new line은 \r\n으로 작성한다.
if
조건은 조건 키와 값으로 구분, 값은 논리 연산자로 다수 작성할 수 있다.
조건에 다수의 조건 키를 적용해야 하는 경우 논리 연산자로 다수 작성할 수 있다.
조건 키가 없는 경우는 false가 됨. 설계결정의 경우 설정한 것만 작성되기 때문에 이러한 성질을 잘 이용해야 함. 템플릿을 계층적으로 나누었을 때 상위 계층에 있는 키가 하위 계층에서 없을 수 있음 – 이러한 경우도 이 성질을 잘 이용해야 함.
예) 클래스는 isConstruction이 있지만, 속성에는 없다. static 생성자의 경우 visibility를 작성하지 않는다. 공통의 modifier를 작성하려고 한다면 조건 식에 isConstruct(true), isStatic(true)와 같은 조건을 사용해야 한다. 반대의 경우는 false를 사용하는 것이 아니라 해당 조건에 !을 사용해야 한다.
템플릿 파일 구조화 – 다른 템플릿 파일 참조
///<file>: 상대경로를 포함한 파일이름$
예)///<file>: common/typescript_class$
메타데이터 작성 제약사항
메타데이터 이름은 카멜 표기법을 사용해야 한다.
메타데이터 값을 묶어서 처리하고자 할 경우는 ‘ ‘, ” “,
사이에 값을 작성한다.