# calligraphy-partner **Repository Path**: mstedan/calligraphy-partner ## Basic Information - **Project Name**: calligraphy-partner - **Description**: 书法练习伴侣,便捷的诗词,碑帖竖排版。支持自定义扩展 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-04 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Calligraphy Partner (书法搭档) 🖋️ [![React](https://img.shields.io/badge/React-19-blue.svg)](https://reactjs.org/) [![Vite](https://img.shields.io/badge/Vite-7-646CFF.svg)](https://vitejs.dev/) [![TypeScript](https://img.shields.io/badge/TypeScript-5-blue.svg)](https://www.typescriptlang.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) **Calligraphy Partner** 是一个专为书法爱好者和传统文化爱好者设计的诗词竖排展示前端项目。它支持沉浸式的竖版排版阅读,提供丰富的样式配置、简繁转换以及自定义诗词管理功能,旨在为书法临摹和诗词欣赏提供最佳的交互体验。 --- ## ✨ 功能特点 - 📜 **竖排艺术布局**:采用 `writing-mode: vertical-rl` 实现地道的中文竖排美学,支持字数自动换行。 - 🔍 **智能检索导航**:内置《唐诗三百首》、《宋词三百首》,支持按标题、作者或正文快速检索。 - 🔄 **简繁转换**:集成 `OpenCC-js`,一键切换简体与繁体显示。 - ✍️ **自定义诗词**:支持添加、编辑和删除个人收藏或创作的诗词。 - 🎨 **多主题切换**:提供经典(宣纸色)、极简、酷冷等多种视觉主题。 - ⚙️ **个性化渲染**: - 可调节字号、行距、字距。 - 支持隐藏标点、隐藏英文/拼音、括号转方引号等精细排版设置。 - 📝 **注解与历史**:支持查阅诗词注解(Gloss),并自动记录最近访问历史。 - 💾 **本地持久化**:自定义数据与个人设置自动保存至 LocalStorage,支持导出自定义诗词。 --- ## 🛠️ 技术栈 - **核心框架**:[React 19](https://react.dev/) - **构建工具**:[Vite 7](https://vitejs.dev/) - **类型系统**:[TypeScript](https://www.typescriptlang.org/) - **简繁转换**:[OpenCC-js](https://github.com/cmsc/opencc-js) - **图标库**:[Lucide React](https://lucide.dev/) - **样式处理**:原生 CSS (现代化排版特性) --- ## 📂 模块结构 ```text src/ ├── components/ # 核心组件 │ ├── PoetryCard.tsx # 核心渲染组件:处理竖排逻辑与排版设置 │ ├── Sidebar.tsx # 左侧导航树:组织诗词目录 │ ├── SearchBar.tsx # 搜索框组件 │ ├── PoetryEditorModal.tsx # 诗词编辑器弹窗 │ └── SettingsSidebar.tsx # 个性化配置边栏 ├── hooks/ │ └── usePoetryData.ts # 数据钩子:管理静态 JSON 加载与自定义数据 ├── utils/ # 工具函数(简繁转换、持久化、文件下载等) ├── constants/ # 默认配置与常量 └── types.ts # TypeScript 类型定义 public/data/ # 诗词数据库文件 (Tang/Song/Custom) ``` --- ## 🚀 快速开始 ### 前置要求 - [Node.js](https://nodejs.org/) (推荐 LTS 版本) - npm 或 yarn ### 安装与运行 1. **克隆项目** ```bash git clone https://gitee.com/jeasonduan/calligraphy-partner.git cd calligraphy-partner ``` 2. **安装依赖** ```bash npm install ``` 3. **启动开发服务器** ```bash npm run dev ``` 4. **构建部署** ```bash npm run build ``` --- ## 📖 使用指南 1. **浏览与搜索**:使用左侧边栏按分类浏览,或通过顶部搜索框快速定位。 2. **调整样式**:点击右上角设置图标,可以切换主题、调整字体大小或修改简繁显示模式。 3. **管理内容**:通过“自定义”页签添加自己的诗词,支持多段落输入和标签管理。 4. **书法参考**:书法练习时,可勾选“隐藏标点”以获取纯净的文本视图。 --- ## 📄 授权协议 本项目基于 **MIT License** 开源。详情请参阅 [LICENSE](LICENSE) 文件。 --- ## 🙏 鸣谢 - 诗词数据来源:[chinese-poetry](https://github.com/chinese-poetry/chinese-poetry) (部分精选) - 简繁转换技术支持:[OpenCC](https://github.com/BYVoid/OpenCC)