v27 个人笔记模块:分块(段落/图片/清单)+ 单层多标签 + 默认私有可共享
参考 flomo(时间流卡片 + 标签即筛)、Obsidian(图文混排的直觉)、
思源(「块」的粒度),但刻意只取轻的那一层:
- 分块只做 text / image / list 三种,可增删、可上下移;不做块引用 / 块 ID 双链
- 标签单层、多对多,只存字符串(**不建标签表**)——改名/合并这类重型能力一律不做
- 不做富文本工具栏、不做 Markdown 预览、不做拖拽排序(只有 ↑↓ 按钮)
- 可见性默认**私有**,单条可勾「共享给全家」;共享出去只给别人看,不给别人改
落地:
- 新增 app/Note.php(块清洗、标签归一、可见性、认领草稿附件)
- 新增 3 张表 notes / note_blocks / note_tags;Schema VERSION 26→27
- 🔴 attachments.target_type 是 ENUM:加 'note' 必须同时改建表串 +
新增 widenAttachTargetEnum()(老库不做这一步,传笔记图片会被严格模式拒掉)
- 路由 5 条:notes / notes/form / notes/save / notes/destroy / notes/upload
- 模板 templates/notes/index.php(列表)+ form.php(分块编辑)
- JS assets/js/note_editor.js(按需加载,同 person_picker 那套)
- 编辑器状态放 DOM 而非 JS 数组:移动块时用户已输入的内容一字不丢
This commit is contained in:
+4
-1
@@ -51,6 +51,9 @@ final class Module
|
||||
// 用户原话:「增加一下个人导航的这个模块就放在读书的后面,每个用户都可以
|
||||
// 添加自己的导航,所有的功能模块就完全照搬原来的导航的那个系统」。
|
||||
'nav' => ['导航', '#3E7A9E', 'nav'],
|
||||
// v27 用户 2026-10-07:个人笔记(参考 flomo / Obsidian / 思源,轻量分块 + 标签)。
|
||||
// 放在**导航后面**(末尾)—— 它是"随手记",不该抢日常入口的位置。
|
||||
'notes' => ['笔记', '#7A6A4F', 'notes'],
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -61,7 +64,7 @@ final class Module
|
||||
* 只是不再占顶栏的位置。
|
||||
*/
|
||||
public const DEFAULT_NAV = ['home', 'people', 'movies', 'trips', 'calendar', 'resources',
|
||||
'tasks', 'days', 'ledger', 'books', 'nav'];
|
||||
'tasks', 'days', 'ledger', 'books', 'nav', 'notes'];
|
||||
|
||||
/** 已经做过「家谱撤出导航条」这件事的人,记一个标记(只做一次,之后用户勾回来就尊重他) */
|
||||
private const NAV_KIN_OFF_FLAG = 'nav_kin_off_v24';
|
||||
|
||||
Reference in New Issue
Block a user