mirror of
https://github.com/hanzo-docs/docs.git
synced 2026-10-26 23:49:51 +00:00
Core: Migrate to shiki
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'fumadocs-core': minor
|
||||
---
|
||||
|
||||
Migrate to shiki
|
||||
@@ -44,3 +44,168 @@ body {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-synthesis-weight: none;
|
||||
}
|
||||
|
||||
/* ===== Basic ===== */
|
||||
:root {
|
||||
--twoslash-error-color: #d45656;
|
||||
--twoslash-error-bg: #d4565620;
|
||||
--twoslash-tag-color: #3772cf;
|
||||
--twoslash-tag-bg: #3772cf20;
|
||||
--twoslash-tag-warn-color: #c37d0d;
|
||||
--twoslash-tag-warn-bg: #c37d0d20;
|
||||
--twoslash-tag-annotate-color: #1ba673;
|
||||
--twoslash-tag-annotate-bg: #1ba67320;
|
||||
}
|
||||
|
||||
.twoslash-query-presisted .twoslash-popup-container,
|
||||
.twoslash-completion-list {
|
||||
user-select: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@apply flex translate-y-4 w-80 flex-col whitespace-normal shadow-md border rounded-md p-2 gap-2 bg-popover text-popover-foreground z-40;
|
||||
}
|
||||
|
||||
.twoslash-query-presisted .twoslash-popup-container:hover,
|
||||
.twoslash-completion-list:hover {
|
||||
user-select: auto;
|
||||
}
|
||||
|
||||
.twoslash-popup-arrow {
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
left: 1em;
|
||||
transform: rotate(-45deg);
|
||||
pointer-events: none;
|
||||
|
||||
@apply size-1.5 border-t border-r bg-popover;
|
||||
}
|
||||
|
||||
.twoslash-popup-docs-tags {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5em;
|
||||
}
|
||||
|
||||
.twoslash-popup-docs-tag-name {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.twoslash-popup-code .line {
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.twoslash-popup-docs {
|
||||
@apply text-sm font-sans mt-2 text-muted-foreground;
|
||||
}
|
||||
|
||||
/* ===== Hover Info ===== */
|
||||
.twoslash:hover .twoslash-hover {
|
||||
border-color: currentColor;
|
||||
}
|
||||
|
||||
.twoslash .twoslash-hover {
|
||||
@apply relative transition-colors duration-300 border-b border-dotted border-transparent;
|
||||
}
|
||||
|
||||
/* ===== Error Line ===== */
|
||||
.twoslash .twoslash-error-line {
|
||||
position: relative;
|
||||
background-color: var(--twoslash-error-bg);
|
||||
border-left: 3px solid var(--twoslash-error-color);
|
||||
color: var(--twoslash-error-color);
|
||||
padding: 6px 12px;
|
||||
margin: 0.2em 0;
|
||||
}
|
||||
|
||||
.twoslash .twoslash-error {
|
||||
text-decoration: wavy underline var(--twoslash-error-color);
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
/* ===== Completeions ===== */
|
||||
.twoslash .twoslash-completion-cursor {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.twoslash-completion-list::before {
|
||||
width: 1px;
|
||||
position: absolute;
|
||||
top: -1.2em;
|
||||
height: 1em;
|
||||
left: -1px;
|
||||
content: ' ';
|
||||
@apply bg-foreground;
|
||||
}
|
||||
|
||||
.twoslash-completion-list li {
|
||||
font-size: 13px;
|
||||
@apply inline-flex items-center truncate gap-2;
|
||||
}
|
||||
|
||||
.twoslash-completion-list li span.twoslash-completions-unmatched {
|
||||
@apply text-muted-foreground;
|
||||
}
|
||||
|
||||
.twoslash-completion-list .deprecated {
|
||||
text-decoration: line-through;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Highlights */
|
||||
.twoslash-highlighted {
|
||||
padding: 1px 2px;
|
||||
margin: -1px -3px;
|
||||
@apply bg-primary/10 border border-primary/50 rounded-sm;
|
||||
}
|
||||
|
||||
/* Icons */
|
||||
.twoslash-completion-list .twoslash-completions-icon {
|
||||
width: 1em;
|
||||
flex: none;
|
||||
@apply text-muted-foreground;
|
||||
}
|
||||
|
||||
/* Custom Tags */
|
||||
.twoslash .twoslash-tag-line {
|
||||
position: relative;
|
||||
background-color: var(--twoslash-tag-bg);
|
||||
border-left: 3px solid var(--twoslash-tag-color);
|
||||
color: var(--twoslash-tag-color);
|
||||
padding: 6px 10px;
|
||||
margin: 0.2em 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.3em;
|
||||
}
|
||||
|
||||
.twoslash .twoslash-tag-line .twoslash-tag-icon {
|
||||
width: 1.1em;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.twoslash .twoslash-tag-line.twoslash-tag-error-line {
|
||||
background-color: var(--twoslash-error-bg);
|
||||
border-left: 3px solid var(--twoslash-error-color);
|
||||
color: var(--twoslash-error-color);
|
||||
}
|
||||
|
||||
.twoslash .twoslash-tag-line.twoslash-tag-warn-line {
|
||||
background-color: var(--twoslash-tag-warn-bg);
|
||||
border-left: 3px solid var(--twoslash-tag-warn-color);
|
||||
color: var(--twoslash-tag-warn-color);
|
||||
}
|
||||
|
||||
.twoslash .twoslash-tag-line.twoslash-tag-annotate-line {
|
||||
background-color: var(--twoslash-tag-annotate-bg);
|
||||
border-left: 3px solid var(--twoslash-tag-annotate-color);
|
||||
color: var(--twoslash-tag-annotate-color);
|
||||
}
|
||||
|
||||
/* Respect people's wishes to not have animations */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.twoslash * {
|
||||
transition: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as Base from 'fumadocs-ui/components/codeblock';
|
||||
import type { HTMLAttributes } from 'react';
|
||||
import { useMemo } from 'react';
|
||||
import { getHighlighter } from 'shikiji';
|
||||
import { getHighlighter } from 'shiki';
|
||||
|
||||
const highlighter = await getHighlighter({
|
||||
langs: ['bash', 'ts', 'tsx'],
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
'use client';
|
||||
|
||||
import * as React from 'react';
|
||||
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
||||
import { cn } from '@/utils/cn';
|
||||
|
||||
const HoverCard = HoverCardPrimitive.Root;
|
||||
|
||||
const HoverCardTrigger = HoverCardPrimitive.Trigger;
|
||||
|
||||
const HoverCardContent = React.forwardRef<
|
||||
React.ElementRef<typeof HoverCardPrimitive.Content>,
|
||||
React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>
|
||||
>(({ className, align = 'start', ...props }, ref) => (
|
||||
<HoverCardPrimitive.Portal>
|
||||
<HoverCardPrimitive.Content
|
||||
ref={ref}
|
||||
align={align}
|
||||
className={cn(
|
||||
'z-50 w-80 rounded-md border bg-popover p-2 text-popover-foreground shadow-md outline-none data-[state=closed]:animate-popover-out data-[state=open]:animate-popover-in',
|
||||
className,
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
</HoverCardPrimitive.Portal>
|
||||
));
|
||||
|
||||
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
||||
|
||||
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
||||
@@ -12,18 +12,20 @@ a page based on the given page tree.
|
||||
|
||||
it exports a `useBreadcrumb` hook:
|
||||
|
||||
```ts
|
||||
import { useBreadcrumb } from 'fumadocs-core/breadcrumb'
|
||||
```ts twoslash
|
||||
/**
|
||||
* @author hel
|
||||
*/
|
||||
declare const tree: any;
|
||||
// ---cut---
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { useBreadcrumb } from 'fumadocs-core/breadcrumb';
|
||||
|
||||
const tree: PageTree = ...
|
||||
const pathname = usePathname()
|
||||
|
||||
const items = useBreadcrumb(pathname, tree)
|
||||
const pathname = usePathname();
|
||||
const items = useBreadcrumb(pathname, tree);
|
||||
// ^?
|
||||
```
|
||||
|
||||
### Breadcrumb Item
|
||||
|
||||
| Prop | Type | Description |
|
||||
| ------ | ---------------- | ------------ |
|
||||
| `name` | `string` | Name of item |
|
||||
| `url` | `string \| null` | Href link |
|
||||
<AutoTypeTable path="headless" name="BreadcrumbItem" />
|
||||
|
||||
@@ -21,18 +21,13 @@ return (
|
||||
|
||||
### Sidebar Provider
|
||||
|
||||
| Prop | Type | Description |
|
||||
| -------------- | ---------------------- | ----------- |
|
||||
| `open` | `boolean?` | - |
|
||||
| `onOpenChange` | `(v: boolean) => void` | - |
|
||||
<AutoTypeTable path="headless" name="SidebarProviderProps" />
|
||||
|
||||
### Sidebar Trigger
|
||||
|
||||
Opens the sidebar on click.
|
||||
|
||||
| Prop | Type | Description |
|
||||
| ---- | ------------- | ----------- |
|
||||
| `as` | `ElementType` | - |
|
||||
<AutoTypeTable path="headless" name="SidebarTriggerProps" />
|
||||
|
||||
### Sidebar List
|
||||
|
||||
|
||||
@@ -22,18 +22,13 @@ return (
|
||||
Contains all anchor items. By default, it automatically scrolls to the active
|
||||
anchor.
|
||||
|
||||
| Prop | Type | Description |
|
||||
| ---------- | ----------------- | ----------------- |
|
||||
| `toc` | `TableOfContents` | Table of contents |
|
||||
| `children` | `ReactNode` | - |
|
||||
<AutoTypeTable path="headless" name="TOCProviderProps" />
|
||||
|
||||
### TOC Item
|
||||
|
||||
The anchor element.
|
||||
|
||||
| Prop | Type | Description |
|
||||
| ------ | -------- | ------------------- |
|
||||
| `href` | `string` | The url of TOC item |
|
||||
<AutoTypeTable path="headless" name="TOCItemProps" />
|
||||
|
||||
| Data Attribute | Values | Description |
|
||||
| -------------- | ------------- | ---------------- |
|
||||
|
||||
@@ -22,10 +22,4 @@ If your heading doesn't have an id, it will add one automatically.
|
||||
|
||||
An array of `TOCItemType`.
|
||||
|
||||
### TOCItemType
|
||||
|
||||
| Prop | Type | Description |
|
||||
| ------- | -------- | ---------------- |
|
||||
| `title` | `string` | Title of heading |
|
||||
| `url` | `string` | Href url |
|
||||
| `depth` | `number` | From 1 to 6 |
|
||||
<AutoTypeTable path="headless" name="TOCItemType" />
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: Twoslash
|
||||
description: Use Typescript Twoslash in your docs
|
||||
---
|
||||
|
||||
> For showcase purpose only, this is not a available API.
|
||||
|
||||
```ts twoslash
|
||||
// @noErrors
|
||||
console.;
|
||||
// ^|
|
||||
```
|
||||
|
||||
```ts twoslash
|
||||
// @errors: 2588
|
||||
const a = '123';
|
||||
console.log(a);
|
||||
// ^^^
|
||||
```
|
||||
|
||||
```ts twoslash
|
||||
// @errors: 2588
|
||||
const a = '123';
|
||||
a = 132;
|
||||
|
||||
// @log: Custom log message
|
||||
|
||||
const b = 1;
|
||||
// @error: Custom error message
|
||||
|
||||
const c = 1;
|
||||
// @warn: Custom warning message
|
||||
|
||||
const d = 1;
|
||||
// @annotate: Custom annotation message
|
||||
```
|
||||
@@ -1,3 +1,25 @@
|
||||
import type * as Breadcrumb from 'fumadocs-core/breadcrumb';
|
||||
import type * as TOC from 'fumadocs-core/toc';
|
||||
import type * as Server from 'fumadocs-core/server';
|
||||
import type * as Sidebar from 'fumadocs-core/sidebar';
|
||||
import type { SortedResult as OriginalSortedResult } from 'fumadocs-core/search/shared';
|
||||
import type { ComponentPropsWithoutRef, ElementType } from 'react';
|
||||
|
||||
export type SortedResult = OriginalSortedResult;
|
||||
|
||||
export type BreadcrumbItem = Breadcrumb.BreadcrumbItem;
|
||||
|
||||
export type SidebarProviderProps = Sidebar.SidebarProviderProps;
|
||||
export type SidebarTriggerProps = Sidebar.SidebarTriggerProps<ElementType>;
|
||||
|
||||
export type TOCProviderProps = Omit<
|
||||
ComponentPropsWithoutRef<typeof TOC.TOCProvider>,
|
||||
keyof ComponentPropsWithoutRef<'div'>
|
||||
>;
|
||||
|
||||
export type TOCItemProps = Omit<
|
||||
ComponentPropsWithoutRef<typeof TOC.TOCItem>,
|
||||
keyof ComponentPropsWithoutRef<'a'>
|
||||
>;
|
||||
|
||||
export type TOCItemType = Server.TOCItemType;
|
||||
|
||||
@@ -36,4 +36,4 @@ const toc = await getTableOfContentsFromPortableText(posts[0].body);
|
||||
|
||||
### Output
|
||||
|
||||
An array of [TOCItemType](/docs/headless/mdx/toc#tocitemtype) is returned.
|
||||
An array of [TOCItemType](/docs/headless/mdx/toc#output) is returned.
|
||||
|
||||
@@ -7,9 +7,9 @@ description: Adding code blocks to your docs
|
||||
<div className="bg-background rounded-lg prose-no-margin">
|
||||
|
||||
```js title="Demo File"
|
||||
import createNextDocsMDX from 'fumadocs-mdx/config';
|
||||
import createMDX from 'fumadocs-mdx/config';
|
||||
|
||||
const withMDX = createNextDocsMDX();
|
||||
const withMDX = createMDX();
|
||||
|
||||
// [!code word:config]
|
||||
/** @type {import('next').NextConfig} */
|
||||
@@ -25,7 +25,7 @@ export default withMDX(config);
|
||||
|
||||
Display code blocks, required by default.
|
||||
|
||||
- Syntax highlighting powered by Shikiji
|
||||
- Syntax highlighting powered by Shiki
|
||||
- Copy button
|
||||
- Custom Titles
|
||||
|
||||
|
||||
@@ -9,10 +9,18 @@ import type { ReactNode } from 'react';
|
||||
import { Wrapper } from '@/components/preview/wrapper';
|
||||
import { AutoTypeTable } from './components/auto-type-table';
|
||||
import { cn } from './utils/cn';
|
||||
import {
|
||||
HoverCard,
|
||||
HoverCardContent,
|
||||
HoverCardTrigger,
|
||||
} from './components/ui/popover';
|
||||
|
||||
export function useMDXComponents(components: MDXComponents): MDXComponents {
|
||||
return {
|
||||
...defaultComponents,
|
||||
Popover: HoverCard,
|
||||
PopoverTrigger: HoverCardTrigger,
|
||||
PopoverContent: HoverCardContent,
|
||||
pre: ({ ref: _ref, title, className, ...props }) => (
|
||||
<CodeBlock title={title}>
|
||||
<Pre className={cn('max-h-[400px]', className)} {...props} />
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import createBundleAnalyzer from '@next/bundle-analyzer';
|
||||
import createNextDocs from 'fumadocs-mdx/config';
|
||||
import createMDX from 'fumadocs-mdx/config';
|
||||
import {
|
||||
remarkDynamicContent,
|
||||
remarkInstall,
|
||||
rehypeCodeDefaultOptions,
|
||||
} from 'fumadocs-core/mdx-plugins';
|
||||
import { transformerTwoslash } from '@shikijs/twoslash';
|
||||
import rehypeKatex from 'rehype-katex';
|
||||
import remarkMath from 'remark-math';
|
||||
|
||||
@@ -21,13 +22,41 @@ const config = {
|
||||
},
|
||||
};
|
||||
|
||||
const withNextDocs = createNextDocs({
|
||||
const withMDX = createMDX({
|
||||
mdxOptions: {
|
||||
rehypeCodeOptions: {
|
||||
transformers: [
|
||||
...rehypeCodeDefaultOptions.transformers,
|
||||
transformerTwoslash({
|
||||
explicitTrigger: true,
|
||||
rendererRich: {
|
||||
hast: {
|
||||
hoverCompose: ({ popup, token }) => [
|
||||
{
|
||||
type: 'element',
|
||||
tagName: 'Popover',
|
||||
children: [
|
||||
popup,
|
||||
{
|
||||
type: 'element',
|
||||
tagName: 'PopoverTrigger',
|
||||
children: [token],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
popupTypes: {
|
||||
class: 'nd-codeblock twoslash-popup-code',
|
||||
},
|
||||
hoverPopup: {
|
||||
tagName: 'PopoverContent',
|
||||
children: (v) => v,
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
{
|
||||
name: 'shikiji:remove-escape',
|
||||
name: 'fumadocs:remove-escape',
|
||||
code(element) {
|
||||
element.children.forEach((line) => {
|
||||
if (line.type !== 'element') return;
|
||||
@@ -56,4 +85,4 @@ const withNextDocs = createNextDocs({
|
||||
},
|
||||
});
|
||||
|
||||
export default withAnalyzer(withNextDocs(config));
|
||||
export default withAnalyzer(withMDX(config));
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@next/env": "^14.0.0",
|
||||
"@radix-ui/react-hover-card": "^1.0.7",
|
||||
"@shikijs/twoslash": "1.0.0-beta.0",
|
||||
"algoliasearch": "^4.20.0",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.0.0",
|
||||
@@ -29,7 +31,7 @@
|
||||
"react-dom": "18.2.0",
|
||||
"rehype-katex": "^7.0.0",
|
||||
"remark-math": "^6.0.0",
|
||||
"shikiji": "^0.10.0",
|
||||
"shiki": "^1.0.0-beta.0",
|
||||
"tailwind-merge": "^2.0.0",
|
||||
"zod": "^3.22.4"
|
||||
},
|
||||
|
||||
@@ -117,17 +117,17 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@formatjs/intl-localematcher": "^0.5.0",
|
||||
"@shikijs/rehype": "^1.0.0-beta.0",
|
||||
"@shikijs/transformers": "^1.0.0-beta.0",
|
||||
"flexsearch": "0.7.21",
|
||||
"github-slugger": "^2.0.0",
|
||||
"negotiator": "^0.6.3",
|
||||
"react-remove-scroll": "^2.5.6",
|
||||
"rehype-shikiji": "^0.10.0",
|
||||
"remark": "^15.0.0",
|
||||
"remark-gfm": "^4.0.0",
|
||||
"remark-mdx": "^3.0.0",
|
||||
"scroll-into-view-if-needed": "^3.1.0",
|
||||
"shikiji": "^0.10.0",
|
||||
"shikiji-transformers": "^0.10.0",
|
||||
"shiki": "^1.0.0-beta.0",
|
||||
"swr": "^2.2.2",
|
||||
"unist-util-visit": "^5.0.0"
|
||||
},
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import type { Root } from 'hast';
|
||||
import rehypeShikiji, { type RehypeShikijiOptions } from 'rehype-shikiji';
|
||||
import rehypeShiki, { type RehypeShikiOptions } from '@shikijs/rehype';
|
||||
import {
|
||||
transformerNotationHighlight,
|
||||
transformerNotationWordHighlight,
|
||||
} from 'shikiji-transformers';
|
||||
} from '@shikijs/transformers';
|
||||
import type { Processor, Transformer } from 'unified';
|
||||
import { visit } from './hast-utils';
|
||||
|
||||
@@ -60,7 +60,7 @@ export const rehypeCodeDefaultOptions: RehypeCodeOptions = {
|
||||
},
|
||||
};
|
||||
|
||||
export type RehypeCodeOptions = RehypeShikijiOptions & {
|
||||
export type RehypeCodeOptions = RehypeShikiOptions & {
|
||||
/**
|
||||
* Filter meta string before processing
|
||||
*/
|
||||
@@ -103,7 +103,7 @@ export function rehypeCode(
|
||||
];
|
||||
|
||||
const prefix = 'language-';
|
||||
const transformer = rehypeShikiji.call(this, codeOptions);
|
||||
const transformer = rehypeShiki.call(this, codeOptions);
|
||||
|
||||
return async (root, vfile) => {
|
||||
visit(root, ['pre'], (element) => {
|
||||
|
||||
@@ -67,7 +67,7 @@ function pluginOption(
|
||||
return list;
|
||||
}
|
||||
|
||||
const createNextDocs =
|
||||
const createMDX =
|
||||
({
|
||||
mdxOptions = {},
|
||||
cwd = process.cwd(),
|
||||
@@ -160,4 +160,4 @@ const createNextDocs =
|
||||
};
|
||||
};
|
||||
|
||||
export { createNextDocs as default };
|
||||
export { createMDX as default };
|
||||
|
||||
@@ -46,7 +46,10 @@ export const typography = {
|
||||
'0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows)',
|
||||
},
|
||||
ul: {
|
||||
paddingLeft: '0.7rem',
|
||||
'list-style-position': 'inside',
|
||||
},
|
||||
li: {
|
||||
'padding-left': '0',
|
||||
},
|
||||
// Disabled styles, handled by Fumadocs UI
|
||||
'pre code': false,
|
||||
|
||||
Generated
+100
-37
@@ -55,6 +55,12 @@ importers:
|
||||
'@next/env':
|
||||
specifier: ^14.0.0
|
||||
version: 14.0.0
|
||||
'@radix-ui/react-hover-card':
|
||||
specifier: ^1.0.7
|
||||
version: 1.0.7(@types/[email protected])(@types/[email protected])([email protected])([email protected])
|
||||
'@shikijs/twoslash':
|
||||
specifier: 1.0.0-beta.0
|
||||
version: 1.0.0-beta.0([email protected])
|
||||
algoliasearch:
|
||||
specifier: ^4.20.0
|
||||
version: 4.20.0
|
||||
@@ -103,9 +109,9 @@ importers:
|
||||
remark-math:
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.0
|
||||
shikiji:
|
||||
specifier: ^0.10.0
|
||||
version: 0.10.0
|
||||
shiki:
|
||||
specifier: ^1.0.0-beta.0
|
||||
version: 1.0.0-beta.0
|
||||
tailwind-merge:
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0
|
||||
@@ -272,6 +278,12 @@ importers:
|
||||
'@formatjs/intl-localematcher':
|
||||
specifier: ^0.5.0
|
||||
version: 0.5.0
|
||||
'@shikijs/rehype':
|
||||
specifier: ^1.0.0-beta.0
|
||||
version: 1.0.0-beta.0
|
||||
'@shikijs/transformers':
|
||||
specifier: ^1.0.0-beta.0
|
||||
version: 1.0.0-beta.0
|
||||
flexsearch:
|
||||
specifier: 0.7.21
|
||||
version: 0.7.21
|
||||
@@ -290,9 +302,6 @@ importers:
|
||||
react-remove-scroll:
|
||||
specifier: ^2.5.6
|
||||
version: 2.5.6(@types/[email protected])([email protected])
|
||||
rehype-shikiji:
|
||||
specifier: ^0.10.0
|
||||
version: 0.10.0
|
||||
remark:
|
||||
specifier: ^15.0.0
|
||||
version: 15.0.1
|
||||
@@ -305,12 +314,9 @@ importers:
|
||||
scroll-into-view-if-needed:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
shikiji:
|
||||
specifier: ^0.10.0
|
||||
version: 0.10.0
|
||||
shikiji-transformers:
|
||||
specifier: ^0.10.0
|
||||
version: 0.10.0
|
||||
shiki:
|
||||
specifier: ^1.0.0-beta.0
|
||||
version: 1.0.0-beta.0
|
||||
swr:
|
||||
specifier: ^2.2.2
|
||||
version: 2.2.2([email protected])
|
||||
@@ -2797,6 +2803,35 @@ packages:
|
||||
react-dom: 18.2.0([email protected])
|
||||
dev: false
|
||||
|
||||
/@radix-ui/[email protected](@types/[email protected])(@types/[email protected])([email protected])([email protected]):
|
||||
resolution: {integrity: sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.23.2
|
||||
'@radix-ui/primitive': 1.0.1
|
||||
'@radix-ui/react-compose-refs': 1.0.1(@types/[email protected])([email protected])
|
||||
'@radix-ui/react-context': 1.0.1(@types/[email protected])([email protected])
|
||||
'@radix-ui/react-dismissable-layer': 1.0.5(@types/[email protected])(@types/[email protected])([email protected])([email protected])
|
||||
'@radix-ui/react-popper': 1.1.3(@types/[email protected])(@types/[email protected])([email protected])([email protected])
|
||||
'@radix-ui/react-portal': 1.0.4(@types/[email protected])(@types/[email protected])([email protected])([email protected])
|
||||
'@radix-ui/react-presence': 1.0.1(@types/[email protected])(@types/[email protected])([email protected])([email protected])
|
||||
'@radix-ui/react-primitive': 1.0.3(@types/[email protected])(@types/[email protected])([email protected])([email protected])
|
||||
'@radix-ui/react-use-controllable-state': 1.0.1(@types/[email protected])([email protected])
|
||||
'@types/react': 18.2.0
|
||||
'@types/react-dom': 18.2.1
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0([email protected])
|
||||
dev: false
|
||||
|
||||
/@radix-ui/[email protected]([email protected]):
|
||||
resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==}
|
||||
peerDependencies:
|
||||
@@ -3458,6 +3493,37 @@ packages:
|
||||
resolution: {integrity: sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==}
|
||||
dev: true
|
||||
|
||||
/@shikijs/[email protected]:
|
||||
resolution: {integrity: sha512-uicyrkx379Q5sxQuGV3kduHPWIAkjxmeA5A4J6syscx8wiEyIV06i/Q6s9GeKLCb857Hi90H8e/FoFSbcjnZsw==}
|
||||
dev: false
|
||||
|
||||
/@shikijs/[email protected]:
|
||||
resolution: {integrity: sha512-b2jjH1HJfQ4zxvUJaxMnubxINngvvOXpZZBlW50aYUaMgVFu5vbIJbkXRF4lYCYOtbCxeLf7FCxDLcUqScH8pA==}
|
||||
dependencies:
|
||||
'@shikijs/transformers': 1.0.0-beta.0
|
||||
'@types/hast': 3.0.3
|
||||
hast-util-to-string: 3.0.0
|
||||
shiki: 1.0.0-beta.0
|
||||
unified: 11.0.4
|
||||
unist-util-visit: 5.0.0
|
||||
dev: false
|
||||
|
||||
/@shikijs/[email protected]:
|
||||
resolution: {integrity: sha512-OvIO6RxQ7YaQhp34uXVKUPZDRdTcGwBgX3zn26haSvqPwrTQcxdPgT47sr4u3sz1+RwN3RO9AGxCJFRKNpB+Qw==}
|
||||
dependencies:
|
||||
shiki: 1.0.0-beta.0
|
||||
dev: false
|
||||
|
||||
/@shikijs/[email protected]([email protected]):
|
||||
resolution: {integrity: sha512-zil9WA4aCs2yJ+1vwt1El8+xp8up9ikh48ksTl7Un8/+dHDAVKjkRD20W+G071cl7NOEEWEynnIMkqqVITNlfA==}
|
||||
dependencies:
|
||||
'@shikijs/core': 1.0.0-beta.0
|
||||
twoslash: 0.1.0([email protected])
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
/@sinclair/[email protected]:
|
||||
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
|
||||
dev: true
|
||||
@@ -3833,6 +3899,14 @@ packages:
|
||||
eslint-visitor-keys: 3.4.3
|
||||
dev: true
|
||||
|
||||
/@typescript/[email protected]:
|
||||
resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==}
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@ungap/[email protected]:
|
||||
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
||||
|
||||
@@ -9319,17 +9393,6 @@ packages:
|
||||
vfile: 6.0.1
|
||||
dev: false
|
||||
|
||||
/[email protected]:
|
||||
resolution: {integrity: sha512-iLc5d8ZzV7iCCZt6m9+PeNy+dY358SbTpLddf9n78aw08X5kx6+9ympHmN0mjD1HY8aF1UpUFPRMJlB9+fBKKQ==}
|
||||
dependencies:
|
||||
'@types/hast': 3.0.3
|
||||
hast-util-to-string: 3.0.0
|
||||
shikiji: 0.10.0
|
||||
shikiji-transformers: 0.10.0
|
||||
unified: 11.0.4
|
||||
unist-util-visit: 5.0.0
|
||||
dev: false
|
||||
|
||||
/[email protected]:
|
||||
resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==}
|
||||
dependencies:
|
||||
@@ -9673,20 +9736,10 @@ packages:
|
||||
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
|
||||
dev: true
|
||||
|
||||
/shiki[email protected].0:
|
||||
resolution: {integrity: sha512-imG+bvRkuNlZUi2q9tMVfegRRouTpDxMFejpfF/6J+bFX3NDKtlW9T9iIAkBYnw4pcCtSwirW0AvkwlQR4wyxg==}
|
||||
dev: false
|
||||
|
||||
/[email protected]:
|
||||
resolution: {integrity: sha512-x9oYybeF/XOrIc6Mm8G1gU5ezunMxdgD4WwBTKrZ5tAmFFaNIWCjwZENgRt1uR4iMi0+pGH0g9bmrbraSC41nA==}
|
||||
/shiki@1.0.0-beta.0:
|
||||
resolution: {integrity: sha512-CcP0IhEDQ3LWfJC44cfxfId9pjJi9Nephl8DxgrL4tKWprI/oz6deZyL0vB+XWxhTx/1uonzWQKaSQPwKx5dTA==}
|
||||
dependencies:
|
||||
shikiji: 0.10.0
|
||||
dev: false
|
||||
|
||||
/[email protected]:
|
||||
resolution: {integrity: sha512-1dAzIOWbtM7B4Sem5BvE+CEdsebDsRA34SfCxM4qJ4PLgR73ZD92VEtNfbcoZ3xOLSqvtV0J9i4WpCgVsmQteg==}
|
||||
dependencies:
|
||||
shikiji-core: 0.10.0
|
||||
'@shikijs/core': 1.0.0-beta.0
|
||||
dev: false
|
||||
|
||||
/[email protected]:
|
||||
@@ -10428,6 +10481,17 @@ packages:
|
||||
turbo-windows-arm64: 1.11.3
|
||||
dev: true
|
||||
|
||||
/[email protected]([email protected]):
|
||||
resolution: {integrity: sha512-zvDn23/FwNdi/i2xMTTDcn7xnX4iKlp6tJt68aD86zRqesQrb/HOnMBtaUu6+vme4gtlX9ScEfKYog1+7IPKSw==}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
dependencies:
|
||||
'@typescript/vfs': 1.5.0
|
||||
typescript: 5.3.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/[email protected]:
|
||||
resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==}
|
||||
|
||||
@@ -10528,7 +10592,6 @@ packages:
|
||||
resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/[email protected]:
|
||||
resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
|
||||
|
||||
Reference in New Issue
Block a user