@hanzo/docs-core 16.4.2 → 16.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{advanced-CEwMef7q.js → advanced-BRT5Ij43.js} +3 -3
- package/dist/{advanced-CEwMef7q.js.map → advanced-BRT5Ij43.js.map} +1 -1
- package/dist/{algolia-BrWPzYE_.js → algolia-CQPXCnjV.js} +2 -2
- package/dist/{algolia-BrWPzYE_.js.map → algolia-CQPXCnjV.js.map} +1 -1
- package/dist/content/github.d.ts +1 -1
- package/dist/content/github.js.map +1 -1
- package/dist/content/index.d.ts +2 -2
- package/dist/dynamic-link.d.ts +2 -2
- package/dist/framework/next.d.ts +2 -2
- package/dist/framework/tanstack.d.ts +2 -2
- package/dist/framework/waku.d.ts +2 -2
- package/dist/{icon-Ds1OCIhh.js → icon-BWwSDabM.js} +2 -2
- package/dist/{icon-Ds1OCIhh.js.map → icon-BWwSDabM.js.map} +1 -1
- package/dist/link.d.ts +2 -2
- package/dist/mdx-plugins/index.js +2 -2
- package/dist/mdx-plugins/rehype-code.js +1 -1
- package/dist/mdx-plugins/rehype-toc.js +1 -1
- package/dist/{orama-cloud-MyA-JBt1.js → orama-cloud-DH3g37zc.js} +3 -3
- package/dist/{orama-cloud-MyA-JBt1.js.map → orama-cloud-DH3g37zc.js.map} +1 -1
- package/dist/{path-DPJpqaLb.js → path-DHIjrDBP.js} +1 -1
- package/dist/{path-DPJpqaLb.js.map → path-DHIjrDBP.js.map} +1 -1
- package/dist/{rehype-code-CQDbiG8_.js → rehype-code-CdiZ1Y6P.js} +1 -1
- package/dist/{rehype-code-CQDbiG8_.js.map → rehype-code-CdiZ1Y6P.js.map} +1 -1
- package/dist/{rehype-toc-D-eLj90w.js → rehype-toc-DVwJcwvA.js} +1 -1
- package/dist/{rehype-toc-D-eLj90w.js.map → rehype-toc-DVwJcwvA.js.map} +1 -1
- package/dist/{remove-undefined-DgDIJk1A.js → remove-undefined-Cfs4o_mM.js} +1 -1
- package/dist/{remove-undefined-DgDIJk1A.js.map → remove-undefined-Cfs4o_mM.js.map} +1 -1
- package/dist/search/client.js +3 -3
- package/dist/search/index.js +1 -1
- package/dist/search/server.js +3 -3
- package/dist/{search-GCBSTRxD.js → search-D6ChCLhY.js} +1 -1
- package/dist/{search-GCBSTRxD.js.map → search-D6ChCLhY.js.map} +1 -1
- package/dist/source/index.js +2 -2
- package/dist/source/plugins/lucide-icons.js +1 -1
- package/dist/source/plugins/slugs.js +2 -2
- package/dist/source/plugins/slugs.js.map +1 -1
- package/dist/{static-vTmR4-T2.js → static-Dq8pA8Ay.js} +2 -2
- package/dist/{static-vTmR4-T2.js.map → static-Dq8pA8Ay.js.map} +1 -1
- package/dist/toc.d.ts +4 -4
- package/package.json +6 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as createContentHighlighter } from "./search-
|
|
2
|
-
import { t as removeUndefined } from "./remove-undefined-
|
|
1
|
+
import { t as createContentHighlighter } from "./search-D6ChCLhY.js";
|
|
2
|
+
import { t as removeUndefined } from "./remove-undefined-Cfs4o_mM.js";
|
|
3
3
|
import { getByID, search } from "@orama/orama";
|
|
4
4
|
|
|
5
5
|
//#region src/search/orama/search/simple.ts
|
|
@@ -77,4 +77,4 @@ async function searchAdvanced(db, query, tag = [], { mode = "fulltext", ...overr
|
|
|
77
77
|
|
|
78
78
|
//#endregion
|
|
79
79
|
export { searchSimple as n, searchAdvanced as t };
|
|
80
|
-
//# sourceMappingURL=advanced-
|
|
80
|
+
//# sourceMappingURL=advanced-BRT5Ij43.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-
|
|
1
|
+
{"version":3,"file":"advanced-BRT5Ij43.js","names":["list: SortedResult[]"],"sources":["../src/search/orama/search/simple.ts","../src/search/orama/search/advanced.ts"],"sourcesContent":["import { type Orama, search, type SearchParams } from '@orama/orama';\nimport { type SimpleDocument, type simpleSchema } from '@/search/orama/create-db';\nimport { createContentHighlighter, type SortedResult } from '@/search';\n\nexport async function searchSimple(\n db: Orama<typeof simpleSchema>,\n query: string,\n params: Partial<SearchParams<Orama<typeof simpleSchema>, SimpleDocument>> = {},\n): Promise<SortedResult[]> {\n const highlighter = createContentHighlighter(query);\n const result = await search(db, {\n term: query,\n tolerance: 1,\n ...params,\n boost: {\n title: 2,\n ...('boost' in params ? params.boost : undefined),\n },\n });\n\n return result.hits.map<SortedResult>((hit) => ({\n type: 'page',\n content: hit.document.title,\n breadcrumbs: hit.document.breadcrumbs,\n contentWithHighlights: highlighter.highlight(hit.document.title),\n id: hit.document.url,\n url: hit.document.url,\n }));\n}\n","import { getByID, type Orama, search, type SearchParams } from '@orama/orama';\nimport { type AdvancedDocument, type advancedSchema } from '@/search/orama/create-db';\nimport { removeUndefined } from '@/utils/remove-undefined';\nimport { createContentHighlighter, type SortedResult } from '@/search';\n\nexport async function searchAdvanced(\n db: Orama<typeof advancedSchema>,\n query: string,\n tag: string | string[] = [],\n {\n mode = 'fulltext',\n ...override\n }: Partial<SearchParams<Orama<typeof advancedSchema>, AdvancedDocument>> = {},\n): Promise<SortedResult[]> {\n if (typeof tag === 'string') tag = [tag];\n\n let params = {\n ...override,\n mode,\n where: removeUndefined({\n tags:\n tag.length > 0\n ? {\n containsAll: tag,\n }\n : undefined,\n ...override.where,\n }),\n groupBy: {\n properties: ['page_id'],\n maxResult: 8,\n ...override.groupBy,\n },\n } as SearchParams<typeof db, AdvancedDocument>;\n\n if (query.length > 0) {\n params = {\n ...params,\n term: query,\n properties: mode === 'fulltext' ? ['content'] : ['content', 'embeddings'],\n } as SearchParams<typeof db, AdvancedDocument>;\n }\n\n const highlighter = createContentHighlighter(query);\n const result = await search(db, params);\n const list: SortedResult[] = [];\n for (const item of result.groups ?? []) {\n const pageId = item.values[0] as string;\n\n const page = getByID(db, pageId);\n if (!page) continue;\n\n list.push({\n id: pageId,\n type: 'page',\n content: page.content,\n breadcrumbs: page.breadcrumbs,\n contentWithHighlights: highlighter.highlight(page.content),\n url: page.url,\n });\n\n for (const hit of item.result) {\n if (hit.document.type === 'page') continue;\n\n list.push({\n id: hit.document.id.toString(),\n content: hit.document.content,\n breadcrumbs: hit.document.breadcrumbs,\n contentWithHighlights: highlighter.highlight(hit.document.content),\n type: hit.document.type as SortedResult['type'],\n url: hit.document.url,\n });\n }\n }\n return list;\n}\n"],"mappings":";;;;;AAIA,eAAsB,aACpB,IACA,OACA,SAA4E,EAAE,EACrD;CACzB,MAAM,cAAc,yBAAyB,MAAM;AAWnD,SAVe,MAAM,OAAO,IAAI;EAC9B,MAAM;EACN,WAAW;EACX,GAAG;EACH,OAAO;GACL,OAAO;GACP,GAAI,WAAW,SAAS,OAAO,QAAQ;GACxC;EACF,CAAC,EAEY,KAAK,KAAmB,SAAS;EAC7C,MAAM;EACN,SAAS,IAAI,SAAS;EACtB,aAAa,IAAI,SAAS;EAC1B,uBAAuB,YAAY,UAAU,IAAI,SAAS,MAAM;EAChE,IAAI,IAAI,SAAS;EACjB,KAAK,IAAI,SAAS;EACnB,EAAE;;;;;ACtBL,eAAsB,eACpB,IACA,OACA,MAAyB,EAAE,EAC3B,EACE,OAAO,YACP,GAAG,aACsE,EAAE,EACpD;AACzB,KAAI,OAAO,QAAQ,SAAU,OAAM,CAAC,IAAI;CAExC,IAAI,SAAS;EACX,GAAG;EACH;EACA,OAAO,gBAAgB;GACrB,MACE,IAAI,SAAS,IACT,EACE,aAAa,KACd,GACD;GACN,GAAG,SAAS;GACb,CAAC;EACF,SAAS;GACP,YAAY,CAAC,UAAU;GACvB,WAAW;GACX,GAAG,SAAS;GACb;EACF;AAED,KAAI,MAAM,SAAS,EACjB,UAAS;EACP,GAAG;EACH,MAAM;EACN,YAAY,SAAS,aAAa,CAAC,UAAU,GAAG,CAAC,WAAW,aAAa;EAC1E;CAGH,MAAM,cAAc,yBAAyB,MAAM;CACnD,MAAM,SAAS,MAAM,OAAO,IAAI,OAAO;CACvC,MAAMA,OAAuB,EAAE;AAC/B,MAAK,MAAM,QAAQ,OAAO,UAAU,EAAE,EAAE;EACtC,MAAM,SAAS,KAAK,OAAO;EAE3B,MAAM,OAAO,QAAQ,IAAI,OAAO;AAChC,MAAI,CAAC,KAAM;AAEX,OAAK,KAAK;GACR,IAAI;GACJ,MAAM;GACN,SAAS,KAAK;GACd,aAAa,KAAK;GAClB,uBAAuB,YAAY,UAAU,KAAK,QAAQ;GAC1D,KAAK,KAAK;GACX,CAAC;AAEF,OAAK,MAAM,OAAO,KAAK,QAAQ;AAC7B,OAAI,IAAI,SAAS,SAAS,OAAQ;AAElC,QAAK,KAAK;IACR,IAAI,IAAI,SAAS,GAAG,UAAU;IAC9B,SAAS,IAAI,SAAS;IACtB,aAAa,IAAI,SAAS;IAC1B,uBAAuB,YAAY,UAAU,IAAI,SAAS,QAAQ;IAClE,MAAM,IAAI,SAAS;IACnB,KAAK,IAAI,SAAS;IACnB,CAAC;;;AAGN,QAAO"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as createContentHighlighter } from "./search-
|
|
1
|
+
import { t as createContentHighlighter } from "./search-D6ChCLhY.js";
|
|
2
2
|
|
|
3
3
|
//#region src/search/client/algolia.ts
|
|
4
4
|
function groupResults(hits) {
|
|
@@ -46,4 +46,4 @@ async function searchDocs(query, { indexName, onSearch, client, locale, tag }) {
|
|
|
46
46
|
|
|
47
47
|
//#endregion
|
|
48
48
|
export { searchDocs };
|
|
49
|
-
//# sourceMappingURL=algolia-
|
|
49
|
+
//# sourceMappingURL=algolia-CQPXCnjV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algolia-
|
|
1
|
+
{"version":3,"file":"algolia-CQPXCnjV.js","names":["grouped: SortedResult[]"],"sources":["../src/search/client/algolia.ts"],"sourcesContent":["import type { BaseIndex } from '@/search/algolia';\nimport type { Hit, LiteClient, SearchResponse } from 'algoliasearch/lite';\nimport { createContentHighlighter, type SortedResult } from '@/search';\n\nexport interface AlgoliaOptions {\n indexName: string;\n client: LiteClient;\n\n /**\n * Filter results with specific tag.\n */\n tag?: string;\n\n locale?: string;\n\n onSearch?: (\n query: string,\n tag?: string,\n locale?: string,\n ) => Promise<{\n results: SearchResponse<BaseIndex>[];\n }>;\n}\n\nexport function groupResults(hits: Hit<BaseIndex>[]): SortedResult[] {\n const grouped: SortedResult[] = [];\n const scannedUrls = new Set<string>();\n\n for (const hit of hits) {\n if (!scannedUrls.has(hit.url)) {\n scannedUrls.add(hit.url);\n\n grouped.push({\n id: hit.url,\n type: 'page',\n breadcrumbs: hit.breadcrumbs,\n url: hit.url,\n content: hit.title,\n });\n }\n\n grouped.push({\n id: hit.objectID,\n type: hit.content === hit.section ? 'heading' : 'text',\n url: hit.section_id ? `${hit.url}#${hit.section_id}` : hit.url,\n content: hit.content,\n });\n }\n\n return grouped;\n}\n\nexport async function searchDocs(\n query: string,\n { indexName, onSearch, client, locale, tag }: AlgoliaOptions,\n): Promise<SortedResult[]> {\n if (query.trim().length === 0) return [];\n\n const result = onSearch\n ? await onSearch(query, tag, locale)\n : await client.searchForHits<BaseIndex>({\n requests: [\n {\n type: 'default',\n indexName,\n query,\n distinct: 5,\n hitsPerPage: 10,\n filters: tag ? `tag:${tag}` : undefined,\n },\n ],\n });\n\n const highlighter = createContentHighlighter(query);\n return groupResults(result.results[0].hits).flatMap((hit) => {\n if (hit.type === 'page') {\n return {\n ...hit,\n contentWithHighlights: hit.contentWithHighlights ?? highlighter.highlight(hit.content),\n };\n }\n\n return [];\n });\n}\n"],"mappings":";;;AAwBA,SAAgB,aAAa,MAAwC;CACnE,MAAMA,UAA0B,EAAE;CAClC,MAAM,8BAAc,IAAI,KAAa;AAErC,MAAK,MAAM,OAAO,MAAM;AACtB,MAAI,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE;AAC7B,eAAY,IAAI,IAAI,IAAI;AAExB,WAAQ,KAAK;IACX,IAAI,IAAI;IACR,MAAM;IACN,aAAa,IAAI;IACjB,KAAK,IAAI;IACT,SAAS,IAAI;IACd,CAAC;;AAGJ,UAAQ,KAAK;GACX,IAAI,IAAI;GACR,MAAM,IAAI,YAAY,IAAI,UAAU,YAAY;GAChD,KAAK,IAAI,aAAa,GAAG,IAAI,IAAI,GAAG,IAAI,eAAe,IAAI;GAC3D,SAAS,IAAI;GACd,CAAC;;AAGJ,QAAO;;AAGT,eAAsB,WACpB,OACA,EAAE,WAAW,UAAU,QAAQ,QAAQ,OACd;AACzB,KAAI,MAAM,MAAM,CAAC,WAAW,EAAG,QAAO,EAAE;CAExC,MAAM,SAAS,WACX,MAAM,SAAS,OAAO,KAAK,OAAO,GAClC,MAAM,OAAO,cAAyB,EACpC,UAAU,CACR;EACE,MAAM;EACN;EACA;EACA,UAAU;EACV,aAAa;EACb,SAAS,MAAM,OAAO,QAAQ;EAC/B,CACF,EACF,CAAC;CAEN,MAAM,cAAc,yBAAyB,MAAM;AACnD,QAAO,aAAa,OAAO,QAAQ,GAAG,KAAK,CAAC,SAAS,QAAQ;AAC3D,MAAI,IAAI,SAAS,OACf,QAAO;GACL,GAAG;GACH,uBAAuB,IAAI,yBAAyB,YAAY,UAAU,IAAI,QAAQ;GACvF;AAGH,SAAO,EAAE;GACT"}
|
package/dist/content/github.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","names":[],"sources":["../../src/content/github.ts"],"sourcesContent":["type Response = {\n commit: {\n committer: {\n date: string;\n };\n };\n}[];\n\nexport interface GetGithubLastCommitOptions {\n /**\n * Repository name, like \"
|
|
1
|
+
{"version":3,"file":"github.js","names":[],"sources":["../../src/content/github.ts"],"sourcesContent":["type Response = {\n commit: {\n committer: {\n date: string;\n };\n };\n}[];\n\nexport interface GetGithubLastCommitOptions {\n /**\n * Repository name, like \"hanzo-docs\"\n */\n repo: string;\n\n /** Owner of repository */\n owner: string;\n\n /**\n * Path to file\n */\n path: string;\n\n /**\n * GitHub access token\n */\n token?: string;\n\n /**\n * SHA or ref (branch or tag) name.\n */\n sha?: string;\n\n /**\n * Base URL for GitHub API\n * @default \"https://api.github.com\"\n * @link https://docs.github.com/en/get-started/using-github-docs/about-versions-of-github-docs#determining-which-github-product-you-use\n */\n baseUrl?: string;\n\n /**\n * Custom query parameters\n */\n params?: Record<string, string>;\n\n options?: RequestInit;\n}\n\n/**\n * Get the last edit time of a file using GitHub API\n *\n * By default, this will cache the result forever.\n * Set `options.next.revalidate` to customise this.\n */\nexport async function getGithubLastEdit({\n repo,\n token,\n owner,\n path,\n sha,\n baseUrl = 'https://api.github.com',\n options = {},\n params: customParams = {},\n}: GetGithubLastCommitOptions): Promise<Date | null> {\n const headers = new Headers(options.headers);\n const params = new URLSearchParams();\n params.set('path', path);\n params.set('page', '1');\n params.set('per_page', '1');\n\n if (sha) params.set('sha', sha);\n\n for (const [key, value] of Object.entries(customParams)) {\n params.set(key, value);\n }\n\n if (token) {\n headers.append('authorization', token);\n }\n\n const res = await fetch(`${baseUrl}/repos/${owner}/${repo}/commits?${params.toString()}`, {\n cache: 'force-cache',\n ...options,\n headers,\n });\n\n if (!res.ok) throw new Error(`Failed to fetch last edit time from Git ${await res.text()}`);\n const data = (await res.json()) as Response;\n\n if (data.length === 0) return null;\n return new Date(data[0].commit.committer.date);\n}\n"],"mappings":";;;;;;;AAqDA,eAAsB,kBAAkB,EACtC,MACA,OACA,OACA,MACA,KACA,UAAU,0BACV,UAAU,EAAE,EACZ,QAAQ,eAAe,EAAE,IAC0B;CACnD,MAAM,UAAU,IAAI,QAAQ,QAAQ,QAAQ;CAC5C,MAAM,SAAS,IAAI,iBAAiB;AACpC,QAAO,IAAI,QAAQ,KAAK;AACxB,QAAO,IAAI,QAAQ,IAAI;AACvB,QAAO,IAAI,YAAY,IAAI;AAE3B,KAAI,IAAK,QAAO,IAAI,OAAO,IAAI;AAE/B,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,aAAa,CACrD,QAAO,IAAI,KAAK,MAAM;AAGxB,KAAI,MACF,SAAQ,OAAO,iBAAiB,MAAM;CAGxC,MAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,SAAS,MAAM,GAAG,KAAK,WAAW,OAAO,UAAU,IAAI;EACxF,OAAO;EACP,GAAG;EACH;EACD,CAAC;AAEF,KAAI,CAAC,IAAI,GAAI,OAAM,IAAI,MAAM,2CAA2C,MAAM,IAAI,MAAM,GAAG;CAC3F,MAAM,OAAQ,MAAM,IAAI,MAAM;AAE9B,KAAI,KAAK,WAAW,EAAG,QAAO;AAC9B,QAAO,IAAI,KAAK,KAAK,GAAG,OAAO,UAAU,KAAK"}
|
package/dist/content/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react0 from "react";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
import { Components } from "hast-util-to-jsx-runtime";
|
|
4
4
|
import { Compatible } from "vfile";
|
|
@@ -17,7 +17,7 @@ declare function Markdown({
|
|
|
17
17
|
remarkPlugins?: PluggableList;
|
|
18
18
|
rehypePlugins?: PluggableList;
|
|
19
19
|
children: Compatible;
|
|
20
|
-
}): Promise<
|
|
20
|
+
}): Promise<react0.ReactElement<unknown, string | react0.JSXElementConstructor<any>> | Iterable<ReactNode> | (string | number | bigint | boolean | react0.ReactPortal | react0.ReactElement<unknown, string | react0.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined)>;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { Markdown, MarkdownProps };
|
|
23
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/dynamic-link.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LinkProps } from "./link.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react4 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/dynamic-link.d.ts
|
|
5
5
|
type DynamicLinkProps = LinkProps;
|
|
@@ -8,7 +8,7 @@ type DynamicLinkProps = LinkProps;
|
|
|
8
8
|
*
|
|
9
9
|
* It supports dynamic hrefs, which means you can use `/[lang]/my-page` with `dynamicHrefs` enabled
|
|
10
10
|
*/
|
|
11
|
-
declare const DynamicLink:
|
|
11
|
+
declare const DynamicLink: react4.ForwardRefExoticComponent<LinkProps & react4.RefAttributes<HTMLAnchorElement>>;
|
|
12
12
|
//#endregion
|
|
13
13
|
export { DynamicLink, DynamicLink as default, DynamicLinkProps };
|
|
14
14
|
//# sourceMappingURL=dynamic-link.d.ts.map
|
package/dist/framework/next.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Framework } from "./index.js";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime7 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/framework/next.d.ts
|
|
6
6
|
declare function NextProvider({
|
|
@@ -11,7 +11,7 @@ declare function NextProvider({
|
|
|
11
11
|
children: ReactNode;
|
|
12
12
|
Link?: Framework['Link'];
|
|
13
13
|
Image?: Framework['Image'];
|
|
14
|
-
}):
|
|
14
|
+
}): react_jsx_runtime7.JSX.Element;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { NextProvider };
|
|
17
17
|
//# sourceMappingURL=next.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Framework } from "./index.js";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime8 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/framework/tanstack.d.ts
|
|
6
6
|
/**
|
|
@@ -14,7 +14,7 @@ declare function TanstackProvider({
|
|
|
14
14
|
children: ReactNode;
|
|
15
15
|
Link?: Framework['Link'];
|
|
16
16
|
Image?: Framework['Image'];
|
|
17
|
-
}):
|
|
17
|
+
}): react_jsx_runtime8.JSX.Element;
|
|
18
18
|
//#endregion
|
|
19
19
|
export { TanstackProvider };
|
|
20
20
|
//# sourceMappingURL=tanstack.d.ts.map
|
package/dist/framework/waku.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Framework } from "./index.js";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
5
|
//#region src/framework/waku.d.ts
|
|
6
6
|
declare function WakuProvider({
|
|
@@ -11,7 +11,7 @@ declare function WakuProvider({
|
|
|
11
11
|
children: ReactNode;
|
|
12
12
|
Link?: Framework['Link'];
|
|
13
13
|
Image?: Framework['Image'];
|
|
14
|
-
}):
|
|
14
|
+
}): react_jsx_runtime0.JSX.Element;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { WakuProvider };
|
|
17
17
|
//# sourceMappingURL=waku.d.ts.map
|
|
@@ -5,7 +5,7 @@ function iconPlugin(resolveIcon) {
|
|
|
5
5
|
return node;
|
|
6
6
|
}
|
|
7
7
|
return {
|
|
8
|
-
name: "
|
|
8
|
+
name: "hanzo-docs:icon",
|
|
9
9
|
transformPageTree: {
|
|
10
10
|
file: replaceIcon,
|
|
11
11
|
folder: replaceIcon,
|
|
@@ -16,4 +16,4 @@ function iconPlugin(resolveIcon) {
|
|
|
16
16
|
|
|
17
17
|
//#endregion
|
|
18
18
|
export { iconPlugin as t };
|
|
19
|
-
//# sourceMappingURL=icon-
|
|
19
|
+
//# sourceMappingURL=icon-BWwSDabM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-
|
|
1
|
+
{"version":3,"file":"icon-BWwSDabM.js","names":[],"sources":["../src/source/plugins/icon.ts"],"sourcesContent":["import type { LoaderPlugin } from '@/source';\nimport type { ReactNode } from 'react';\nimport type * as PageTree from '@/page-tree/definitions';\n\nexport type IconResolver = (icon: string | undefined) => ReactNode;\n\nexport function iconPlugin(resolveIcon: IconResolver): LoaderPlugin {\n function replaceIcon<T extends PageTree.Node>(node: T): T {\n if (node.icon === undefined || typeof node.icon === 'string')\n node.icon = resolveIcon(node.icon);\n\n return node;\n }\n\n return {\n name: 'hanzo-docs:icon',\n transformPageTree: {\n file: replaceIcon,\n folder: replaceIcon,\n separator: replaceIcon,\n },\n };\n}\n"],"mappings":";AAMA,SAAgB,WAAW,aAAyC;CAClE,SAAS,YAAqC,MAAY;AACxD,MAAI,KAAK,SAAS,UAAa,OAAO,KAAK,SAAS,SAClD,MAAK,OAAO,YAAY,KAAK,KAAK;AAEpC,SAAO;;AAGT,QAAO;EACL,MAAM;EACN,mBAAmB;GACjB,MAAM;GACN,QAAQ;GACR,WAAW;GACZ;EACF"}
|
package/dist/link.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react6 from "react";
|
|
2
2
|
import { AnchorHTMLAttributes } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/link.d.ts
|
|
@@ -14,7 +14,7 @@ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
|
14
14
|
*/
|
|
15
15
|
prefetch?: boolean;
|
|
16
16
|
}
|
|
17
|
-
declare const Link:
|
|
17
|
+
declare const Link: react6.ForwardRefExoticComponent<LinkProps & react6.RefAttributes<HTMLAnchorElement>>;
|
|
18
18
|
//#endregion
|
|
19
19
|
export { LinkProps, Link as default };
|
|
20
20
|
//# sourceMappingURL=link.d.ts.map
|
|
@@ -3,12 +3,12 @@ import { remarkHeading } from "./remark-heading.js";
|
|
|
3
3
|
import "../shiki-4oMYwHED.js";
|
|
4
4
|
import { generateCodeBlockTabs, parseCodeBlockAttributes } from "./codeblock-utils.js";
|
|
5
5
|
import { remarkGfm } from "./remark-gfm.js";
|
|
6
|
-
import { i as transformerIcon, n as rehypeCodeDefaultOptions, r as transformerTab, t as rehypeCode } from "../rehype-code-
|
|
6
|
+
import { i as transformerIcon, n as rehypeCodeDefaultOptions, r as transformerTab, t as rehypeCode } from "../rehype-code-CdiZ1Y6P.js";
|
|
7
7
|
import { remarkImage } from "./remark-image.js";
|
|
8
8
|
import { remarkStructure, remarkStructureDefaultOptions, structure } from "./remark-structure.js";
|
|
9
9
|
import { remarkAdmonition } from "./remark-admonition.js";
|
|
10
10
|
import { remarkDirectiveAdmonition } from "./remark-directive-admonition.js";
|
|
11
|
-
import { t as rehypeToc } from "../rehype-toc-
|
|
11
|
+
import { t as rehypeToc } from "../rehype-toc-DVwJcwvA.js";
|
|
12
12
|
import { remarkCodeTab } from "./remark-code-tab.js";
|
|
13
13
|
import { remarkSteps } from "./remark-steps.js";
|
|
14
14
|
import { remarkNpm } from "./remark-npm.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../shiki-4oMYwHED.js";
|
|
2
2
|
import "./codeblock-utils.js";
|
|
3
|
-
import { i as transformerIcon, n as rehypeCodeDefaultOptions, r as transformerTab, t as rehypeCode } from "../rehype-code-
|
|
3
|
+
import { i as transformerIcon, n as rehypeCodeDefaultOptions, r as transformerTab, t as rehypeCode } from "../rehype-code-CdiZ1Y6P.js";
|
|
4
4
|
|
|
5
5
|
export { rehypeCode, rehypeCodeDefaultOptions, transformerIcon, transformerTab };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as createContentHighlighter } from "./search-
|
|
2
|
-
import { t as removeUndefined } from "./remove-undefined-
|
|
1
|
+
import { t as createContentHighlighter } from "./search-D6ChCLhY.js";
|
|
2
|
+
import { t as removeUndefined } from "./remove-undefined-Cfs4o_mM.js";
|
|
3
3
|
|
|
4
4
|
//#region src/search/client/orama-cloud.ts
|
|
5
5
|
async function searchDocs(query, options) {
|
|
@@ -81,4 +81,4 @@ async function searchDocs(query, options) {
|
|
|
81
81
|
|
|
82
82
|
//#endregion
|
|
83
83
|
export { searchDocs };
|
|
84
|
-
//# sourceMappingURL=orama-cloud-
|
|
84
|
+
//# sourceMappingURL=orama-cloud-DH3g37zc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orama-cloud-
|
|
1
|
+
{"version":3,"file":"orama-cloud-DH3g37zc.js","names":["list: SortedResult[]","result","params: OramaCloudSearchParams"],"sources":["../src/search/client/orama-cloud.ts"],"sourcesContent":["import type { OramaCloud, OramaCloudSearchParams } from '@orama/core';\nimport { removeUndefined } from '@/utils/remove-undefined';\nimport type { OramaIndex } from '@/search/orama-cloud';\nimport { createContentHighlighter, type SortedResult } from '@/search';\n\ninterface CrawlerIndex {\n path: string;\n title: string;\n content: string;\n section: string;\n category: string;\n}\n\nexport interface OramaCloudOptions {\n client: OramaCloud;\n /**\n * The type of your index.\n *\n * You can set it to `crawler` if you use crawler instead of the JSON index with schema provided by Fumadocs\n */\n index?: 'default' | 'crawler';\n params?: Partial<OramaCloudSearchParams>;\n\n /**\n * Filter results with specific tag.\n */\n tag?: string;\n\n /**\n * Filter by locale (unsupported at the moment)\n */\n locale?: string;\n}\n\nexport async function searchDocs(\n query: string,\n options: OramaCloudOptions,\n): Promise<SortedResult[]> {\n const highlighter = createContentHighlighter(query);\n const list: SortedResult[] = [];\n const { index = 'default', client, params: extraParams, tag } = options;\n\n if (index === 'crawler') {\n const result = await client.search({\n datasources: [],\n ...extraParams,\n term: query,\n where: {\n category: tag\n ? {\n eq: tag.slice(0, 1).toUpperCase() + tag.slice(1),\n }\n : undefined,\n ...extraParams?.where,\n },\n limit: 10,\n });\n if (!result) return list;\n\n for (const hit of result.hits) {\n const doc = hit.document as unknown as CrawlerIndex;\n\n list.push(\n {\n id: hit.id,\n type: 'page',\n content: doc.title,\n contentWithHighlights: highlighter.highlight(doc.title),\n url: doc.path,\n },\n {\n id: 'page' + hit.id,\n type: 'text',\n content: doc.content,\n contentWithHighlights: highlighter.highlight(doc.content),\n url: doc.path,\n },\n );\n }\n\n return list;\n }\n\n const params: OramaCloudSearchParams = {\n datasources: [],\n ...extraParams,\n term: query,\n where: removeUndefined({\n tag,\n ...extraParams?.where,\n }),\n groupBy: {\n properties: ['page_id'],\n max_results: 7,\n ...extraParams?.groupBy,\n },\n };\n\n const result = await client.search(params);\n if (!result || !result.groups) return list;\n\n for (const item of result.groups) {\n let addedHead = false;\n\n for (const hit of item.result) {\n const doc = hit.document as unknown as OramaIndex;\n\n if (!addedHead) {\n list.push({\n id: doc.page_id,\n type: 'page',\n content: doc.title,\n breadcrumbs: doc.breadcrumbs,\n contentWithHighlights: highlighter.highlight(doc.title),\n url: doc.url,\n });\n addedHead = true;\n }\n\n list.push({\n id: doc.id,\n content: doc.content,\n contentWithHighlights: highlighter.highlight(doc.content),\n type: doc.content === doc.section ? 'heading' : 'text',\n url: doc.section_id ? `${doc.url}#${doc.section_id}` : doc.url,\n });\n }\n }\n\n return list;\n}\n"],"mappings":";;;;AAkCA,eAAsB,WACpB,OACA,SACyB;CACzB,MAAM,cAAc,yBAAyB,MAAM;CACnD,MAAMA,OAAuB,EAAE;CAC/B,MAAM,EAAE,QAAQ,WAAW,QAAQ,QAAQ,aAAa,QAAQ;AAEhE,KAAI,UAAU,WAAW;EACvB,MAAMC,WAAS,MAAM,OAAO,OAAO;GACjC,aAAa,EAAE;GACf,GAAG;GACH,MAAM;GACN,OAAO;IACL,UAAU,MACN,EACE,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,aAAa,GAAG,IAAI,MAAM,EAAE,EACjD,GACD;IACJ,GAAG,aAAa;IACjB;GACD,OAAO;GACR,CAAC;AACF,MAAI,CAACA,SAAQ,QAAO;AAEpB,OAAK,MAAM,OAAOA,SAAO,MAAM;GAC7B,MAAM,MAAM,IAAI;AAEhB,QAAK,KACH;IACE,IAAI,IAAI;IACR,MAAM;IACN,SAAS,IAAI;IACb,uBAAuB,YAAY,UAAU,IAAI,MAAM;IACvD,KAAK,IAAI;IACV,EACD;IACE,IAAI,SAAS,IAAI;IACjB,MAAM;IACN,SAAS,IAAI;IACb,uBAAuB,YAAY,UAAU,IAAI,QAAQ;IACzD,KAAK,IAAI;IACV,CACF;;AAGH,SAAO;;CAGT,MAAMC,SAAiC;EACrC,aAAa,EAAE;EACf,GAAG;EACH,MAAM;EACN,OAAO,gBAAgB;GACrB;GACA,GAAG,aAAa;GACjB,CAAC;EACF,SAAS;GACP,YAAY,CAAC,UAAU;GACvB,aAAa;GACb,GAAG,aAAa;GACjB;EACF;CAED,MAAM,SAAS,MAAM,OAAO,OAAO,OAAO;AAC1C,KAAI,CAAC,UAAU,CAAC,OAAO,OAAQ,QAAO;AAEtC,MAAK,MAAM,QAAQ,OAAO,QAAQ;EAChC,IAAI,YAAY;AAEhB,OAAK,MAAM,OAAO,KAAK,QAAQ;GAC7B,MAAM,MAAM,IAAI;AAEhB,OAAI,CAAC,WAAW;AACd,SAAK,KAAK;KACR,IAAI,IAAI;KACR,MAAM;KACN,SAAS,IAAI;KACb,aAAa,IAAI;KACjB,uBAAuB,YAAY,UAAU,IAAI,MAAM;KACvD,KAAK,IAAI;KACV,CAAC;AACF,gBAAY;;AAGd,QAAK,KAAK;IACR,IAAI,IAAI;IACR,SAAS,IAAI;IACb,uBAAuB,YAAY,UAAU,IAAI,QAAQ;IACzD,MAAM,IAAI,YAAY,IAAI,UAAU,YAAY;IAChD,KAAK,IAAI,aAAa,GAAG,IAAI,IAAI,GAAG,IAAI,eAAe,IAAI;IAC5D,CAAC;;;AAIN,QAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-
|
|
1
|
+
{"version":3,"file":"path-DHIjrDBP.js","names":[],"sources":["../src/source/path.ts"],"sourcesContent":["export function basename(path: string, ext?: string): string {\n const idx = path.lastIndexOf('/');\n\n return path.substring(idx === -1 ? 0 : idx + 1, ext ? path.length - ext.length : path.length);\n}\n\nexport function extname(path: string): string {\n const dotIdx = path.lastIndexOf('.');\n\n if (dotIdx !== -1) {\n return path.substring(dotIdx);\n }\n\n return '';\n}\n\nexport function dirname(path: string): string {\n return path.split('/').slice(0, -1).join('/');\n}\n/**\n * Split path into segments, trailing/leading slashes are removed\n */\nexport function splitPath(path: string): string[] {\n return path.split('/').filter((p) => p.length > 0);\n}\n\n/**\n * Resolve paths, slashes within the path will be ignored\n * @param paths - Paths to join\n * @example\n * ```\n * ['a','b'] // 'a/b'\n * ['/a'] // 'a'\n * ['a', '/b'] // 'a/b'\n * ['a', '../b/c'] // 'b/c'\n * ```\n */\nexport function joinPath(...paths: string[]): string {\n const out = [];\n const parsed = paths.flatMap(splitPath);\n\n for (const seg of parsed) {\n switch (seg) {\n case '..':\n out.pop();\n break;\n case '.':\n break;\n default:\n out.push(seg);\n }\n }\n\n return out.join('/');\n}\n\nexport function slash(path: string): string {\n const isExtendedLengthPath = path.startsWith('\\\\\\\\?\\\\');\n\n if (isExtendedLengthPath) {\n return path;\n }\n\n return path.replaceAll('\\\\', '/');\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAgB,SAAS,MAAc,KAAsB;CAC3D,MAAM,MAAM,KAAK,YAAY,IAAI;AAEjC,QAAO,KAAK,UAAU,QAAQ,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,OAAO;;AAG/F,SAAgB,QAAQ,MAAsB;CAC5C,MAAM,SAAS,KAAK,YAAY,IAAI;AAEpC,KAAI,WAAW,GACb,QAAO,KAAK,UAAU,OAAO;AAG/B,QAAO;;AAGT,SAAgB,QAAQ,MAAsB;AAC5C,QAAO,KAAK,MAAM,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI;;;;;AAK/C,SAAgB,UAAU,MAAwB;AAChD,QAAO,KAAK,MAAM,IAAI,CAAC,QAAQ,MAAM,EAAE,SAAS,EAAE;;;;;;;;;;;;;AAcpD,SAAgB,SAAS,GAAG,OAAyB;CACnD,MAAM,MAAM,EAAE;CACd,MAAM,SAAS,MAAM,QAAQ,UAAU;AAEvC,MAAK,MAAM,OAAO,OAChB,SAAQ,KAAR;EACE,KAAK;AACH,OAAI,KAAK;AACT;EACF,KAAK,IACH;EACF,QACE,KAAI,KAAK,IAAI;;AAInB,QAAO,IAAI,KAAK,IAAI;;AAGtB,SAAgB,MAAM,MAAsB;AAG1C,KAF6B,KAAK,WAAW,UAAU,CAGrD,QAAO;AAGT,QAAO,KAAK,WAAW,MAAM,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehype-code-CQDbiG8_.js","names":["defaultShortcuts: Record<string, string>","defaultIcons: Record<string, CodeBlockIcon>","rehypeCodeDefaultOptions: RehypeCodeOptions","data: Record<string, unknown>","options: RehypeCodeOptions"],"sources":["../src/mdx-plugins/transformer-icon.ts","../src/mdx-plugins/rehype-code.ts"],"sourcesContent":["import { type ShikiTransformer } from 'shiki';\n\nexport type CodeBlockIcon =\n | {\n viewBox: string;\n fill: string;\n d: string;\n }\n | string;\n\nconst defaultShortcuts: Record<string, string> = {\n js: 'javascript',\n jsx: 'react',\n ts: 'typescript',\n tsx: 'react',\n 'c#': 'csharp',\n cs: 'csharp',\n gql: 'graphql',\n py: 'python',\n bash: 'shellscript',\n sh: 'shellscript',\n shell: 'shellscript',\n zsh: 'shellscript',\n 'c++': 'cpp',\n};\n\n// From https://simpleicons.org\n// Java - Not supported, https://github.com/simple-icons/simple-icons/issues/7374\nconst defaultIcons: Record<string, CodeBlockIcon> = {\n react: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z',\n },\n vue: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z',\n },\n ruby: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M20.156.083c3.033.525 3.893 2.598 3.829 4.77L24 4.822 22.635 22.71 4.89 23.926h.016C3.433 23.864.15 23.729 0 19.139l1.645-3 2.819 6.586.503 1.172 2.805-9.144-.03.007.016-.03 9.255 2.956-1.396-5.431-.99-3.9 8.82-.569-.615-.51L16.5 2.114 20.159.073l-.003.01zM0 19.089zM5.13 5.073c3.561-3.533 8.157-5.621 9.922-3.84 1.762 1.777-.105 6.105-3.673 9.636-3.563 3.532-8.103 5.734-9.864 3.957-1.766-1.777.045-6.217 3.612-9.75l.003-.003z',\n },\n zig: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'm23.53 1.02-7.686 3.45h-7.06l-2.98 3.452h7.173L.47 22.98l7.681-3.607h7.065v-.002l2.978-3.45-7.148-.001 12.482-14.9zM0 4.47v14.901h1.883l2.98-3.45H3.451v-8h.942l2.824-3.45H0zm22.117 0-2.98 3.608h1.412v7.844h-.942l-2.98 3.45H24V4.47h-1.883z',\n },\n swift: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M7.508 0c-.287 0-.573 0-.86.002-.241.002-.483.003-.724.01-.132.003-.263.009-.395.015A9.154 9.154 0 0 0 4.348.15 5.492 5.492 0 0 0 2.85.645 5.04 5.04 0 0 0 .645 2.848c-.245.48-.4.972-.495 1.5-.093.52-.122 1.05-.136 1.576a35.2 35.2 0 0 0-.012.724C0 6.935 0 7.221 0 7.508v8.984c0 .287 0 .575.002.862.002.24.005.481.012.722.014.526.043 1.057.136 1.576.095.528.25 1.02.495 1.5a5.03 5.03 0 0 0 2.205 2.203c.48.244.97.4 1.498.495.52.093 1.05.124 1.576.138.241.007.483.009.724.01.287.002.573.002.86.002h8.984c.287 0 .573 0 .86-.002.241-.001.483-.003.724-.01a10.523 10.523 0 0 0 1.578-.138 5.322 5.322 0 0 0 1.498-.495 5.035 5.035 0 0 0 2.203-2.203c.245-.48.4-.972.495-1.5.093-.52.124-1.05.138-1.576.007-.241.009-.481.01-.722.002-.287.002-.575.002-.862V7.508c0-.287 0-.573-.002-.86a33.662 33.662 0 0 0-.01-.724 10.5 10.5 0 0 0-.138-1.576 5.328 5.328 0 0 0-.495-1.5A5.039 5.039 0 0 0 21.152.645 5.32 5.32 0 0 0 19.654.15a10.493 10.493 0 0 0-1.578-.138 34.98 34.98 0 0 0-.722-.01C17.067 0 16.779 0 16.492 0H7.508zm6.035 3.41c4.114 2.47 6.545 7.162 5.549 11.131-.024.093-.05.181-.076.272l.002.001c2.062 2.538 1.5 5.258 1.236 4.745-1.072-2.086-3.066-1.568-4.088-1.043a6.803 6.803 0 0 1-.281.158l-.02.012-.002.002c-2.115 1.123-4.957 1.205-7.812-.022a12.568 12.568 0 0 1-5.64-4.838c.649.48 1.35.902 2.097 1.252 3.019 1.414 6.051 1.311 8.197-.002C9.651 12.73 7.101 9.67 5.146 7.191a10.628 10.628 0 0 1-1.005-1.384c2.34 2.142 6.038 4.83 7.365 5.576C8.69 8.408 6.208 4.743 6.324 4.86c4.436 4.47 8.528 6.996 8.528 6.996.154.085.27.154.36.213.085-.215.16-.437.224-.668.708-2.588-.09-5.548-1.893-7.992z',\n },\n prisma: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M21.8068 18.2848L13.5528.7565c-.207-.4382-.639-.7273-1.1286-.7541-.5023-.0293-.9523.213-1.2062.6253L2.266 15.1271c-.2773.4518-.2718 1.0091.0158 1.4555l4.3759 6.7786c.2608.4046.7127.6388 1.1823.6388.1332 0 .267-.0188.3987-.0577l12.7019-3.7568c.3891-.1151.7072-.3904.8737-.7553s.1633-.7828-.0075-1.1454zm-1.8481.7519L9.1814 22.2242c-.3292.0975-.6448-.1873-.5756-.5194l3.8501-18.4386c.072-.3448.5486-.3996.699-.0803l7.1288 15.138c.1344.2856-.019.6224-.325.7128z',\n },\n typescript: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z',\n },\n javascript: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M0 0h24v24H0V0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.404-.601-.586-.78-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65l.046.067zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179l.004-.056z',\n },\n php: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M7.01 10.207h-.944l-.515 2.648h.838c.556 0 .97-.105 1.242-.314.272-.21.455-.559.55-1.049.092-.47.05-.802-.124-.995-.175-.193-.523-.29-1.047-.29zM12 5.688C5.373 5.688 0 8.514 0 12s5.373 6.313 12 6.313S24 15.486 24 12c0-3.486-5.373-6.312-12-6.312zm-3.26 7.451c-.261.25-.575.438-.917.551-.336.108-.765.164-1.285.164H5.357l-.327 1.681H3.652l1.23-6.326h2.65c.797 0 1.378.209 1.744.628.366.418.476 1.002.33 1.752a2.836 2.836 0 0 1-.305.847c-.143.255-.33.49-.561.703zm4.024.715l.543-2.799c.063-.318.039-.536-.068-.651-.107-.116-.336-.174-.687-.174H11.46l-.704 3.625H9.388l1.23-6.327h1.367l-.327 1.682h1.218c.767 0 1.295.134 1.586.401s.378.7.263 1.299l-.572 2.944h-1.389zm7.597-2.265a2.782 2.782 0 0 1-.305.847c-.143.255-.33.49-.561.703a2.44 2.44 0 0 1-.917.551c-.336.108-.765.164-1.286.164h-1.18l-.327 1.682h-1.378l1.23-6.326h2.649c.797 0 1.378.209 1.744.628.366.417.477 1.001.331 1.751zM17.766 10.207h-.943l-.516 2.648h.838c.557 0 .971-.105 1.242-.314.272-.21.455-.559.551-1.049.092-.47.049-.802-.125-.995s-.524-.29-1.047-.29z',\n },\n shellscript: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'm 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z',\n },\n c: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M16.5921 9.1962s-.354-3.298-3.627-3.39c-3.2741-.09-4.9552 2.474-4.9552 6.14 0 3.6651 1.858 6.5972 5.0451 6.5972 3.184 0 3.5381-3.665 3.5381-3.665l6.1041.365s.36 3.31-2.196 5.836c-2.552 2.5241-5.6901 2.9371-7.8762 2.9201-2.19-.017-5.2261.034-8.1602-2.97-2.938-3.0101-3.436-5.9302-3.436-8.8002 0-2.8701.556-6.6702 4.047-9.5502C7.444.72 9.849 0 12.254 0c10.0422 0 10.7172 9.2602 10.7172 9.2602z',\n },\n cpp: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M22.394 6c-.167-.29-.398-.543-.652-.69L12.926.22c-.509-.294-1.34-.294-1.848 0L2.26 5.31c-.508.293-.923 1.013-.923 1.6v10.18c0 .294.104.62.271.91.167.29.398.543.652.69l8.816 5.09c.508.293 1.34.293 1.848 0l8.816-5.09c.254-.147.485-.4.652-.69.167-.29.27-.616.27-.91V6.91c.003-.294-.1-.62-.268-.91zM12 19.11c-3.92 0-7.109-3.19-7.109-7.11 0-3.92 3.19-7.11 7.11-7.11a7.133 7.133 0 016.156 3.553l-3.076 1.78a3.567 3.567 0 00-3.08-1.78A3.56 3.56 0 008.444 12 3.56 3.56 0 0012 15.555a3.57 3.57 0 003.08-1.778l3.078 1.78A7.135 7.135 0 0112 19.11zm7.11-6.715h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79zm2.962 0h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79z',\n },\n go: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z',\n },\n graphql: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M12.002 0a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.54 4.931a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm0 9.862a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm-8.54 4.931a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.276zm-8.542-4.93a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.277zm0-9.863a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.542-3.378L2.953 6.777v10.448l9.049 5.224 9.047-5.224V6.777zm0 1.601 7.66 13.27H4.34zm-1.387.371L3.97 15.037V7.363zm2.774 0 6.646 3.838v7.674zM5.355 17.44h13.293l-6.646 3.836z',\n },\n python: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z',\n },\n md: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M22.27 19.385H1.73A1.73 1.73 0 010 17.655V6.345a1.73 1.73 0 011.73-1.73h20.54A1.73 1.73 0 0124 6.345v11.308a1.73 1.73 0 01-1.73 1.731zM5.769 15.923v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.46v7.847zM21.232 12h-2.309V8.077h-2.307V12h-2.308l3.461 4.039z',\n },\n kotlin: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M24 24H0V0h24L12 12Z',\n },\n rust: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M23.8346 11.7033l-1.0073-.6236a13.7268 13.7268 0 00-.0283-.2936l.8656-.8069a.3483.3483 0 00-.1154-.578l-1.1066-.414a8.4958 8.4958 0 00-.087-.2856l.6904-.9587a.3462.3462 0 00-.2257-.5446l-1.1663-.1894a9.3574 9.3574 0 00-.1407-.2622l.49-1.0761a.3437.3437 0 00-.0274-.3361.3486.3486 0 00-.3006-.154l-1.1845.0416a6.7444 6.7444 0 00-.1873-.2268l.2723-1.153a.3472.3472 0 00-.417-.4172l-1.1532.2724a14.0183 14.0183 0 00-.2278-.1873l.0415-1.1845a.3442.3442 0 00-.49-.328l-1.076.491c-.0872-.0476-.1742-.0952-.2623-.1407l-.1903-1.1673A.3483.3483 0 0016.256.955l-.9597.6905a8.4867 8.4867 0 00-.2855-.086l-.414-1.1066a.3483.3483 0 00-.5781-.1154l-.8069.8666a9.2936 9.2936 0 00-.2936-.0284L12.2946.1683a.3462.3462 0 00-.5892 0l-.6236 1.0073a13.7383 13.7383 0 00-.2936.0284L9.9803.3374a.3462.3462 0 00-.578.1154l-.4141 1.1065c-.0962.0274-.1903.0567-.2855.086L7.744.955a.3483.3483 0 00-.5447.2258L7.009 2.348a9.3574 9.3574 0 00-.2622.1407l-1.0762-.491a.3462.3462 0 00-.49.328l.0416 1.1845a7.9826 7.9826 0 00-.2278.1873L3.8413 3.425a.3472.3472 0 00-.4171.4171l.2713 1.1531c-.0628.075-.1255.1509-.1863.2268l-1.1845-.0415a.3462.3462 0 00-.328.49l.491 1.0761a9.167 9.167 0 00-.1407.2622l-1.1662.1894a.3483.3483 0 00-.2258.5446l.6904.9587a13.303 13.303 0 00-.087.2855l-1.1065.414a.3483.3483 0 00-.1155.5781l.8656.807a9.2936 9.2936 0 00-.0283.2935l-1.0073.6236a.3442.3442 0 000 .5892l1.0073.6236c.008.0982.0182.1964.0283.2936l-.8656.8079a.3462.3462 0 00.1155.578l1.1065.4141c.0273.0962.0567.1914.087.2855l-.6904.9587a.3452.3452 0 00.2268.5447l1.1662.1893c.0456.088.0922.1751.1408.2622l-.491 1.0762a.3462.3462 0 00.328.49l1.1834-.0415c.0618.0769.1235.1528.1873.2277l-.2713 1.1541a.3462.3462 0 00.4171.4161l1.153-.2713c.075.0638.151.1255.2279.1863l-.0415 1.1845a.3442.3442 0 00.49.327l1.0761-.49c.087.0486.1741.0951.2622.1407l.1903 1.1662a.3483.3483 0 00.5447.2268l.9587-.6904a9.299 9.299 0 00.2855.087l.414 1.1066a.3452.3452 0 00.5781.1154l.8079-.8656c.0972.0111.1954.0203.2936.0294l.6236 1.0073a.3472.3472 0 00.5892 0l.6236-1.0073c.0982-.0091.1964-.0183.2936-.0294l.8069.8656a.3483.3483 0 00.578-.1154l.4141-1.1066a8.4626 8.4626 0 00.2855-.087l.9587.6904a.3452.3452 0 00.5447-.2268l.1903-1.1662c.088-.0456.1751-.0931.2622-.1407l1.0762.49a.3472.3472 0 00.49-.327l-.0415-1.1845a6.7267 6.7267 0 00.2267-.1863l1.1531.2713a.3472.3472 0 00.4171-.416l-.2713-1.1542c.0628-.0749.1255-.1508.1863-.2278l1.1845.0415a.3442.3442 0 00.328-.49l-.49-1.076c.0475-.0872.0951-.1742.1407-.2623l1.1662-.1893a.3483.3483 0 00.2258-.5447l-.6904-.9587.087-.2855 1.1066-.414a.3462.3462 0 00.1154-.5781l-.8656-.8079c.0101-.0972.0202-.1954.0283-.2936l1.0073-.6236a.3442.3442 0 000-.5892zm-6.7413 8.3551a.7138.7138 0 01.2986-1.396.714.714 0 11-.2997 1.396zm-.3422-2.3142a.649.649 0 00-.7715.5l-.3573 1.6685c-1.1035.501-2.3285.7795-3.6193.7795a8.7368 8.7368 0 01-3.6951-.814l-.3574-1.6684a.648.648 0 00-.7714-.499l-1.473.3158a8.7216 8.7216 0 01-.7613-.898h7.1676c.081 0 .1356-.0141.1356-.088v-2.536c0-.074-.0536-.0881-.1356-.0881h-2.0966v-1.6077h2.2677c.2065 0 1.1065.0587 1.394 1.2088.0901.3533.2875 1.5044.4232 1.8729.1346.413.6833 1.2381 1.2685 1.2381h3.5716a.7492.7492 0 00.1296-.0131 8.7874 8.7874 0 01-.8119.9526zM6.8369 20.024a.714.714 0 11-.2997-1.396.714.714 0 01.2997 1.396zM4.1177 8.9972a.7137.7137 0 11-1.304.5791.7137.7137 0 011.304-.579zm-.8352 1.9813l1.5347-.6824a.65.65 0 00.33-.8585l-.3158-.7147h1.2432v5.6025H3.5669a8.7753 8.7753 0 01-.2834-3.348zm6.7343-.5437V8.7836h2.9601c.153 0 1.0792.1772 1.0792.8697 0 .575-.7107.7815-1.2948.7815zm10.7574 1.4862c0 .2187-.008.4363-.0243.651h-.9c-.09 0-.1265.0586-.1265.1477v.413c0 .973-.5487 1.1846-1.0296 1.2382-.4576.0517-.9648-.1913-1.0275-.4717-.2704-1.5186-.7198-1.8436-1.4305-2.4034.8817-.5599 1.799-1.386 1.799-2.4915 0-1.1936-.819-1.9458-1.3769-2.3153-.7825-.5163-1.6491-.6195-1.883-.6195H5.4682a8.7651 8.7651 0 014.907-2.7699l1.0974 1.151a.648.648 0 00.9182.0213l1.227-1.1743a8.7753 8.7753 0 016.0044 4.2762l-.8403 1.8982a.652.652 0 00.33.8585l1.6178.7188c.0283.2875.0425.577.0425.8717zm-9.3006-9.5993a.7128.7128 0 11.984 1.0316.7137.7137 0 01-.984-1.0316zm8.3389 6.71a.7107.7107 0 01.9395-.3625.7137.7137 0 11-.9405.3635z',\n },\n csharp: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M1.194 7.543v8.913c0 1.103.588 2.122 1.544 2.674l7.718 4.456a3.086 3.086 0 0 0 3.088 0l7.718-4.456a3.087 3.087 0 0 0 1.544-2.674V7.543a3.084 3.084 0 0 0-1.544-2.673L13.544.414a3.086 3.086 0 0 0-3.088 0L2.738 4.87a3.085 3.085 0 0 0-1.544 2.673Zm5.403 2.914v3.087a.77.77 0 0 0 .772.772.773.773 0 0 0 .772-.772.773.773 0 0 1 1.317-.546.775.775 0 0 1 .226.546 2.314 2.314 0 1 1-4.631 0v-3.087c0-.615.244-1.203.679-1.637a2.312 2.312 0 0 1 3.274 0c.434.434.678 1.023.678 1.637a.769.769 0 0 1-.226.545.767.767 0 0 1-1.091 0 .77.77 0 0 1-.226-.545.77.77 0 0 0-.772-.772.771.771 0 0 0-.772.772Zm12.35 3.087a.77.77 0 0 1-.772.772h-.772v.772a.773.773 0 0 1-1.544 0v-.772h-1.544v.772a.773.773 0 0 1-1.317.546.775.775 0 0 1-.226-.546v-.772H12a.771.771 0 1 1 0-1.544h.772v-1.543H12a.77.77 0 1 1 0-1.544h.772v-.772a.773.773 0 0 1 1.317-.546.775.775 0 0 1 .226.546v.772h1.544v-.772a.773.773 0 0 1 1.544 0v.772h.772a.772.772 0 0 1 0 1.544h-.772v1.543h.772a.776.776 0 0 1 .772.772Zm-3.088-2.315h-1.544v1.543h1.544v-1.543Z',\n },\n default: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z',\n },\n};\n\nexport interface IconOptions {\n shortcuts?: Record<string, string>;\n extend?: Record<string, CodeBlockIcon>;\n}\n\n/**\n * Inject icons to `icon` property (as HTML)\n */\nexport function transformerIcon(options: IconOptions = {}): ShikiTransformer {\n const shortcuts = {\n ...defaultShortcuts,\n ...options.shortcuts,\n };\n const icons = {\n ...defaultIcons,\n ...options.extend,\n };\n\n const defaultIcon = 'default' in icons ? icons.default : undefined;\n return {\n name: 'rehype-code:icon',\n pre(pre) {\n const lang = this.options.lang;\n if (!lang) return;\n\n const iconName = lang in shortcuts ? shortcuts[lang] : lang;\n const icon = iconName in icons ? icons[iconName] : defaultIcon;\n\n if (icon) {\n pre.properties.icon =\n typeof icon === 'string'\n ? icon\n : `<svg viewBox=\"${icon.viewBox}\"><path d=\"${icon.d}\" fill=\"${icon.fill}\" /></svg>`;\n }\n\n return pre;\n },\n };\n}\n","import type { Root } from 'hast';\nimport type { RehypeShikiOptions } from '@shikijs/rehype';\nimport rehypeShikiFromHighlighter from '@shikijs/rehype/core';\nimport {\n transformerNotationDiff,\n transformerNotationFocus,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n} from '@shikijs/transformers';\nimport type { Processor, Transformer } from 'unified';\nimport { type BuiltinTheme, bundledLanguages, type ShikiTransformer } from 'shiki';\nimport type { MdxJsxFlowElement } from 'mdast-util-mdx-jsx';\nimport type { CodeBlockIcon, IconOptions } from './transformer-icon';\nimport { transformerIcon } from './transformer-icon';\nimport { defaultThemes, getHighlighter } from '@/highlight/shiki';\nimport { parseCodeBlockAttributes } from '@/mdx-plugins/codeblock-utils';\n\nexport const rehypeCodeDefaultOptions: RehypeCodeOptions = {\n lazy: true,\n themes: defaultThemes,\n defaultColor: false,\n defaultLanguage: 'plaintext',\n engine: 'js',\n transformers: [\n transformerNotationHighlight({\n matchAlgorithm: 'v3',\n }),\n transformerNotationWordHighlight({\n matchAlgorithm: 'v3',\n }),\n transformerNotationDiff({\n matchAlgorithm: 'v3',\n }),\n transformerNotationFocus({\n matchAlgorithm: 'v3',\n }),\n ],\n parseMetaString(meta) {\n const parsed = parseCodeBlockAttributes(meta, ['title', 'tab']);\n const data: Record<string, unknown> = parsed.attributes;\n parsed.rest = parseLineNumber(parsed.rest, data);\n\n data.__parsed_raw = parsed.rest;\n return data;\n },\n};\n\nfunction parseLineNumber(str: string, data: Record<string, unknown>) {\n return str.replace(/lineNumbers=(\\d+)|lineNumbers/, (_, ...args) => {\n data['data-line-numbers'] = true;\n\n if (args[0] !== undefined) data['data-line-numbers-start'] = Number(args[0]);\n\n return '';\n });\n}\n\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type RehypeCodeOptions = DistributiveOmit<RehypeShikiOptions, 'lazy'> & {\n /**\n * Load languages and themes on-demand.\n * @defaultValue true\n */\n lazy?: boolean;\n\n /**\n * The regex engine to use.\n *\n * @defaultValue 'js'\n */\n engine?: 'js' | 'oniguruma';\n\n /**\n * Filter meta string before processing\n */\n filterMetaString?: (metaString: string) => string;\n\n /**\n * Add icon to code blocks\n */\n icon?: IconOptions | false;\n\n /**\n * Wrap code blocks in `<Tab>` component when \"tab\" meta string presents\n *\n * @defaultValue true\n */\n tab?: boolean;\n};\n\n/**\n * Handle codeblocks\n */\nexport function rehypeCode(\n this: Processor,\n _options: Partial<RehypeCodeOptions> = {},\n): Transformer<Root, Root> {\n const options: RehypeCodeOptions = {\n ...rehypeCodeDefaultOptions,\n ..._options,\n };\n\n const transformers = [...(options.transformers ?? [])];\n transformers.unshift({\n name: 'rehype-code:pre-process',\n preprocess(code, { meta }) {\n if (meta && '__parsed_raw' in meta) {\n meta.__raw = meta.__parsed_raw;\n delete meta.__parsed_raw;\n }\n\n if (meta && options.filterMetaString) {\n meta.__raw = options.filterMetaString(meta.__raw ?? '');\n }\n\n // Remove empty line at end\n return code.replace(/\\n$/, '');\n },\n });\n\n if (options.icon !== false) {\n transformers.push(transformerIcon(options.icon));\n }\n\n if (options.tab !== false) {\n transformers.push(transformerTab());\n }\n\n const highlighter = getHighlighter(options.engine ?? 'js', {\n themes:\n 'themes' in options\n ? (Object.values(options.themes).filter(Boolean) as BuiltinTheme[])\n : [options.theme],\n langs: options.langs ?? (options.lazy ? ['ts', 'tsx'] : Object.keys(bundledLanguages)),\n langAlias: options.langAlias,\n });\n\n const transformer = highlighter.then((loaded) =>\n rehypeShikiFromHighlighter(loaded, {\n ...options,\n transformers,\n }),\n );\n\n return async (tree, file) => {\n await (\n await transformer\n )(tree, file, () => {\n // nothing\n });\n };\n}\n\nfunction transformerTab(): ShikiTransformer {\n return {\n name: 'rehype-code:tab',\n // @ts-expect-error -- types not compatible with MDX\n root(root) {\n const value = this.options.meta?.tab;\n if (typeof value !== 'string') return root;\n console.warn(\n '[Fumadocs] For `tab=\"value\" in codeblocks, please use `remarkCodeTab` plugin instead.',\n );\n\n return {\n type: 'root',\n children: [\n {\n type: 'mdxJsxFlowElement',\n name: 'Tab',\n data: {\n _codeblock: true,\n },\n attributes: [{ type: 'mdxJsxAttribute', name: 'value', value }],\n children: root.children,\n } as MdxJsxFlowElement,\n ],\n };\n },\n };\n}\n\nexport { type CodeBlockIcon, transformerIcon, transformerTab };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rehype-code-CdiZ1Y6P.js","names":["defaultShortcuts: Record<string, string>","defaultIcons: Record<string, CodeBlockIcon>","rehypeCodeDefaultOptions: RehypeCodeOptions","data: Record<string, unknown>","options: RehypeCodeOptions"],"sources":["../src/mdx-plugins/transformer-icon.ts","../src/mdx-plugins/rehype-code.ts"],"sourcesContent":["import { type ShikiTransformer } from 'shiki';\n\nexport type CodeBlockIcon =\n | {\n viewBox: string;\n fill: string;\n d: string;\n }\n | string;\n\nconst defaultShortcuts: Record<string, string> = {\n js: 'javascript',\n jsx: 'react',\n ts: 'typescript',\n tsx: 'react',\n 'c#': 'csharp',\n cs: 'csharp',\n gql: 'graphql',\n py: 'python',\n bash: 'shellscript',\n sh: 'shellscript',\n shell: 'shellscript',\n zsh: 'shellscript',\n 'c++': 'cpp',\n};\n\n// From https://simpleicons.org\n// Java - Not supported, https://github.com/simple-icons/simple-icons/issues/7374\nconst defaultIcons: Record<string, CodeBlockIcon> = {\n react: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z',\n },\n vue: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z',\n },\n ruby: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M20.156.083c3.033.525 3.893 2.598 3.829 4.77L24 4.822 22.635 22.71 4.89 23.926h.016C3.433 23.864.15 23.729 0 19.139l1.645-3 2.819 6.586.503 1.172 2.805-9.144-.03.007.016-.03 9.255 2.956-1.396-5.431-.99-3.9 8.82-.569-.615-.51L16.5 2.114 20.159.073l-.003.01zM0 19.089zM5.13 5.073c3.561-3.533 8.157-5.621 9.922-3.84 1.762 1.777-.105 6.105-3.673 9.636-3.563 3.532-8.103 5.734-9.864 3.957-1.766-1.777.045-6.217 3.612-9.75l.003-.003z',\n },\n zig: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'm23.53 1.02-7.686 3.45h-7.06l-2.98 3.452h7.173L.47 22.98l7.681-3.607h7.065v-.002l2.978-3.45-7.148-.001 12.482-14.9zM0 4.47v14.901h1.883l2.98-3.45H3.451v-8h.942l2.824-3.45H0zm22.117 0-2.98 3.608h1.412v7.844h-.942l-2.98 3.45H24V4.47h-1.883z',\n },\n swift: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M7.508 0c-.287 0-.573 0-.86.002-.241.002-.483.003-.724.01-.132.003-.263.009-.395.015A9.154 9.154 0 0 0 4.348.15 5.492 5.492 0 0 0 2.85.645 5.04 5.04 0 0 0 .645 2.848c-.245.48-.4.972-.495 1.5-.093.52-.122 1.05-.136 1.576a35.2 35.2 0 0 0-.012.724C0 6.935 0 7.221 0 7.508v8.984c0 .287 0 .575.002.862.002.24.005.481.012.722.014.526.043 1.057.136 1.576.095.528.25 1.02.495 1.5a5.03 5.03 0 0 0 2.205 2.203c.48.244.97.4 1.498.495.52.093 1.05.124 1.576.138.241.007.483.009.724.01.287.002.573.002.86.002h8.984c.287 0 .573 0 .86-.002.241-.001.483-.003.724-.01a10.523 10.523 0 0 0 1.578-.138 5.322 5.322 0 0 0 1.498-.495 5.035 5.035 0 0 0 2.203-2.203c.245-.48.4-.972.495-1.5.093-.52.124-1.05.138-1.576.007-.241.009-.481.01-.722.002-.287.002-.575.002-.862V7.508c0-.287 0-.573-.002-.86a33.662 33.662 0 0 0-.01-.724 10.5 10.5 0 0 0-.138-1.576 5.328 5.328 0 0 0-.495-1.5A5.039 5.039 0 0 0 21.152.645 5.32 5.32 0 0 0 19.654.15a10.493 10.493 0 0 0-1.578-.138 34.98 34.98 0 0 0-.722-.01C17.067 0 16.779 0 16.492 0H7.508zm6.035 3.41c4.114 2.47 6.545 7.162 5.549 11.131-.024.093-.05.181-.076.272l.002.001c2.062 2.538 1.5 5.258 1.236 4.745-1.072-2.086-3.066-1.568-4.088-1.043a6.803 6.803 0 0 1-.281.158l-.02.012-.002.002c-2.115 1.123-4.957 1.205-7.812-.022a12.568 12.568 0 0 1-5.64-4.838c.649.48 1.35.902 2.097 1.252 3.019 1.414 6.051 1.311 8.197-.002C9.651 12.73 7.101 9.67 5.146 7.191a10.628 10.628 0 0 1-1.005-1.384c2.34 2.142 6.038 4.83 7.365 5.576C8.69 8.408 6.208 4.743 6.324 4.86c4.436 4.47 8.528 6.996 8.528 6.996.154.085.27.154.36.213.085-.215.16-.437.224-.668.708-2.588-.09-5.548-1.893-7.992z',\n },\n prisma: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M21.8068 18.2848L13.5528.7565c-.207-.4382-.639-.7273-1.1286-.7541-.5023-.0293-.9523.213-1.2062.6253L2.266 15.1271c-.2773.4518-.2718 1.0091.0158 1.4555l4.3759 6.7786c.2608.4046.7127.6388 1.1823.6388.1332 0 .267-.0188.3987-.0577l12.7019-3.7568c.3891-.1151.7072-.3904.8737-.7553s.1633-.7828-.0075-1.1454zm-1.8481.7519L9.1814 22.2242c-.3292.0975-.6448-.1873-.5756-.5194l3.8501-18.4386c.072-.3448.5486-.3996.699-.0803l7.1288 15.138c.1344.2856-.019.6224-.325.7128z',\n },\n typescript: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z',\n },\n javascript: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M0 0h24v24H0V0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.404-.601-.586-.78-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65l.046.067zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179l.004-.056z',\n },\n php: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M7.01 10.207h-.944l-.515 2.648h.838c.556 0 .97-.105 1.242-.314.272-.21.455-.559.55-1.049.092-.47.05-.802-.124-.995-.175-.193-.523-.29-1.047-.29zM12 5.688C5.373 5.688 0 8.514 0 12s5.373 6.313 12 6.313S24 15.486 24 12c0-3.486-5.373-6.312-12-6.312zm-3.26 7.451c-.261.25-.575.438-.917.551-.336.108-.765.164-1.285.164H5.357l-.327 1.681H3.652l1.23-6.326h2.65c.797 0 1.378.209 1.744.628.366.418.476 1.002.33 1.752a2.836 2.836 0 0 1-.305.847c-.143.255-.33.49-.561.703zm4.024.715l.543-2.799c.063-.318.039-.536-.068-.651-.107-.116-.336-.174-.687-.174H11.46l-.704 3.625H9.388l1.23-6.327h1.367l-.327 1.682h1.218c.767 0 1.295.134 1.586.401s.378.7.263 1.299l-.572 2.944h-1.389zm7.597-2.265a2.782 2.782 0 0 1-.305.847c-.143.255-.33.49-.561.703a2.44 2.44 0 0 1-.917.551c-.336.108-.765.164-1.286.164h-1.18l-.327 1.682h-1.378l1.23-6.326h2.649c.797 0 1.378.209 1.744.628.366.417.477 1.001.331 1.751zM17.766 10.207h-.943l-.516 2.648h.838c.557 0 .971-.105 1.242-.314.272-.21.455-.559.551-1.049.092-.47.049-.802-.125-.995s-.524-.29-1.047-.29z',\n },\n shellscript: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'm 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z',\n },\n c: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M16.5921 9.1962s-.354-3.298-3.627-3.39c-3.2741-.09-4.9552 2.474-4.9552 6.14 0 3.6651 1.858 6.5972 5.0451 6.5972 3.184 0 3.5381-3.665 3.5381-3.665l6.1041.365s.36 3.31-2.196 5.836c-2.552 2.5241-5.6901 2.9371-7.8762 2.9201-2.19-.017-5.2261.034-8.1602-2.97-2.938-3.0101-3.436-5.9302-3.436-8.8002 0-2.8701.556-6.6702 4.047-9.5502C7.444.72 9.849 0 12.254 0c10.0422 0 10.7172 9.2602 10.7172 9.2602z',\n },\n cpp: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M22.394 6c-.167-.29-.398-.543-.652-.69L12.926.22c-.509-.294-1.34-.294-1.848 0L2.26 5.31c-.508.293-.923 1.013-.923 1.6v10.18c0 .294.104.62.271.91.167.29.398.543.652.69l8.816 5.09c.508.293 1.34.293 1.848 0l8.816-5.09c.254-.147.485-.4.652-.69.167-.29.27-.616.27-.91V6.91c.003-.294-.1-.62-.268-.91zM12 19.11c-3.92 0-7.109-3.19-7.109-7.11 0-3.92 3.19-7.11 7.11-7.11a7.133 7.133 0 016.156 3.553l-3.076 1.78a3.567 3.567 0 00-3.08-1.78A3.56 3.56 0 008.444 12 3.56 3.56 0 0012 15.555a3.57 3.57 0 003.08-1.778l3.078 1.78A7.135 7.135 0 0112 19.11zm7.11-6.715h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79zm2.962 0h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79z',\n },\n go: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z',\n },\n graphql: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M12.002 0a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.54 4.931a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm0 9.862a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm-8.54 4.931a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.276zm-8.542-4.93a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.277zm0-9.863a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.542-3.378L2.953 6.777v10.448l9.049 5.224 9.047-5.224V6.777zm0 1.601 7.66 13.27H4.34zm-1.387.371L3.97 15.037V7.363zm2.774 0 6.646 3.838v7.674zM5.355 17.44h13.293l-6.646 3.836z',\n },\n python: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z',\n },\n md: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M22.27 19.385H1.73A1.73 1.73 0 010 17.655V6.345a1.73 1.73 0 011.73-1.73h20.54A1.73 1.73 0 0124 6.345v11.308a1.73 1.73 0 01-1.73 1.731zM5.769 15.923v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.46v7.847zM21.232 12h-2.309V8.077h-2.307V12h-2.308l3.461 4.039z',\n },\n kotlin: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M24 24H0V0h24L12 12Z',\n },\n rust: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M23.8346 11.7033l-1.0073-.6236a13.7268 13.7268 0 00-.0283-.2936l.8656-.8069a.3483.3483 0 00-.1154-.578l-1.1066-.414a8.4958 8.4958 0 00-.087-.2856l.6904-.9587a.3462.3462 0 00-.2257-.5446l-1.1663-.1894a9.3574 9.3574 0 00-.1407-.2622l.49-1.0761a.3437.3437 0 00-.0274-.3361.3486.3486 0 00-.3006-.154l-1.1845.0416a6.7444 6.7444 0 00-.1873-.2268l.2723-1.153a.3472.3472 0 00-.417-.4172l-1.1532.2724a14.0183 14.0183 0 00-.2278-.1873l.0415-1.1845a.3442.3442 0 00-.49-.328l-1.076.491c-.0872-.0476-.1742-.0952-.2623-.1407l-.1903-1.1673A.3483.3483 0 0016.256.955l-.9597.6905a8.4867 8.4867 0 00-.2855-.086l-.414-1.1066a.3483.3483 0 00-.5781-.1154l-.8069.8666a9.2936 9.2936 0 00-.2936-.0284L12.2946.1683a.3462.3462 0 00-.5892 0l-.6236 1.0073a13.7383 13.7383 0 00-.2936.0284L9.9803.3374a.3462.3462 0 00-.578.1154l-.4141 1.1065c-.0962.0274-.1903.0567-.2855.086L7.744.955a.3483.3483 0 00-.5447.2258L7.009 2.348a9.3574 9.3574 0 00-.2622.1407l-1.0762-.491a.3462.3462 0 00-.49.328l.0416 1.1845a7.9826 7.9826 0 00-.2278.1873L3.8413 3.425a.3472.3472 0 00-.4171.4171l.2713 1.1531c-.0628.075-.1255.1509-.1863.2268l-1.1845-.0415a.3462.3462 0 00-.328.49l.491 1.0761a9.167 9.167 0 00-.1407.2622l-1.1662.1894a.3483.3483 0 00-.2258.5446l.6904.9587a13.303 13.303 0 00-.087.2855l-1.1065.414a.3483.3483 0 00-.1155.5781l.8656.807a9.2936 9.2936 0 00-.0283.2935l-1.0073.6236a.3442.3442 0 000 .5892l1.0073.6236c.008.0982.0182.1964.0283.2936l-.8656.8079a.3462.3462 0 00.1155.578l1.1065.4141c.0273.0962.0567.1914.087.2855l-.6904.9587a.3452.3452 0 00.2268.5447l1.1662.1893c.0456.088.0922.1751.1408.2622l-.491 1.0762a.3462.3462 0 00.328.49l1.1834-.0415c.0618.0769.1235.1528.1873.2277l-.2713 1.1541a.3462.3462 0 00.4171.4161l1.153-.2713c.075.0638.151.1255.2279.1863l-.0415 1.1845a.3442.3442 0 00.49.327l1.0761-.49c.087.0486.1741.0951.2622.1407l.1903 1.1662a.3483.3483 0 00.5447.2268l.9587-.6904a9.299 9.299 0 00.2855.087l.414 1.1066a.3452.3452 0 00.5781.1154l.8079-.8656c.0972.0111.1954.0203.2936.0294l.6236 1.0073a.3472.3472 0 00.5892 0l.6236-1.0073c.0982-.0091.1964-.0183.2936-.0294l.8069.8656a.3483.3483 0 00.578-.1154l.4141-1.1066a8.4626 8.4626 0 00.2855-.087l.9587.6904a.3452.3452 0 00.5447-.2268l.1903-1.1662c.088-.0456.1751-.0931.2622-.1407l1.0762.49a.3472.3472 0 00.49-.327l-.0415-1.1845a6.7267 6.7267 0 00.2267-.1863l1.1531.2713a.3472.3472 0 00.4171-.416l-.2713-1.1542c.0628-.0749.1255-.1508.1863-.2278l1.1845.0415a.3442.3442 0 00.328-.49l-.49-1.076c.0475-.0872.0951-.1742.1407-.2623l1.1662-.1893a.3483.3483 0 00.2258-.5447l-.6904-.9587.087-.2855 1.1066-.414a.3462.3462 0 00.1154-.5781l-.8656-.8079c.0101-.0972.0202-.1954.0283-.2936l1.0073-.6236a.3442.3442 0 000-.5892zm-6.7413 8.3551a.7138.7138 0 01.2986-1.396.714.714 0 11-.2997 1.396zm-.3422-2.3142a.649.649 0 00-.7715.5l-.3573 1.6685c-1.1035.501-2.3285.7795-3.6193.7795a8.7368 8.7368 0 01-3.6951-.814l-.3574-1.6684a.648.648 0 00-.7714-.499l-1.473.3158a8.7216 8.7216 0 01-.7613-.898h7.1676c.081 0 .1356-.0141.1356-.088v-2.536c0-.074-.0536-.0881-.1356-.0881h-2.0966v-1.6077h2.2677c.2065 0 1.1065.0587 1.394 1.2088.0901.3533.2875 1.5044.4232 1.8729.1346.413.6833 1.2381 1.2685 1.2381h3.5716a.7492.7492 0 00.1296-.0131 8.7874 8.7874 0 01-.8119.9526zM6.8369 20.024a.714.714 0 11-.2997-1.396.714.714 0 01.2997 1.396zM4.1177 8.9972a.7137.7137 0 11-1.304.5791.7137.7137 0 011.304-.579zm-.8352 1.9813l1.5347-.6824a.65.65 0 00.33-.8585l-.3158-.7147h1.2432v5.6025H3.5669a8.7753 8.7753 0 01-.2834-3.348zm6.7343-.5437V8.7836h2.9601c.153 0 1.0792.1772 1.0792.8697 0 .575-.7107.7815-1.2948.7815zm10.7574 1.4862c0 .2187-.008.4363-.0243.651h-.9c-.09 0-.1265.0586-.1265.1477v.413c0 .973-.5487 1.1846-1.0296 1.2382-.4576.0517-.9648-.1913-1.0275-.4717-.2704-1.5186-.7198-1.8436-1.4305-2.4034.8817-.5599 1.799-1.386 1.799-2.4915 0-1.1936-.819-1.9458-1.3769-2.3153-.7825-.5163-1.6491-.6195-1.883-.6195H5.4682a8.7651 8.7651 0 014.907-2.7699l1.0974 1.151a.648.648 0 00.9182.0213l1.227-1.1743a8.7753 8.7753 0 016.0044 4.2762l-.8403 1.8982a.652.652 0 00.33.8585l1.6178.7188c.0283.2875.0425.577.0425.8717zm-9.3006-9.5993a.7128.7128 0 11.984 1.0316.7137.7137 0 01-.984-1.0316zm8.3389 6.71a.7107.7107 0 01.9395-.3625.7137.7137 0 11-.9405.3635z',\n },\n csharp: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M1.194 7.543v8.913c0 1.103.588 2.122 1.544 2.674l7.718 4.456a3.086 3.086 0 0 0 3.088 0l7.718-4.456a3.087 3.087 0 0 0 1.544-2.674V7.543a3.084 3.084 0 0 0-1.544-2.673L13.544.414a3.086 3.086 0 0 0-3.088 0L2.738 4.87a3.085 3.085 0 0 0-1.544 2.673Zm5.403 2.914v3.087a.77.77 0 0 0 .772.772.773.773 0 0 0 .772-.772.773.773 0 0 1 1.317-.546.775.775 0 0 1 .226.546 2.314 2.314 0 1 1-4.631 0v-3.087c0-.615.244-1.203.679-1.637a2.312 2.312 0 0 1 3.274 0c.434.434.678 1.023.678 1.637a.769.769 0 0 1-.226.545.767.767 0 0 1-1.091 0 .77.77 0 0 1-.226-.545.77.77 0 0 0-.772-.772.771.771 0 0 0-.772.772Zm12.35 3.087a.77.77 0 0 1-.772.772h-.772v.772a.773.773 0 0 1-1.544 0v-.772h-1.544v.772a.773.773 0 0 1-1.317.546.775.775 0 0 1-.226-.546v-.772H12a.771.771 0 1 1 0-1.544h.772v-1.543H12a.77.77 0 1 1 0-1.544h.772v-.772a.773.773 0 0 1 1.317-.546.775.775 0 0 1 .226.546v.772h1.544v-.772a.773.773 0 0 1 1.544 0v.772h.772a.772.772 0 0 1 0 1.544h-.772v1.543h.772a.776.776 0 0 1 .772.772Zm-3.088-2.315h-1.544v1.543h1.544v-1.543Z',\n },\n default: {\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n d: 'M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z',\n },\n};\n\nexport interface IconOptions {\n shortcuts?: Record<string, string>;\n extend?: Record<string, CodeBlockIcon>;\n}\n\n/**\n * Inject icons to `icon` property (as HTML)\n */\nexport function transformerIcon(options: IconOptions = {}): ShikiTransformer {\n const shortcuts = {\n ...defaultShortcuts,\n ...options.shortcuts,\n };\n const icons = {\n ...defaultIcons,\n ...options.extend,\n };\n\n const defaultIcon = 'default' in icons ? icons.default : undefined;\n return {\n name: 'rehype-code:icon',\n pre(pre) {\n const lang = this.options.lang;\n if (!lang) return;\n\n const iconName = lang in shortcuts ? shortcuts[lang] : lang;\n const icon = iconName in icons ? icons[iconName] : defaultIcon;\n\n if (icon) {\n pre.properties.icon =\n typeof icon === 'string'\n ? icon\n : `<svg viewBox=\"${icon.viewBox}\"><path d=\"${icon.d}\" fill=\"${icon.fill}\" /></svg>`;\n }\n\n return pre;\n },\n };\n}\n","import type { Root } from 'hast';\nimport type { RehypeShikiOptions } from '@shikijs/rehype';\nimport rehypeShikiFromHighlighter from '@shikijs/rehype/core';\nimport {\n transformerNotationDiff,\n transformerNotationFocus,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n} from '@shikijs/transformers';\nimport type { Processor, Transformer } from 'unified';\nimport { type BuiltinTheme, bundledLanguages, type ShikiTransformer } from 'shiki';\nimport type { MdxJsxFlowElement } from 'mdast-util-mdx-jsx';\nimport type { CodeBlockIcon, IconOptions } from './transformer-icon';\nimport { transformerIcon } from './transformer-icon';\nimport { defaultThemes, getHighlighter } from '@/highlight/shiki';\nimport { parseCodeBlockAttributes } from '@/mdx-plugins/codeblock-utils';\n\nexport const rehypeCodeDefaultOptions: RehypeCodeOptions = {\n lazy: true,\n themes: defaultThemes,\n defaultColor: false,\n defaultLanguage: 'plaintext',\n engine: 'js',\n transformers: [\n transformerNotationHighlight({\n matchAlgorithm: 'v3',\n }),\n transformerNotationWordHighlight({\n matchAlgorithm: 'v3',\n }),\n transformerNotationDiff({\n matchAlgorithm: 'v3',\n }),\n transformerNotationFocus({\n matchAlgorithm: 'v3',\n }),\n ],\n parseMetaString(meta) {\n const parsed = parseCodeBlockAttributes(meta, ['title', 'tab']);\n const data: Record<string, unknown> = parsed.attributes;\n parsed.rest = parseLineNumber(parsed.rest, data);\n\n data.__parsed_raw = parsed.rest;\n return data;\n },\n};\n\nfunction parseLineNumber(str: string, data: Record<string, unknown>) {\n return str.replace(/lineNumbers=(\\d+)|lineNumbers/, (_, ...args) => {\n data['data-line-numbers'] = true;\n\n if (args[0] !== undefined) data['data-line-numbers-start'] = Number(args[0]);\n\n return '';\n });\n}\n\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type RehypeCodeOptions = DistributiveOmit<RehypeShikiOptions, 'lazy'> & {\n /**\n * Load languages and themes on-demand.\n * @defaultValue true\n */\n lazy?: boolean;\n\n /**\n * The regex engine to use.\n *\n * @defaultValue 'js'\n */\n engine?: 'js' | 'oniguruma';\n\n /**\n * Filter meta string before processing\n */\n filterMetaString?: (metaString: string) => string;\n\n /**\n * Add icon to code blocks\n */\n icon?: IconOptions | false;\n\n /**\n * Wrap code blocks in `<Tab>` component when \"tab\" meta string presents\n *\n * @defaultValue true\n */\n tab?: boolean;\n};\n\n/**\n * Handle codeblocks\n */\nexport function rehypeCode(\n this: Processor,\n _options: Partial<RehypeCodeOptions> = {},\n): Transformer<Root, Root> {\n const options: RehypeCodeOptions = {\n ...rehypeCodeDefaultOptions,\n ..._options,\n };\n\n const transformers = [...(options.transformers ?? [])];\n transformers.unshift({\n name: 'rehype-code:pre-process',\n preprocess(code, { meta }) {\n if (meta && '__parsed_raw' in meta) {\n meta.__raw = meta.__parsed_raw;\n delete meta.__parsed_raw;\n }\n\n if (meta && options.filterMetaString) {\n meta.__raw = options.filterMetaString(meta.__raw ?? '');\n }\n\n // Remove empty line at end\n return code.replace(/\\n$/, '');\n },\n });\n\n if (options.icon !== false) {\n transformers.push(transformerIcon(options.icon));\n }\n\n if (options.tab !== false) {\n transformers.push(transformerTab());\n }\n\n const highlighter = getHighlighter(options.engine ?? 'js', {\n themes:\n 'themes' in options\n ? (Object.values(options.themes).filter(Boolean) as BuiltinTheme[])\n : [options.theme],\n langs: options.langs ?? (options.lazy ? ['ts', 'tsx'] : Object.keys(bundledLanguages)),\n langAlias: options.langAlias,\n });\n\n const transformer = highlighter.then((loaded) =>\n rehypeShikiFromHighlighter(loaded, {\n ...options,\n transformers,\n }),\n );\n\n return async (tree, file) => {\n await (\n await transformer\n )(tree, file, () => {\n // nothing\n });\n };\n}\n\nfunction transformerTab(): ShikiTransformer {\n return {\n name: 'rehype-code:tab',\n // @ts-expect-error -- types not compatible with MDX\n root(root) {\n const value = this.options.meta?.tab;\n if (typeof value !== 'string') return root;\n console.warn(\n '[Fumadocs] For `tab=\"value\" in codeblocks, please use `remarkCodeTab` plugin instead.',\n );\n\n return {\n type: 'root',\n children: [\n {\n type: 'mdxJsxFlowElement',\n name: 'Tab',\n data: {\n _codeblock: true,\n },\n attributes: [{ type: 'mdxJsxAttribute', name: 'value', value }],\n children: root.children,\n } as MdxJsxFlowElement,\n ],\n };\n },\n };\n}\n\nexport { type CodeBlockIcon, transformerIcon, transformerTab };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehype-toc-
|
|
1
|
+
{"version":3,"file":"rehype-toc-DVwJcwvA.js","names":["output: {\n title: JSXElement;\n url: string;\n depth: number;\n }[]","declaration: Declaration"],"sources":["../src/mdx-plugins/hast-utils.ts","../src/mdx-plugins/rehype-toc.ts"],"sourcesContent":["import type { Element, Root, RootContent } from 'hast';\n\n/**\n * Visit a node with filtered tag names\n */\nexport function visit(\n node: RootContent | Root,\n tagNames: string[],\n handler: (node: Element) => 'skip' | undefined,\n): void {\n if (node.type === 'element' && tagNames.includes(node.tagName)) {\n const result = handler(node);\n if (result === 'skip') return;\n }\n\n if ('children' in node)\n node.children.forEach((n) => {\n visit(n, tagNames, handler);\n });\n}\n","import type { Processor, Transformer } from 'unified';\nimport type { Root, RootContent } from 'hast';\nimport { toEstree } from 'hast-util-to-estree';\nimport type { Declaration, JSXElement } from 'estree-jsx';\nimport { visit } from '@/mdx-plugins/hast-utils';\n\nexport interface RehypeTocOptions {\n /**\n * Export generated toc as a variable\n *\n * @defaultValue true\n */\n exportToc?: boolean;\n}\n\nconst TocOnlyTag = '[toc]';\nconst NoTocTag = '[!toc]';\n\nexport function rehypeToc(\n this: Processor,\n { exportToc = true }: RehypeTocOptions = {},\n): Transformer<Root, Root> {\n return (tree) => {\n const output: {\n title: JSXElement;\n url: string;\n depth: number;\n }[] = [];\n\n visit(tree, ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'], (element) => {\n const id = element.properties.id;\n if (typeof id !== 'string') return 'skip';\n let isTocOnly = false;\n\n const last = element.children.at(-1);\n if (last?.type === 'text' && last.value.endsWith(TocOnlyTag)) {\n isTocOnly = true;\n last.value = last.value.substring(0, last.value.length - TocOnlyTag.length).trimEnd();\n } else if (last?.type === 'text' && last.value.endsWith(NoTocTag)) {\n last.value = last.value.substring(0, last.value.length - NoTocTag.length).trimEnd();\n return 'skip';\n }\n\n const estree = toEstree(element, {\n elementAttributeNameCase: 'react',\n stylePropertyNameCase: 'dom',\n });\n\n if (estree.body[0].type === 'ExpressionStatement')\n output.push({\n title: estree.body[0].expression as unknown as JSXElement,\n depth: Number(element.tagName.slice(1)),\n url: `#${id}`,\n });\n\n if (isTocOnly) {\n Object.assign(element, {\n type: 'comment',\n value: '',\n } satisfies RootContent);\n }\n\n return 'skip';\n });\n\n const declaration: Declaration = {\n type: 'VariableDeclaration',\n kind: 'const',\n declarations: [\n {\n type: 'VariableDeclarator',\n id: {\n type: 'Identifier',\n name: 'toc',\n },\n init: {\n type: 'ArrayExpression',\n elements: output.map((item) => ({\n type: 'ObjectExpression',\n properties: [\n {\n type: 'Property',\n method: false,\n shorthand: false,\n computed: false,\n key: {\n type: 'Identifier',\n name: 'depth',\n },\n value: {\n type: 'Literal',\n value: item.depth,\n },\n kind: 'init',\n },\n {\n type: 'Property',\n method: false,\n shorthand: false,\n computed: false,\n key: {\n type: 'Identifier',\n name: 'url',\n },\n value: {\n type: 'Literal',\n value: item.url,\n },\n kind: 'init',\n },\n {\n type: 'Property',\n method: false,\n shorthand: false,\n computed: false,\n key: {\n type: 'Identifier',\n name: 'title',\n },\n value: {\n type: 'JSXFragment',\n openingFragment: { type: 'JSXOpeningFragment' },\n closingFragment: { type: 'JSXClosingFragment' },\n children: item.title.children,\n },\n kind: 'init',\n },\n ],\n })),\n },\n },\n ],\n };\n\n tree.children.push({\n type: 'mdxjsEsm',\n value: '',\n data: {\n estree: {\n type: 'Program',\n body: [\n exportToc\n ? {\n type: 'ExportNamedDeclaration',\n declaration,\n attributes: [],\n specifiers: [],\n }\n : declaration,\n ],\n sourceType: 'module',\n comments: [],\n },\n },\n } satisfies RootContent);\n };\n}\n"],"mappings":";;;;;;AAKA,SAAgB,MACd,MACA,UACA,SACM;AACN,KAAI,KAAK,SAAS,aAAa,SAAS,SAAS,KAAK,QAAQ,EAE5D;MADe,QAAQ,KAAK,KACb,OAAQ;;AAGzB,KAAI,cAAc,KAChB,MAAK,SAAS,SAAS,MAAM;AAC3B,QAAM,GAAG,UAAU,QAAQ;GAC3B;;;;;ACHN,MAAM,aAAa;AACnB,MAAM,WAAW;AAEjB,SAAgB,UAEd,EAAE,YAAY,SAA2B,EAAE,EAClB;AACzB,SAAQ,SAAS;EACf,MAAMA,SAIA,EAAE;AAER,QAAM,MAAM;GAAC;GAAM;GAAM;GAAM;GAAM;GAAM;GAAK,GAAG,YAAY;GAC7D,MAAM,KAAK,QAAQ,WAAW;AAC9B,OAAI,OAAO,OAAO,SAAU,QAAO;GACnC,IAAI,YAAY;GAEhB,MAAM,OAAO,QAAQ,SAAS,GAAG,GAAG;AACpC,OAAI,MAAM,SAAS,UAAU,KAAK,MAAM,SAAS,WAAW,EAAE;AAC5D,gBAAY;AACZ,SAAK,QAAQ,KAAK,MAAM,UAAU,GAAG,KAAK,MAAM,SAAS,EAAkB,CAAC,SAAS;cAC5E,MAAM,SAAS,UAAU,KAAK,MAAM,SAAS,SAAS,EAAE;AACjE,SAAK,QAAQ,KAAK,MAAM,UAAU,GAAG,KAAK,MAAM,SAAS,EAAgB,CAAC,SAAS;AACnF,WAAO;;GAGT,MAAM,SAAS,SAAS,SAAS;IAC/B,0BAA0B;IAC1B,uBAAuB;IACxB,CAAC;AAEF,OAAI,OAAO,KAAK,GAAG,SAAS,sBAC1B,QAAO,KAAK;IACV,OAAO,OAAO,KAAK,GAAG;IACtB,OAAO,OAAO,QAAQ,QAAQ,MAAM,EAAE,CAAC;IACvC,KAAK,IAAI;IACV,CAAC;AAEJ,OAAI,UACF,QAAO,OAAO,SAAS;IACrB,MAAM;IACN,OAAO;IACR,CAAuB;AAG1B,UAAO;IACP;EAEF,MAAMC,cAA2B;GAC/B,MAAM;GACN,MAAM;GACN,cAAc,CACZ;IACE,MAAM;IACN,IAAI;KACF,MAAM;KACN,MAAM;KACP;IACD,MAAM;KACJ,MAAM;KACN,UAAU,OAAO,KAAK,UAAU;MAC9B,MAAM;MACN,YAAY;OACV;QACE,MAAM;QACN,QAAQ;QACR,WAAW;QACX,UAAU;QACV,KAAK;SACH,MAAM;SACN,MAAM;SACP;QACD,OAAO;SACL,MAAM;SACN,OAAO,KAAK;SACb;QACD,MAAM;QACP;OACD;QACE,MAAM;QACN,QAAQ;QACR,WAAW;QACX,UAAU;QACV,KAAK;SACH,MAAM;SACN,MAAM;SACP;QACD,OAAO;SACL,MAAM;SACN,OAAO,KAAK;SACb;QACD,MAAM;QACP;OACD;QACE,MAAM;QACN,QAAQ;QACR,WAAW;QACX,UAAU;QACV,KAAK;SACH,MAAM;SACN,MAAM;SACP;QACD,OAAO;SACL,MAAM;SACN,iBAAiB,EAAE,MAAM,sBAAsB;SAC/C,iBAAiB,EAAE,MAAM,sBAAsB;SAC/C,UAAU,KAAK,MAAM;SACtB;QACD,MAAM;QACP;OACF;MACF,EAAE;KACJ;IACF,CACF;GACF;AAED,OAAK,SAAS,KAAK;GACjB,MAAM;GACN,OAAO;GACP,MAAM,EACJ,QAAQ;IACN,MAAM;IACN,MAAM,CACJ,YACI;KACE,MAAM;KACN;KACA,YAAY,EAAE;KACd,YAAY,EAAE;KACf,GACD,YACL;IACD,YAAY;IACZ,UAAU,EAAE;IACb,EACF;GACF,CAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-undefined-
|
|
1
|
+
{"version":3,"file":"remove-undefined-Cfs4o_mM.js","names":[],"sources":["../src/utils/remove-undefined.ts"],"sourcesContent":["export function removeUndefined<T extends object>(value: T, deep = false): T {\n const obj = value as Record<string, unknown>;\n\n for (const key in obj) {\n if (obj[key] === undefined) delete obj[key];\n if (!deep) continue;\n\n const entry = obj[key];\n\n if (typeof entry === 'object' && entry !== null) {\n removeUndefined(entry, deep);\n continue;\n }\n\n if (Array.isArray(entry)) {\n for (const item of entry) removeUndefined(item, deep);\n }\n }\n\n return value;\n}\n"],"mappings":";AAAA,SAAgB,gBAAkC,OAAU,OAAO,OAAU;CAC3E,MAAM,MAAM;AAEZ,MAAK,MAAM,OAAO,KAAK;AACrB,MAAI,IAAI,SAAS,OAAW,QAAO,IAAI;AACvC,MAAI,CAAC,KAAM;EAEX,MAAM,QAAQ,IAAI;AAElB,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,mBAAgB,OAAO,KAAK;AAC5B;;AAGF,MAAI,MAAM,QAAQ,MAAM,CACtB,MAAK,MAAM,QAAQ,MAAO,iBAAgB,MAAM,KAAK;;AAIzD,QAAO"}
|
package/dist/search/client.js
CHANGED
|
@@ -57,15 +57,15 @@ function useDocsSearch(clientOptions, deps) {
|
|
|
57
57
|
return fetchDocs(debouncedValue, client);
|
|
58
58
|
}
|
|
59
59
|
if (client.type === "algolia") {
|
|
60
|
-
const { searchDocs } = await import("../algolia-
|
|
60
|
+
const { searchDocs } = await import("../algolia-CQPXCnjV.js");
|
|
61
61
|
return searchDocs(debouncedValue, client);
|
|
62
62
|
}
|
|
63
63
|
if (client.type === "orama-cloud") {
|
|
64
|
-
const { searchDocs } = await import("../orama-cloud-
|
|
64
|
+
const { searchDocs } = await import("../orama-cloud-DH3g37zc.js");
|
|
65
65
|
return searchDocs(debouncedValue, client);
|
|
66
66
|
}
|
|
67
67
|
if (client.type === "static") {
|
|
68
|
-
const { search: search$1 } = await import("../static-
|
|
68
|
+
const { search: search$1 } = await import("../static-Dq8pA8Ay.js");
|
|
69
69
|
return search$1(debouncedValue, client);
|
|
70
70
|
}
|
|
71
71
|
if (client.type === "mixedbread") {
|
package/dist/search/index.js
CHANGED
package/dist/search/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as findPath } from "../utils-DUvi2WkD.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
2
|
+
import { t as createContentHighlighter } from "../search-D6ChCLhY.js";
|
|
3
|
+
import { n as searchSimple, t as searchAdvanced } from "../advanced-BRT5Ij43.js";
|
|
4
|
+
import { r as extname, t as basename } from "../path-DHIjrDBP.js";
|
|
5
5
|
import { create, insertMultiple, save } from "@orama/orama";
|
|
6
6
|
|
|
7
7
|
//#region src/search/orama/create-endpoint.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-
|
|
1
|
+
{"version":3,"file":"search-D6ChCLhY.js","names":["out: HighlightedText[]"],"sources":["../src/search/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nexport interface SortedResult<Content = string> {\n id: string;\n url: string;\n type: 'page' | 'heading' | 'text';\n content: Content;\n\n /**\n * breadcrumbs to be displayed on UI\n */\n breadcrumbs?: Content[];\n contentWithHighlights?: HighlightedText<Content>[];\n}\n\nexport type ReactSortedResult = SortedResult<ReactNode>;\n\nexport interface HighlightedText<Content = string> {\n type: 'text';\n content: Content;\n styles?: {\n highlight?: boolean;\n };\n}\n\nfunction escapeRegExp(input: string): string {\n return input.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction buildRegexFromQuery(q: string): RegExp | null {\n const trimmed = q.trim();\n if (trimmed.length === 0) return null;\n const terms = Array.from(\n new Set(\n trimmed\n .split(/\\s+/)\n .map((t) => t.trim())\n .filter(Boolean),\n ),\n );\n if (terms.length === 0) return null;\n const escaped = terms.map(escapeRegExp).join('|');\n return new RegExp(`(${escaped})`, 'gi');\n}\n\nexport function createContentHighlighter(query: string | RegExp) {\n const regex = typeof query === 'string' ? buildRegexFromQuery(query) : query;\n\n return {\n highlight(content: string): HighlightedText[] {\n if (!regex) return [{ type: 'text', content }];\n const out: HighlightedText[] = [];\n\n let i = 0;\n for (const match of content.matchAll(regex)) {\n if (i < match.index) {\n out.push({\n type: 'text',\n content: content.substring(i, match.index),\n });\n }\n\n out.push({\n type: 'text',\n content: match[0],\n styles: {\n highlight: true,\n },\n });\n\n i = match.index + match[0].length;\n }\n\n if (i < content.length) {\n out.push({\n type: 'text',\n content: content.substring(i),\n });\n }\n\n return out;\n },\n };\n}\n"],"mappings":";AAyBA,SAAS,aAAa,OAAuB;AAC3C,QAAO,MAAM,QAAQ,uBAAuB,OAAO;;AAGrD,SAAS,oBAAoB,GAA0B;CACrD,MAAM,UAAU,EAAE,MAAM;AACxB,KAAI,QAAQ,WAAW,EAAG,QAAO;CACjC,MAAM,QAAQ,MAAM,KAClB,IAAI,IACF,QACG,MAAM,MAAM,CACZ,KAAK,MAAM,EAAE,MAAM,CAAC,CACpB,OAAO,QAAQ,CACnB,CACF;AACD,KAAI,MAAM,WAAW,EAAG,QAAO;CAC/B,MAAM,UAAU,MAAM,IAAI,aAAa,CAAC,KAAK,IAAI;AACjD,QAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,KAAK;;AAGzC,SAAgB,yBAAyB,OAAwB;CAC/D,MAAM,QAAQ,OAAO,UAAU,WAAW,oBAAoB,MAAM,GAAG;AAEvE,QAAO,EACL,UAAU,SAAoC;AAC5C,MAAI,CAAC,MAAO,QAAO,CAAC;GAAE,MAAM;GAAQ;GAAS,CAAC;EAC9C,MAAMA,MAAyB,EAAE;EAEjC,IAAI,IAAI;AACR,OAAK,MAAM,SAAS,QAAQ,SAAS,MAAM,EAAE;AAC3C,OAAI,IAAI,MAAM,MACZ,KAAI,KAAK;IACP,MAAM;IACN,SAAS,QAAQ,UAAU,GAAG,MAAM,MAAM;IAC3C,CAAC;AAGJ,OAAI,KAAK;IACP,MAAM;IACN,SAAS,MAAM;IACf,QAAQ,EACN,WAAW,MACZ;IACF,CAAC;AAEF,OAAI,MAAM,QAAQ,MAAM,GAAG;;AAG7B,MAAI,IAAI,QAAQ,OACd,KAAI,KAAK;GACP,MAAM;GACN,SAAS,QAAQ,UAAU,EAAE;GAC9B,CAAC;AAGJ,SAAO;IAEV"}
|
package/dist/source/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as normalizeUrl } from "../normalize-url-DP9-1I-S.js";
|
|
2
2
|
import { c as visit } from "../utils-DUvi2WkD.js";
|
|
3
|
-
import { a as path_exports, i as joinPath, n as dirname, o as slash, r as extname, s as splitPath, t as basename } from "../path-
|
|
3
|
+
import { a as path_exports, i as joinPath, n as dirname, o as slash, r as extname, s as splitPath, t as basename } from "../path-DHIjrDBP.js";
|
|
4
4
|
import { getSlugs, slugsPlugin } from "./plugins/slugs.js";
|
|
5
|
-
import { t as iconPlugin } from "../icon-
|
|
5
|
+
import { t as iconPlugin } from "../icon-BWwSDabM.js";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|
|
8
8
|
//#region src/source/source.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as dirname, r as extname, t as basename } from "../../path-
|
|
1
|
+
import { n as dirname, r as extname, t as basename } from "../../path-DHIjrDBP.js";
|
|
2
2
|
|
|
3
3
|
//#region src/source/plugins/slugs.ts
|
|
4
4
|
/**
|
|
@@ -9,7 +9,7 @@ function slugsPlugin(slugFn) {
|
|
|
9
9
|
return basename(file, extname(file)) === "index";
|
|
10
10
|
}
|
|
11
11
|
return {
|
|
12
|
-
name: "
|
|
12
|
+
name: "hanzo-docs:slugs",
|
|
13
13
|
transformStorage({ storage }) {
|
|
14
14
|
const indexFiles = [];
|
|
15
15
|
const taken = /* @__PURE__ */ new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugs.js","names":["indexFiles: string[]","slugs: string[]"],"sources":["../../../src/source/plugins/slugs.ts"],"sourcesContent":["import { basename, dirname, extname } from '@/source/path';\nimport type { ContentStoragePageFile } from '../storage/content';\nimport type { LoaderConfig, LoaderPlugin } from '../loader';\n\n/**\n * a function to generate slugs, return `undefined` to fallback to default generation.\n */\nexport type SlugFn<Config extends LoaderConfig = LoaderConfig> = (\n file: ContentStoragePageFile<Config['source']>,\n) => string[] | undefined;\n\n/**\n * Generate slugs for pages if missing\n */\nexport function slugsPlugin<Config extends LoaderConfig = LoaderConfig>(\n slugFn?: SlugFn<Config>,\n): LoaderPlugin<Config> {\n function isIndex(file: string) {\n return basename(file, extname(file)) === 'index';\n }\n\n return {\n name: '
|
|
1
|
+
{"version":3,"file":"slugs.js","names":["indexFiles: string[]","slugs: string[]"],"sources":["../../../src/source/plugins/slugs.ts"],"sourcesContent":["import { basename, dirname, extname } from '@/source/path';\nimport type { ContentStoragePageFile } from '../storage/content';\nimport type { LoaderConfig, LoaderPlugin } from '../loader';\n\n/**\n * a function to generate slugs, return `undefined` to fallback to default generation.\n */\nexport type SlugFn<Config extends LoaderConfig = LoaderConfig> = (\n file: ContentStoragePageFile<Config['source']>,\n) => string[] | undefined;\n\n/**\n * Generate slugs for pages if missing\n */\nexport function slugsPlugin<Config extends LoaderConfig = LoaderConfig>(\n slugFn?: SlugFn<Config>,\n): LoaderPlugin<Config> {\n function isIndex(file: string) {\n return basename(file, extname(file)) === 'index';\n }\n\n return {\n name: 'hanzo-docs:slugs',\n transformStorage({ storage }) {\n const indexFiles: string[] = [];\n const taken = new Set<string>();\n\n for (const path of storage.getFiles()) {\n const file = storage.read(path);\n if (!file || file.format !== 'page' || file.slugs) continue;\n\n const customSlugs = slugFn?.(file);\n // for custom slugs function, don't handle conflicting cases like `dir/index.mdx` vs `dir.mdx`\n if (customSlugs === undefined && isIndex(path)) {\n indexFiles.push(path);\n continue;\n }\n\n file.slugs = customSlugs ?? getSlugs(path);\n const key = file.slugs.join('/');\n if (taken.has(key)) throw new Error(`Duplicated slugs: ${key}`);\n taken.add(key);\n }\n\n for (const path of indexFiles) {\n const file = storage.read(path);\n if (file?.format !== 'page') continue;\n\n file.slugs = getSlugs(path);\n if (taken.has(file.slugs.join('/'))) file.slugs.push('index');\n }\n },\n };\n}\n\n/**\n * Generate slugs from file data (e.g. frontmatter).\n *\n * @param key - the property name in file data to generate slugs, default to `slug`.\n */\nexport function slugsFromData<Config extends LoaderConfig = LoaderConfig>(\n key = 'slug',\n): SlugFn<Config> {\n return (file) => {\n const k = key as keyof typeof file.data;\n\n if (k in file.data && typeof file.data[k] === 'string') {\n return file.data[k].split('/').filter((v) => v.length > 0);\n }\n };\n}\n\nconst GroupRegex = /^\\(.+\\)$/;\n\n/**\n * Convert file path into slugs, also encode non-ASCII characters, so they can work in pathname\n */\nexport function getSlugs(file: string): string[] {\n const dir = dirname(file);\n const name = basename(file, extname(file));\n const slugs: string[] = [];\n\n for (const seg of dir.split('/')) {\n // filter empty names and file groups like (group_name)\n if (seg.length > 0 && !GroupRegex.test(seg)) slugs.push(encodeURI(seg));\n }\n\n if (GroupRegex.test(name)) throw new Error(`Cannot use folder group in file names: ${file}`);\n\n if (name !== 'index') {\n slugs.push(encodeURI(name));\n }\n\n return slugs;\n}\n"],"mappings":";;;;;;AAcA,SAAgB,YACd,QACsB;CACtB,SAAS,QAAQ,MAAc;AAC7B,SAAO,SAAS,MAAM,QAAQ,KAAK,CAAC,KAAK;;AAG3C,QAAO;EACL,MAAM;EACN,iBAAiB,EAAE,WAAW;GAC5B,MAAMA,aAAuB,EAAE;GAC/B,MAAM,wBAAQ,IAAI,KAAa;AAE/B,QAAK,MAAM,QAAQ,QAAQ,UAAU,EAAE;IACrC,MAAM,OAAO,QAAQ,KAAK,KAAK;AAC/B,QAAI,CAAC,QAAQ,KAAK,WAAW,UAAU,KAAK,MAAO;IAEnD,MAAM,cAAc,SAAS,KAAK;AAElC,QAAI,gBAAgB,UAAa,QAAQ,KAAK,EAAE;AAC9C,gBAAW,KAAK,KAAK;AACrB;;AAGF,SAAK,QAAQ,eAAe,SAAS,KAAK;IAC1C,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI;AAChC,QAAI,MAAM,IAAI,IAAI,CAAE,OAAM,IAAI,MAAM,qBAAqB,MAAM;AAC/D,UAAM,IAAI,IAAI;;AAGhB,QAAK,MAAM,QAAQ,YAAY;IAC7B,MAAM,OAAO,QAAQ,KAAK,KAAK;AAC/B,QAAI,MAAM,WAAW,OAAQ;AAE7B,SAAK,QAAQ,SAAS,KAAK;AAC3B,QAAI,MAAM,IAAI,KAAK,MAAM,KAAK,IAAI,CAAC,CAAE,MAAK,MAAM,KAAK,QAAQ;;;EAGlE;;;;;;;AAQH,SAAgB,cACd,MAAM,QACU;AAChB,SAAQ,SAAS;EACf,MAAM,IAAI;AAEV,MAAI,KAAK,KAAK,QAAQ,OAAO,KAAK,KAAK,OAAO,SAC5C,QAAO,KAAK,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,MAAM,EAAE,SAAS,EAAE;;;AAKhE,MAAM,aAAa;;;;AAKnB,SAAgB,SAAS,MAAwB;CAC/C,MAAM,MAAM,QAAQ,KAAK;CACzB,MAAM,OAAO,SAAS,MAAM,QAAQ,KAAK,CAAC;CAC1C,MAAMC,QAAkB,EAAE;AAE1B,MAAK,MAAM,OAAO,IAAI,MAAM,IAAI,CAE9B,KAAI,IAAI,SAAS,KAAK,CAAC,WAAW,KAAK,IAAI,CAAE,OAAM,KAAK,UAAU,IAAI,CAAC;AAGzE,KAAI,WAAW,KAAK,KAAK,CAAE,OAAM,IAAI,MAAM,0CAA0C,OAAO;AAE5F,KAAI,SAAS,QACX,OAAM,KAAK,UAAU,KAAK,CAAC;AAG7B,QAAO"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as searchSimple, t as searchAdvanced } from "./advanced-
|
|
1
|
+
import { n as searchSimple, t as searchAdvanced } from "./advanced-BRT5Ij43.js";
|
|
2
2
|
import { create, load } from "@orama/orama";
|
|
3
3
|
|
|
4
4
|
//#region src/search/client/static.ts
|
|
@@ -48,4 +48,4 @@ async function search(query, options) {
|
|
|
48
48
|
|
|
49
49
|
//#endregion
|
|
50
50
|
export { search };
|
|
51
|
-
//# sourceMappingURL=static-
|
|
51
|
+
//# sourceMappingURL=static-Dq8pA8Ay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-
|
|
1
|
+
{"version":3,"file":"static-Dq8pA8Ay.js","names":["dbs: Database","db"],"sources":["../src/search/client/static.ts"],"sourcesContent":["import { type AnyOrama, create, load, type Orama } from '@orama/orama';\nimport { searchSimple } from '@/search/orama/search/simple';\nimport { searchAdvanced } from '@/search/orama/search/advanced';\nimport { type advancedSchema, type simpleSchema } from '@/search/orama/create-db';\nimport type { ExportedData } from '@/search/server';\n\nexport interface StaticOptions {\n /**\n * Where to download exported search indexes (URL)\n *\n * @defaultValue '/api/search'\n */\n from?: string;\n\n initOrama?: (locale?: string) => AnyOrama | Promise<AnyOrama>;\n\n /**\n * Filter results with specific tag(s).\n */\n tag?: string | string[];\n\n /**\n * Filter by locale (unsupported at the moment)\n */\n locale?: string;\n}\n\nconst cache = new Map<string, Promise<Database>>();\n\n// locale -> db\ntype Database = Map<\n string,\n {\n type: 'simple' | 'advanced';\n db: AnyOrama;\n }\n>;\n\nasync function loadDB({\n from = '/api/search',\n initOrama = (locale) => create({ schema: { _: 'string' }, language: locale }),\n}: StaticOptions): Promise<Database> {\n const cacheKey = from;\n const cached = cache.get(cacheKey);\n if (cached) return cached;\n\n async function init() {\n const res = await fetch(from);\n\n if (!res.ok)\n throw new Error(\n `failed to fetch exported search indexes from ${from}, make sure the search database is exported and available for client.`,\n );\n\n const data = (await res.json()) as ExportedData;\n const dbs: Database = new Map();\n\n if (data.type === 'i18n') {\n await Promise.all(\n Object.entries(data.data).map(async ([k, v]) => {\n const db = await initOrama(k);\n\n load(db, v);\n dbs.set(k, {\n type: v.type,\n db,\n });\n }),\n );\n\n return dbs;\n }\n\n const db = await initOrama();\n load(db, data);\n dbs.set('', {\n type: data.type,\n db,\n });\n return dbs;\n }\n\n const result = init();\n cache.set(cacheKey, result);\n return result;\n}\n\nexport async function search(query: string, options: StaticOptions) {\n const { tag, locale } = options;\n\n const db = (await loadDB(options)).get(locale ?? '');\n\n if (!db) return [];\n if (db.type === 'simple') return searchSimple(db as unknown as Orama<typeof simpleSchema>, query);\n\n return searchAdvanced(db.db as Orama<typeof advancedSchema>, query, tag);\n}\n"],"mappings":";;;;AA2BA,MAAM,wBAAQ,IAAI,KAAgC;AAWlD,eAAe,OAAO,EACpB,OAAO,eACP,aAAa,WAAW,OAAO;CAAE,QAAQ,EAAE,GAAG,UAAU;CAAE,UAAU;CAAQ,CAAC,IAC1C;CACnC,MAAM,WAAW;CACjB,MAAM,SAAS,MAAM,IAAI,SAAS;AAClC,KAAI,OAAQ,QAAO;CAEnB,eAAe,OAAO;EACpB,MAAM,MAAM,MAAM,MAAM,KAAK;AAE7B,MAAI,CAAC,IAAI,GACP,OAAM,IAAI,MACR,gDAAgD,KAAK,uEACtD;EAEH,MAAM,OAAQ,MAAM,IAAI,MAAM;EAC9B,MAAMA,sBAAgB,IAAI,KAAK;AAE/B,MAAI,KAAK,SAAS,QAAQ;AACxB,SAAM,QAAQ,IACZ,OAAO,QAAQ,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,OAAO;IAC9C,MAAMC,OAAK,MAAM,UAAU,EAAE;AAE7B,SAAKA,MAAI,EAAE;AACX,QAAI,IAAI,GAAG;KACT,MAAM,EAAE;KACR;KACD,CAAC;KACF,CACH;AAED,UAAO;;EAGT,MAAM,KAAK,MAAM,WAAW;AAC5B,OAAK,IAAI,KAAK;AACd,MAAI,IAAI,IAAI;GACV,MAAM,KAAK;GACX;GACD,CAAC;AACF,SAAO;;CAGT,MAAM,SAAS,MAAM;AACrB,OAAM,IAAI,UAAU,OAAO;AAC3B,QAAO;;AAGT,eAAsB,OAAO,OAAe,SAAwB;CAClE,MAAM,EAAE,KAAK,WAAW;CAExB,MAAM,MAAM,MAAM,OAAO,QAAQ,EAAE,IAAI,UAAU,GAAG;AAEpD,KAAI,CAAC,GAAI,QAAO,EAAE;AAClB,KAAI,GAAG,SAAS,SAAU,QAAO,aAAa,IAA6C,MAAM;AAEjG,QAAO,eAAe,GAAG,IAAoC,OAAO,IAAI"}
|
package/dist/toc.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentProps, ReactNode, RefObject } from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime4 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/toc.d.ts
|
|
5
5
|
interface TOCItemType {
|
|
@@ -36,12 +36,12 @@ interface ScrollProviderProps {
|
|
|
36
36
|
declare function ScrollProvider({
|
|
37
37
|
containerRef,
|
|
38
38
|
children
|
|
39
|
-
}: ScrollProviderProps):
|
|
39
|
+
}: ScrollProviderProps): react_jsx_runtime4.JSX.Element;
|
|
40
40
|
declare function AnchorProvider({
|
|
41
41
|
toc,
|
|
42
42
|
single,
|
|
43
43
|
children
|
|
44
|
-
}: AnchorProviderProps):
|
|
44
|
+
}: AnchorProviderProps): react_jsx_runtime4.JSX.Element;
|
|
45
45
|
interface TOCItemProps extends Omit<ComponentProps<'a'>, 'href'> {
|
|
46
46
|
href: string;
|
|
47
47
|
onActiveChange?: (v: boolean) => void;
|
|
@@ -50,7 +50,7 @@ declare function TOCItem({
|
|
|
50
50
|
ref,
|
|
51
51
|
onActiveChange,
|
|
52
52
|
...props
|
|
53
|
-
}: TOCItemProps):
|
|
53
|
+
}: TOCItemProps): react_jsx_runtime4.JSX.Element;
|
|
54
54
|
//#endregion
|
|
55
55
|
export { AnchorProvider, AnchorProviderProps, ScrollProvider, ScrollProviderProps, TOCItem, TOCItemProps, TOCItemType, TableOfContents, useActiveAnchor, useActiveAnchors };
|
|
56
56
|
//# sourceMappingURL=toc.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/docs-core",
|
|
3
|
-
"version": "16.4.
|
|
3
|
+
"version": "16.4.3",
|
|
4
4
|
"description": "The React.js library for building a documentation website",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Docs",
|
|
7
|
-
"
|
|
7
|
+
"Hanzo Docs"
|
|
8
8
|
],
|
|
9
|
-
"homepage": "https://
|
|
9
|
+
"homepage": "https://hanzo.ai/docs",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"author": "Fuma Nama",
|
|
12
|
-
"repository": "github:
|
|
12
|
+
"repository": "github:hanzoai/docs",
|
|
13
13
|
"files": [
|
|
14
14
|
"dist/*"
|
|
15
15
|
],
|
|
@@ -158,8 +158,8 @@
|
|
|
158
158
|
"vfile": "^6.0.3",
|
|
159
159
|
"waku": "^0.27.5",
|
|
160
160
|
"zod": "^4.2.1",
|
|
161
|
-
"
|
|
162
|
-
"
|
|
161
|
+
"eslint-config-custom": "0.0.0",
|
|
162
|
+
"tsconfig": "0.0.0"
|
|
163
163
|
},
|
|
164
164
|
"peerDependencies": {
|
|
165
165
|
"@mixedbread/sdk": "^0.46.0",
|