diff --git a/src/layouts/ReferenceItemLayout.astro b/src/layouts/ReferenceItemLayout.astro index 70d8b63ede..46216b732d 100644 --- a/src/layouts/ReferenceItemLayout.astro +++ b/src/layouts/ReferenceItemLayout.astro @@ -150,12 +150,13 @@ const descriptionParts = description.split( examples && (

{t("Examples")}

- {examples.map(({ src: exampleCode, classes }, i: number) => { + {examples.map(({ src: exampleCode, classes, meta }, i: number) => { + const previewable = !classes.norender && !meta.includes('norender'); return ( ) => * @returns The examples separated into individual strings */ // separateReferenceExamples -export const parseReferenceExamplesAndMetadata = (examples: string[]): { src: string, classes: Record }[] => +export const parseReferenceExamplesAndMetadata = (examples: string[]): { + src: string, + classes: Record, + meta: string[] +}[] => examples ?.flatMap((example: string) => example.split("
")) .map((src: string) => { @@ -210,7 +214,18 @@ export const parseReferenceExamplesAndMetadata = (examples: string[]): { src: st } return { classes, src } }) - .map(({ src, classes }) => ({ classes, src: src.replace(/<\/?div[^>]*>|<\/?code>/g, "") })) + .map(({ src, classes }) => { + const metaMatch = src.match(/^\/\/ META:(.+)/); + let meta: string[] = []; + if(metaMatch !== null){ + meta = metaMatch?.[1].split(",") ?? []; + } + return { + classes, + src: src.replace(/<\/?div[^>]*>|<\/?code>/g, "").replace(/^\/\/ META:(.+)/, ""), + meta + }; + }) .filter(({ src }) => src); /**