mirror of
https://github.com/noodlapp/noodl-docs.git
synced 2026-01-11 23:02:54 +01:00
Initial commit
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com> Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com> Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com> Co-Authored-By: Michael Cartner <32543275+michaelcartner@users.noreply.github.com>
This commit is contained in:
58
plugins/copy-node-markdowns.js
Normal file
58
plugins/copy-node-markdowns.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
function resolveImports(content,dir) {
|
||||
const includeMatch = content.matchAll(/@include\s\"(.*)\"/g)
|
||||
for(const _s of includeMatch) {
|
||||
const includePath = _s[1];
|
||||
const absPath = path.join(dir,includePath)
|
||||
|
||||
const include = fs.readFileSync(absPath)
|
||||
content = content.replace(_s[0],include)
|
||||
}
|
||||
|
||||
return content
|
||||
}
|
||||
|
||||
function copyNodeMarkdowns(dir) {
|
||||
fs.readdirSync(dir).forEach(file => {
|
||||
if( fs.lstatSync(dir + '/' + file).isDirectory() ) {
|
||||
copyNodeMarkdowns(dir + '/' + file)
|
||||
}
|
||||
else if(file.endsWith('.md')) {
|
||||
const content = fs.readFileSync(dir + '/' + file)
|
||||
const resolved = resolveImports(content.toString(),dir)
|
||||
const filePath = 'build/' + dir + '/' + file;
|
||||
if (!fs.existsSync('build/' + dir)){
|
||||
fs.mkdirSync('build/' + dir);
|
||||
}
|
||||
fs.writeFileSync(filePath, resolved)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = function(context, options) {
|
||||
return {
|
||||
name: 'docusaurus-copy-node-markdowns-plugin',
|
||||
configureWebpack(config, isServer, utils) {
|
||||
const {getJSLoader} = utils;
|
||||
return isServer?{
|
||||
plugins: [
|
||||
{
|
||||
apply: (compiler) => {
|
||||
compiler.hooks.afterEmit.tap('AfterEmitPlugin', (compilation) => {
|
||||
console.log('Copying node markdown files')
|
||||
|
||||
options.paths.forEach(path => {
|
||||
console.log(' - Processing path: ' + path)
|
||||
copyNodeMarkdowns(path)
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
]
|
||||
}:{}
|
||||
},
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user