v61:笔记补齐成熟软件的块(Markdown 引擎加表格与任务清单,命令表扩全)
用户反馈:「笔记应该增加更多的块:段落、清单、图片、代码……去查成熟笔记
软件都分哪些块,我们都应该支持。」
对照 Notion / flomo / 思源 / Logseq 的块清单逐项核对(块类型仍只有
段落/图片两种——v29 用户拍板"清单并入 Markdown"),补齐的是
**Markdown 引擎与编辑器到 GFM 关键子集**:
app/Markdown.php
- GFM 表格:表头+分隔行两行联合识别(正文里有竖线不会误判成表格);
`:---`/`---:`/`:-:` 左右中对齐;列数向表头看齐(多丢少补,格子不错位);
单元格走 inline()(先 htmlspecialchars,`<script>` 只会被画成字面文本);
段落收集遇到"紧跟正文的表格"会断开(GFM 不强制空行)
- GFM 任务清单:`- [ ]`/`- [x]` 渲染成**只读**勾选框(笔记不是任务系统,
能点却不保存是假交互;要勾就改源码里的 x)
- 摘要清洗:表格分隔行/竖线/任务方括号不进列表卡片
assets/js/note_editor.js
- 命令表补齐:H1/H2/H3、有序列表、待办清单、删除线、行内代码、表格模板、
分割线(工具条与斜线菜单仍是同一份表)
- 🔴 修真 no-op:v29 的"逐行套"写着逐行实际原样返回,选中三行点列表只给
第一行挂前缀;现在行首记号型命令逐行套(空行跳过)
- 表格模板光标落在第一行数据的第一格,插完可直接打字
templates/notes/form.php:工具条 8→14 键(高频);全部命令斜线 `/` 可调
assets/css/app.css:.md-table / .md-task 样式(跟主题变量,不写死色)
刻意不做:代码语法高亮(引库=几 MB,用户当年已拍板轻量)、折叠块
(与"逐段编辑"打架,flomo 也没有)、页内子页/数据库(家书没有那个形态)。
验证:_fb_v61_ui.py 真机 30/0(含 XSS 夹具、紧跟正文断段、实时预览同源、
逐段编辑接口、v28 老语法零回退、历史 list 块不丢);
_b61_falsify.py 8 处注入 8/8 全红在预期断言;回归 b29 38/0、v55 30/0、v60 28/0。
This commit is contained in:
@@ -290,15 +290,27 @@ $imgParts = static function (string $c): array {
|
||||
|
||||
<?php /* 🔴 v29 第 7 条:**工具条**(点一下插到光标处)+ 斜线命令提示。
|
||||
工具条按钮与斜线菜单是**同一份命令表**(见 note_editor.js 的 CMDS),
|
||||
避免"按钮能插、斜线插不了"这种两套实现。 */ ?>
|
||||
避免"按钮能插、斜线插不了"这种两套实现。
|
||||
🔴 v61(用户 2026-10-18):按成熟软件的块清单补齐 ——
|
||||
标题一/二/三、有序列表、待办清单、删除线、行内代码、表格、分割线。
|
||||
工具条只摆**高频**的;全部命令(含标题三、行内代码)斜线 `/` 都能调出。 */ ?>
|
||||
<div class="note-cmdbar" data-cmdbar>
|
||||
<button type="button" class="cmd" data-cmd="b" title="粗体 **文字**"><b>B</b></button>
|
||||
<button type="button" class="cmd" data-cmd="i" title="斜体 *文字*"><i>I</i></button>
|
||||
<button type="button" class="cmd" data-cmd="s" title="删除线 ~~文字~~"><s>S</s></button>
|
||||
<span class="cmd-sep"></span>
|
||||
<button type="button" class="cmd" data-cmd="h2" title="小标题 ## 文字">H</button>
|
||||
<button type="button" class="cmd" data-cmd="ul" title="列表 - 项目">≡</button>
|
||||
<button type="button" class="cmd" data-cmd="h1" title="标题一 # 文字">H1</button>
|
||||
<button type="button" class="cmd" data-cmd="h2" title="标题二 ## 文字">H2</button>
|
||||
<button type="button" class="cmd" data-cmd="h3" title="标题三 ### 文字(全部命令见斜线)">H3</button>
|
||||
<span class="cmd-sep"></span>
|
||||
<button type="button" class="cmd" data-cmd="ul" title="无序列表 - 项目">≡</button>
|
||||
<button type="button" class="cmd" data-cmd="ol" title="有序列表 1. 项目">1.</button>
|
||||
<button type="button" class="cmd" data-cmd="todo" title="待办清单 - [ ] 项目">☑</button>
|
||||
<button type="button" class="cmd" data-cmd="quote" title="引用 > 文字">❝</button>
|
||||
<button type="button" class="cmd" data-cmd="code" title="代码 ```"></></button>
|
||||
<span class="cmd-sep"></span>
|
||||
<button type="button" class="cmd" data-cmd="code" title="代码块 ```"></></button>
|
||||
<button type="button" class="cmd" data-cmd="table" title="表格 | 列 | 列 |">▦</button>
|
||||
<button type="button" class="cmd" data-cmd="hr" title="分割线 ---">—</button>
|
||||
<button type="button" class="cmd" data-cmd="link" title="链接 [文字](地址)">🔗</button>
|
||||
<span class="cmd-sep"></span>
|
||||
<span class="small muted">行首打 <code>/</code> 也能选命令</span>
|
||||
|
||||
Reference in New Issue
Block a user