From 1949ffb62ec1d10437668faa19ef315bc3b0aaa5 Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Wed, 18 Sep 2024 15:28:59 -0400 Subject: [PATCH 1/6] load adobe font --- .../ThemeProvider/MITLearnGlobalStyles.tsx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/frontends/ol-components/src/components/ThemeProvider/MITLearnGlobalStyles.tsx b/frontends/ol-components/src/components/ThemeProvider/MITLearnGlobalStyles.tsx index 1fe672169b..7557b4ceae 100644 --- a/frontends/ol-components/src/components/ThemeProvider/MITLearnGlobalStyles.tsx +++ b/frontends/ol-components/src/components/ThemeProvider/MITLearnGlobalStyles.tsx @@ -3,8 +3,26 @@ import React from "react" import { css, Global } from "@emotion/react" import { theme } from "./ThemeProvider" +import { preload } from "react-dom" + +/** + Font files for Adobe neue haas grotesk. + WARNING: This is linked to chudzick@mit.edu's Adobe account. + We'd prefer a non-personal MIT account to be used. + See XXX for more. + + Ideally the font would be loaded via a tag; see + - https://nextjs.org/docs/app/api-reference/functions/generate-metadata#unsupported-metadata + - https://github.com/vercel/next.js/discussions/52877 + - https://github.com/vercel/next.js/discussions/50796 + */ +const ADOBE_FONT_URL = "https://use.typekit.net/lbk1xay.css" const pageCss = css` + @import url("${ADOBE_FONT_URL}"); /** + @import must come before other styles, including comments + */ + html { font-family: ${theme.typography.body1.fontFamily}; color: ${theme.typography.body1.color}; @@ -101,6 +119,11 @@ const muiCss = css` ` const MITLearnGlobalStyles: React.FC = () => { + /** + * Preload the font just in case emotion doesn't put the import near top of + * HTML. + */ + preload(ADOBE_FONT_URL, { as: "style", fetchPriority: "high" }) return } From 3823b5c8d5d215f983a558c79c8da10094836a24 Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Wed, 18 Sep 2024 16:20:37 -0400 Subject: [PATCH 2/6] add noindex based on MITOL_NOINDEX --- frontends/main/src/app/page.tsx | 2 ++ frontends/main/src/common/metadata.ts | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/frontends/main/src/app/page.tsx b/frontends/main/src/app/page.tsx index c1d6165e03..58ac06a9d1 100644 --- a/frontends/main/src/app/page.tsx +++ b/frontends/main/src/app/page.tsx @@ -16,6 +16,8 @@ export async function generateMetadata({ return await getMetadataAsync({ title: "Learn with MIT", searchParams, + robots: + process.env.MITOL_NOINDEX === "true" ? "noindex, nofollow" : undefined, }) } diff --git a/frontends/main/src/common/metadata.ts b/frontends/main/src/common/metadata.ts index 1dfa0032ff..ab40c3050e 100644 --- a/frontends/main/src/common/metadata.ts +++ b/frontends/main/src/common/metadata.ts @@ -1,5 +1,6 @@ import { RESOURCE_DRAWER_QUERY_PARAM } from "@/common/urls" import { learningResourcesApi } from "api/clients" +import type { Metadata } from "next" const DEFAULT_OG_IMAGE = `${process.env.NEXT_PUBLIC_ORIGIN}/images/opengraph-image.jpg` @@ -10,7 +11,7 @@ type MetadataAsyncProps = { imageAlt?: string searchParams?: { [key: string]: string | string[] | undefined } social?: boolean -} +} & Metadata /* * Fetch metadata for the current page. @@ -23,6 +24,7 @@ export const getMetadataAsync = async ({ imageAlt, searchParams, social = true, + ...otherMeta }: MetadataAsyncProps) => { // The learning resource drawer is open const learningResourceId = searchParams?.[RESOURCE_DRAWER_QUERY_PARAM] @@ -50,6 +52,7 @@ export const getMetadataAsync = async ({ image, imageAlt, social, + ...otherMeta, }) } @@ -65,7 +68,8 @@ export const standardizeMetadata = ({ image = DEFAULT_OG_IMAGE, imageAlt, social = true, -}: MetadataProps) => { + ...otherMeta +}: MetadataProps): Metadata => { title = `${title} | ${process.env.NEXT_PUBLIC_SITE_NAME}` const socialMetadata = social ? { @@ -98,5 +102,6 @@ export const standardizeMetadata = ({ title, description, ...socialMetadata, + ...otherMeta, } } From 32f96ea768113e07c1ffbf7c6fdef456278a49c5 Mon Sep 17 00:00:00 2001 From: Chris Chudzicki Date: Wed, 18 Sep 2024 17:01:11 -0400 Subject: [PATCH 3/6] add appzi script --- frontends/main/src/app/layout.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontends/main/src/app/layout.tsx b/frontends/main/src/app/layout.tsx index cf32f524c3..2f3f280abe 100644 --- a/frontends/main/src/app/layout.tsx +++ b/frontends/main/src/app/layout.tsx @@ -6,6 +6,7 @@ import Footer from "@/page-components/Footer/Footer" import { PageWrapper, PageWrapperInner } from "./styled" import Providers from "./providers" import { MITLearnGlobalStyles } from "ol-components" +import Script from "next/script" import "./GlobalStyles" @@ -26,6 +27,9 @@ export default function RootLayout({ + {process.env.NEXT_PUBLIC_APPZI_URL ? ( +