Enable sub-directories in docs/ (#705)

This commit is contained in:
Endilie Yacop Sucipto 2018-06-07 22:41:28 +08:00 committed by Joel Marcey
parent 49c27b733b
commit d04b3ca87b
10 changed files with 135 additions and 36 deletions

View file

@ -13,6 +13,7 @@ const path = require('path');
const mkdirp = require('mkdirp');
const chalk = require('chalk');
const readMetadata = require('./server/readMetadata.js');
const utils = require('./server/utils.js');
const versionFallback = require('./server/versionFallback.js');
const env = require('./server/env.js');
@ -66,12 +67,18 @@ function makeHeader(metadata) {
return header;
}
function writeFileAndCreateFolder(file, content, encoding) {
mkdirp.sync(path.dirname(file));
fs.writeFileSync(file, content, encoding);
}
const versionFolder = CWD + '/versioned_docs/version-' + version;
mkdirp.sync(versionFolder);
// copy necessary files to new version, changing some of its metadata to reflect the versioning
let files = glob.sync(CWD + '/../' + readMetadata.getDocsPath() + '/*');
let files = glob.sync(CWD + '/../' + readMetadata.getDocsPath() + '/**');
files.forEach(file => {
const ext = path.extname(file);
if (ext !== '.md' && ext !== '.markdown') {
@ -102,9 +109,17 @@ files.forEach(file => {
metadata.original_id = metadata.id;
metadata.id = 'version-' + version + '-' + metadata.id;
const targetFile = versionFolder + '/' + path.basename(file);
const docsDir = path.join(CWD, '../', readMetadata.getDocsPath());
const subDir = utils.getSubDir(file, docsDir);
const targetFile = subDir
? `${versionFolder}/${subDir}/${path.basename(file)}`
: `${versionFolder}/${path.basename(file)}`;
fs.writeFileSync(targetFile, makeHeader(metadata) + rawContent, 'utf8');
writeFileAndCreateFolder(
targetFile,
makeHeader(metadata) + rawContent,
'utf8'
);
});
// copy sidebar if necessary