mirror of
https://github.com/len0rd/personal-website.git
synced 2025-03-01 03:51:57 -05:00
comments on prestart. added a package that should allow me to autogenerate nav for project docs
This commit is contained in:
parent
2cf2bdf8ad
commit
af215bca5d
5
package-lock.json
generated
5
package-lock.json
generated
|
@ -118,6 +118,11 @@
|
|||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||
},
|
||||
"dynamic-scrollspy": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/dynamic-scrollspy/-/dynamic-scrollspy-0.2.0.tgz",
|
||||
"integrity": "sha512-MpzvxeGr8AjpbAF52Dfob926pImY7hwEA7HO5lfNsydZyGB5uS2oLGn/1NKoKkkxQ5VcLfua65RgNZYaFqIRgg=="
|
||||
},
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/len0rd/personal-website#readme",
|
||||
"dependencies": {
|
||||
"dynamic-scrollspy": "^0.2.0",
|
||||
"ejs": "^2.6.1",
|
||||
"express": "^4.16.3",
|
||||
"mkdirp": "^0.5.1",
|
||||
|
|
12
prestart.js
12
prestart.js
|
@ -11,13 +11,13 @@ const showdown = require('showdown'),
|
|||
inputDir = './project_writeups/',
|
||||
outputDir = './views/partials/md/',
|
||||
classMap = {
|
||||
h1: 'display-1'
|
||||
h1: 'display-1' //tag type : class to add to all tags of that type (class="display-1" added to all <h1>)
|
||||
};
|
||||
|
||||
// handles adding classes to specific
|
||||
// tag types automatically
|
||||
const addClass = {
|
||||
type: 'output',
|
||||
type: 'output', // when it's triggered -> output is at the very end when text is html
|
||||
filter: text => {
|
||||
var modifiedText = text;
|
||||
Object.keys(classMap).forEach(function(key) {
|
||||
|
@ -25,7 +25,8 @@ const addClass = {
|
|||
matcher = regex.exec(modifiedText);
|
||||
|
||||
while (matcher != null && !matcher[0].includes(classMap[key])) {
|
||||
console.log(matcher[0]);
|
||||
// add the class content WHILE preserving any other properties already in the tag!
|
||||
console.log("adding class content in: " + matcher[0]);
|
||||
|
||||
var restOfTag = matcher[1];
|
||||
modifiedText = modifiedText.replace(matcher[0], `<${key} class="${classMap[key]}" ${restOfTag}>`);
|
||||
|
@ -37,10 +38,12 @@ const addClass = {
|
|||
}
|
||||
};
|
||||
|
||||
// create our Showdown converter with our custom extension
|
||||
const converter = new showdown.Converter({
|
||||
extensions: [addClass]
|
||||
});
|
||||
|
||||
// make the directory for our html output if necessary
|
||||
mkdirp(outputDir, (err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
|
@ -49,6 +52,7 @@ mkdirp(outputDir, (err) => {
|
|||
}
|
||||
});
|
||||
|
||||
// Lets start the actual conversion!
|
||||
fs.readdir(inputDir, (err, files) => {
|
||||
files.forEach(file => {
|
||||
if (file.endsWith('.md')) {
|
||||
|
@ -58,7 +62,7 @@ fs.readdir(inputDir, (err, files) => {
|
|||
if (err) {
|
||||
console.error(err);
|
||||
} else {
|
||||
let html = converter.makeHtml(data);
|
||||
let html = converter.makeHtml(data); // where the magic happens
|
||||
fs.writeFile(outputDir + fileNameNoExtension + '.ejs', html, 'utf8', (err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
|
|
Loading…
Reference in a new issue