old-website/scripts/mdx-scripts/event-conversion.js

50 lines
1.8 KiB
JavaScript
Raw Normal View History

2021-06-03 18:10:05 -04:00
const Breakdance = require("breakdance");
const converter = new Breakdance();
const fs = require("fs");
2021-06-03 08:35:58 -04:00
2021-06-03 18:10:05 -04:00
fs.readFile("./event-test.xml", "utf8", (err, data) => {
if (err) {
console.error(err);
return;
}
parseXML(data);
});
2021-06-03 08:35:58 -04:00
const parseXML = (XML) => {
const eventItemRegex = /<eventitem.*>(.|\n)*?<\/eventitem>/g;
const shortRegex = /(?<=<short>)(.|\n)*?(?=<\/short>)/g;
const abstractRegex = /(?<=<abstract>)(.|\n)*?(?=<\/abstract>)/g;
2021-06-03 09:00:22 -04:00
const dateRegex = /(?<=<eventitem(.*)date=")(.|\n)*?(?="(.*)>)/g;
const timeRegex = /(?<=<eventitem(.*)time=")(.|\n)*?(?="(.*)>)/g;
const roomRegex = /(?<=<eventitem(.*)room=")(.|\n)*?(?="(.*)>)/g;
const titleRegex = /(?<=<eventitem(.*)title=")(.|\n)*?(?="(.*)>)/g;
2021-06-03 08:35:58 -04:00
let eventItems = [];
while ((eventItems = eventItemRegex.exec(XML)) !== null) {
2021-06-03 09:00:22 -04:00
dateRegex.lastIndex = 0;
timeRegex.lastIndex = 0;
roomRegex.lastIndex = 0;
titleRegex.lastIndex = 0;
shortRegex.lastIndex = 0;
abstractRegex.lastIndex = 0;
2021-06-03 08:35:58 -04:00
const eventItem = eventItems[0];
2021-06-03 18:10:05 -04:00
const dateStr = dateRegex.exec(eventItem);
const timeStr = timeRegex.exec(eventItem);
const title = titleRegex.exec(eventItem)[0];
const short = shortRegex.exec(eventItem)[0];
// const short = shortRegex.exec(eventItem)[0]; if we want shorts in mdx
const room = roomRegex.exec(eventItem)[0];
const date = new Date(`${dateStr[0]} ${timeStr[0]}`);
const abstract = converter.render(abstractRegex.exec(eventItem)[0]);
mdx = `export const metadata = {\n name: ${title},\n short: ${short},\n date: ${date},\n online: TODO FIX THIS,\n location: ${room},\n registerLink: TODO FIX THIS,\n}\n\n${abstract}`;
fs.writeFile(`${timeRegex.lastIndex}.mdx`, mdx, function (err) {
if (err) return console.log(err);
});
2021-06-03 08:35:58 -04:00
}
2021-06-03 18:10:05 -04:00
};