From 6714ce7d521075e984733adde9682f86202c5da9 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sun, 29 May 2022 17:43:43 +0200 Subject: [PATCH] wip(org): Work on new site --- packages/freesewing.org/components/footer.js | 422 ++++++++++++------ packages/freesewing.org/next.config.mjs | 7 - packages/freesewing.org/package.json | 1 + .../freesewing.org/public/brands/vercel.svg | 6 + .../freesewing.shared/components/docs-link.js | 12 + .../freesewing.shared/components/page-link.js | 2 +- .../freesewing.shared/prebuild/i18n-only.mjs | 3 + packages/freesewing.shared/prebuild/mdx.mjs | 7 +- 8 files changed, 317 insertions(+), 143 deletions(-) create mode 100644 packages/freesewing.org/public/brands/vercel.svg create mode 100644 packages/freesewing.shared/components/docs-link.js create mode 100644 packages/freesewing.shared/prebuild/i18n-only.mjs diff --git a/packages/freesewing.org/components/footer.js b/packages/freesewing.org/components/footer.js index 3a03a17a847..e6a0d95aa8f 100644 --- a/packages/freesewing.org/components/footer.js +++ b/packages/freesewing.org/components/footer.js @@ -1,17 +1,169 @@ -import NextLink from 'next/link' import Logo from 'shared/components/logos/freesewing.js' import contributors from 'site/prebuild/allcontributors.js' import patrons from 'site/prebuild/patrons.js' import OsiLogo from 'shared/components/logos/osi.js' import CreativeCommonsLogo from 'shared/components/logos/cc.js' import CcByLogo from 'shared/components/logos/cc-by.js' +import { useTranslation } from 'next-i18next' +import PageLink from 'shared/components/page-link' +import DocsLink from 'shared/components/docs-link' -const Link = ({ href, txt }) => ( - - {txt} - -) +// Classes const link = "text-secondary font-bold hover:pointer hover:underline px-1" +const accent = "text-accent font-bold text-lg px-1 block sm:inline" +const freesewing = "px-1 text-lg font-bold block sm:inline" + +// Keep these translations in the component because they're only used here +const translations = { + cc: { + en: + Content on FreeSewing.org is available under a Creative Commons license + , + de: + Inhalte auf FreeSewing.org sind unter einer Creative + Commons-Lizenz verfügbar + , + es: + El contenido de FreeSewing.org está disponible bajo una licencia Creative Commons + , + fr: + Le contenu de FreeSewing.org est sous + licence Creative Commons + , + nl: + De inhoud op FreeSewing.org is beschikbaar onder + een Creative Commons licentie + , + }, + mit: { + en: + The FreeSewing source code is available on Github under the MIT license + , + de: + Der FreeSewing-Quellcode ist auf Github verfügbar unter der MIT-Lizenz + , + es: + El código fuente de FreeSewing está disponible en Github bajo la licencia MIT + , + fr: + Le code source de FreeSewing est disponible sur Github sous la licence MIT + , + nl: + De FreeSewing broncode is beschikbaar op Github onder de MIT licentie + , + }, + contributors: { + en: <> + FreeSewing is made by these wonderful contributors + , + de: <> + FreeSewing wird van diesen wunderbaren Mitwirkende gemacht + , + es: <> + FreeSewing es hecho por estas maravillosxs contribuyente + , + fr: <> + FreeSewing est fait par ces merveilleux contributeurs + , + nl: <> + FreeSewing wordt gemaakt door deze wonderbaarlijke medewerkers + , + }, + patrons: { + en: <> + FreeSewing is supported by these generous patrons + , + de: <> + FreeSewing wird von diesen großzügigen Gönnern unterstützt + , + es: <> + FreeSewing cuenta con el apoyo de estos generosos patrocinadores + , + fr: <> + FreeSewing est soutenu par ces généreux mécènes + , + nl: <> + FreeSewing wordt ondersteund door deze gulle patrons + , + }, + sponsors: { + en: <> + FreeSewing is sponsored by these awesome companies + , + de: <> + FreeSewing wird von diesen großartigen Unternehmen gesponsert + , + es: <> + FreeSewing está patrocinado por estas increíbles empresas + , + fr: <> + FreeSewing est sponsorisé par ces entreprises géniales + , + nl: <> + FreeSewing wordt gesponsord door deze geweldige bedrijven + , + }, + msf: { + en: <> + All FreeSewing revenue goes to Doctors Without Borders + , + de: <> + Alle FreeSewing-Einnahmen gehen an Ärzte ohne Grenzen + , + es: <> + Todos los ingresos de FreeSewing van a Médicos sin Fronteras + , + fr: <> + Tous les revenus de FreeSewing vont à Médecins Sans Frontières + , + nl: <> + Alle inkomsten van FreeSewing gaan naar Artsen Zonder Grenzen + , + }, +} const social = { Discord: 'https://discord.freesewing.org/', @@ -22,146 +174,152 @@ const social = { Twitter: 'https://twitter.com/freesewing_org', } -const Footer = ({ app }) => ( - + ) +} export default Footer diff --git a/packages/freesewing.org/next.config.mjs b/packages/freesewing.org/next.config.mjs index a38b7953ed5..ab561a3af63 100644 --- a/packages/freesewing.org/next.config.mjs +++ b/packages/freesewing.org/next.config.mjs @@ -16,13 +16,6 @@ const config = { i18n: i18nConfig.i18n, pageExtensions: [ 'js' ], webpack: (config, options) => { - // YAML support - config.module.rules.push({ - test: /\.ya?ml$/, - type: 'yaml', - use: 'yaml-loader' - }) - // Aliases config.resolve.alias.shared = path.resolve('../freesewing.shared/') config.resolve.alias.site = path.resolve(`.`) diff --git a/packages/freesewing.org/package.json b/packages/freesewing.org/package.json index 2c07e661e01..2f162f94026 100644 --- a/packages/freesewing.org/package.json +++ b/packages/freesewing.org/package.json @@ -6,6 +6,7 @@ "dev": "SITE=org next dev -p 3002", "develop": "SITE=org next dev -p 3002", "prebuild": "SITE=org node ../freesewing.shared/prebuild/index.mjs", + "i18n": "SITE=org node ../freesewing.shared/prebuild/i18n-only.mjs", "build": "next build", "export": "yarn prebuild && next build && next export", "start": "next start -p 3002", diff --git a/packages/freesewing.org/public/brands/vercel.svg b/packages/freesewing.org/public/brands/vercel.svg new file mode 100644 index 00000000000..b43cc84de74 --- /dev/null +++ b/packages/freesewing.org/public/brands/vercel.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/freesewing.shared/components/docs-link.js b/packages/freesewing.shared/components/docs-link.js new file mode 100644 index 00000000000..6c47738c095 --- /dev/null +++ b/packages/freesewing.shared/components/docs-link.js @@ -0,0 +1,12 @@ +import PageLink from './page-link' +import get from 'lodash.get' +import useApp from 'site/hooks/useApp' + +const DocsLink = ({ slug }) => { + const app = useApp() + return +} + +export default DocsLink + + diff --git a/packages/freesewing.shared/components/page-link.js b/packages/freesewing.shared/components/page-link.js index 405430a9c87..490f45fe8a5 100644 --- a/packages/freesewing.shared/components/page-link.js +++ b/packages/freesewing.shared/components/page-link.js @@ -3,7 +3,7 @@ import Link from 'next/link' const PageLink = ({ href, txt }) => ( {txt} diff --git a/packages/freesewing.shared/prebuild/i18n-only.mjs b/packages/freesewing.shared/prebuild/i18n-only.mjs new file mode 100644 index 00000000000..f971ac65d83 --- /dev/null +++ b/packages/freesewing.shared/prebuild/i18n-only.mjs @@ -0,0 +1,3 @@ +import { prebuildI18n } from './i18n.mjs' + +prebuildI18n(process.env.SITE) diff --git a/packages/freesewing.shared/prebuild/mdx.mjs b/packages/freesewing.shared/prebuild/mdx.mjs index 3244fba9256..8b063900c07 100644 --- a/packages/freesewing.shared/prebuild/mdx.mjs +++ b/packages/freesewing.shared/prebuild/mdx.mjs @@ -17,7 +17,7 @@ import yaml from 'js-yaml' * which breaks stuff. So this method takes the input and replaces all * - - - with --- */ -const fixCrowdinBugs = md => { +export const fixCrowdinBugs = md => { md.value = md.value.split("- - -\n").join("---\n") return md } @@ -49,7 +49,8 @@ export const getMdxFileList = async (folder, lang) => { for (const file of allFiles) { if ( file.slice(-5) === `${lang}.md` && - file.indexOf('/ui/') === -1 + file.indexOf('/ui/') === -1 && + file.indexOf('/uimd/') === -1 ) files.push(file) } @@ -59,7 +60,7 @@ export const getMdxFileList = async (folder, lang) => { /* * Helper method to get the website slug (path) from the file path */ -const fileToSlug = (file, site, lang) => (file.slice(-6) === `/${lang}.md`) +export const fileToSlug = (file, site, lang) => (file.slice(-6) === `/${lang}.md`) ? file.split(`/markdown/${site}/`).pop().slice(0, -6) : false