From ed2361980b455d1825d811670f329cbcf5624927 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Thu, 24 Apr 2025 12:48:51 +0200 Subject: Move docs to Markdown and use markdown renderer in server. --- server.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'server.js') diff --git a/server.js b/server.js index f90cf48..36fb03b 100644 --- a/server.js +++ b/server.js @@ -9,6 +9,7 @@ const { WebSocketServer } = require("ws") const express = require("express") const url = require("url") const sqlite3 = require("better-sqlite3") +const marked = require("marked") require("dotenv").config() @@ -4183,6 +4184,43 @@ wss.on("connection", (socket, req) => { } }) +/* + * DOCUMENTATION - MARKDOWN + */ + +const docs_prolog = ` + + +TITLE +
` + +function render_markdown(path) { + var text = fs.readFileSync(path, "utf-8") + var html = marked.parse(text) + var title = html.match(/

([^>]*)<\/h1>/)?.[1] ?? path + return docs_prolog.replace("TITLE", title) + html +} + +app.get("/docs", function (req, res) { + res.send(render_markdown("docs/index.md")) +}) + +app.get("/docs/:file", function (req, res) { + try { + res.send(render_markdown("docs/" + req.params.file + ".md")) + } catch (err) { + res.status(404).send(err.message) + } +}) + +app.get("/docs/:dir/:file", function (req, res) { + try { + res.send(render_markdown("docs/" + req.params.dir + "/" + req.params.file + ".md")) + } catch (err) { + res.status(404).send(err.message) + } +}) + /* * HIDDEN EXTRAS */ -- cgit v1.2.3