uplink-gemini/routes/articles.js

40 lines
1.2 KiB
JavaScript
Raw Normal View History

2022-01-07 15:32:19 +01:00
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) {
2022-01-08 22:03:47 +01:00
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`;
});
2022-01-08 22:26:22 +01:00
var articlesPage = `20 text/gemini\r\n\r\n# Articles by Uplink:SI\r\n=> / Home\r\nList of Articles:\r\n${contents}\r\n`;
2022-01-08 22:03:47 +01:00
response.send(articlesPage);
} catch (error) {
response.error(51);
}
2022-01-07 15:32:19 +01:00
}
function articles_item(request, response) {
2022-01-08 22:03:47 +01:00
try {
var article = fs.readFileSync('./articles/' + request.params.item);
2022-01-08 22:10:36 +01:00
var articlePage = `20 text/gemini\r\n\r\n${article}\r\n\r\n=> /articles/ 📓Articles\r\n=> / 🏡Home\r\n`;
2022-01-08 22:03:47 +01:00
response.send(articlePage);
} catch (error) {
response.error(51);
}
2022-01-07 15:32:19 +01:00
}
module.exports.articles = articles;
module.exports.articles_item = articles_item;