Important
已将CSS、JS脚本转为插件「siyuan-plugin-callout-enhance」,以实现更全面更稳定的功能。后续不再更新本脚本仓库。
- 参考obsidian callout,优化思源笔记中的callout块(提示块)样式,实现折叠/展开、自定义标题、类型菜单&补全菜单等功能
- 需要同时搭配CSS和JS脚本
- 对应于这个帖子。已大量修改原帖子中的代码,以适配Savor主题
-
20260511:
-
更改
11.css(version 0.0.5):- 修复列表块/非列表块中的callout块的标题输入区域长度不一致问题
-
更改
11.js(version 0.0.9):-
修复修改callout标题后,必须要点击一下标题区域以外的地方才能将修改内容保存的问题
注:现在直接关闭文档/思源,都会自动保存callout标题
-
修复对于嵌套的callout块,修改外层callout标题会导致内层callout的修改无法保存的问题
-
优化callout无正文时,callout标题处回车的操作
注:之前回车后会删除该callout块,然后撤销该删除操作就会触发思源笔记报错block not found,这似乎是因为思源笔记没有提供相关删除API。目前暂时将标题回车操作改成了在callout首行创建新块,不过创建的空行无法撤销
-
优化callout中没有正文但存在多个空行时的回车操作
注:改成了与思源原生callout块一致的逻辑,即存在多空行时,非尾行回车则创建新块,尾行回车则删除行并且光标跳出callout
-
-
-
20260510:
- 更改
11.js(version 0.0.8):- 修复Callout标题文字修改的持久化问题(无论有无Callout正文)
- 修复潜在的代码冗余和问题
- 更改
-
20260510:
- 更改
11.css(version 0.0.4):- 修复列表块中的callout块宽度异常的问题
- 优化callout块的icon+标题的整体位置,并增大callout内正文区域的子块边界与callout边界的距离
- 更改
-
20260430:
- 更改
11.js(version 0.0.7):- 实现切换菜单位置的智能调整
- 优化折叠/展开按钮判断逻辑,避免Asri主题下点击按钮进入标题编辑的情况
- 修复潜在问题
- 更改
22.js(version 0.0.7):- 实现补全菜单位置的智能调整
- 修复潜在问题
- 更改
-
20260428:
- 更改
11.css(version 0.0.3):- 约束callout在flex容器里的拉伸,避免它的展开/折叠高度受到在水平布局超级块中同级块高度的影响
- 更改
11.js(version 0.0.6):- 修复切换Callout类型后,刷新该笔记页又回到原Callout类型的问题
- 优化Asri主题下的切换菜单样式和交互体验,同样适配其他主题
- 更改
22.js(version 0.0.6):- 优化Asri主题下的补全菜单样式和交互体验,同样适配其他主题
- 更改
-
20260424:
- 更改
11.css(version 0.0.2):- 优化callout折叠/展开状态下的标题与icon位置,防止抖动;
- 增加折叠/展开动作的上拉/下拉动画
- 更改
11.js(version 0.0.5):- 优化代码,解决“空Callout回车键删除”操作潜在的模拟按键与 API 调用的竞态问题
- 更改
22.js(version 0.0.4 & version 0.0.5):- 参考思源斜杠菜单,优化补全菜单触发逻辑,实现仅在引述块为空时输入
[或【才触发、以及鼠标点击其他位置会自动关闭菜单等特性; - 删除
[或【会自动关闭菜单 - 优化代码,解决 DOM 节点泄漏、isInBlockquote 与 getBlockquoteElement 函数冗余、DOM 随着每次输入都遍历等问题
- 参考思源斜杠菜单,优化补全菜单触发逻辑,实现仅在引述块为空时输入
- 更改
-
20260422:
- 更改
11.js(version 0.0.4): 修复了 Callout 中无正文时的一些操作会触发的 bug
- 更改
-
20260131:
-
更改
11.js(version 0.0.3)和22.js(version 0.0.3),根据个人需求,在原基础上增加了几个 callout 新样式:-
Info(蓝色)
-
Quote(灰色)
-
Question(黄色,同 Warning)
需要注意这几个新样式转换回官方 callout 后存在问题(即关闭 css 代码片段),会变成背景透明、且 ICON 消失的 callout。介意的话慎用!
-
-
-
20260114:
-
更改
11.js(version 0.0.2): 实现折叠/展开状态的持久化。使 Callout 块的折叠/展开状态真正持久化保存到思源笔记的 IAL(块属性)中,而不再只是临时修改 DOM 属性(下次刷新/重开文档就会丢失) -
更改
22.js(version 0.0.2):完全基于原帖子更新后的相关代码进行更改,以修复“索引错误”的问题。另外也进行了一定优化:
- 限制补全菜单只能在引述块中触发,而非任意容器块
- 根据个人习惯,触发方式改为
[或【 - 修改补全菜单的样式
-