From 9c1f293a2a447a54b392397fe763c4703981e987 Mon Sep 17 00:00:00 2001 From: Xanazf Date: Thu, 10 Oct 2024 21:45:16 +0300 Subject: [PATCH] shiki testing --- astro.config.mjs | 2 +- src/config/io/markdown.ts | 46 ++++++++++---------------- src/pages/docs/configuration/index.mdx | 4 ++- 3 files changed, 21 insertions(+), 31 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index ca82598..34c038e 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -7,6 +7,7 @@ import { markdownConfig } from "./src/config/io/markdown.ts"; // https://astro.build/config export default defineConfig({ + markdown: markdownConfig, integrations: [ solidJs({ devtools: true, @@ -14,5 +15,4 @@ export default defineConfig({ mdx(), pagefind(), ], - markdown: markdownConfig, }); diff --git a/src/config/io/markdown.ts b/src/config/io/markdown.ts index f5c6c52..374a0d8 100644 --- a/src/config/io/markdown.ts +++ b/src/config/io/markdown.ts @@ -1,7 +1,7 @@ import type { Parent, Node } from "unist"; import { visit, CONTINUE, SKIP } from "unist-util-visit"; import { fromHtml } from "hast-util-from-html"; -import type { Root, Element } from "hast"; +import type { Root } from "hast"; import type { AstroMarkdownOptions, MarkdownProcessor, @@ -69,34 +69,22 @@ const rehypeRewriteTypelinks: RehypePlugin<[]> = () => { }; }; -const shikiRewriteTypelinks = (): ShikiTransformer => { - return { - name: "rewrite-typelinks", - preprocess(code, _options) { - const qtRegExp = /QT_(\w+)/g; - const qsRegExp = /QS_(\w+)/g; - // WARN: need to change the code link identifier to this - // const hasTypelinks = code.search(/TYPE99(\w+.)99TYPE/g) !== -1; - const hasQTLink = code.search(qtRegExp) !== -1; - const hasQSLink = code.search(qsRegExp) !== -1; +const shikiRewriteTypelinks: ShikiTransformer = { + name: "rewrite-typelinks", + postprocess(code, _options) { + // WARN: need to change the code link identifier to this + const regExp = /TYPE99(\w+.)99TYPE/g; + const hasTypelinks = code.search(regExp) !== -1; + console.log(hasTypelinks); - if (hasQTLink) { - code.replace(qtRegExp, (_full: string, match: string) => { - const linkObject = getQMLTypeLinkObject(match); - const link = getQMLTypeLink(linkObject); - return `${linkObject.name ?? ""}`; - }); - } - - if (hasQSLink) { - code.replace(qsRegExp, (_full: string, match: string) => { - const linkObject = getQMLTypeLinkObject(match); - const link = getQMLTypeLink(linkObject); - return `${linkObject.name ?? ""}`; - }); - } - }, - }; + if (hasTypelinks) { + code.replace(regExp, (_full: string, match: string) => { + const linkObject = getQMLTypeLinkObject(match); + const link = getQMLTypeLink(linkObject); + return `${linkObject.name ?? ""}`; + }); + } + }, }; export const markdownConfig: AstroMarkdownOptions = { @@ -104,7 +92,7 @@ export const markdownConfig: AstroMarkdownOptions = { shikiConfig: { theme: "material-theme-ocean", wrap: true, - transformers: [shikiRewriteTypelinks()], + transformers: [shikiRewriteTypelinks], }, remarkPlugins: [[remarkAlert, { legacyTitle: true }]], rehypePlugins: [ diff --git a/src/pages/docs/configuration/index.mdx b/src/pages/docs/configuration/index.mdx index 247fe5d..a8286d7 100644 --- a/src/pages/docs/configuration/index.mdx +++ b/src/pages/docs/configuration/index.mdx @@ -3,9 +3,11 @@ layout: "@layouts/ConfigLayout.astro" title: "Configuration" description: "Configuring the shell" --- -import MD_Title from "@components/MD_Title.tsx" + +import MD_Title from "@components/MD_Title.tsx"; # {frontmatter.title} + You should start with the [Introduction](./configuration/intro) which will guide you through the basics of QML by creating a simple topbar with a clock.