-
Notifications
You must be signed in to change notification settings - Fork 0
/
publish.js
70 lines (70 loc) · 1.56 KB
/
publish.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
const path = require('path');
function travel(src,dst){
const fs = require('fs');
// json的包裹层
var articles = [];
// 按顺序存放在article[]中
var count = -1;
var arr = -Infinity;
// 遍历目录文件
// 格式化路径
src = path.normalize(src);
// 遍历所有文件
arr = fs.readdirSync(src);
fs.readdirSync(src).forEach(function(file){
var pathname = path.join(src,file);
callbackFunc(pathname,dst);
});
// 读取文件
function callbackFunc(pathname,dst){
var rs = fs.createReadStream(pathname);
rs.on('data',function(chunk){
rs.pause();
read(chunk,dst,function(){
rs.resume();
});
});
rs.on('end',function(){
cleanUp();
})
}
var read=(data,dst)=>{
count++;
var obj = {};
var newarr = [];
data = data.toString('utf-8').split('---')[1];
if(data){
data = data.split('\n');
// ['title:img','categories:[test]','data:2016-07-01']
data.forEach(function(currentValue,index,arr){
if (!currentValue) {
arr.splice(index,1);
}
});
// { title: 'Image', categories: '[test]', date: '2016-07-01' }
data.forEach(function(currentValue,index,arr){
newarr = currentValue.split(':');
// obj['aa'] = 'aa';
if(newarr[1]){
obj[newarr[0]] = newarr[1].trim();
}
});
if(obj.title){
articles[count] = obj;
console.log(articles[count]);
}
}
if(count+1 == arr.length){
// articles = JSON.stringify(articles);
var wrap = {};
wrap.articles = articles;
wrap = JSON.stringify(wrap,null,'\t');
var ws = fs.createWriteStream(dst);
write(wrap,ws);
}
}
// 写文件
var write = (obj,ws)=>{
ws.write(obj);
}
}