diff --git a/package.json b/package.json index 51f986bf840f..eef15ab7635d 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "fetch": "run-p fetch:*", "fetch:readmes": "node src/utilities/fetch-package-readmes.mjs", "fetch:supporters": "node src/utilities/fetch-supporters.mjs", + "fetch:footer": "node src/utilities/fetch-footer.mjs", "fetch:governance": "node src/utilities/fetch-governance.mjs", "fetch-all": "run-s fetch-repos fetch", "prebuild": "npm run clean", diff --git a/src/components/Footer/Footer.jsx b/src/components/Footer/Footer.jsx index d0550f6579d1..66ffb6fb25fe 100644 --- a/src/components/Footer/Footer.jsx +++ b/src/components/Footer/Footer.jsx @@ -4,6 +4,7 @@ import Icon from "../../assets/icon-square-small.svg"; import OpenJSLogo from "../../assets/openjs-logo.png"; import Container from "../Container/Container.jsx"; import Link from "../Link/Link.jsx"; +import footerLegal from './_footer-legal.json'; const footerLinkClasses = "text-[11px] uppercase text-[#777676] dark:text-[#cccccc] hover:text-[#333333] dark:hover:text-[#ffffff]"; @@ -36,16 +37,14 @@ const Footer = () => ( holders. Use of them does not imply any affiliation with or endorsement by them.

-

- The OpenJS Foundation |{" "} - Terms of Use |{" "} - Privacy Policy |{" "} - Bylaws |{" "} - Code of Conduct |{" "} - Trademark Policy |{" "} - Trademark List |{" "} - Cookie Policy -

+

+ {footerLegal.links.map((link, i) => ( + + {i > 0 && ' | '} + {link.label}a> + + ))} +

([^<]+)<\/a>/g; + const paragraphs = html.split('

'); + +// Second paragraph contains the links bar +const linksSection = paragraphs.length > 1 ? paragraphs[1] : ''; + const links = []; + let match; + while ((match = linkRegex.exec(linksSection)) !== null) { + links.push({ url: match[1], label: match[2] }); + } + +const data = { links }; + +await mkdir(path.dirname(OUTPUT_PATH), { recursive: true }); + await writeFile(OUTPUT_PATH, JSON.stringify(data, null, 2)); + +console.log(`Footer data written to ${OUTPUT_PATH}`); + console.log(`Found ${links.length} footer links`); +} + +fetchFooter().catch((err) => { + console.error('Error fetching footer:', err); + process.exit(1); +});