ydoc
Version:
基于 Markdown 的静态站点生成工具
112 lines (82 loc) • 1.95 kB
Markdown
# 钩子
## 钩子列表
#### 全局钩子
| 名称 | 描述 | 参数 |
| ---- | ----------- | --------- |
| `init` | 在生成文档站点前触发. | 无 |
| `finish` | 在生成文档站点完成后触发. | 无 |
| `assets` | 引用插件静态文件| 无 |
#### 页面钩子
| 名称 | 描述 | 参数 |
| ---- | ----------- | --------- |
| `page:before` | 在创建 html 页面之前调用 | Page Object |
| `page` | 生成 html 页面后调用 | Page Object |
#### 模板钩子
| 名称 | 描述 | 参数 |
| ---- | ----------- | --------- |
| `tpl:header` | 在页面导航添加自定义的 html | 无 |
#### Page Object
```js
{
// 页面类型,支持 md jsx html 三种
type: 'md',
// 页面标题
title: 'string',
// 页面描述信息
description: 'string',
// 页面内容
content: '内容',
prev: '上一页连接',
next: '下一页链接',
releativePath: '相对路径'
srcPath: '源文件路径',
distPath: '生成文件路径'
}
```
##### 增加页面内容示例
使用 `page:before` 钩子
```js
{
"page:before": function(page) {
page.content = page.content + "\n Hello YDoc";
return page;
}
}
```
##### 替换 html 示例
使用 `page` 钩子
```js
{
"page": function(page) {
page.content = page.content.replace("<b>", "<strong>")
.replace("</b>", "</strong>");
return page;
}
}
```
#### 引用静态文件
使用 `assets` 钩子
```js
{
assets: {
dir: './assets',
js: ['app.js'],
css: ['app.css']
}
}
```
复制当前目录下的 assets 文件夹到文档,并且在每个文件引入 app.js 和 app.css。
### 异步操作
回调参数返回一个 promise,能够支持异步处理。
Example:
```js
{
"init": function() {
return new Promise((function(resolve){
setTimeout(function(){
resolve(true)
}, 2000)
}))
}
}
```