Skip to content

Conversation

Achuan-2
Copy link
Member

@Achuan-2 Achuan-2 commented Sep 18, 2025

标题块的嵌入块支持隐藏标题

关联:#15035

改进背景

  • 标题块的嵌入目前默认显示标题,然而标题并不在标题大纲显示,只有导出时才显示
  • 标题块的嵌入块在导出层级上不方便控制层级,靠导出时嵌入块的标题转换其实非常难用
  • 标题块的嵌入块导出时默认带标题,导致我无法自己手动加标题

考虑到目前标题块的嵌入块显示标题,不灵活不好用

因此建议标题块的嵌入块需要支持隐藏标题,可以选择作为非标题块嵌入当前笔记,也可以手动添加需要的标题层级,实现更灵活的块嵌入写作体验

修改内容

  • 改进kernel\model\search.go getEmbedBlock的headingMode,支持设置

    • 0: 显示标题与下方的块
    • 1:仅显示标题
    • 2:仅显示标题下方的块(即去除标题),改为默认
  • 修改app\src\protyle\gutter\index.ts,修改hideHeadingBelowBlocks

    改为标题嵌入设置,显示一个下拉框,支持设置下面三个选项

    • 显示标题与下方的块
    • 仅显示标题
    • 仅显示标题下方的块(默认)
  • 改进app\src\protyle\render\blockRender.ts的嵌入块渲染,custom-heading-mode需要支持0、1、2

  • 改进kernel\model\blockinfo.gobuildBlockBreadcrumb,仅显示标题下方的块时,需要显示标题名(目前只显示缩略的标题图标)

PixPin_2025-09-18_12-33-41 PixPin_2025-09-18_12-34-13

@Achuan-2 Achuan-2 changed the title ✨ 标题块的嵌入块支持隐藏标题 标题块的嵌入块支持隐藏标题 Sep 18, 2025
@Achuan-2
Copy link
Member Author

Achuan-2 commented Sep 20, 2025

嵌入块导出预览和导出pdf的效果还没改,发现之前就没支持heading-mode


已支持
PixPin_2025-09-20_11-22-09
导出
PixPin_2025-09-20_11-22-19

PixPin_2025-09-20_11-23-09

@88250 88250 changed the title 标题块的嵌入块支持隐藏标题 The embed block of a heading supports hiding the heading itself Sep 21, 2025
@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

#15035 (comment)

应该要改成一个子菜单:

嵌入标题块
	显示标题与下方的块
	仅显示标题
	仅显示下方的块
	默认(跟随全局设置)

然后在设置里增加全局设置:

嵌入标题块
	显示标题与下方的块(默认)
	仅显示标题
	仅显示下方的块

分别对应 custom-heading-mode 的 0、1、2、清除

@88250
Copy link
Member

88250 commented Sep 21, 2025

全局设置没有必要吧?

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

不是每个人都希望默认是 2,我希望默认是 0

image

@88250
Copy link
Member

88250 commented Sep 21, 2025

我也觉得默认 0 比较好,不改变已有用户习惯

@Achuan-2
Copy link
Member Author

Achuan-2 commented Sep 21, 2025

  1. 在多数场景仅显示下方的块就是比较灵活的设置了,可以自己加标题,也可以不加标题作为普通内容块。同时显示标题更多只是预览方便一点,输出时标题层级控制不便
  • 查询块场景:看面包屑也可以满足查看标题需求,查询块场景下,标题很多时候其实不是那么重要(很多笔记的标题容易重复),还会占用比较大空间,更多是已知标题去查询标题下的内容
  • 输出场景:需要同时满足我嵌入的标题不需要改变文字,要与原标题同步,并且只是作为当前标题的子标题内容出现这两个条件(没有输出为同级标题和段落内容块需求),否则就没法用。这个场景下,只需要临时更改下嵌入块设置,因为这种输出场景比较少
  1. 目前文档块嵌入就不显示文档标题,标题嵌入改为2,与文档块更加统一
  2. 默认显示标题,我觉得思源起码得在标题大纲里显示单个嵌入块的标题,并且标题自适应大纲层级,否则显示标题很多场景下就是碍眼多余的
  3. 改为2,我不认为会多改变用户习惯,反而是优化体验

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

在社区发一个投票看看,用户希望默认是哪一个

显示标题与下方的块
仅显示标题
仅显示下方的块

@Achuan-2
Copy link
Member Author

Achuan-2 commented Sep 21, 2025

  1. 默认设置,仅显示标题更优,覆盖场景更多,前面已经讲了很多了。用户能接受文档块嵌入不显示标题,就能接受标题块嵌入默认不显示标题。之前标题嵌入块非常难用,我自己都用的非常少,很多时候都是想用用不上,干脆直接复制拷贝内容不嵌入了,不认为其他用户会用的很多。
  2. 嵌入块场景并不适合添加全局设置,因为一改全局设置就会改动所有笔记的嵌入块内容。我当下如果全局设置“显示标题与下方的块”简单查询块,在日记里嵌入,后面一旦要用标题嵌入块来嵌入笔记输出,就会发现“显示标题与下方的块”很难用,如果要改为“仅显示下方的块”,又只能每次嵌入都改一次,非常麻烦,如果改全局设置,那还要要不要改回来呢?改回“显示标题与下方的块”,我这次写的笔记以后就没法导出了,要改设置才能导出,没改回来,继续用“仅显示下方的块”,之前的一些笔记,我直接用的默认设置,又把我之前的笔记格式给毁了。所以一旦设置了嵌入块全局设置,就最好别改。干脆一开始就设置好覆盖场景多更加合理的设置。用户折腾过一次就不用再折腾了。
  3. 要投票你可以去发投票帖子,我发投票帖子肯定会引导用户选“仅显示下方的块”选项的 @TCOTC

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

嵌入块场景并不适合添加全局设置,因为一改全局设置就会改动所有笔记的嵌入块内容。

我认为这是符合预期的,比如有这个设置:

image

代码块也类似:

image

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

目前有两个问题:菜单缺少文案、下拉菜单没有垂直居中:

image

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

@Achuan-2
Copy link
Member Author

Achuan-2 commented Sep 21, 2025

我认为这是符合预期的,比如有这个设置:

代码块、嵌入块面包屑这个只影响外观,改不改无所谓,导出不影响,嵌入块这个设置影响导出,改了全局设置之后,以前用默认选项的嵌入块导出就不符合预期了,是改了全局设置之后,影响很大的选项

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

你改成默认 2 的话影响难道不是更大吗?所有用户都一定会被影响,并且用户完全没得选

@Achuan-2
Copy link
Member Author

Achuan-2 commented Sep 21, 2025

你改成默认 2 的话影响难道不是更大吗?所有用户都一定会被影响,并且用户完全没得选

  1. 目前文档块嵌入就是默认不显示标题,改成2,就是统一,一开始就应该是2,大纲不显示嵌入块的标题,这点不改,就不应该将嵌入块标题显示作为默认选项(这点社区很多人提过了)
  2. 提供这个全局设置的潜在问题在于,比如原先设置的是0,一些用户积累了一段时间后,才意识到自己适合默认设置为2,但是一旦改动就会影响过去积累的笔记,还有些用户,如果一开始没意识到改动这个全局设置影响,把这个设置改来改去,一些文档默认是基于0写的,一些文档默认是基于2写的,后面需要导出的时候,才发现这些笔记排版都乱了。加了这个全局设置虽然能满足不同人的需求,但会引入潜在的混乱风险。
  3. 长痛不如短痛,我个人觉得由于之前说的标题嵌入块的各种问题,目前标题嵌入块写大量真正意义笔记的人并不算多(目前更多人只是查询,查询的样式改了影响并不大),但这次改进之后,肯定会有更多人去用标题嵌入块写笔记,后面要再改只会更麻烦。

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

默认 2 并且提供全局设置

image

@Achuan-2
Copy link
Member Author

要加全局设置就得在设置里注明风险,会影响过去所有的笔记,非必要不修改

@TCOTC
Copy link
Contributor

TCOTC commented Sep 21, 2025

没必要,“全局”这个描述足够清晰了

@88250
Copy link
Member

88250 commented Sep 22, 2025

排期推后一下

@88250 88250 modified the milestones: 3.3.3, backlog Sep 22, 2025
@TCOTC
Copy link
Contributor

TCOTC commented Sep 24, 2025

从最新的投票来看,0 和 2 没有显著的差异,可能应当保持默认 0 并且提供全局配置(即对现有用户来说行为不变,允许用户切换到默认仅显示标题下方的块)

image

@88250
Copy link
Member

88250 commented Sep 24, 2025

我赞同不要改变现有使用习惯并增加全局配置

@Achuan-2
Copy link
Member Author

我赞同不要改变现有使用习惯并增加全局配置

那就这样吧

@TCOTC
Copy link
Contributor

TCOTC commented Sep 24, 2025

scripts/win-build.bat 不要改

@Achuan-2
Copy link
Member Author

已修改
PixPin_2025-09-24_23-04-23

PixPin_2025-09-24_23-04-38

@TCOTC
Copy link
Contributor

TCOTC commented Sep 24, 2025

我倾向于把“默认”放在最下面显示,参考:

image

@88250
Copy link
Member

88250 commented Sep 25, 2025

我倾向于把“默认”放在最下面显示

赞同

@Achuan-2 Achuan-2 force-pushed the feat/embedHeadingBlockImprove branch from 57a1bbb to f390fda Compare September 25, 2025 05:26
@Achuan-2
Copy link
Member Author

玩了一下rebase,可以合并commit
另外才发现Github 合并pr,可以选择squash合并为一个commit

PixPin_2025-09-25_13-32-41

@88250 88250 modified the milestones: backlog, 3.3.4 Sep 25, 2025
@88250 88250 merged commit ee5eb01 into siyuan-note:dev Sep 25, 2025
@88250
Copy link
Member

88250 commented Sep 25, 2025

感谢你的贡献,思源有你更精彩!
Thank you for your contribution. SiYuan will be more wonderful with you!

@TCOTC
Copy link
Contributor

TCOTC commented Sep 25, 2025

@88250 把“區”删掉

image

@88250
Copy link
Member

88250 commented Sep 25, 2025

稍后调整

88250 added a commit that referenced this pull request Sep 25, 2025
Signed-off-by: Daniel <845765@qq.com>
@TCOTC
Copy link
Contributor

TCOTC commented Sep 25, 2025

@88250 修改注释

image image image

@88250
Copy link
Member

88250 commented Sep 25, 2025

稍后调整,把“默认”删掉

88250 added a commit that referenced this pull request Sep 25, 2025
Signed-off-by: Daniel <845765@qq.com>
@TCOTC
Copy link
Contributor

TCOTC commented Sep 25, 2025

@Vanessa219 这个下拉框能不能垂直居中,或者不用下拉框,用子菜单

image

@Achuan-2 Achuan-2 deleted the feat/embedHeadingBlockImprove branch September 26, 2025 08:43
Vanessa219 added a commit that referenced this pull request Sep 26, 2025
@TCOTC

This comment was marked as resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants