2019-10-04 23:20:47 +02:00
|
|
|
const {
|
|
|
|
Feed
|
|
|
|
} = require("feed");
|
|
|
|
const fs = require("fs");
|
2019-10-20 15:56:22 +02:00
|
|
|
const converter = require("./showdown")(1);
|
2019-10-04 23:20:47 +02:00
|
|
|
|
2020-04-02 21:54:20 +02:00
|
|
|
let folder = __dirname + "/../";
|
|
|
|
console.log("Refreshing feeds...");
|
|
|
|
createFeed(function (feed) {
|
|
|
|
fs.writeFile(folder + "feed.json", feed.json1(), function (_, _) {});
|
|
|
|
fs.writeFile(folder + "rss.xml", feed.rss2(), function (_, _) {});
|
|
|
|
fs.writeFile(folder + "atom.xml", feed.atom1(), function (_, _) {});
|
|
|
|
});
|
2019-10-04 23:20:47 +02:00
|
|
|
|
|
|
|
function createFeed(callback) {
|
|
|
|
const feed = new Feed({
|
|
|
|
title: "Ellpeck's Blog",
|
|
|
|
description: "Occasionally I enjoy writing stuff. So here's some of the stuff I've written about gaming, programming and life.",
|
|
|
|
id: "https://ellpeck.de",
|
|
|
|
link: "https://ellpeck.de",
|
|
|
|
image: "https://ellpeck.de/res/logo.png",
|
|
|
|
favicon: "https://ellpeck.de/favicon.ico",
|
2021-03-17 03:30:30 +01:00
|
|
|
language: "en",
|
2019-10-04 23:20:47 +02:00
|
|
|
feedLinks: {
|
|
|
|
json: "https://ellpeck.de/feed.json",
|
2021-03-17 03:30:30 +01:00
|
|
|
atom: "https://ellpeck.de/atom.xml",
|
|
|
|
rss: "https://ellpeck.de/rss.xml"
|
2019-10-04 23:20:47 +02:00
|
|
|
},
|
|
|
|
author: {
|
|
|
|
name: "Ellpeck",
|
|
|
|
email: "me@ellpeck.de",
|
|
|
|
link: "https://ellpeck.de"
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2021-03-11 03:44:50 +01:00
|
|
|
fs.readFile(__dirname + "/../blog/src/posts.json", function (_, data) {
|
2019-10-04 23:33:45 +02:00
|
|
|
let json = JSON.parse(data);
|
2019-10-04 23:20:47 +02:00
|
|
|
for (let i = json.length - 1; i >= 0; i--) {
|
2019-10-04 23:33:45 +02:00
|
|
|
let post = json[i];
|
2019-11-20 22:17:58 +01:00
|
|
|
let date = new Date(post.date);
|
2019-10-04 23:20:47 +02:00
|
|
|
|
2021-03-11 03:44:50 +01:00
|
|
|
fs.readFile(__dirname + "/../blog/src/" + post.id + ".md", function (_, content) {
|
2019-10-04 23:33:45 +02:00
|
|
|
let html = converter.makeHtml(content.toString());
|
2019-10-04 23:20:47 +02:00
|
|
|
feed.addItem({
|
2020-09-30 00:27:47 +02:00
|
|
|
title: post.name + (post.archived ? " (Archived)" : ""),
|
2021-03-11 03:21:23 +01:00
|
|
|
link: "https://ellpeck.de/blog/" + post.id,
|
2019-11-20 22:17:58 +01:00
|
|
|
description: post.summary,
|
2019-10-04 23:20:47 +02:00
|
|
|
content: html,
|
|
|
|
date: date,
|
2021-03-17 03:07:12 +01:00
|
|
|
published: date,
|
|
|
|
category: [{
|
|
|
|
name: post.cat
|
|
|
|
}]
|
2019-10-04 23:20:47 +02:00
|
|
|
});
|
2021-03-17 03:07:12 +01:00
|
|
|
if (feed.categories.indexOf(post.cat) < 0)
|
|
|
|
feed.addCategory(post.cat);
|
2019-10-04 23:20:47 +02:00
|
|
|
|
|
|
|
if (i == 0) {
|
|
|
|
callback(feed);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|