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 |
|
100 | Example:
|
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 | ```
|