从github编译文件
Compile together files from github
我是Node.js的新手,我正在寻找如何将不同的.md文件编译在一起的指导。
我下载了这个存储库,并希望将所有.md
文件连接/合并/编译在一起。因此,我想获得一个包含每个单独文件内容的文件,这样我就可以拥有一个包含所有内容的新.md文件。
这就是我在想的。。。
var docsdir = '../Docs/';
var filesArray = fs.readdir(docsdir, function(err,files){
if (err) console.error(err);
// missing how to check if file is a directory
return files;
}
var newFile;
for(var i = 0; i < files.length; i++){
fs.readFile(files[i], function read(err, data) {
if (err) {
throw err;
}
newFile = newFile + data;
});
}
fs.writeFile('wholeDocs', newFile)
本例中的目录结构为:
+
|-Docs
|
|-folder1
| |
| |-file1.md
|
|
|-folder2
| |
| |-file3.md
etc...
这是离线处理,因此您可以使用fs。Sync()来做比异步函数更容易的工作。
请注意,如果您编写web应用程序,异步是必须的,异步有助于避免应用程序阻塞。
您还需要了解递归。
你可以从下面的代码中学习:
var fs = require('fs'), path = require('path');
function findAllFile(dir, ext) {
var ret = [];
function findOneLevel(dir) {
fs.readdirSync(dir).forEach(function(file) {
var name = path.join(dir, file);
var stat = fs.statSync(name);
if (stat.isDirectory()) {
findOneLevel(name);
} else if (stat.isFile() && path.extname(name).toLowerCase() === ext) {
ret.push(name);
}
});
}
findOneLevel(dir);
return ret;
}
function concatAllMd(dir, outFile) {
var contents = [];
findAllFile(dir, '.md').forEach(function(file) {
contents.push(fs.readFileSync(file, 'utf8'));
})
fs.writeFileSync(outFile, contents.join(''n'));
}
// use
concatAllMd('Docs', 'output.md');
相关文章:
- 预编译的车把模板使文件大小加倍
- 如何在Windows中将Javascript文件编译成二进制文件
- GWT:有没有一种方法可以修改GWT在编译中使用的Cast.java文件
- 使用Gulp手柄部分编译为单个HTML文件
- Bootstrap CSS和JS我必须将它们包含在单独的文件中,或者可以编译它们
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- 在Dojo构建期间,在最小化期间关闭文件编译
- 如何编译IIFE JSX文件
- 如何将javascript文件编译成一个
- 如何使用 Gulp 将多个打字稿文件编译成一个 JavaScript 文件
- 将文件编译到dest文件夹和src文件夹
- 等待 JSX 文件编译完成
- 如何将多个 angularjs 文件编译为单个应用程序文件
- AngularJS从文件编译和渲染HTML代码
- 配置WebStorm/PhpStorm将.ts文件编译为.js文件;js”;文件夹
- 如何使Visual Studio从JS文件编译库
- 用coffee文件编译js文件
- 我可以设置gulp liverload在所有文件编译后运行吗?
- 使用grunt-json-bake将多个json文件编译成一个
- 将多个Typescript文件编译成一个javascript文件