mirror of
https://github.com/Afilmory/afilmory
synced 2026-02-01 22:48:17 +00:00
chore: adjust docs and add cjk font
- Created a new documentation site under `apps/docs` using Vite, React, and MDX. - Added essential files including `index.html`, `package.json`, and various configuration files. - Implemented a file-system based routing system with automatic route generation from markdown files. - Included support for syntax highlighting, responsive design, and TypeScript. - Established a structure for documentation content with initial deployment guides and storage provider information. Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
title: Cloudflare Pages
|
||||
description: Guide to deploying Afilmory via Cloudflare Pages.
|
||||
createdAt: 2025-07-20T22:35:03+08:00
|
||||
lastModified: 2025-08-08T17:39:40+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Cloudflare Pages Deployment
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Docker
|
||||
description: Guide to deploying Afilmory via Docker.
|
||||
createdAt: 2025-07-20T22:35:03+08:00
|
||||
lastModified: 2025-11-14T00:23:27+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Docker Deployment
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Github Action
|
||||
description: Guide to deploying Afilmory via Github Action.
|
||||
createdAt: 2025-07-20T22:35:03+08:00
|
||||
lastModified: 2025-08-08T17:39:40+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Github Action Deployment
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Github Pages
|
||||
description: Guide to deploying Afilmory via Github Pages.
|
||||
createdAt: 2025-07-20T22:35:03+08:00
|
||||
lastModified: 2025-08-08T17:39:40+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Github Pages Deployment
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Deployment
|
||||
description: Guide to deploying Afilmory in production environments, including Docker and configuration options.
|
||||
createdAt: 2025-07-20T22:35:03+08:00
|
||||
lastModified: 2025-08-08T08:28:42.778+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Deployment
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Vercel
|
||||
description: Guide to deploying Afilmory via Vercel.
|
||||
createdAt: 2025-07-20T22:35:03+08:00
|
||||
lastModified: 2025-08-08T17:39:40+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Vercel Deployment
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Docs site
|
||||
description: Docs site introduction and contribution guide
|
||||
createdAt: 2025-09-11T17:05:55+08:00
|
||||
lastModified: 2025-09-11T17:10:35+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Afilmory Docs Site
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Overview
|
||||
createdAt: 2025-07-20T22:35:03+08:00
|
||||
lastModified: 2025-11-10T22:36:14+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Overview
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Storage providers
|
||||
description: Afilmory can work with multiple storage providers, including S3, Git, Eagle, and local file system
|
||||
createdAt: 2025-08-12T15:09:08+08:00
|
||||
lastModified: 2025-11-01T19:31:16+08:00
|
||||
lastModified: 2025-11-14T21:52:55+08:00
|
||||
---
|
||||
|
||||
# Storage Providers
|
||||
@@ -41,9 +41,7 @@ function extractTextFromNode(node: any): string {
|
||||
}
|
||||
|
||||
if (node.children && Array.isArray(node.children)) {
|
||||
return node.children
|
||||
.map((element: any) => extractTextFromNode(element))
|
||||
.join('')
|
||||
return node.children.map((element: any) => extractTextFromNode(element)).join('')
|
||||
}
|
||||
|
||||
return ''
|
||||
@@ -78,11 +76,7 @@ interface RemarkHeadingOptions {
|
||||
* @param options 配置选项
|
||||
*/
|
||||
const remarkHeading: Plugin<[RemarkHeadingOptions?], Root> = (options = {}) => {
|
||||
const {
|
||||
overrideExisting = false,
|
||||
prefix = '',
|
||||
generateId = generateHeadingId,
|
||||
} = options
|
||||
const { overrideExisting = false, prefix = '', generateId = generateHeadingId } = options
|
||||
|
||||
return (tree: Root) => {
|
||||
// 用于跟踪已使用的 ID,避免重复
|
||||
@@ -98,9 +92,7 @@ const remarkHeading: Plugin<[RemarkHeadingOptions?], Root> = (options = {}) => {
|
||||
}
|
||||
|
||||
// 提取标题文本
|
||||
const text = node.children
|
||||
.map((element: any) => extractTextFromNode(element))
|
||||
.join('')
|
||||
const text = node.children.map((element: any) => extractTextFromNode(element)).join('')
|
||||
|
||||
if (!text.trim()) {
|
||||
return // 跳过空标题
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
BIN
be/apps/core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf
Executable file
BIN
be/apps/core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf
Executable file
Binary file not shown.
@@ -11,6 +11,7 @@ import { injectable } from 'tsyringe'
|
||||
|
||||
import { ManifestService } from '../manifest/manifest.service'
|
||||
import geistFontUrl from './assets/Geist-Medium.ttf?url'
|
||||
import harmonySansScMediumFontUrl from './assets/HarmonyOS_Sans_SC_Medium.ttf?url'
|
||||
import { renderOgImage } from './og.renderer'
|
||||
import type { ExifInfo, PhotoDimensions } from './og.template'
|
||||
|
||||
@@ -34,6 +35,18 @@ if (__DEV__) {
|
||||
)
|
||||
}
|
||||
|
||||
const HarmonySansScMediumFontCandidates = [
|
||||
resolve(process.cwd(), `./${harmonySansScMediumFontUrl}`),
|
||||
resolve(process.cwd(), `./dist/${harmonySansScMediumFontUrl}`),
|
||||
]
|
||||
|
||||
if (__DEV__) {
|
||||
HarmonySansScMediumFontCandidates.push(
|
||||
resolve(process.cwd(), `./be/apps/core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf`),
|
||||
resolve(process.cwd(), `./apps/core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf`),
|
||||
resolve(process.cwd(), `./core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf`),
|
||||
)
|
||||
}
|
||||
@injectable()
|
||||
export class OgService implements OnModuleDestroy {
|
||||
private fontConfig: SatoriOptions['fonts'] | null = null
|
||||
@@ -90,7 +103,7 @@ export class OgService implements OnModuleDestroy {
|
||||
}
|
||||
|
||||
private geistFontPromise: Promise<NonSharedBuffer> | null = null
|
||||
|
||||
private harmonySansScMediumFontPromise: Promise<NonSharedBuffer> | null = null
|
||||
async loadFonts() {
|
||||
if (!this.geistFontPromise) {
|
||||
for (const candidate of GeistFontCandidates) {
|
||||
@@ -104,6 +117,18 @@ export class OgService implements OnModuleDestroy {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.harmonySansScMediumFontPromise) {
|
||||
for (const candidate of HarmonySansScMediumFontCandidates) {
|
||||
const stats = await stat(candidate).catch(() => null)
|
||||
if (!stats) {
|
||||
continue
|
||||
}
|
||||
if (stats.isFile()) {
|
||||
this.harmonySansScMediumFontPromise = readFile(candidate)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
this.resetFontCleanupTimer()
|
||||
}
|
||||
|
||||
@@ -117,12 +142,12 @@ export class OgService implements OnModuleDestroy {
|
||||
style: 'normal',
|
||||
weight: 400,
|
||||
},
|
||||
// {
|
||||
// name: '狮尾咏腿黑体',
|
||||
// data: await this.cjkFontPromise!,
|
||||
// style: 'normal',
|
||||
// weight: 400,
|
||||
// },
|
||||
{
|
||||
name: 'HarmonyOS Sans SC',
|
||||
data: await this.harmonySansScMediumFontPromise!,
|
||||
style: 'normal',
|
||||
weight: 400,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
@@ -133,8 +158,8 @@ export class OgService implements OnModuleDestroy {
|
||||
// Clean font promises 10 minutes after last activity
|
||||
this.fontCleanupTimer = setTimeout(
|
||||
() => {
|
||||
// this.cjkFontPromise = null
|
||||
this.geistFontPromise = null
|
||||
this.harmonySansScMediumFontPromise = null
|
||||
this.fontConfig = null
|
||||
this.fontCleanupTimer = null
|
||||
},
|
||||
|
||||
@@ -30,6 +30,7 @@ type LayoutType = 'portrait' | 'square' | 'landscape' | 'wide'
|
||||
|
||||
interface LayoutConfig {
|
||||
type: LayoutType
|
||||
arrangement: 'split' | 'stack' | 'wide'
|
||||
padding: number
|
||||
gap: number
|
||||
photoBox: { maxWidth: number; maxHeight: number }
|
||||
@@ -78,7 +79,8 @@ export function OgTemplate({
|
||||
/>
|
||||
)
|
||||
|
||||
const layoutComponent = layout.type === 'wide' ? WideLayout : layout.type === 'landscape' ? StackLayout : SplitLayout
|
||||
const layoutComponent =
|
||||
layout.arrangement === 'wide' ? WideLayout : layout.arrangement === 'stack' ? StackLayout : SplitLayout
|
||||
|
||||
return (
|
||||
<BaseCanvas padding={layout.padding} siteName={siteName}>
|
||||
@@ -87,6 +89,8 @@ export function OgTemplate({
|
||||
)
|
||||
}
|
||||
|
||||
const ogAspect = CANVAS.width / CANVAS.height
|
||||
|
||||
function determineLayout(aspect: number): LayoutConfig {
|
||||
let finalAspect = aspect
|
||||
if (!Number.isFinite(finalAspect) || finalAspect <= 0) {
|
||||
@@ -97,6 +101,7 @@ function determineLayout(aspect: number): LayoutConfig {
|
||||
const padding = 60
|
||||
return {
|
||||
type: 'portrait',
|
||||
arrangement: 'split',
|
||||
padding,
|
||||
gap: 44,
|
||||
photoBox: {
|
||||
@@ -112,6 +117,7 @@ function determineLayout(aspect: number): LayoutConfig {
|
||||
const padding = 60
|
||||
return {
|
||||
type: 'square',
|
||||
arrangement: 'split',
|
||||
padding,
|
||||
gap: 44,
|
||||
photoBox: {
|
||||
@@ -127,6 +133,7 @@ function determineLayout(aspect: number): LayoutConfig {
|
||||
const padding = 50
|
||||
return {
|
||||
type: 'wide',
|
||||
arrangement: 'wide',
|
||||
padding,
|
||||
gap: 28,
|
||||
photoBox: {
|
||||
@@ -139,8 +146,11 @@ function determineLayout(aspect: number): LayoutConfig {
|
||||
}
|
||||
|
||||
const padding = 54
|
||||
const landscapeArrangement = finalAspect / ogAspect <= 0.82 ? 'split' : 'stack'
|
||||
|
||||
return {
|
||||
type: 'landscape',
|
||||
arrangement: landscapeArrangement,
|
||||
padding,
|
||||
gap: 26,
|
||||
photoBox: {
|
||||
@@ -186,7 +196,7 @@ function BaseCanvas({ padding, siteName, children }: BaseCanvasProps) {
|
||||
padding: `${padding}px`,
|
||||
position: 'relative',
|
||||
background: 'linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 50%, #0f0f0f 100%)',
|
||||
fontFamily: 'Geist, system-ui, -apple-system, sans-serif',
|
||||
fontFamily: 'Geist, HarmonyOS Sans SC, system-ui, -apple-system, sans-serif',
|
||||
display: 'flex',
|
||||
}}
|
||||
>
|
||||
@@ -437,6 +447,8 @@ function InfoPanel({ title, tags, exifItems, camera, formattedDate, accentColor,
|
||||
<div
|
||||
key={tag}
|
||||
style={{
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
fontSize: `${13 * fontScale}px`,
|
||||
color: 'rgba(255,255,255,0.9)',
|
||||
backgroundColor: 'rgba(255,255,255,0.12)',
|
||||
@@ -510,6 +522,7 @@ function InfoPanel({ title, tags, exifItems, camera, formattedDate, accentColor,
|
||||
color: 'rgba(255,255,255,0.45)',
|
||||
fontSize: `${13 * fontScale}px`,
|
||||
marginTop: compact ? '2px' : '6px',
|
||||
display: 'flex',
|
||||
}}
|
||||
>
|
||||
{formattedDate}
|
||||
|
||||
350
pnpm-lock.yaml
generated
350
pnpm-lock.yaml
generated
@@ -148,6 +148,151 @@ importers:
|
||||
specifier: 5.1.4
|
||||
version: 5.1.4(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
|
||||
|
||||
apps/docs:
|
||||
dependencies:
|
||||
'@mdx-js/react':
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1(@types/react@19.2.3)(react@19.2.0)
|
||||
'@mdx-js/rollup':
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1(rollup@4.53.2)
|
||||
'@pastel-palette/colors':
|
||||
specifier: 1.0.0-canary.3
|
||||
version: 1.0.0-canary.3
|
||||
'@pastel-palette/tailwindcss':
|
||||
specifier: 1.0.0-canary.3
|
||||
version: 1.0.0-canary.3
|
||||
'@radix-ui/react-context-menu':
|
||||
specifier: 2.2.16
|
||||
version: 2.2.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
'@radix-ui/react-scroll-area':
|
||||
specifier: 1.2.10
|
||||
version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
'@tailwindcss/vite':
|
||||
specifier: 4.1.17
|
||||
version: 4.1.17(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
|
||||
'@types/mdast':
|
||||
specifier: ^4.0.4
|
||||
version: 4.0.4
|
||||
lucide-react:
|
||||
specifier: ^0.553.0
|
||||
version: 0.553.0(react@19.2.0)
|
||||
mdast:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0
|
||||
motion:
|
||||
specifier: 12.23.24
|
||||
version: 12.23.24(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
next-themes:
|
||||
specifier: ^0.4.6
|
||||
version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
react:
|
||||
specifier: ^19.2.0
|
||||
version: 19.2.0
|
||||
react-dom:
|
||||
specifier: ^19.2.0
|
||||
version: 19.2.0(react@19.2.0)
|
||||
remark-frontmatter:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
remark-gfm:
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1
|
||||
remark-mdx:
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1
|
||||
remark-parse:
|
||||
specifier: ^11.0.0
|
||||
version: 11.0.0
|
||||
tailwind-scrollbar-hide:
|
||||
specifier: ^4.0.0
|
||||
version: 4.0.0(tailwindcss@4.1.17)
|
||||
unified:
|
||||
specifier: ^11.0.5
|
||||
version: 11.0.5
|
||||
unist-util-visit:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
devDependencies:
|
||||
'@eslint/js':
|
||||
specifier: ^9.39.1
|
||||
version: 9.39.1
|
||||
'@shikijs/rehype':
|
||||
specifier: ^3.15.0
|
||||
version: 3.15.0
|
||||
'@tailwindcss/postcss':
|
||||
specifier: 'catalog:'
|
||||
version: 4.1.17
|
||||
'@tailwindcss/typography':
|
||||
specifier: 'catalog:'
|
||||
version: 0.5.19(tailwindcss@4.1.17)
|
||||
'@types/glob':
|
||||
specifier: ^9.0.0
|
||||
version: 9.0.0
|
||||
'@types/mdx':
|
||||
specifier: ^2.0.13
|
||||
version: 2.0.13
|
||||
'@types/react':
|
||||
specifier: ^19.2.3
|
||||
version: 19.2.3
|
||||
'@types/react-dom':
|
||||
specifier: ^19.2.3
|
||||
version: 19.2.3(@types/react@19.2.3)
|
||||
'@types/remark-heading-id':
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
'@vitejs/plugin-react':
|
||||
specifier: ^5.1.1
|
||||
version: 5.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
|
||||
code-inspector-plugin:
|
||||
specifier: 1.2.10
|
||||
version: 1.2.10
|
||||
eslint:
|
||||
specifier: ^9.39.1
|
||||
version: 9.39.1(jiti@2.6.1)
|
||||
eslint-plugin-react-hooks:
|
||||
specifier: ^7.0.1
|
||||
version: 7.0.1(eslint@9.39.1(jiti@2.6.1))
|
||||
eslint-plugin-react-refresh:
|
||||
specifier: ^0.4.24
|
||||
version: 0.4.24(eslint@9.39.1(jiti@2.6.1))
|
||||
glob:
|
||||
specifier: ^11.0.3
|
||||
version: 11.0.3
|
||||
globals:
|
||||
specifier: ^16.5.0
|
||||
version: 16.5.0
|
||||
shiki:
|
||||
specifier: ^3.15.0
|
||||
version: 3.15.0
|
||||
tailwind-scrollbar:
|
||||
specifier: 'catalog:'
|
||||
version: 4.0.2(react@19.2.0)(tailwindcss@4.1.17)
|
||||
tailwindcss:
|
||||
specifier: 'catalog:'
|
||||
version: 4.1.17
|
||||
tailwindcss-animate:
|
||||
specifier: 'catalog:'
|
||||
version: 1.0.7(tailwindcss@4.1.17)
|
||||
tailwindcss-safe-area:
|
||||
specifier: 'catalog:'
|
||||
version: 1.1.0(tailwindcss@4.1.17)
|
||||
tailwindcss-uikit-colors:
|
||||
specifier: 'catalog:'
|
||||
version: 1.0.0
|
||||
tsx:
|
||||
specifier: ^4.20.6
|
||||
version: 4.20.6
|
||||
typescript:
|
||||
specifier: ~5.9.3
|
||||
version: 5.9.3
|
||||
typescript-eslint:
|
||||
specifier: ^8.46.4
|
||||
version: 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
vite:
|
||||
specifier: ^7.2.2
|
||||
version: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1)
|
||||
|
||||
apps/landing:
|
||||
dependencies:
|
||||
'@floating-ui/react-dom':
|
||||
@@ -1252,151 +1397,6 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../builder
|
||||
|
||||
packages/docs:
|
||||
dependencies:
|
||||
'@mdx-js/react':
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1(@types/react@19.2.3)(react@19.2.0)
|
||||
'@mdx-js/rollup':
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1(rollup@4.53.2)
|
||||
'@pastel-palette/colors':
|
||||
specifier: 1.0.0-canary.3
|
||||
version: 1.0.0-canary.3
|
||||
'@pastel-palette/tailwindcss':
|
||||
specifier: 1.0.0-canary.3
|
||||
version: 1.0.0-canary.3
|
||||
'@radix-ui/react-context-menu':
|
||||
specifier: 2.2.16
|
||||
version: 2.2.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
'@radix-ui/react-scroll-area':
|
||||
specifier: 1.2.10
|
||||
version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
'@tailwindcss/vite':
|
||||
specifier: 4.1.17
|
||||
version: 4.1.17(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
|
||||
'@types/mdast':
|
||||
specifier: ^4.0.4
|
||||
version: 4.0.4
|
||||
lucide-react:
|
||||
specifier: ^0.553.0
|
||||
version: 0.553.0(react@19.2.0)
|
||||
mdast:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0
|
||||
motion:
|
||||
specifier: 12.23.24
|
||||
version: 12.23.24(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
next-themes:
|
||||
specifier: ^0.4.6
|
||||
version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
|
||||
react:
|
||||
specifier: ^19.2.0
|
||||
version: 19.2.0
|
||||
react-dom:
|
||||
specifier: ^19.2.0
|
||||
version: 19.2.0(react@19.2.0)
|
||||
remark-frontmatter:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
remark-gfm:
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1
|
||||
remark-mdx:
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1
|
||||
remark-parse:
|
||||
specifier: ^11.0.0
|
||||
version: 11.0.0
|
||||
tailwind-scrollbar-hide:
|
||||
specifier: ^4.0.0
|
||||
version: 4.0.0(tailwindcss@4.1.17)
|
||||
unified:
|
||||
specifier: ^11.0.5
|
||||
version: 11.0.5
|
||||
unist-util-visit:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
devDependencies:
|
||||
'@eslint/js':
|
||||
specifier: ^9.39.1
|
||||
version: 9.39.1
|
||||
'@shikijs/rehype':
|
||||
specifier: ^3.15.0
|
||||
version: 3.15.0
|
||||
'@tailwindcss/postcss':
|
||||
specifier: 'catalog:'
|
||||
version: 4.1.17
|
||||
'@tailwindcss/typography':
|
||||
specifier: 'catalog:'
|
||||
version: 0.5.19(tailwindcss@4.1.17)
|
||||
'@types/glob':
|
||||
specifier: ^9.0.0
|
||||
version: 9.0.0
|
||||
'@types/mdx':
|
||||
specifier: ^2.0.13
|
||||
version: 2.0.13
|
||||
'@types/react':
|
||||
specifier: ^19.2.3
|
||||
version: 19.2.3
|
||||
'@types/react-dom':
|
||||
specifier: ^19.2.3
|
||||
version: 19.2.3(@types/react@19.2.3)
|
||||
'@types/remark-heading-id':
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
'@vitejs/plugin-react':
|
||||
specifier: ^5.1.1
|
||||
version: 5.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
|
||||
code-inspector-plugin:
|
||||
specifier: 1.2.10
|
||||
version: 1.2.10
|
||||
eslint:
|
||||
specifier: ^9.39.1
|
||||
version: 9.39.1(jiti@2.6.1)
|
||||
eslint-plugin-react-hooks:
|
||||
specifier: ^7.0.1
|
||||
version: 7.0.1(eslint@9.39.1(jiti@2.6.1))
|
||||
eslint-plugin-react-refresh:
|
||||
specifier: ^0.4.24
|
||||
version: 0.4.24(eslint@9.39.1(jiti@2.6.1))
|
||||
glob:
|
||||
specifier: ^11.0.3
|
||||
version: 11.0.3
|
||||
globals:
|
||||
specifier: ^16.5.0
|
||||
version: 16.5.0
|
||||
shiki:
|
||||
specifier: ^3.15.0
|
||||
version: 3.15.0
|
||||
tailwind-scrollbar:
|
||||
specifier: 'catalog:'
|
||||
version: 4.0.2(react@19.2.0)(tailwindcss@4.1.17)
|
||||
tailwindcss:
|
||||
specifier: 'catalog:'
|
||||
version: 4.1.17
|
||||
tailwindcss-animate:
|
||||
specifier: 'catalog:'
|
||||
version: 1.0.7(tailwindcss@4.1.17)
|
||||
tailwindcss-safe-area:
|
||||
specifier: 'catalog:'
|
||||
version: 1.1.0(tailwindcss@4.1.17)
|
||||
tailwindcss-uikit-colors:
|
||||
specifier: 'catalog:'
|
||||
version: 1.0.0
|
||||
tsx:
|
||||
specifier: ^4.20.6
|
||||
version: 4.20.6
|
||||
typescript:
|
||||
specifier: ~5.9.3
|
||||
version: 5.9.3
|
||||
typescript-eslint:
|
||||
specifier: ^8.46.4
|
||||
version: 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
vite:
|
||||
specifier: ^7.2.2
|
||||
version: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1)
|
||||
|
||||
packages/hooks:
|
||||
dependencies:
|
||||
jotai:
|
||||
@@ -11807,9 +11807,6 @@ packages:
|
||||
vfile-location@5.0.3:
|
||||
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
|
||||
|
||||
vfile-message@4.0.2:
|
||||
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
|
||||
|
||||
vfile-message@4.0.3:
|
||||
resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
|
||||
|
||||
@@ -14134,9 +14131,9 @@ snapshots:
|
||||
'@eslint-react/ast@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
|
||||
dependencies:
|
||||
'@eslint-react/eff': 1.53.1
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.4
|
||||
'@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
string-ts: 2.2.1
|
||||
ts-pattern: 5.8.0
|
||||
transitivePeerDependencies:
|
||||
@@ -14151,10 +14148,10 @@ snapshots:
|
||||
'@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/scope-manager': 8.46.4
|
||||
'@typescript-eslint/type-utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.4
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
birecord: 0.1.1
|
||||
ts-pattern: 5.8.0
|
||||
transitivePeerDependencies:
|
||||
@@ -14189,7 +14186,7 @@ snapshots:
|
||||
'@eslint-react/kit@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
|
||||
dependencies:
|
||||
'@eslint-react/eff': 1.53.1
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
ts-pattern: 5.8.0
|
||||
zod: 4.1.12
|
||||
transitivePeerDependencies:
|
||||
@@ -14201,7 +14198,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@eslint-react/eff': 1.53.1
|
||||
'@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
ts-pattern: 5.8.0
|
||||
zod: 4.1.12
|
||||
transitivePeerDependencies:
|
||||
@@ -14213,9 +14210,9 @@ snapshots:
|
||||
dependencies:
|
||||
'@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@eslint-react/eff': 1.53.1
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/scope-manager': 8.46.4
|
||||
'@typescript-eslint/types': 8.46.4
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
string-ts: 2.2.1
|
||||
ts-pattern: 5.8.0
|
||||
transitivePeerDependencies:
|
||||
@@ -17516,8 +17513,8 @@ snapshots:
|
||||
|
||||
'@typescript-eslint/project-service@8.46.2(typescript@5.9.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.4
|
||||
debug: 4.4.3(supports-color@5.5.0)
|
||||
typescript: 5.9.3
|
||||
transitivePeerDependencies:
|
||||
@@ -17661,7 +17658,7 @@ snapshots:
|
||||
|
||||
'@unocss/eslint-plugin@66.5.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@unocss/config': 66.5.1
|
||||
'@unocss/core': 66.5.1
|
||||
'@unocss/rule-utils': 66.5.1
|
||||
@@ -19533,7 +19530,7 @@ snapshots:
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
string-ts: 2.2.1
|
||||
ts-pattern: 5.8.0
|
||||
@@ -19552,7 +19549,7 @@ snapshots:
|
||||
'@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
compare-versions: 6.1.1
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
string-ts: 2.2.1
|
||||
@@ -19578,7 +19575,7 @@ snapshots:
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
string-ts: 2.2.1
|
||||
ts-pattern: 5.8.0
|
||||
@@ -19621,7 +19618,7 @@ snapshots:
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
string-ts: 2.2.1
|
||||
ts-pattern: 5.8.0
|
||||
@@ -19644,7 +19641,7 @@ snapshots:
|
||||
'@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
string-ts: 2.2.1
|
||||
ts-pattern: 5.8.0
|
||||
@@ -19664,7 +19661,7 @@ snapshots:
|
||||
'@typescript-eslint/scope-manager': 8.46.2
|
||||
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/types': 8.46.2
|
||||
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
compare-versions: 6.1.1
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
is-immutable-type: 5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
@@ -19711,7 +19708,7 @@ snapshots:
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
esquery: 1.6.0
|
||||
find-up-simple: 1.0.1
|
||||
globals: 16.4.0
|
||||
globals: 16.5.0
|
||||
indent-string: 5.0.0
|
||||
is-builtin-module: 5.0.0
|
||||
jsesc: 3.1.0
|
||||
@@ -20269,7 +20266,7 @@ snapshots:
|
||||
hast-util-from-parse5: 8.0.3
|
||||
parse5: 7.3.0
|
||||
vfile: 6.0.3
|
||||
vfile-message: 4.0.2
|
||||
vfile-message: 4.0.3
|
||||
|
||||
hast-util-from-parse5@8.0.3:
|
||||
dependencies:
|
||||
@@ -20357,7 +20354,7 @@ snapshots:
|
||||
space-separated-tokens: 2.0.2
|
||||
style-to-js: 1.1.17
|
||||
unist-util-position: 5.0.0
|
||||
vfile-message: 4.0.2
|
||||
vfile-message: 4.0.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -20639,7 +20636,7 @@ snapshots:
|
||||
|
||||
is-immutable-type@5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
'@typescript-eslint/type-utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||
eslint: 9.39.1(jiti@2.6.1)
|
||||
ts-api-utils: 2.1.0(typescript@5.9.3)
|
||||
ts-declaration-location: 1.0.7(typescript@5.9.3)
|
||||
@@ -24465,11 +24462,6 @@ snapshots:
|
||||
'@types/unist': 3.0.3
|
||||
vfile: 6.0.3
|
||||
|
||||
vfile-message@4.0.2:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
unist-util-stringify-position: 4.0.0
|
||||
|
||||
vfile-message@4.0.3:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
@@ -24478,7 +24470,7 @@ snapshots:
|
||||
vfile@6.0.3:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
vfile-message: 4.0.2
|
||||
vfile-message: 4.0.3
|
||||
|
||||
vite-bundle-analyzer@1.2.3: {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user