- 创建文章功能坏掉了 文章数统计
- 修复 protected 页面更新问题
- prose 样式抽出,不要封装在 post 组件内,单独抽一个 prose 组件
- 编辑器添加 beforeUnload 事件监听器,todo:还需要判断下事件来源,可能是表单提交
- 做一个 iframe 组件❌,没必要,直接写 jsx 就行
- 做一个 card 组件
- 写作:关于 adomptions 的实现,nextra 称为 callout https://nextra.site/docs/guide/built-ins/callout;要不用 message 组件吧 https://shurikenui.com/docs/reference/react/components/message#type
- 调整 task-list 样式
- 导航栏资源 dropdown 的内容动态化、设置缓存。资源列表添加 lucide icon
- 支持 mermaid https://nextra.site/docs/guide/advanced/mermaid
文章内容
- 做一个 iframe 组件
- admonitions https://github.com/elviswolcott/remark-admonitions ❌ 应使用 remark-directive 提示块(也称为“警告块”或“信息块”)并不是标准的 Markdown 元素,而是 Docusaurus 特有的扩展功能。它们通常用于提供额外的信息、警告或提示,帮助用户更好地理解文档内容。note 、caution、tip、info 等 todo: 样式参考 nextra?
- 打印友好,打印时只打印必要的信息,去掉导航栏等 √
- lightbox 组件 https://github.com/huayemao/dors/issues/51 √
- 时间线组件 参考 nextra https://nextra.site/docs/guide/built-ins/steps
- 支持展示原 markdown 标记√
- 文章排版:
- 移动端加粗字体显示问题
- 移动端表格全宽问题 √
- 代码块颜色问题 √
- h4、h5 区分度
- 代码块样式优化,参考 https://gemini.vercel.ai/ 、https://github.com/vercel-labs/gemini-chatbot/blob/main/components/ui/codeblock.tsx √
文章编辑器
- 支持切换文章
- 类型、分类、重置时间收进 dropdown 里
- 工具栏使用 sticky 定位
- 设置组件放到 modal 中渲染
- 支持客户端暂存
- 用户体验汇编
- 工具栏太拥挤:
- 表单项还是用 state 来表示吧,settings modal 里的内容一并添加到表单项。
- 保存按钮放到最底部,参考 https://tairo.cssninja.io/layouts/form-6
- 保存按钮的 loading 状态
- 摘要支持 autogrow
- 把重置时间按钮收纳起来(挪到设置中?或者通过 dropdown 收纳,dropdown 能否定制元素?)
- 上传文件√
- 编辑时预览文件列表,在编辑时直接复制 markdown 标记
- 上传后支持复制文件地址
- 上传文件组件用 Modal √
- 支持修改文件名
- 支持保留上次修改时间 √
- 插入常用 unicode 字符√
文章管理
- 文章管理首页、删除文章等
- 封面图片如果是 svg,不要去处理
- 文章创建、编辑页面样式优化:参考 vercel/platforms √
- 修复封面图片被多次修改的 bug √
- 文章 revalidate √
- 封面支持即时更新 √
- TOC
- 文章支持摘要 ✓
- 文章私密模式✓
- 文章封面支持自定义:默认使用文章中第一张图片,否则使用网络图片,另外支持自定义✓
- 文章创建、编辑页面支持创建标签
- 文章离线存储
- 支持修改置顶文章
标签管理
- 文章中的标签支持点击跳转 √
- 修改标签
- 标签支持树形关系
文件管理
- 下载按钮
- popover 展示引用文章
- 复制 markdown 到剪贴板
- 支持分页
- 支持通过 share target 上传
- 上传后进入页面:1. 复制链接 2. 选择文章进入编辑器页面,以向文章追加图片
- 文件动态添加到 serviceWorker 缓存
projects
小记
- 小记(notes)概要设计
- 模型:使用 post,一个小记合集(collection) 是一个特殊的 post,规定类型为 "note"。
- 数据流: 创建:打开小记功能,支持本地存储或云端存储两种存储方式,云端存储的小记设有特殊标识,进入默认小记合集列表,可切换小记。 url:由于小记合集是文章,对外支持作为文章访问,或对内访问。布局上沿用各自布局。
访问:云端存储的小记支持从链接访问:访问/posts/[id] 使用服务端渲染沿用文章页面布局(数据已经加载),(不允许编辑)。 notes/[id] 允许编辑,进入单页页面,客户端渲染,此时会从 local 读 collectionId,加逻辑:如果读不到,异步从 api 读;读完同步本地? 4. 本地新增 item 后数据新于服务器,此时可点击按钮同步,上传服务器。 5. 本地打开 collection 时异步读一次服务器(通过远程标志当前集合是否远程,凡是有云的,都要拉取 更新后 revalidate api?),如果发现云端数据更新(利用updateTime),提升有更新内容,可选择覆盖或者抛弃。
- 每次保存一个项目,存 local
- 多加一个按钮,将整个 collection 同步到云。
- cache 的函数把参数放进来?
- 如果本地写了一篇帖子想要上云怎么办
题目管理
- [x]支持 pwa shortcut 进入
- 样式优化 https://xpulse.cssninja.io/content-course-details/
- 支持存文件大小等元信息
杂项
- 支持将某些分类单独挂到导航栏
- 文章筛选组件
- 文章选择器
- 文章分页组件优化
- 低代码表单组件
- 完善后台管理页面布局框架
- 优化管理页操作按钮样式
- 搜索功能:不需要搜索引擎,参考 strapi 的实现
- 修复标签管理中的标签没有实时更新的问题
- 工作区?
- https://nextjs.org/docs/messages/deopted-into-client-rendering √
refactor
- 文章 meta 应该用 hgroup 标签
评论
- 客户端异步请求加载(先用 github issue 代替吧)或者
- 先用 语雀 代替 √