add support for mermaid diagram to markdown editor

This commit is contained in:
Hiroyasu Nishiyama
2023-01-05 17:25:16 +09:00
parent 928131cf08
commit 038f75e48f
13 changed files with 202 additions and 9 deletions

View File

@@ -0,0 +1,33 @@
// Dynamic loading support for editor libraries
var apiUtils = require("../util");
var fs = require("fs");
var path = require("path");
var lib2path = {
"mermaid": "../../../editor-client/public/vendor/mermaid/mermaid.min.js",
};
module.exports = {
init: function(_settings, _runtimeAPI) {
settings = _settings;
},
get: function(req,res) {
var name = req.params.name;
if (name in lib2path) {
try {
var lib = path.join(__dirname, lib2path[name]);
var code = fs.readFileSync(lib);
res.send(code);
}
catch (e) {
res.status(500).json({code: "runtime_error", message: e.toString()});
}
}
else {
res.status(400).json({code: "invalid_request", message: `no library: ${name}`});
}
},
}

View File

@@ -116,6 +116,11 @@ module.exports = {
// SSH keys
editorApp.use("/settings/user/keys",needsPermission("settings.write"),info.sshkeys());
// Editor Libraries
var editorLibs = require("./editor-libs");
editorLibs.init(settings, runtimeAPI);
editorApp.get("/editor-libs/:name", needsPermission("editor-libs.read"), editorLibs.get, apiUtil.errorHandler);
return editorApp;
}
},