uplink-gemini/routes/articles.js
2022-01-08 21:50:58 +01:00

38 lines
956 B
JavaScript

var fs = require('fs');
function toTitleCase(str) {
return str.replace(/\w\S*/g, function(txt){
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
/* GET home page. */
function articles(request, response) {
var articleList = fs.readdirSync('./articles');
articleList.reverse();
var contents = '';
articleList.forEach(function(item) {
var title = item.replace('.gmi', '').replace(/\-/g, ' ');
title = toTitleCase(title);
contents += `=> /articles/${item} ${title}\r\n`;
});
response.send(`20 text/gemini\r\n
# Articles by Uplink:SI
List of Articles:
${contents}
`);
}
function articles_item(request, response) {
var article = fs.readFileSync('./articles/' + request.params.item);
response.send(`20 text/gemini\r\n
${article}
=> /articles/ 📓Articles
=> / 🏡Home
`);
}
module.exports.articles = articles;
module.exports.articles_item = articles_item;