From cd39ed9edef5885cfdf2dea99c56e840d8614a1a Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Thu, 29 Aug 2024 12:21:14 +0100 Subject: [PATCH 01/30] chore: Update domains.json --- domains.json | 1 + 1 file changed, 1 insertion(+) diff --git a/domains.json b/domains.json index 7a74ab06..26271656 100644 --- a/domains.json +++ b/domains.json @@ -1,4 +1,5 @@ [ + ["test.docs.page", "invertase/docs.page"], ["use.docs.page", "invertase/docs.page"], ["docs.globe.dev", "invertase/globe"], ["docs.turing.sh", "TuringAI-Team/turing-ai-api"], From cd01348422c25d36b641c3f577e5d437ffe33163 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Thu, 29 Aug 2024 12:43:38 +0100 Subject: [PATCH 02/30] - --- website/app/entry.client.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/app/entry.client.tsx b/website/app/entry.client.tsx index 56192904..854f394d 100644 --- a/website/app/entry.client.tsx +++ b/website/app/entry.client.tsx @@ -23,6 +23,7 @@ if (window.__docsPage) { const isCustomDomain = !isVanityDomain && !DOMAINS.includes(hostname); if (isVanityDomain || isCustomDomain) { + window.__remixContext.basename = "/invertase/docs.page"; window.__remixContext.url = window.location.pathname; } From 1609f6fb66237f5153515a8046e486a5291a4af9 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Thu, 29 Aug 2024 12:49:48 +0100 Subject: [PATCH 03/30] - --- website/app/entry.client.tsx | 1 - website/app/routes/_layout._index/route.tsx | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/website/app/entry.client.tsx b/website/app/entry.client.tsx index 854f394d..56192904 100644 --- a/website/app/entry.client.tsx +++ b/website/app/entry.client.tsx @@ -23,7 +23,6 @@ if (window.__docsPage) { const isCustomDomain = !isVanityDomain && !DOMAINS.includes(hostname); if (isVanityDomain || isCustomDomain) { - window.__remixContext.basename = "/invertase/docs.page"; window.__remixContext.url = window.location.pathname; } diff --git a/website/app/routes/_layout._index/route.tsx b/website/app/routes/_layout._index/route.tsx index c29d1383..5c4e8d1a 100644 --- a/website/app/routes/_layout._index/route.tsx +++ b/website/app/routes/_layout._index/route.tsx @@ -9,9 +9,25 @@ import { Features } from "./Features"; import { Hero } from "./Hero"; import { Platform } from "./Platform"; +import { loader as docsRouteLoader } from "~/routes/$/route"; +import { LoaderFunctionArgs } from "@vercel/remix"; + export const links = getLinkDescriptors; export const meta = getMetadata; +export const loader = async (args: LoaderFunctionArgs) => { + const url = new URL(args.request.url); + + console.log('URL HOSTNAME', url.hostname); + + // If url hostname is not docs.page or staging.docs.page, we need to return the docsRouteLoader + if (!["docs.page", "staging.docs.page"].includes(url.hostname)) { + return docsRouteLoader(args); + } + + return {}; +}; + export default function Homepage() { return ( <> From a2640b9078c33674a665dab4c378eac614cf94cf Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Thu, 29 Aug 2024 13:56:18 +0100 Subject: [PATCH 04/30] patch window reload --- bun.lockb | Bin 503528 -> 506656 bytes package.json | 5 ++++- patches/@remix-run%2Freact@2.9.2.patch | 26 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 patches/@remix-run%2Freact@2.9.2.patch diff --git a/bun.lockb b/bun.lockb index e78480a636818603738396fe9262286c9e06557d..291a85f11821fafd041a5279d08c4ac15bb79f0a 100755 GIT binary patch delta 79095 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 W(&De}1{N| Date: Thu, 29 Aug 2024 14:05:36 +0100 Subject: [PATCH 05/30] cleanup --- domains.json | 1 - website/app/routes/_layout._index/route.tsx | 16 ---------------- 2 files changed, 17 deletions(-) diff --git a/domains.json b/domains.json index 26271656..7a74ab06 100644 --- a/domains.json +++ b/domains.json @@ -1,5 +1,4 @@ [ - ["test.docs.page", "invertase/docs.page"], ["use.docs.page", "invertase/docs.page"], ["docs.globe.dev", "invertase/globe"], ["docs.turing.sh", "TuringAI-Team/turing-ai-api"], diff --git a/website/app/routes/_layout._index/route.tsx b/website/app/routes/_layout._index/route.tsx index 5c4e8d1a..c29d1383 100644 --- a/website/app/routes/_layout._index/route.tsx +++ b/website/app/routes/_layout._index/route.tsx @@ -9,25 +9,9 @@ import { Features } from "./Features"; import { Hero } from "./Hero"; import { Platform } from "./Platform"; -import { loader as docsRouteLoader } from "~/routes/$/route"; -import { LoaderFunctionArgs } from "@vercel/remix"; - export const links = getLinkDescriptors; export const meta = getMetadata; -export const loader = async (args: LoaderFunctionArgs) => { - const url = new URL(args.request.url); - - console.log('URL HOSTNAME', url.hostname); - - // If url hostname is not docs.page or staging.docs.page, we need to return the docsRouteLoader - if (!["docs.page", "staging.docs.page"].includes(url.hostname)) { - return docsRouteLoader(args); - } - - return {}; -}; - export default function Homepage() { return ( <> From 465da645c9bd0b8b3b5cb863bca059b2dfc52db5 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 3 Sep 2024 13:10:15 +0200 Subject: [PATCH 06/30] fix: vanity domain href --- website/app/components/Tabs.tsx | 1 - website/app/utils.ts | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/website/app/components/Tabs.tsx b/website/app/components/Tabs.tsx index 3384b9df..113c994b 100644 --- a/website/app/components/Tabs.tsx +++ b/website/app/components/Tabs.tsx @@ -31,7 +31,6 @@ export function Tabs(props: Props) {
  • Date: Tue, 3 Sep 2024 13:16:44 +0200 Subject: [PATCH 07/30] update to fill vanity domain --- website/app/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/app/utils.ts b/website/app/utils.ts index 513b19ce..c5dbc556 100644 --- a/website/app/utils.ts +++ b/website/app/utils.ts @@ -205,7 +205,7 @@ export function getHref(ctx: Context, path: string) { // If it's a vanity domain, we need to prefix the path with the owner and repository. if (ctx.vanity) { - href += `/${ctx.repository}`; + href += `https://${ctx.owner}.docs.page/${ctx.repository}`; } // Ensure all links start with the custom domain if it's set. else if (ctx.domain) { From 19a415f48e60c585ee0d7c58c2f28f93d9b1056b Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 3 Sep 2024 14:11:51 +0200 Subject: [PATCH 08/30] add log --- website/app/routes/$/route.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/website/app/routes/$/route.tsx b/website/app/routes/$/route.tsx index a1d189d5..dfe30429 100644 --- a/website/app/routes/$/route.tsx +++ b/website/app/routes/$/route.tsx @@ -33,7 +33,7 @@ export const loader = async (args: LoaderFunctionArgs) => { }).catch((response) => { throw response; }); - + // Check whether the repository has a domain assigned. const domain = domains .find(([, repo]) => repo === `${owner}/${repository}`) @@ -51,8 +51,14 @@ export const loader = async (args: LoaderFunctionArgs) => { throw redirect(redirectTo); } + console.log('Handling redirect', redirectTo, { owner, repository, ref, vanity, domain, environment }); + let url = ""; - if (domain && environment === "production") { + if (vanity) { + url = `https://${owner}.docs.page/${repository}`; + if (ref) url += `~${ref}`; + url += redirectTo; + } else if (domain && environment === "production") { // If there is a domain setup, always redirect to it. url = `https://${domain}`; if (ref) url += `/~${ref}`; @@ -151,7 +157,7 @@ export const meta: MetaFunction = ({ data: ctx }) => { ctx.bundle.config.logo.light || ctx.bundle.config.logo.dark ? getAssetSrc( ctx, - ctx.bundle.config.logo.light || ctx.bundle.config.logo.dark || "", + ctx.bundle.config.logo.light || ctx.bundle.config.logo.dark || "" ) : undefined, }); From a2913778131fd43cd53450ad83b562851a7fbc46 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 3 Sep 2024 14:15:25 +0200 Subject: [PATCH 09/30] - --- website/app/routes/$/route.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/app/routes/$/route.tsx b/website/app/routes/$/route.tsx index dfe30429..a2a3caf5 100644 --- a/website/app/routes/$/route.tsx +++ b/website/app/routes/$/route.tsx @@ -51,8 +51,6 @@ export const loader = async (args: LoaderFunctionArgs) => { throw redirect(redirectTo); } - console.log('Handling redirect', redirectTo, { owner, repository, ref, vanity, domain, environment }); - let url = ""; if (vanity) { url = `https://${owner}.docs.page/${repository}`; @@ -70,6 +68,8 @@ export const loader = async (args: LoaderFunctionArgs) => { url += redirectTo; } + console.log('Handling redirect', redirectTo, { owner, repository, ref, vanity, domain, environment }, url); + throw redirect(url); } From ede0deeb11fe378a8d8efbc0ee8a0def6b59615b Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 3 Sep 2024 14:26:56 +0200 Subject: [PATCH 10/30] - --- website/app/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/app/utils.ts b/website/app/utils.ts index c5dbc556..513b19ce 100644 --- a/website/app/utils.ts +++ b/website/app/utils.ts @@ -205,7 +205,7 @@ export function getHref(ctx: Context, path: string) { // If it's a vanity domain, we need to prefix the path with the owner and repository. if (ctx.vanity) { - href += `https://${ctx.owner}.docs.page/${ctx.repository}`; + href += `/${ctx.repository}`; } // Ensure all links start with the custom domain if it's set. else if (ctx.domain) { From 85df21983818cf15e8deb013ee9c4a298f018dae Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 3 Sep 2024 14:42:12 +0200 Subject: [PATCH 11/30] add schema.json route --- website/app/routes/schema[.]json.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 website/app/routes/schema[.]json.ts diff --git a/website/app/routes/schema[.]json.ts b/website/app/routes/schema[.]json.ts new file mode 100644 index 00000000..856891fb --- /dev/null +++ b/website/app/routes/schema[.]json.ts @@ -0,0 +1,4 @@ +export const loader = async () => { + const response = await fetch("https://staging-api.docs.page/schema.json"); + return response.json(); +} \ No newline at end of file From a3ffeee258d3c7a800aa7d5ebeba2473f68a75d0 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Wed, 4 Sep 2024 07:01:52 +0200 Subject: [PATCH 12/30] fix: Remove logo href property --- api/src/config/models/logo.ts | 2 -- docs.json | 2 +- docs/configuration.mdx | 8 +------- website/app/components/Header.tsx | 6 +++--- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/api/src/config/models/logo.ts b/api/src/config/models/logo.ts index 578d5705..cb9a107e 100644 --- a/api/src/config/models/logo.ts +++ b/api/src/config/models/logo.ts @@ -2,12 +2,10 @@ import { z } from "zod"; export default z .object({ - href: z.string().optional(), light: z.string().optional(), dark: z.string().optional(), }) .catch({ - href: undefined, light: undefined, dark: undefined, }); diff --git a/docs.json b/docs.json index 498d950a..bf51c4e6 100644 --- a/docs.json +++ b/docs.json @@ -1,8 +1,8 @@ { + "$schema": "https://docs.page/schema.json", "name": "docs.page", "description": "Ship documentation, like you ship code", "logo": { - "href": "https://docs.page", "light": "https://static.invertase.io/assets/docs.page/docs-page-logo.png" }, "favicon": "https://static.invertase.io/assets/docs.page/docs-page-logo.png", diff --git a/docs/configuration.mdx b/docs/configuration.mdx index 3d55269c..d4d0594b 100644 --- a/docs/configuration.mdx +++ b/docs/configuration.mdx @@ -45,17 +45,11 @@ Below is a list of all available configuration options, which can be used to mod Configures the logo of your documentation, which will be displayed in the header and used for social preview images. - The minimum height of the logo should be 24px. + The minimum height of the logo should be 24px. Note that if only a light or dark logo is provided, it will be used for both light and dark modes. See [Asset URLs](/assets) for more information on how to add assets to your documentation. - - If provided, the logo will be a link to this URL. By default, the logo will link to the root of your documentation. - - - --- - The Asset URL of your logo to display when the documentation is in light mode. diff --git a/website/app/components/Header.tsx b/website/app/components/Header.tsx index 670f272f..74dc80f2 100644 --- a/website/app/components/Header.tsx +++ b/website/app/components/Header.tsx @@ -1,5 +1,5 @@ import { SearchIcon } from "lucide-react"; -import { usePageContext, useTabs } from "~/context"; +import { useHref, usePageContext, useTabs } from "~/context"; import { cn } from "~/utils"; import { GitHubCard } from "./GitHubCard"; import { Locale } from "./Locale"; @@ -19,7 +19,7 @@ export function Header(props: Props) { const showName = ctx.bundle.config.header?.showName ?? true; const name = ctx.bundle.config.name; - const logo = ctx.bundle.config.logo; + const logoHref = useHref("/"); return (
    @@ -31,7 +31,7 @@ export function Header(props: Props) { )} From 5875c6167aaed98af2989a6717864b89ede82dad Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Mon, 9 Sep 2024 08:38:37 +0100 Subject: [PATCH 13/30] fix!: Remove twoslash support --- api/package.json | 1 - api/src/bundler/plugins/rehype-code-blocks.ts | 5 --- docs/components/code-blocks.mdx | 35 ------------------- 3 files changed, 41 deletions(-) diff --git a/api/package.json b/api/package.json index 86c8c276..e88d5a78 100644 --- a/api/package.json +++ b/api/package.json @@ -13,7 +13,6 @@ "@octokit/graphql": "5.0.0", "@octokit/webhooks": "^13.2.7", "@shikijs/transformers": "1.12.1", - "@shikijs/twoslash": "^1.12.1", "@types/express": "^4.17.13", "@types/morgan": "^1.9.3", "@types/node": "^18.0.0", diff --git a/api/src/bundler/plugins/rehype-code-blocks.ts b/api/src/bundler/plugins/rehype-code-blocks.ts index 5c2001ce..e26c673b 100644 --- a/api/src/bundler/plugins/rehype-code-blocks.ts +++ b/api/src/bundler/plugins/rehype-code-blocks.ts @@ -5,7 +5,6 @@ import { transformerNotationHighlight, transformerRemoveNotationEscape, } from "@shikijs/transformers"; -import { transformerTwoslash } from "@shikijs/twoslash"; import type { Element } from "hast"; import { toString } from "mdast-util-to-string"; import * as shiki from "shiki"; @@ -54,10 +53,6 @@ export default function rehypeCodeBlocks(): (ast: Node) => void { transformerMetaHighlight(), ]; - if (languageActual === "typescript") { - transformers.push(transformerTwoslash()); - } - parent.properties.html = highlighter.codeToHtml(raw, { lang: languageActual, theme: "css-variables", diff --git a/docs/components/code-blocks.mdx b/docs/components/code-blocks.mdx index dec3453c..99a195b7 100644 --- a/docs/components/code-blocks.mdx +++ b/docs/components/code-blocks.mdx @@ -102,38 +102,3 @@ console.log('Focused') // [\!code focus] console.log('Not focused'); ``` ```` - -### Typescript Support - -Out of the box, all code blocks will automatically be enhanced with rich type information when the code area is hovered. - -```ts -type APIResponse = { - data: T; - status: number; -}; - -export async function apiRequest(options: { url: string }) { - const response = await fetch(options.url); - const data = await response.json() as APIResponse<{ hello: 'world' }>; - return data; -} -``` - -To enable this, ensure that the code block is tagged with the `typescript` (or `ts`) language: - -```` -```ts -type APIResponse = { - data: T; - status: number; -}; - -export async function apiRequest(options: { url: string }) { - const response = await fetch(options.url); - const data = await response.json() as APIResponse<{ hello: 'world' }>; - return data; -} -``` -```` - From 7e748d1f87fc3edbfdd47c3fd811f1fad8443eb8 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Mon, 9 Sep 2024 09:44:26 +0100 Subject: [PATCH 14/30] feat: add $schema support --- docs/configuration.mdx | 8 ++++++++ packages/cli/src/commands/init.ts | 1 + 2 files changed, 9 insertions(+) diff --git a/docs/configuration.mdx b/docs/configuration.mdx index d4d0594b..15be7ea9 100644 --- a/docs/configuration.mdx +++ b/docs/configuration.mdx @@ -6,6 +6,14 @@ description: Configure your documentation with a docs.json file. Add a `docs.json` file to the root of your GitHub repository to configure your documentation. Below is a list of all available configuration options, which can be used to modify the logos, theme, analytics and more. +If your IDE supports JSON Schemas, you can add a `$schema` property to your `docs.json` file to enable autocompletion and validation: + +```json title="docs.json" +{ + "$schema": "https://docs.page/schema.json" +} +``` + ## Properties ### Top-level properties diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts index ef50f4b1..f02c14b0 100644 --- a/packages/cli/src/commands/init.ts +++ b/packages/cli/src/commands/init.ts @@ -127,6 +127,7 @@ const jsonConfigurationSidebar = `[ function jsonConfiguration({ sidebar }: { sidebar: boolean }) { return `{ + "$schema": "https://docs.page/schema.json", "name": "My Docs", "description": "My documentation site", "sidebar": ${sidebar ? jsonConfigurationSidebar : "[]"} From 04015b1858df0b731b187cf21e35e7ec0a702b31 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Mon, 9 Sep 2024 10:21:48 +0100 Subject: [PATCH 15/30] feat: Support dark mode favicons --- api/src/config/models/favicon.ts | 20 ++++++++++ api/src/config/schema.ts | 5 ++- docs/configuration.mdx | 18 ++++++++- website/app/routes/$/route.tsx | 37 +++++++++++++++---- .../app/routes/_layout.preview.$/route.tsx | 2 - 5 files changed, 68 insertions(+), 14 deletions(-) create mode 100644 api/src/config/models/favicon.ts diff --git a/api/src/config/models/favicon.ts b/api/src/config/models/favicon.ts new file mode 100644 index 00000000..8283a25e --- /dev/null +++ b/api/src/config/models/favicon.ts @@ -0,0 +1,20 @@ +import { z } from "zod"; + +export default z + .union([ + z.string().min(1), // Support for a single path + z.object({ + light: z.string().optional(), + dark: z.string().optional(), + }), + ]) + .optional() + .catch(undefined) + .transform((value) => { + // If a string is provided, use it for both light and dark + if (typeof value === "string") { + return { light: value, dark: value }; + } + + return value; + }); diff --git a/api/src/config/schema.ts b/api/src/config/schema.ts index a3de169e..7311ec50 100644 --- a/api/src/config/schema.ts +++ b/api/src/config/schema.ts @@ -11,6 +11,7 @@ import sidebar from "./models/sidebar"; import social from "./models/social"; import tabs from "./models/tabs"; import theme from "./models/theme"; +import favicon from "./models/favicon"; export type { Sidebar } from "./models/sidebar"; @@ -20,13 +21,13 @@ export const ConfigSchema = z name: z.string().min(1).optional().catch(undefined), // The description of the project description: z.string().min(1).optional().catch(undefined), - // The favicon of the project - favicon: z.string().min(1).optional().catch(undefined), // The preview image used in social media - either a path or a URL, or false to disable socialPreview: z .union([z.string().min(1), z.literal(false)]) .optional() .catch(undefined), + // The favicon of the project + favicon, // The logo of the project, used in the header logo, // Theme settings diff --git a/docs/configuration.mdx b/docs/configuration.mdx index 15be7ea9..51ff1d1f 100644 --- a/docs/configuration.mdx +++ b/docs/configuration.mdx @@ -30,10 +30,24 @@ If your IDE supports JSON Schemas, you can add a `$schema` property to your `doc --- - - The favicon URL for your project. + + Defines the favicon to show in the browser tab. See [Asset URLs](/assets) for more information on how to add assets to your documentation. + + The favicon can either be a `string` value which will be used for both light and dark modes, or a `Favicon` object to define separate favicons for light and dark modes. + + + + The Asset URL of your favicon to display when the documentation is in light mode. + + + --- + + + The Asset URL of your favicon to display when the documentation is in dark mode. + + --- diff --git a/website/app/routes/$/route.tsx b/website/app/routes/$/route.tsx index a2a3caf5..82fc4bd1 100644 --- a/website/app/routes/$/route.tsx +++ b/website/app/routes/$/route.tsx @@ -68,7 +68,12 @@ export const loader = async (args: LoaderFunctionArgs) => { url += redirectTo; } - console.log('Handling redirect', redirectTo, { owner, repository, ref, vanity, domain, environment }, url); + console.log( + "Handling redirect", + redirectTo, + { owner, repository, ref, vanity, domain, environment }, + url + ); throw redirect(url); } @@ -117,13 +122,29 @@ export const meta: MetaFunction = ({ data: ctx }) => { return descriptors; } - descriptors.push({ - tagName: "link", - rel: "icon", - href: ctx.bundle.config.favicon - ? getAssetSrc(ctx, ctx.bundle.config.favicon) - : "/favicon.ico", - }); + if (ctx.bundle.config.favicon?.light) { + descriptors.push({ + tagName: "link", + rel: "icon", + media: ctx.bundle.config.favicon?.dark + ? // If there is a dark favicon, add a media query to prefer light mode only. + "(prefers-color-scheme: light)" + : undefined, + href: getAssetSrc(ctx, ctx.bundle.config.favicon.light), + }); + } + + if (ctx.bundle.config.favicon?.dark) { + descriptors.push({ + tagName: "link", + rel: "icon", + media: ctx.bundle.config.favicon?.light + ? // If there is a light favicon, add a media query to prefer dark mode only. + "(prefers-color-scheme: dark)" + : undefined, + href: getAssetSrc(ctx, ctx.bundle.config.favicon.dark), + }); + } // Add noindex meta tag if the frontmatter or config has noindex set to true. if ( diff --git a/website/app/routes/_layout.preview.$/route.tsx b/website/app/routes/_layout.preview.$/route.tsx index 050d9ec4..b5114dd0 100644 --- a/website/app/routes/_layout.preview.$/route.tsx +++ b/website/app/routes/_layout.preview.$/route.tsx @@ -225,8 +225,6 @@ function Trigger() { const requestPermissions = useRequestPermissions(); const restart = useRestart(); - console.log(state, error); - if (state === "UNSUPPORTED") { return (

    From 25feb1018fa053a4da86ea4ace0fc1b9cf01699c Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Mon, 9 Sep 2024 10:28:16 +0100 Subject: [PATCH 16/30] docs: Fix socialLink -> social config --- docs/configuration.mdx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/configuration.mdx b/docs/configuration.mdx index 51ff1d1f..9e3dff5f 100644 --- a/docs/configuration.mdx +++ b/docs/configuration.mdx @@ -218,10 +218,19 @@ If your IDE supports JSON Schemas, you can add a `$schema` property to your `doc ### Social Links - - An array of `SocialLink` objects to display in the footer of your documentation. + + An object of key value pairs where the key is the social platform and the value is the username/ID to link to: - + ``` + { + "social": { + "x": "@invertaseio", + "github": "invertase" + } + } + ``` + + A generic website URL to link to, such as your homepage or product. From c1846e924008f5806750ded4b52bd8026698bcc6 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Mon, 9 Sep 2024 10:32:32 +0100 Subject: [PATCH 17/30] fix: Header cta overflow + spacing --- website/app/components/Header.tsx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/website/app/components/Header.tsx b/website/app/components/Header.tsx index 74dc80f2..e0e8e026 100644 --- a/website/app/components/Header.tsx +++ b/website/app/components/Header.tsx @@ -30,17 +30,14 @@ export function Header(props: Props) { )} - + {showName && !!name && {name}}

    -
    +
    @@ -76,16 +73,19 @@ function Links() { } return ( -