const EleventyFetch = require("@11ty/eleventy-fetch"); module.exports = { eleventyComputed: { content: async () => { // Retrieve the /now page from the server const body = await EleventyFetch("https://api.omg.lol/address/lewis/now", { type: 'json', duration: '6h' }); // Convert the unix timestamp to a JS datetime timestamp const updated = new Date(body.response.now.updated * 1000); let content = body.response.now.content; // Replace the last-updated tag content = content.replace("{last-updated}", `Updated ${updated.toLocaleDateString('en-GB', { dateStyle: "medium" })}`); // Strip out omg.lol-specific tags content = content.replaceAll(/{[^}]*}/g, ""); // remove comments content = content.replaceAll(/\/\*.*?\*\//g, ""); // drop all headings down by a single level (h3 -> h2 etc) content = content.replaceAll(/^#/gm, ""); // Remove everything before the --- Now --- marker, because I handle page titles and headings in 11ty if (content.includes("--- Now ---")) { const [before, after] = content.split("--- Now ---"); content = after; } return content; } } }