掛勾(Hooks)是添加功能,或改變處理程序行為的一種方法,使用自訂的回呼。
頁面解析相關的額外功能,建議使用 blocks 。
Name | Description | Arguments |
---|---|---|
init |
在解析完書籍內容後呼叫,在實際轉製網頁與書籍之前執行。 | None |
finish:before |
在轉製頁面完成後呼叫,尚未複製素材、封面等... | None |
finish |
所有轉製程序完成後呼叫。 | None |
Name | Description | Arguments |
---|---|---|
page:before |
在對頁面套用模板引擎之前呼叫 | Page Object |
page |
在輸出與建立頁面索引前呼叫 | Page Object |
{
// Parser named
"type": "markdown",
// File Path relative to book root
"path": "page.md",
// Absolute file path
"rawpath": "/usr/...",
// Progress of the page in summary
"progress": {
...
},
// Page Content (available in "page:before")
"content": "# Hello",
// Page Content splited in sections (available in "page")
"sections": [
{
"content": "<h1>Hello</h1>",
"type": "normal"
}
]
}
{
"page:before": function(page) {
page.content = "# Title\n" +page.content;
return page;
}
}
{
"page": function(page) {
page.sections[0].content = page.sections[0].content.replace("<b>", "<strong>")
.replace("</b>", "</strong>");
return page;
}
}
Hooks callbacks can be asynchronous and return a promise.
Example:
{
"init": function() {
return writeSomeFile()
.then(function() {
return writeAnotherFile();
});
}
}