템플릿 블록을 확장하는 것은 저자에게 추가 기능을 제공하는 가장 좋은 방법입니다.
가장 일반적인 사용법은 실행 시간에 일부 태그내에서 내용을 처리하는 것입니다. 필터와 유사하지만 강화되었습니다. 단일 표현에만 국한되지않기 때문입니다.
블록은 플러그인에 의해 정의됩니다. 블록은 블록 디스크립터와 관련된 이름의
맵입니다. 블록 디스크립터는 적어도 process
메소드를 포함해야합니다.
module.exports = {
blocks: {
tag1: {
process: function(block) {
return "안녕 "+block.body+", 어떻게 지내니?";
}
}
}
};
process
는 태그를 대체할 HTML 내용을 반환해야합니다.
이것
과 GitBook API 에 관한 자세한 내용은 컨텍스트와 API를
참조하세요.
인수는 블록에 전달될 수 있습니다:
{% tag1 "인수 1", "인수 2", name="테스트" %}
이것은 블록의 몸체입니다.
{% endtag1 %}
그리고 인수는 process
메소드 내에서 쉽게 접근 가능합니다:
module.exports = {
blocks: {
tag1: {
process: function(block) {
// block.args 은 ["인수 1", "인수 2"] 와 같습니다
// block.kwargs 은 { "name": "테스트" } 와 같습니다
}
}
}
};
정의된 블록은 서로 다른 하위 블록으로 해석될 수 있습니다. 예를 들어 소스를 살펴봅시다:
{% myTag %}
본체
{% subblock1 %}
하위 블록 1의 몸체
{% subblock 2 %}
하위 블록 2의 몸체
{% endmyTag %}