-
Notifications
You must be signed in to change notification settings - Fork 60
/
autoGen.js
187 lines (157 loc) · 4.88 KB
/
autoGen.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
const fs = require('fs');
const path = require('path');
// 成员
const members = {
// 李松峰
cncuckoo: {
github: 'https://github.com/cncuckoo',
desc: 'Advisory Committee Representative(顾问委员会代表)',
},
// 刘观宇
liuguanyu: {
github:'https://github.com/liuguanyu',
desc: 'CSS Working Group',
},
// 安佳
anjia: {
github: 'https://github.com/anjia',
desc: 'CSS Working Group',
},
// 高峰
verymuch: {
github: 'https://github.com/verymuch',
desc: 'Web of Things Working Group',
},
// 刘博文
berwin: {
github: 'https://github.com/Berwin',
desc: 'Web Performance Working Group',
},
// 李喆明
lizheming: {
github: 'https://github.com/lizheming',
},
// 刘冰晶
betseyliu: {
github: 'https://github.com/betseyliu',
},
// 何文力
nimitzdev: {
github: 'https://github.com/NimitzDEV',
},
songworld: {
github: 'https://github.com/songworld',
desc: 'Automative Working Group',
},
francisfeng: {
github: 'https://github.com/francisfeng',
desc: 'Automative Working',
},
hax: {
github: 'https://github.com/hax',
}
}
// 前成员
const formerMembers = {
// 黄小璐
huangxiaolu: {
github: 'https://github.com/huangxiaolu',
desc: 'Web Performance Working Group',
},
chunpu: {
github:'https://github.com/chunpu',
desc: 'Browser Testing and Tools Working Group',
},
// 刘宇晨
liuyuchenzh: {
github:'https://github.com/liuyuchenzh',
desc: 'Web Performance Working Group',
},
}
const articlesDir = path.resolve(__dirname, './articles');
function readDir(dir) {
return fs.readdirSync(dir, (err, files) => {
if(err) throw err;
return files;
})
}
function rename (path, fileName) {
const newFileName = fileName.replace(/ /g, '_');
fs.rename(`${path}/${fileName}`, `${path}/${newFileName}`, function(err) {
if (err) {
throw err;
}
});
return newFileName;
}
function getArticlesInfo(dir) {
const articlesInfo = [];
let files = readDir(dir);
files.forEach(file => {
const execReg = /^(\d{8})[-_]([^_]+)[-_](.+)(?:.md)$/;
const info = execReg.exec(file);
if (info !== null){
let [fileName, date, writer, articleName] = execReg.exec(file);
fileName = rename(articlesDir, fileName);
articlesInfo.push({
fileName,
date,
articleName: articleName.replace(/_/g, ' '),
writer: writer.toLowerCase(),
});
}
})
return articlesInfo.sort((a, b) => b.date - a.date);
}
function spliceMemberInfo(members) {
return Object.entries(members)
.map(([member, info]) => {
return `
- [@${member}](${info.github})${info.desc ? ',' + info.desc : ''}`
}).join(' ')
}
// 拼接信息
function spliceInfo() {
const forword = `
本项目记录 360 W3C 工作组参与 Web 标准制定过程中的各项产出。
360 自 2012 年加入 W3C(World Wide Web Consortium,万维网联盟,又称 W3C 理事会)成为正式会员。2015 年 8 月,W3C 会员事务由浏览器部门移交到 Web 平台部奇舞团(360 最大前端团队)。
经过一段时间调研和准备,2018 年初,在 360 技术委员会前端分会支持下,360 W3C 工作组正式成立。目前成员主要来自 360 各前端团队,同时也向各大业务线开放。
为了让广大同行及社会公众更好地了解 360 参与 W3C 标准制定的情况,吸引更多对 Web 标准感兴趣、有研究,愿意贡献力量的小伙伴参与,我们创建了这个项目。
`
const currentMemberInfo = spliceMemberInfo(members);
const formerMemberInfo = spliceMemberInfo(formerMembers);
const contribute = `
- [CSS Working Group](https://github.com/75team/w3c/blob/master/contributions/CSS_WG.md)
- [Web Performance Working Group](https://github.com/75team/w3c/blob/master/contributions/WebPerf_WG.md)
- [WoT Working Group](https://github.com/75team/w3c/blob/master/contributions/WoT_WG.md)
`
const articles = getArticlesInfo(articlesDir)
.map(({fileName, date, articleName, writer}, index) => {
return `
1. [${articleName}](/articles/${fileName})(${date} [@${writer}](${members[writer] ? members[writer].github : false || formerMembers[writer] ? formerMembers[writer].github : ''})) `
}).join(' ');
const copyright = `
>
> 本项目下所有文章均为 360 公司 W3C 工作组成员原创作品。如需转载,请务必先联系:lsf.email@gmail.com,取得授权后再转载。转载时也必须遵循创意共享的惯例,注明文章的作者和出处(即本页面或文章页面)。
>
> 谢谢合作!
`;
return `
## 360 W3C 工作组
${forword}
## 成员
${currentMemberInfo}
## 前成员
${formerMemberInfo}
## 贡献
${contribute}
## 文章
${articles}
> **版权声明**
${copyright}
`
}
fs.writeFile('./README.md', spliceInfo(), function(err){
if(err) throw err;
console.log('更新成功');
})