diff --git a/resources/misuse.js b/resources/misuse.js new file mode 100644 index 0000000..e69de29 diff --git a/resources/misuses.txt b/resources/misuses.txt new file mode 100644 index 0000000..e69de29 diff --git a/resources/template.html b/resources/template.html index fad3326..7ddd409 100644 --- a/resources/template.html +++ b/resources/template.html @@ -1,6 +1,7 @@ + %MISUSE% NoteHub — %TITLE% diff --git a/server.js b/server.js index 2030997..51b29ae 100644 --- a/server.js +++ b/server.js @@ -147,7 +147,7 @@ app.get(/\/([a-z0-9]+)/, function(req, res) { var sendResponse = (res, code, message) => { log("sending response", code, message); - res.status(code).send(view.renderPage(message, "

" + message + "

", "")); + res.status(code).send(view.renderPage(null, message, "

" + message + "

", "")); } var notFound = res => sendResponse(res, 404, "Not found"); diff --git a/src/view.js b/src/view.js index df81a65..625f468 100644 --- a/src/view.js +++ b/src/view.js @@ -4,19 +4,22 @@ var fs = require("fs"); var pageTemplate = fs.readFileSync("resources/template.html", "utf-8"); var footerTemplate = fs.readFileSync("resources/footer.html", "utf-8"); var editTemplate = fs.readFileSync("resources/edit.html", "utf-8"); +var misuseScript = fs.readFileSync("resources/misuse.js", "utf-8"); +var misuses = new Set(fs.readFileSync("resources/misuses.txt", "utf-8").split(/\s+/)); var deriveTitle = text => text .split(/[\n\r]/)[0].slice(0,25) .replace(/[^a-zA-Z0-9\s]/g, ""); -var renderPage = (title, content, footer) => pageTemplate +var renderPage = (id, title, content, footer) => pageTemplate + .replace("%MISUSE%", misuses.has(id) ? misuseScript : "") .replace("%TITLE%", title) .replace("%CONTENT%", content) .replace("%FOOTER%", footer); module.exports.renderPage = renderPage; -module.exports.renderStats = note => renderPage(deriveTitle(note.text), +module.exports.renderStats = note => renderPage(note.id, deriveTitle(note.text), `

Statistics

@@ -25,7 +28,7 @@ module.exports.renderStats = note => renderPage(deriveTitle(note.text),
Published${note.published}
`, ""); -module.exports.renderNote = note => renderPage(deriveTitle(note.text), +module.exports.renderNote = note => renderPage(note.id, deriveTitle(note.text), marked(note.text), footerTemplate.replace(/%LINK%/g, note.id));