Added markdown support.
This commit is contained in:
parent
5e1c9fd266
commit
562acb70a9
32
content/pages/article/markdown.njk
Normal file
32
content/pages/article/markdown.njk
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{% extends "templates/article.njk" %}
|
||||||
|
{% import "components/toc.njk" as toc with context %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
Markdown
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block toc %}
|
||||||
|
{% output "toc" %}{% endoutput %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
{% markdown %}
|
||||||
|
# Test of markdown
|
||||||
|
|
||||||
|
Lmao i mitt liv.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const testing = "a code block";
|
||||||
|
```
|
||||||
|
|
||||||
|
* A list item
|
||||||
|
* A list item
|
||||||
|
* A list item
|
||||||
|
* A list item
|
||||||
|
|
||||||
|
*italic* **bold**
|
||||||
|
|
||||||
|
{{ toc.header("h1", "test header") }}
|
||||||
|
|
||||||
|
{% endmarkdown %}
|
||||||
|
{% endblock %}
|
21
index.js
21
index.js
|
@ -1,11 +1,15 @@
|
||||||
import express from 'express'
|
import express from 'express'
|
||||||
import njk from 'nunjucks'
|
import njk from 'nunjucks'
|
||||||
import njkAppend from 'nunjucks-append'
|
import njkAppend from 'nunjucks-append'
|
||||||
|
import njkMarkdown from 'nunjucks-markdown'
|
||||||
|
import marked from 'marked'
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
|
import { requestHandler } from './libs/requestHandler.js'
|
||||||
|
import { markedRenderer } from './libs/markedRenderer.js'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const ConfigFile = await fs.readFileSync('./config.json')
|
const ConfigFile = fs.readFileSync('./config.json')
|
||||||
const Config = JSON.parse(ConfigFile)
|
const Config = JSON.parse(ConfigFile)
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,23 +30,12 @@ const njkEnv = njk.configure(
|
||||||
)
|
)
|
||||||
|
|
||||||
njkAppend.initialise(njkEnv)
|
njkAppend.initialise(njkEnv)
|
||||||
|
njkMarkdown.register(njkEnv, marked)
|
||||||
|
|
||||||
|
|
||||||
Server.get(
|
Server.get(
|
||||||
'*',
|
'*',
|
||||||
(req, res) => {
|
(req, res) => requestHandler(req, res, Config)
|
||||||
const context = {
|
|
||||||
serverName: Config.serverName
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fs.existsSync(`./${Config.contentDir}/pages/${req.path}.njk`, context))
|
|
||||||
return res.render(`pages/${req.path}.njk`)
|
|
||||||
|
|
||||||
if (fs.existsSync(`./${Config.contentDir}/pages/${req.path}/index.njk`, context))
|
|
||||||
return res.render(`pages/${req.path}/index.njk`)
|
|
||||||
|
|
||||||
return res.status(404).render('errors/404.njk', context)
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
Server.listen(
|
Server.listen(
|
||||||
|
|
15
libs/requestHandler.js
Normal file
15
libs/requestHandler.js
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
import fs from 'fs'
|
||||||
|
|
||||||
|
export function requestHandler(req, res, Config) {
|
||||||
|
const context = {
|
||||||
|
serverName: Config.serverName
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fs.existsSync(`./${Config.contentDir}/pages/${req.path}.njk`, context))
|
||||||
|
return res.render(`pages/${req.path}.njk`)
|
||||||
|
|
||||||
|
if (fs.existsSync(`./${Config.contentDir}/pages/${req.path}/index.njk`, context))
|
||||||
|
return res.render(`pages/${req.path}/index.njk`)
|
||||||
|
|
||||||
|
return res.status(404).render('errors/404.njk', context)
|
||||||
|
}
|
|
@ -19,7 +19,9 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chokidar": "^3.5.2",
|
"chokidar": "^3.5.2",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
|
"marked": "^2.1.3",
|
||||||
"nunjucks": "^3.2.3",
|
"nunjucks": "^3.2.3",
|
||||||
"nunjucks-append": "^0.0.3"
|
"nunjucks-append": "^0.0.3",
|
||||||
|
"nunjucks-markdown": "^2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user