uplink-gemini/routes/articles.js
2022-01-08 22:10:36 +01:00

40 lines
1.2 KiB
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) {
try {
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`;
});
var articlesPage = `20 text/gemini\r\n\r\n# Articles by Uplink:SI\r\nList of Articles:\r\n${contents}\r\n`;
response.send(articlesPage);
} catch (error) {
response.error(51);
}
}
function articles_item(request, response) {
try {
var article = fs.readFileSync('./articles/' + request.params.item);
var articlePage = `20 text/gemini\r\n\r\n${article}\r\n\r\n=> /articles/ 📓Articles\r\n=> / 🏡Home\r\n`;
response.send(articlePage);
} catch (error) {
response.error(51);
}
}
module.exports.articles = articles;
module.exports.articles_item = articles_item;