Skip to content

Supports disabling Markdown syntax input for some inline elements #11141

Closed
@Achuan-2

Description

@Achuan-2
Member

支持禁用部分行级元素 Markdown 语法输入

  • 上标 ^
  • 下标 ~
  • 标签 #
  • 公式 $

上标和下标语法改为<sup><sub>

In what scenarios do you need this feature?

目前思源笔记中的上标和下标语法用 ^foo^~foo~,参考了 Typora 的语法
但是我在使用过程中,常常意外开启下标语法,原因就在于下标语法的 ~在描述数字范围中太常用到了,虽然现在能够通过剪切后粘贴为转义文本解决,但是还是觉得麻烦,以至于我都不敢用 ~这个符号。从外部复制内容,这个符号还是太常见了,内容常常容易误渲染为下标语法。

Describe the optimal solution

上下标样式输出

希望思源笔记把上标和下标语法输出改为 <sup><sub>
有几点好处

虽然 Markdown 没有统一标准,各家都有各家方言,但是 Github 的 Markdown 语法在一定程度上是可以看作规范的,GFM 上标和下标语法就为 <sup><sub>,而不是^和~,思源笔记的上标和下标样式直接粘贴到 GitHub 是失效的

导出 Markdown 的 上标和下标语法改为 <sup><sub>,大部分主流 Markdown 编辑器都是支持 html 标签解析的,适用性更广

上下标样式输入

可以支持 ~^ 语法解析,但思源提供配置选项,支持禁用该语法,输入和粘贴包含 ^foo^~foo~ 不会被解析

Other information

No response

Activity

TCOTC

TCOTC commented on Apr 25, 2024

@TCOTC
Contributor

^上标^ ~下标~ 的 Markdown 拓展语法是不是从 typora 来的?(在 typora 中作为可选项)

以至于我都不敢用 ~ 这个符号

深有同感

88250

88250 commented on Apr 25, 2024

@88250
Member

对于非 Markdown 用户来说,不便之处是在于 ^~ 容易触发元素吧?和具体使用 <sup> 或者 <sub> 导出 Markdown 实际上关系不大(比如 Typora 就是使用的 ^~)。

这问题的本质还是 Markdown 输入对于某些场景/用户来说会造成困扰,比如美元记账时就经常要使用 $,输入多个以后容易闭合为行级公式,造成不便。

所以要解决类似问题,较为彻底的方案是设置语法开关,比如是否启用:

  • ^ 输入上标
  • ~ 输入下标
  • $ 输入公式
  • ……

另外,还需要考虑已有数据加载是否会有冲突、开关启用/禁言切换是否会影响数据解析渲染,细节比较多。

changed the title [-]上标和下标语法改为<sup>和 <sub>[/-] [+]支持禁用部分 Markdown 语法输入[/+] on Apr 25, 2024
Achuan-2

Achuan-2 commented on Apr 25, 2024

@Achuan-2
MemberAuthor

支持禁用部分 Markdown 语法确实可以,Typora 就是这样干的。
美刀这个符号我几乎没有输入场景,就不多说了。但~符号大多数人都是很容易使用到的。
上下标内容的复制和导出还是希望改成 html 标签,提高适用性。随着 Typora 的收费、obsidian 等新型Markdown笔记软件的崛起,我感觉 Typora 的人群已经流失很多了,相比之下,GFM 的语法更值得参考。
所以我还是希望独立出两个 issue,一个是改上下标的语法,另一个是禁用部分 Markdown 语法输入,后者应该不是急切的。
@88250

88250

88250 commented on Apr 25, 2024

@88250
Member

你指的改语法是指的导出 Markdown 时候的?

Achuan-2

Achuan-2 commented on Apr 25, 2024

@Achuan-2
MemberAuthor

@88250 包括输入和导出。输入改是为了避免误触发样式,导出改是为了提高适用性。

88250

88250 commented on Apr 25, 2024

@88250
Member

输入的话考虑禁用语法实现,因为用 <sub>/<sup> 输入要打字太多了,对于经常用上下标的用户来说不友好。

导出使用 <sub>/<sup> 怕也不一定能提高适用性,有的地方是不支持 HTML 标签的吧,这一点我不太确定,需要再收集反馈看看。

Achuan-2

Achuan-2 commented on Apr 25, 2024

@Achuan-2
MemberAuthor

我等会去链滴发起一个投票。
不过我不觉得有很多人经常使用上下标,并且用^和~创建样式, 除了 Markdown 的拥护者外,普通用户应该更习惯用悬浮工具栏和快捷键。 我自己使用场景是文献引用和公式,公式可以用数学公式替代,也更加规范。
提高适用性只需要检测几个软件能不能适配,就能覆盖大多数场景了。如果不支持 html 标签,恐怕这个软件本身就不支持上下标语法。

  • Github
  • VSCode
  • Typora
  • 支持导入 Markdown 的博客网站:知乎、简书、CSDN 等
  • 其他 Markdown 笔记软件(电脑 and 手机)
    • Obsidian
    • 手机纯纯写作
88250

88250 commented on Apr 25, 2024

@88250
Member

从我目前收集的需求看,需要禁用 ^/~ 等形成行级元素的需求是远远大于导出时用 HTML 标签替代标记符的,这个可以投票看看。

Achuan-2

Achuan-2 commented on Apr 25, 2024

@Achuan-2
MemberAuthor

好的,我等会投票选项也会添加禁用这个选项,但是我个人觉得之所以他们想要禁用,就是因为误触发,而不是说不想要上标和下标这个语法。Typora 禁用^~后,依然能用 sub 和 sup 来实现 上下标,然后思源禁用后,又想要上下标,该怎么办呢,开启之后,会导致前面用~^的文档不可读,也就是要么开启要么关闭,对于想要上下标功能,又不喜欢~和^语法的人来说,问题还是没得到解决。

88250

88250 commented on Apr 25, 2024

@88250
Member

前面你也提到了,对普通用户来说,<sub>/<sup> 也不适合,普通用户都是工具栏上操作的。仅就输入这一点而言,能用简短的标记符就用,不能用的话就禁用,二选一应该没有问题,兼容 <sub>/<sup> 输入的任务优先级低于禁用任务的。

Achuan-2

Achuan-2 commented on Apr 25, 2024

@Achuan-2
MemberAuthor

发投票了https://ld246.com/article/1714049855391
我依然坚持我的观点

  1. 输入改用 sub 和 sup 的主要原因就是因为误触发样式,普通用户用工具栏输入和改用 sub、sup 语法没有矛盾,改用 sub 和 sup,就是为了让用户能更安心的输入~符号
  2. 对我而言,上标和下标虽然不是刚需,但是要用的时候还是有用的,我是不会完全禁用的。前面也说了 Typora 之所以支持禁用是因为兼容 html 语法。思源如果要禁用~语法,就一定是需要支持兼容 sub 和 sup 语法的,而且以 sub 和 sup 语法为主,工具栏默认就是用这个,不禁用用户可以通过输入~和^来实现上下标,禁用了就只能用 sub 和 sup 语法,而不是完全把上下标样式给关闭掉

如果不兼容 sub 和 sup 语法,禁用~和^语法后,上下标样式就相当于是消失了

我好像忘记了思源不是一个 Markdown 编辑器,禁用~和^语法后,用快捷键和用悬浮工具栏应该也能实现上下标样式,抱歉

88250

88250 commented on Apr 25, 2024

@88250
Member

嗯,等收集反馈看看。

Achuan-2

Achuan-2 commented on Apr 25, 2024

@Achuan-2
MemberAuthor

如果不兼容 sub 和 sup 语法,禁用~和^语法后,上下标样式就相当于是消失了

我好像忘记了思源不是一个 Markdown 编辑器,禁用~和^语法后,用快捷键和用悬浮工具栏应该也能实现上下标样式,抱歉

88250

88250 commented on Apr 25, 2024

@88250
Member

那我上面说的任务优先级应该也没有问题了吧?

42 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @88250@Vanessa219@neroxiangkongyue@LoneFireBlossom@Achuan-2

      Issue actions

        Supports disabling Markdown syntax input for some inline elements · Issue #11141 · siyuan-note/siyuan