diff options
-rwxr-xr-x | server.js | 19 | ||||
-rw-r--r-- | views/index.ejs | 4 | ||||
-rw-r--r-- | views/rss_feed.pug | 21 |
3 files changed, 36 insertions, 8 deletions
@@ -33,6 +33,10 @@ app.engine("ejs", require("ejs").__express); app.use(helmet()); app.use(morgan("combined")); +async function enumerateDir() { + return await fs.readdirSync(path.join(__dirname, "mds")); +} + function renderAndSend(req, res) { try { let viewPath; @@ -90,10 +94,13 @@ app.get("/robots.txt", (req, res) => { res.send(robots_txt); }); -// app.get("/rss/feed", (req, res) => { -// let html = pug.renderFile("./views/rss_feed.pug", merge(options, localls)); -// res.send(html); -// }); +app.get("/rss/feed", (req, res) => { + const compiledFunction = pug.compileFile("./views/rss_feed.pug"); + const files = fs.readdirSync(path.join(__dirname, "mds")); + for (const file of files) { + res.send(compiledFunction(file)); + } +}); app.get("/$", (req, res) => { renderAndSend(req, res); @@ -106,10 +113,6 @@ app.get("/mds/:mdname$", (req, res) => { renderAndSend(req, res); }); -async function enumerateDir() { - return await fs.readdirSync(path.join(__dirname, "mds")); -} - app.use(sitemap(enumerateDir, "https://blog.terminaldweller.com")); app.use((req, res) => { diff --git a/views/index.ejs b/views/index.ejs index 4679e4a..529a5ed 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -5,6 +5,8 @@ <meta name="viewport" content="width=device-width"> <title>Blog</title> <link rel="stylesheet" href="/master.css" type="text/css" media="screen" title="no title" charset="utf-8"> + <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss/feed"> + <!-- <link rel="alternate" type="application/atom+xml" title="RSS" href="/rss/feed"> --> </head> <body> <script>0</script> @@ -15,6 +17,8 @@ <br/> <a href="/archive" class="left-footer">Archive</a> <a href="/about" class="right-footer">About</a> + <a class="right-footer">   </a> + <a href="/rss/feed" class="right-footer">RSS</a> </div> </body> </html> diff --git a/views/rss_feed.pug b/views/rss_feed.pug new file mode 100644 index 0000000..9bdd9bd --- /dev/null +++ b/views/rss_feed.pug @@ -0,0 +1,21 @@ +doctype xml +rss(version='2.0', xmlns:atom='<a href="http://www.w3.org/2005/Atom" rel="nofollow">http://www.w3.org/2005/Atom</a>') + channel + title DevSmash + link <a href="http://devsmash.com" rel="nofollow">http://devsmash.com</a> + atom:link(href='<a href="http://devsmash.com/feed/rss" rel="nofollow">http://devsmash.com/feed/rss</a>', rel='self', type='application/rss+xml') + description Developers talking about stuff that developers like to talk about. + language en-US + if posts.length + lastBuildDate= new Date(posts[0].publishedAt).toUTCString() + each post in posts + item + title= post.title + link <a href="http://devsmash.com/blog/#{post.slug}" rel="nofollow">http://devsmash.com/blog/#{post.slug}</a> + description + | <![CDATA[ + | !{post.teaser} + p: a(href='<a href="http://devsmash.com/blog/#{post.slug}')!=" rel="nofollow">http://devsmash.com/blog/#{post.slug}')!=</a> 'Read more »' + | ]]> + pubDate= new Date(post.publishedAt).toUTCString() + guid(isPermaLink='false') <a href="http://devsmash.com/blog/#{post.slug}" |