UNPKG

2.02 kBMarkdownView Raw
1# 钩子
2
3## 钩子列表
4
5#### 全局钩子
6
7| 名称 | 描述 | 参数 |
8| ---- | ----------- | --------- |
9| `init` | 在生成文档站点前触发. | 无 |
10| `finish` | 在生成文档站点完成后触发. | 无 |
11| `nav` | 在解析导航 nav.md 后和解析文档前触发 | 无 |
12| `assets` | 引用插件静态文件| 无 |
13
14#### 页面钩子
15
16| 名称 | 描述 | 参数 |
17| ---- | ----------- | --------- |
18| `page:before` | 在创建 html 页面之前调用 | Page Object |
19| `page` | 生成 html 页面后调用 | Page Object |
20
21#### 模板钩子
22
23| 名称 | 描述 | 参数 |
24| ---- | ----------- | --------- |
25| `tpl:header` | 在页面导航添加自定义的 html | 无 |
26
27
28
29#### Page Object
30
31```js
32{
33 // 页面类型,支持 md jsx html 三种
34 type: 'md',
35 // 页面标题
36 title: 'string',
37 // 页面描述信息
38 description: 'string',
39 // 页面内容
40 content: '内容',
41 prev: '上一页连接',
42 next: '下一页链接',
43 releativePath: '相对路径'
44 srcPath: '源文件路径',
45 distPath: '生成文件路径'
46}
47
48```
49
50##### 增加页面内容示例
51
52使用 `page:before` 钩子
53
54```js
55{
56 "page:before": function(page) {
57 page.content = page.content + "\n Hello YDoc";
58 return page;
59 }
60}
61```
62
63##### 替换 html 示例
64
65使用 `page` 钩子
66
67```js
68{
69 "page": function(page) {
70 page.content = page.content.replace("<b>", "<strong>")
71 .replace("</b>", "</strong>");
72 return page;
73 }
74}
75```
76
77#### 引用静态文件
78
79使用 `assets` 钩子
80
81```js
82{
83 assets: {
84 dir: './assets',
85 js: ['app.js'],
86 css: ['app.css']
87 }
88}
89
90```
91复制当前目录下的 assets 文件夹到文档,并且在每个文件引入 app.js 和 app.css。
92
93
94
95
96### 异步操作
97
98回调参数返回一个 promise,能够支持异步处理。
99
100Example:
101
102```js
103{
104 "init": function() {
105 return new Promise((function(resolve){
106 setTimeout(function(){
107 resolve(true)
108 }, 2000)
109 }))
110 }
111}
112```