1 |
|
2 |
|
3 |
|
4 | const fs = require('fs');
|
5 | const sh = require('child_process').execSync;
|
6 | const path = require('path');
|
7 |
|
8 |
|
9 | module.exports = (config) => {
|
10 |
|
11 | const dist = config.theme + '/tmp';
|
12 | const nav = config.nav;
|
13 |
|
14 | if (!nav || !nav.length) {
|
15 | fs.writeFileSync(dist + `/__nav__.js`, 'module.exports=[];');
|
16 | return;
|
17 | }
|
18 |
|
19 | let out = '';
|
20 |
|
21 | nav.forEach(item => {
|
22 | let str = '{\n';
|
23 | if (/^https?.*/.test(item.uri)) {
|
24 | str += `http: "${item.uri}",\n`;
|
25 | } else {
|
26 |
|
27 | let mds = '';
|
28 | const list = item.uri.split('|');
|
29 | list.forEach( p => {
|
30 | const des = path.resolve(process.cwd(), p);
|
31 | mds += `require("${des}"),\n`
|
32 | });
|
33 |
|
34 | str += `md: [${mds}],\n`;
|
35 | }
|
36 | str += `label: "${item.label}",\n`;
|
37 | str += `uri: "${item.uri}"\n`;
|
38 |
|
39 | str += '}';
|
40 |
|
41 | out += str + ',\n';
|
42 | });
|
43 |
|
44 | out = `module.exports = [${out}];`;
|
45 | fs.writeFileSync(dist + `/__nav__.js`, out);
|
46 |
|
47 | } |
\ | No newline at end of file |