From 2f1f7d7f5b0a07344162d279806535e32fe7afa2 Mon Sep 17 00:00:00 2001 From: Derpius <49565664+Derpius@users.noreply.github.com> Date: Sat, 1 Jul 2023 13:55:54 +0100 Subject: [PATCH 1/4] feat: manually generate table of contents --- packages/site/src/theme/DocItem/index.tsx | 49 +++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 packages/site/src/theme/DocItem/index.tsx diff --git a/packages/site/src/theme/DocItem/index.tsx b/packages/site/src/theme/DocItem/index.tsx new file mode 100644 index 0000000..d227c79 --- /dev/null +++ b/packages/site/src/theme/DocItem/index.tsx @@ -0,0 +1,49 @@ +import React, { useEffect, useState } from "react"; +import { HtmlClassNameProvider } from "@docusaurus/theme-common"; +import { DocProvider } from "@docusaurus/theme-common/internal"; +import DocItemMetadata from "@theme/DocItem/Metadata"; +import DocItemLayout from "@theme/DocItem/Layout"; +import type { Props } from "@theme/DocItem"; +import type { TOCItem } from "@docusaurus/mdx-loader"; + +const getLevelFromTag = (tag: string): number | undefined => { + const match = tag.match(/^H(?\d)$/); + + if (match?.groups) { + return Number(match.groups.level); + } +}; + +const transformHeading = (heading: Element): TOCItem => { + const isCode = heading.getElementsByTagName("code").length > 0; + const value = isCode ? `${heading.textContent}` : heading.textContent ?? ""; + + return { + value, + id: heading.id, + level: getLevelFromTag(heading.tagName) ?? 2, + }; +}; + +export default function DocItem({ content: DocContent }: Props) { + const docHtmlClassName = `docs-doc-id-${DocContent.metadata.unversionedId}`; + const [toc, setToc] = useState([]); + + useEffect(() => { + console.log("BLAH"); + const headings = document.querySelectorAll("h2, h3, h4, h5, h6"); + + setToc(Array.from(headings).map(transformHeading)); + }, [DocContent]); + + return ( + + + + + + + + + ); +} From 5c31b5b73c438f66cf50416e0e260d04e826c0b3 Mon Sep 17 00:00:00 2001 From: Derpius <49565664+Derpius@users.noreply.github.com> Date: Sat, 1 Jul 2023 13:58:44 +0100 Subject: [PATCH 2/4] refactor: clean up function renderer --- .../FunctionRenderer/FunctionRenderer.tsx | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/packages/site/src/components/FunctionRenderer/FunctionRenderer.tsx b/packages/site/src/components/FunctionRenderer/FunctionRenderer.tsx index 12a154e..6895612 100644 --- a/packages/site/src/components/FunctionRenderer/FunctionRenderer.tsx +++ b/packages/site/src/components/FunctionRenderer/FunctionRenderer.tsx @@ -18,18 +18,16 @@ export const FunctionRenderer: React.FC = ({ returns = [], headingLevel = "h3", children, -}) => { - return ( -
- - - {name}({parameters.length > 0 && renderParameterSignature(parameters)}) - {returns.length > 0 && `: ${renderReturnSignature(returns)}`} - - - - - {children} -
- ); -}; +}) => ( +
+ + + {name}({parameters.length > 0 && renderParameterSignature(parameters)}) + {returns.length > 0 && `: ${renderReturnSignature(returns)}`} + + + + + {children} +
+); From 612abd39e79b458c5ee11f905171bfca6fd312ba Mon Sep 17 00:00:00 2001 From: Derpius <49565664+Derpius@users.noreply.github.com> Date: Sat, 1 Jul 2023 14:02:58 +0100 Subject: [PATCH 3/4] docs: fix heading level on expect page --- packages/site/docs/api/expect.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/site/docs/api/expect.mdx b/packages/site/docs/api/expect.mdx index 450ab10..39d2d85 100644 --- a/packages/site/docs/api/expect.mdx +++ b/packages/site/docs/api/expect.mdx @@ -42,7 +42,7 @@ import toMatchObject from "@lest/docs/matchers/symmetric/toMatchObject.json"; import toMatch from "@lest/docs/matchers/symmetric/toMatch.json"; import toThrow from "@lest/docs/matchers/symmetric/toThrow.json"; - + ```lua test("returns hello world", function() From b99bba8640832fbf55e60b51a6ce4a47dda2f75f Mon Sep 17 00:00:00 2001 From: Derpius <49565664+Derpius@users.noreply.github.com> Date: Sat, 1 Jul 2023 14:10:24 +0100 Subject: [PATCH 4/4] fix: remove debug print --- packages/site/src/theme/DocItem/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/site/src/theme/DocItem/index.tsx b/packages/site/src/theme/DocItem/index.tsx index d227c79..b403ded 100644 --- a/packages/site/src/theme/DocItem/index.tsx +++ b/packages/site/src/theme/DocItem/index.tsx @@ -30,7 +30,6 @@ export default function DocItem({ content: DocContent }: Props) { const [toc, setToc] = useState([]); useEffect(() => { - console.log("BLAH"); const headings = document.querySelectorAll("h2, h3, h4, h5, h6"); setToc(Array.from(headings).map(transformHeading));