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
|
|
|
};
|