From a7f207ff7a89309ac2c28324f9cf4bd884c072db Mon Sep 17 00:00:00 2001 From: Jon Harrell <4829245+jharrell@users.noreply.github.com> Date: Thu, 28 Mar 2024 13:02:49 -0500 Subject: [PATCH 1/2] add robots.txt. Resolves DA-37 --- static/robots.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 static/robots.txt diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 0000000000..b24a4fc4fd --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Disallow: / +Disallow: /*?query=* +Disallow: /*?page=* +Disallow: /*&query=* +Disallow: /*&page=* \ No newline at end of file From 92fc02ef74271a48c9a6e3c80a5a299dc13682a6 Mon Sep 17 00:00:00 2001 From: Jon Harrell <4829245+jharrell@users.noreply.github.com> Date: Thu, 28 Mar 2024 13:34:22 -0500 Subject: [PATCH 2/2] add syntax highlighting for Prisma files. Resolves DA-144 --- src/theme/prism-include-languages.ts | 32 ++++++++++++++++++++++++++++ src/theme/prism-prisma.js | 25 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/theme/prism-include-languages.ts create mode 100644 src/theme/prism-prisma.js diff --git a/src/theme/prism-include-languages.ts b/src/theme/prism-include-languages.ts new file mode 100644 index 0000000000..cf66987061 --- /dev/null +++ b/src/theme/prism-include-languages.ts @@ -0,0 +1,32 @@ +import siteConfig from '@generated/docusaurus.config' +import type * as PrismNamespace from 'prismjs' +import type { Optional } from 'utility-types' + +export default function prismIncludeLanguages(PrismObject: typeof PrismNamespace): void { + const { + themeConfig: { prism }, + } = siteConfig + const { additionalLanguages } = prism as { additionalLanguages: string[] } + + // Prism components work on the Prism instance on the window, while prism- + // react-renderer uses its own Prism instance. We temporarily mount the + // instance onto window, import components to enhance it, then remove it to + // avoid polluting global namespace. + // You can mutate PrismObject: registering plugins, deleting languages... As + // long as you don't re-assign it + globalThis.Prism = PrismObject + + additionalLanguages.forEach((lang) => { + if (lang === 'php') { + // eslint-disable-next-line global-require + require('prismjs/components/prism-markup-templating.js') + } + // eslint-disable-next-line global-require, import/no-dynamic-require + require(`prismjs/components/prism-${lang}`) + }) + + require('@site/src/theme/prism-prisma.js') + + // @ts-ignore + delete (globalThis as Optional).Prism +} \ No newline at end of file diff --git a/src/theme/prism-prisma.js b/src/theme/prism-prisma.js new file mode 100644 index 0000000000..57144da313 --- /dev/null +++ b/src/theme/prism-prisma.js @@ -0,0 +1,25 @@ +Prism.languages.prisma = Prism.languages.extend('clike', { + keyword: /\b(?:datasource|enum|generator|model|type|view)\b/, + 'type-class-name': /(\s+)[A-Z]\w+/, ///(\b)(\s+)[A-Z]\w+/ +}) + +Prism.languages.javascript['class-name'][0].pattern = + /(\b(?:model|datasource|enum|generator|type|model|view)\s+)[\w.\\]+/ + +Prism.languages.insertBefore('prisma', 'function', { + annotation: { + pattern: /(^|[^.])@+\w+/, + lookbehind: true, + alias: 'punctuation', + }, +}) + +Prism.languages.insertBefore('prisma', 'punctuation', { + 'type-args': /\b(?:references|fields|onDelete|onUpdate):/, +}) + +Prism.languages.insertBefore('prisma', 'type-class-name', { + 'not-class': /\n(\s+)[A-Z]\w+/, +}) + +Prism.languages.json5 = Prism.languages.js \ No newline at end of file