summary refs log blame commit diff stats
path: root/public_md/build.js
blob: abc0320c759fe2b7beb1dba36f1fe5a6a5db4e96 (plain) (tree)
1
2
3
4
5




                                        










                                                                                               






















                                                                      
                                                                       







                                                          
                                                          


 
var MarkdownIt = require('markdown-it');
const fs = require("fs");
const path = require("path");

md = new MarkdownIt();
const html_header = ` 
  <!doctype HTML>
  <html><head>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@exampledev/new.css@1/new.min.css">
  <link rel="stylesheet" href="https://fonts.xz.style/serve/inter.css">
  </head><body>
  `
const html_footer = `
  </body></html>
  `


const walkSync = (inputdir, outputdir, callback) => {
  const files = fs.readdirSync(inputdir);
  files.forEach((file) => {
    var filepath = path.join(inputdir, file);
    const stats = fs.statSync(filepath);
    if (stats.isDirectory()) {
      walkSync(filepath, outputdir, callback);
    } else if (stats.isFile()) {
      callback(filepath, outputdir, stats);
    }
  });
};


function fileHandler (filepath, outputdir, stats) {
  fs.readFile(filepath, function(err, buf) {
    let outputpath = filepath.replace(/^.*?\//i, outputdir);
    fs.mkdir(path.dirname(outputpath), { recursive: true }, (err) => {
      if (err) throw err;
    });
  
    outputpath = outputpath.replace(/\.md$/i, '.html');
    const html = html_header + md.render(buf.toString()) + html_footer;
    fs.writeFile(outputpath, html, (err) => {
      if (err) console.log(err);
    console.log("Successfully Written to: " + outputpath);
    });
  }); 
}

fs.rmSync('build/', { recursive: true, force: true });
walkSync('src/', '/home/menix/public_html/', fileHandler);