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/' + decodeURIComponent(request.params.item)); response.send(`20 text/gemini\r\n ${article} => /articles/ 📓Articles => / 🏡Home `); } module.exports.articles = articles; module.exports.articles_item = articles_item;