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;
|