From 9a8dd3b66e1fa39d7af512b7a3525a2b50a7262e Mon Sep 17 00:00:00 2001 From: Ben C Date: Tue, 28 Nov 2023 16:26:54 -0500 Subject: [PATCH] A bunch of improvements --- docs/astro.config.mjs | 29 +++++- docs/public/favicon.ico | Bin 1150 -> 0 bytes docs/public/favicon.png | Bin 0 -> 50022 bytes docs/public/favicon.svg | 1 - docs/public/og_image.webp | Bin 0 -> 32194 bytes .../components/ConditionalPageSidebar.astro | 10 ++- docs/src/components/Schemas/Content.astro | 84 +++++++++++------- .../components/Schemas/DefinitionList.astro | 21 +++++ docs/src/components/Schemas/SchemaDef.astro | 4 +- docs/src/content/docs/index.mdx | 2 +- .../docs/start-here/getting-started.md | 2 +- docs/src/schema_generator.ts | 55 +++++++++++- docs/src/schema_utils.ts | 7 +- docs/src/styles/custom.css | 1 + 14 files changed, 168 insertions(+), 48 deletions(-) delete mode 100644 docs/public/favicon.ico create mode 100644 docs/public/favicon.png delete mode 100644 docs/public/favicon.svg create mode 100644 docs/public/og_image.webp create mode 100644 docs/src/components/Schemas/DefinitionList.astro diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index fb5ba625..13372b3d 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -3,6 +3,8 @@ import starlight from "@astrojs/starlight"; import { generateSchema } from "./src/schema_generator"; +const url = "https://nh.outerwildsmods.com"; + generateSchema("body_schema.json"); generateSchema("star_system_schema.json"); generateSchema("translation_schema.json"); @@ -11,9 +13,25 @@ generateSchema("dialogue_schema.xsd"); generateSchema("text_schema.xsd"); generateSchema("shiplog_schema.xsd"); +const ogMeta = (name, val) => ({ + tag: "meta", + attrs: { + property: `og:${name}`, + content: val + } +}); + +const twMeta = (name, val) => ({ + tag: "meta", + attrs: { + name: `twitter:${name}`, + content: val + } +}); + // https://astro.build/config export default defineConfig({ - site: "https://nh.outerwildsmods.com", + site: url, compressHTML: true, integrations: [ starlight({ @@ -21,6 +39,7 @@ export default defineConfig({ description: "Documentation on how to use the New Horizons planet creation tool for Outer Wilds.", defaultLocale: "en-us", + favicon: "/favicon.png", components: { PageSidebar: "/src/components/ConditionalPageSidebar.astro" }, @@ -33,6 +52,14 @@ export default defineConfig({ github: "https://github.com/Outer-Wilds-New-Horizons/new-horizons", discord: "https://discord.gg/wusTQYbYTc" }, + head: [ + ogMeta("image", `${url}/og_image.webp`), + ogMeta("image:width", "1200"), + ogMeta("image:height", "400"), + twMeta("card", "summary"), + twMeta("image", `${url}/og_image.webp`), + { tag: "meta", attrs: { name: "theme-color", content: "#ffab8a" } } + ], sidebar: [ { label: "Start Here", diff --git a/docs/public/favicon.ico b/docs/public/favicon.ico deleted file mode 100644 index a943dc7b4b0d86087cd97184f3a173d555272bbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmdUudrZ<%6vr>6>#xkUmH#!%f2^6#nY~u|HrCj3rmm@FJ~B)w)9|Mv;Cy1s-awWp z2tq1CnkbsMP#hTQNNuHQYGs=)^O2QK<8-09_4ubh>)w6tx#!%S@6J8D7a#A&G@ufEDCDVEgf(5-8g!D{;?UUTKl(L zz27RQ5_c^rjEu>c%%IP^qPK%@mL~*o_So>x*b4#FqY!>B&2l+U3OtE!>_MX`)X@8i zR4Uh_ss_`xlCpMri9os(l}?7;F)rYr?FE4xZyNzDFYqNifL0VXMZJ)zr!j@Ae5q~( z*Wow6uz;)@6?Ofa)h#W|0$%*AThtCX%y0)kT!Xa^p9~KOO!tHe#rfx&T8=m6WLh)x zN-aoK-F0it937A#ungLD>DbITcF@;-)SYlB)y+l#!xLD7NZ|2Vz o*8QIUzxnvv;rk+Fz#t#YCd>v534=!t<_TsTGlyBitmRnkccfo$K>z>% diff --git a/docs/public/favicon.png b/docs/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d0db66b17e2fdf4e003f61f8b1ef75563b6136af GIT binary patch literal 50022 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 literal 0 HcmV?d00001 diff --git a/docs/public/favicon.svg b/docs/public/favicon.svg deleted file mode 100644 index cba5ac14..00000000 --- a/docs/public/favicon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/public/og_image.webp b/docs/public/og_image.webp new file mode 100644 index 0000000000000000000000000000000000000000..20f248b989c3b623e404eacb508fbe8dbdc8be5d GIT binary patch literal 32194 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["items"]["find"]>, undefined>; @@ -29,15 +29,17 @@ function generateToC( let props = Astro.props; if (isSchema) { - console.log("Is Schema!"); const schemaFileName = props.entry.data.head[0]?.attrs?.fileName as string | undefined; if (schemaFileName) { - const schema = SchemaTools.readSchema(schemaFileName); + let schema = SchemaTools.readSchema(schemaFileName); + const defName = props.entry.data.head[0]?.attrs?.def as string | undefined; + if (defName) { + schema = SchemaTools.getDefs(schema).find(d => d.slug === defName)!; + } const headings = SchemaTools.getHeaders(schema); props.headings = headings; props.toc!.items = generateToC(headings, props.entry.data.title); } - console.log(props.toc); } --- diff --git a/docs/src/components/Schemas/Content.astro b/docs/src/components/Schemas/Content.astro index 4a43cae2..40b60f75 100644 --- a/docs/src/components/Schemas/Content.astro +++ b/docs/src/components/Schemas/Content.astro @@ -1,5 +1,6 @@ --- -import { Schema, SchemaTools } from '../../schema_utils'; +import { SchemaTools } from "../../schema_utils"; +import type { Schema } from "../../schema_utils"; export interface Props { schema: Schema; @@ -19,20 +20,25 @@ const type = SchemaTools.getType(schema); const link = `https://raw.githubusercontent.com/Outer-Wilds-New-Horizons/new-horizons/main/NewHorizons/Schemas/${schema.fileName}`; const refSlug = SchemaTools.getRefSlug(schema); const enumVals = SchemaTools.getEnumValues(schema); -const props = SchemaTools.getProps(schema); +const props = SchemaTools.getProps(schema, level); const HeadingTag = levelMap[level] ?? "h6"; ---
- { - level !== 0 && ( - - {SchemaTools.getTitle(schema)} - - ) - } + { + level !== 0 && ( + + {level !== 0 && ( + + )} + {SchemaTools.getTitle(schema)} + + ) + }
{level === 0 && Schema Type: {schema.internalSchema.type}} { @@ -47,15 +53,10 @@ const HeadingTag = levelMap[level] ?? "h6"; { level === 0 && !isDef && ( ) } @@ -76,7 +77,9 @@ const HeadingTag = levelMap[level] ?? "h6"; } { refSlug && ( - See Definitions/{refSlug} + + See Definitions/{refSlug} + ) } { @@ -99,7 +102,7 @@ const HeadingTag = levelMap[level] ?? "h6"; color: unset; } 50% { - color: var(--sl-theme-accent); + color: var(--sl-color-accent); } 100% { color: unset; @@ -107,14 +110,29 @@ const HeadingTag = levelMap[level] ?? "h6"; } .title:target { - transition: color; animation: flash 600ms cubic-bezier(0.45, 0.05, 0.55, 0.95) 3; } + .title:hover a.anchor { + display: initial; + } + + a.anchor { + text-decoration: none; + float: left; + margin-left: -26px; + padding-right: 5px; + display: none; + } + + a.anchor:hover { + display: initial; + color: var(--sl-color-accent); + } + div.header { display: flex; flex-direction: column; - gap: 1rem; } div.wrapper[data-level="2"] { @@ -133,35 +151,33 @@ const HeadingTag = levelMap[level] ?? "h6"; box-sizing: border-box; display: flex; flex-direction: column; - gap: 2rem; } div.children { display: flex; flex-direction: column; - gap: 2rem; } div.tool-links { display: flex; - gap: 1rem; - } - - ul { - margin-top: 0.5rem; } span { - background-color: hsl(var(--sl-hue-accent) 50% 10%); + background-color: var(--sl-color-accent-low); font-size: small; padding: 0.5rem; - margin-right: 0.3rem; - border: solid 2px var(--sl-color-accent-low); + border: solid 2px var(--sl-color-accent); border-radius: 5rem; } span.required { - background-color: hsl(var(--sl-hue-yellow) 50% 10%); - border-color: var(--sl-color-yellow-low); + --hue-yellow: 53; + background-color: hsl(var(--hue-yellow) 50% 20%); + border-color: hsl(var(--hue-yellow) 50% 50%); + } + + :root[data-theme="light"] span.required { + background-color: yellow; + border-color: darkgoldenrod; } diff --git a/docs/src/components/Schemas/DefinitionList.astro b/docs/src/components/Schemas/DefinitionList.astro new file mode 100644 index 00000000..78e32298 --- /dev/null +++ b/docs/src/components/Schemas/DefinitionList.astro @@ -0,0 +1,21 @@ +--- +import { SchemaTools } from '../../schema_utils'; +import Breadcrumb from './Breadcrumb.astro'; + +interface Props { + fileName: string; +} + +const { fileName } = Astro.props; + +const schema = SchemaTools.readSchema(fileName); + +const defs = SchemaTools.getDefs(schema); + +--- + + + + diff --git a/docs/src/components/Schemas/SchemaDef.astro b/docs/src/components/Schemas/SchemaDef.astro index 247a2b68..e446bbec 100644 --- a/docs/src/components/Schemas/SchemaDef.astro +++ b/docs/src/components/Schemas/SchemaDef.astro @@ -1,5 +1,6 @@ --- import { SchemaTools } from '../../schema_utils'; +import Breadcrumb from './Breadcrumb.astro'; import Content from './Content.astro'; interface Props { @@ -9,12 +10,13 @@ interface Props { const { fileName, def } = Astro.props; -const schema = SchemaTools.readSchema(`../NewHorizons/Schemas/${fileName}`); +const schema = SchemaTools.readSchema(fileName); const defs = SchemaTools.getDefs(schema); const targetDef = defs.find(d => d.slug === def); --- + diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 27a5b3f6..d13884f3 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -13,7 +13,7 @@ hero: icon: right-arrow variant: primary - text: Schema Reference - link: /schemas/body_schema + link: /schemas/body-schema --- import { Card, CardGrid } from "@astrojs/starlight/components"; diff --git a/docs/src/content/docs/start-here/getting-started.md b/docs/src/content/docs/start-here/getting-started.md index d3606fb5..e1c6e571 100644 --- a/docs/src/content/docs/start-here/getting-started.md +++ b/docs/src/content/docs/start-here/getting-started.md @@ -96,7 +96,7 @@ With the schema you get: - Automatic error detection for incorrect data types or values - Autocomplete, also called IntelliSense -The schema we're using here is the [Celestial Body Schema](/schemas/body_schema), but there are many others available in the Schemas section of the left sidebar. +The schema we're using here is the [Celestial Body Schema](/schemas/body-schema), but there are many others available in the Schemas section of the left sidebar. ### Testing The Planet diff --git a/docs/src/schema_generator.ts b/docs/src/schema_generator.ts index 5ffb84da..6c3141d6 100644 --- a/docs/src/schema_generator.ts +++ b/docs/src/schema_generator.ts @@ -1,4 +1,4 @@ -import { SchemaTools } from "./schema_utils"; +import { SchemaTools, type Schema } from "./schema_utils"; import * as fs from "node:fs"; const addFrontmatter = ( @@ -14,13 +14,58 @@ const addFrontmatter = ( return `---\n${entries.join("\n")}\n---\n\n${content}`; }; +const generateDef = (def: Schema) => { + const title = SchemaTools.getTitle(def) as string; + const dir = `src/content/docs/schemas/${def.rootSlug!}/defs/${title}`; + + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + + let description = SchemaTools.getDescription(def) as string | undefined; + + if (description === undefined || (description as string).trim() === "") { + description = `Definition of ${title}`; + } + + const frontMatter = { + title, + description, + editUrl: false, + head: `\n - tag: meta\n attrs:\n fileName: ${def.fileName}\n def: ${title}` + }; + + const content = `import SchemaDef from "/src/components/Schemas/SchemaDef.astro";\n\n\n`; + + fs.writeFileSync(`${dir}/index.mdx`, addFrontmatter(content, frontMatter)); +}; + +const generateDefList = (schema: Schema) => { + const dir = `src/content/docs/schemas/${schema.slug}/defs`; + + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + + const frontMatter = { + title: `${SchemaTools.getTitle(schema)} definitions`, + description: "List of all definitions in the ${SchemaTools.getTitle(schema)} schema", + editUrl: false, + head: `\n - tag: meta\n attrs:\n fileName: ${schema.fileName}` + }; + + const content = `import DefinitionList from "/src/components/Schemas/DefinitionList.astro";\n\n\n`; + + fs.writeFileSync(`${dir}/index.mdx`, addFrontmatter(content, frontMatter)); +}; + export const generateSchema = (fileName: string) => { const schema = SchemaTools.readSchema(fileName); const dir = `src/content/docs/schemas/${schema.slug}`; if (!fs.existsSync(dir)) { - fs.mkdirSync(dir); + fs.mkdirSync(dir, { recursive: true }); } const frontMatter = { @@ -33,4 +78,10 @@ export const generateSchema = (fileName: string) => { const content = `import Schema from "/src/components/Schemas/Schema.astro";\n\n\n`; fs.writeFileSync(`${dir}/index.mdx`, addFrontmatter(content, frontMatter)); + + generateDefList(schema); + + for (const def of SchemaTools.getDefs(schema)) { + generateDef(def); + } }; diff --git a/docs/src/schema_utils.ts b/docs/src/schema_utils.ts index 156493c7..20239592 100644 --- a/docs/src/schema_utils.ts +++ b/docs/src/schema_utils.ts @@ -85,6 +85,7 @@ export const SchemaTools = { return documentation.elements?.[0]?.text; } } + def: string; } }, @@ -222,7 +223,7 @@ export const SchemaTools = { } }, - getProps: (schema: Schema): [string, Schema][] => { + getProps: (schema: Schema, level: number): [string, Schema][] => { switch (schema.internalSchema.type) { case "JSON": const internalSchema = schema.internalSchema.val; @@ -231,7 +232,7 @@ export const SchemaTools = { e[0], { fileName: schema.fileName, - slug: `${schema.slug}-${getSchemaSlug(e[0])}`, + slug: `${level === 0 ? "" : `${schema.slug}-`}${getSchemaSlug(e[0])}`, rootSlug: schema.rootSlug, internalSchema: { type: "JSON", @@ -245,7 +246,7 @@ export const SchemaTools = { "Items", { fileName: schema.fileName, - slug: `${schema.slug}-items`, + slug: `${level === 0 ? "" : `${schema.slug}-`}items`, rootSlug: schema.rootSlug, internalSchema: { type: "JSON", diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css index 02143adf..b25ed43b 100644 --- a/docs/src/styles/custom.css +++ b/docs/src/styles/custom.css @@ -12,6 +12,7 @@ --sl-color-gray-6: #272727; --sl-color-black: #181818; } + /* Light mode colors. */ :root[data-theme="light"] { --sl-color-accent-low: #b8e4c0;