feat: 实现网页实时预览
This commit is contained in:
@@ -4,17 +4,19 @@
|
||||
|
||||
## 当前状态
|
||||
|
||||
项目处于骨架阶段,已经建立:
|
||||
已经实现:
|
||||
|
||||
- React 前端;
|
||||
- Fastify 后端;
|
||||
- React Markdown 编辑与本地文件读取;
|
||||
- Fastify 预览接口;
|
||||
- 共享导出配置模型;
|
||||
- 版本化主题清单接口;
|
||||
- 动态主题清单、CSS 和静态资源接口;
|
||||
- Markdown、Front Matter、安全过滤和扩展语法渲染核心;
|
||||
- 内置 Typora 风格主题目录;
|
||||
- Docker 与测试目录预留。
|
||||
- 表格、任务列表、脚注、代码高亮、KaTeX 和 Mermaid;
|
||||
- iframe 隔离的 A4 页面预览与主题切换;
|
||||
- 内置 Typora 风格主题,以及仅供本机使用的 Typora 默认主题导入工具;
|
||||
- Docker 与 PDF 渲染目录预留。
|
||||
|
||||
网页预览和 PDF 生成将在后续阶段实现。
|
||||
Chromium PDF 下载、完整导出配置面板和本地资源文件处理将在后续阶段实现。
|
||||
|
||||
## 本地开发
|
||||
|
||||
@@ -31,12 +33,29 @@ npm run dev
|
||||
- 后端:http://localhost:3001
|
||||
- 健康检查:http://localhost:3001/api/health
|
||||
|
||||
## 构建
|
||||
页面支持直接编辑 Markdown,或选择本地 `.md` 文件。文件内容将读取到当前浏览器页面并发送给内网转换服务,不写入数据库。
|
||||
|
||||
## 本地导入 Typora 默认主题
|
||||
|
||||
项目不会打包或提交 Typora 官方默认主题。如本机已安装 Typora,可以将其 GitHub 默认主题复制到 Git 忽略的本地主题目录:
|
||||
|
||||
```powershell
|
||||
npm run theme:import-typora
|
||||
```
|
||||
|
||||
默认读取 `%APPDATA%\Typora\themes`,写入 `.local\themes\typora-github`。启动开发服务后,该主题会出现在预览页面的主题选择器中。导入工具不会覆盖已存在的目标目录;如需重新导入,请先自行确认并移走旧目录。
|
||||
|
||||
本地主题由动态主题注册器加载,CSS 中的相对字体和图片会通过受限资源接口提供。外部 URL、越界路径和符号链接逃逸会被拒绝。
|
||||
|
||||
## 测试与构建
|
||||
|
||||
```powershell
|
||||
npm test
|
||||
npm run typecheck
|
||||
npm run build
|
||||
git diff --check
|
||||
```
|
||||
|
||||
## 隐私原则
|
||||
|
||||
文档和资源文件仅用于当前转换请求。正式实现将为每次请求创建隔离的临时目录,并在成功或失败后统一清理,不接入数据库或文档历史存储。
|
||||
文档和资源文件仅用于当前转换请求。PDF 阶段将为每次请求创建隔离的临时目录,并在成功或失败后统一清理,不接入数据库或文档历史存储。
|
||||
|
||||
Reference in New Issue
Block a user