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\n=> / Home\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;