feat: 初始化项目基础架构和核心功能

添加项目基础架构,包括字体管理、文档系统、API路由和UI组件。实现字体预览、收藏、搜索和文档浏览功能。

- 初始化Next.js项目结构和配置
- 添加字体管理API路由和数据库模型
- 实现字体预览和收藏功能
- 添加文档系统支持MDX内容
- 创建核心UI组件库
- 配置Redux状态管理和持久化
- 添加Storybook组件文档
- 实现响应式布局和主题系统
- 添加测试工具和CI配置
- 完善开发环境和构建配置
This commit is contained in:
bo.yu 2025-08-11 18:01:43 +08:00
commit 1caa9448c0
151 changed files with 42721 additions and 0 deletions

106
package.json Normal file
View file

@ -0,0 +1,106 @@
{
"name": "next-windfonts",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"typecheck": "tsc --noEmit",
"lint": "next lint",
"storybook": "storybook dev -p 6006",
"storybook:build": "storybook build"
},
"dependencies": {
"@formkit/auto-animate": "^0.8.2",
"@mantine/core": "7.12.1",
"@mantine/hooks": "7.12.1",
"@mantine/modals": "^7.12.2",
"@mantine/notifications": "^7.12.2",
"@mdx-js/loader": "^3.0.1",
"@mdx-js/react": "^3.0.1",
"@napi-rs/woff-build-darwin-x64": "^0.2.1",
"@next/bundle-analyzer": "^14.2.4",
"@next/mdx": "^14.2.8",
"@reduxjs/toolkit": "^2.2.7",
"@tabler/icons-react": "^3.6.0",
"@tailwindcss/forms": "^0.5.9",
"@tailwindcss/typography": "^0.5.15",
"@types/mdx": "^2.0.13",
"adm-zip": "^0.5.15",
"ali-oss": "^6.21.0",
"contentlayer2": "^0.5.0",
"drizzle-kit": "^0.31.4",
"drizzle-orm": "^0.44.4",
"js-cookie": "^3.0.5",
"jsonfile": "^6.1.0",
"lodash-es": "^4.17.21",
"modern-screenshot": "^4.4.39",
"next": "14.2.4",
"next-compose-plugins": "^2.2.1",
"next-contentlayer2": "^0.5.0",
"pg": "^8.16.3",
"pliny": "^0.3.1",
"postgres": "^3.4.7",
"prism-react-renderer": "^2.4.0",
"react": "18.3.1",
"react-dom": "^18.3.1",
"react-infinite-scroll-component": "^6.1.0",
"react-redux": "^9.1.2",
"react-use": "^17.5.1",
"redux-persist": "^6.0.0",
"redux-persist-cookie-storage": "^1.0.0",
"rehype-autolink-headings": "^7.1.0",
"rehype-citation": "^2.1.1",
"rehype-katex": "^7.0.1",
"rehype-preset-minify": "^7.0.0",
"rehype-pretty-code": "^0.14.0",
"rehype-prism-plus": "^2.0.0",
"rehype-slug": "^6.0.0",
"remark-gfm": "^4.0.0",
"remark-github-blockquote-alert": "^1.2.1",
"remark-math": "^6.0.0",
"wf-cn-font-split": "5.2.6",
"winston": "^3.17.0"
},
"devDependencies": {
"@babel/core": "^7.24.7",
"@next/eslint-plugin-next": "^14.2.4",
"@storybook/addon-essentials": "^8.1.10",
"@storybook/addon-styling-webpack": "^1.0.0",
"@storybook/blocks": "^8.1.10",
"@storybook/nextjs": "^8.1.10",
"@storybook/react": "^8.1.10",
"@types/adm-zip": "^0.5.7",
"@types/ali-oss": "^6.16.11",
"@types/js-cookie": "^3",
"@types/jsonfile": "^6.1.4",
"@types/lodash-es": "^4",
"@types/multer": "^1.4.11",
"@types/node": "^24.2.0",
"@types/pg": "^8.15.5",
"@types/react": "18.3.3",
"@types/react-dom": "^18.3.0",
"@types/winston": "^2.4.4",
"@typescript-eslint/eslint-plugin": "^7.13.1",
"@typescript-eslint/parser": "^7.13.1",
"babel-loader": "^9.1.3",
"eslint": "^8.57.0",
"eslint-config-airbnb": "19.0.4",
"eslint-config-airbnb-typescript": "^18.0.0",
"eslint-config-mantine": "3.2.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.9.0",
"eslint-plugin-react": "^7.34.3",
"eslint-plugin-react-hooks": "^4.6.2",
"node-loader": "^2.1.0",
"postcss": "^8.4.38",
"postcss-preset-mantine": "1.17.0",
"postcss-simple-vars": "^7.0.1",
"sass": "^1.77.8",
"storybook": "^8.1.10",
"storybook-dark-mode": "^4.0.2",
"tailwindcss": "^3.4.10",
"typescript": "5.5.2"
}
}