gulp 是node基于流的自动化构建工具。

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
var marked = require('marked');
var fs = require('fs');
var path = require('path');
var is_open = false;
var markd_config = {
renderer: new marked.Renderer(),
gfm: true,
tables: true,
breaks: false,
pedantic: false,
sanitize: false,
smartLists: true,
smartypants: false,
xhtml: false,
index: true
}

//函数可以返回当前正在执行的项目路径
var pwd = process.cwd()

function readAppointFile(filePath,suffix){

//根据文件路径读取文件,返回文件列表
fs.readdir(filePath,function(err,files){
if(err){
console.warn(err)
}else{
//遍历读取到的文件列表
files.forEach(function(filename){
//获取当前文件的绝对路径
var filedir = path.join(filePath,filename);
//根据文件路径获取文件信息,返回一个fs.Stats对象
fs.stat(filedir,function(eror,stats){
if(eror){
console.warn('获取文件stats失败');
}else{
var isFile = stats.isFile();//是文件
var isDir = stats.isDirectory();//是文件夹
if(isFile){
var fileSuffix = filedir.substr(filedir.lastIndexOf("\\")+1).split('.')[1];
if(fileSuffix == suffix){
i5ting_ztree(filedir);
}
}
if(isDir){
readAppointFile(filedir,suffix);//递归,如果是文件夹,就继续遍历该文件夹下面的文件
}
}
})
});
}
});
}

function i5ting_ztree(source_file_name){
var file_name = source_file_name.split('/').pop();
var _file_name = file_name.substr(file_name.lastIndexOf("\\")+1).split('.')[0];
var dest_file_path = pwd + '/preview/' + _file_name + '.html';

console.log('pwd=' + pwd);
console.log('source_file_name=' + source_file_name);
console.log('dest_file_path=' + dest_file_path);

require('i5ting_toc')(pwd,source_file_name, dest_file_path, is_open, markd_config);
}


readAppointFile(pwd,"md");