Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supports disabling Markdown syntax input for some inline elements #11141

Closed
Achuan-2 opened this issue Apr 25, 2024 · 32 comments
Closed

Supports disabling Markdown syntax input for some inline elements #11141

Achuan-2 opened this issue Apr 25, 2024 · 32 comments
Assignees
Milestone

Comments

@Achuan-2
Copy link
Member

Achuan-2 commented Apr 25, 2024

支持禁用部分行级元素 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

@TCOTC
Copy link
Contributor

TCOTC commented Apr 25, 2024

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

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

深有同感

@88250
Copy link
Member

88250 commented Apr 25, 2024

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

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

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

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

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

@88250 88250 changed the title 上标和下标语法改为<sup>和 <sub> 支持禁用部分 Markdown 语法输入 Apr 25, 2024
@Achuan-2
Copy link
Member Author

Achuan-2 commented Apr 25, 2024

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

@88250
Copy link
Member

88250 commented Apr 25, 2024

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

@Achuan-2
Copy link
Member Author

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

@88250
Copy link
Member

88250 commented Apr 25, 2024

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

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

@Achuan-2
Copy link
Member Author

Achuan-2 commented Apr 25, 2024

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

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

@88250
Copy link
Member

88250 commented Apr 25, 2024

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

@Achuan-2
Copy link
Member Author

Achuan-2 commented Apr 25, 2024

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

@88250
Copy link
Member

88250 commented Apr 25, 2024

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

@Achuan-2
Copy link
Member Author

Achuan-2 commented Apr 25, 2024

发投票了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
Copy link
Member

88250 commented Apr 25, 2024

嗯,等收集反馈看看。

@Achuan-2
Copy link
Member Author

Achuan-2 commented Apr 25, 2024

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

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

@88250
Copy link
Member

88250 commented Apr 25, 2024

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

@Achuan-2
Copy link
Member Author

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

ok,没有问题

@88250
Copy link
Member

88250 commented Apr 25, 2024

好的,那是否兼容 sub/sup 输入以后再议,我们先考虑如何禁用部分标记符。

@TCOTC
Copy link
Contributor

TCOTC commented Apr 25, 2024

支持禁用部分 Markdown 语法输入

话说禁用是不是自动加反斜杠就行了?(变相禁用了)

@88250
Copy link
Member

88250 commented Apr 25, 2024

理论上是的,但是技术细节还没有时间评估。

@shuojie819
Copy link

支持增加语法开关 +1,感觉这才是可以满足所有人的需求的方法

@LoneFireBlossom
Copy link

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

说到行级元素,我还看到有人反馈导入的文档里因为含有好几些井号#balabala#balabal导致剪藏的文章被收录一些不想要的标签。
不知道这方面有考虑过怎么办么

@TCOTC
Copy link
Contributor

TCOTC commented Apr 25, 2024

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

说到行级元素,我还看到有人反馈导入的文档里因为含有好几些井号#balabala#balabal导致剪藏的文章被收录一些不想要的标签。 不知道这方面有考虑过怎么办么

我觉得导入的时候应该没有办法判断哪些是标签哪些是正常文本吧?剪藏的时候应该自动转义

p.s. 你说的到底是导入还是剪藏?

@LoneFireBlossom
Copy link

p.s. 你说的到底是导入还是剪藏?

我不知道是导入还是剪藏,我只是看过但没有记清楚
你的意思是?

@TCOTC
Copy link
Contributor

TCOTC commented Apr 25, 2024

p.s. 你说的到底是导入还是剪藏?

我不知道是导入还是剪藏,我只是看过但没有记清楚

你的意思是?

我的意思是你的这句话好像有语病,前后描述的对象不一致:「我还看到有人反馈导入的文档里因为含有好几些井号#balabala#balabal导致剪藏的文章被收录一些不想要的标签。」

我对此的理解是:导入应该指的是导入 Markdown,剪藏应该指的是浏览器拓展剪藏

@LoneFireBlossom
Copy link

p.s. 你说的到底是导入还是剪藏?

我不知道是导入还是剪藏,我只是看过但没有记清楚
你的意思是?

我的意思是你的这句话好像有语病,前后描述的对象不一致:「我还看到有人反馈导入的文档里因为含有好几些井号#balabala#balabal导致剪藏的文章被收录一些不想要的标签。」

我对此的理解是:导入应该指的是导入 Markdown,剪藏应该指的是浏览器拓展剪藏

哦,是我表述不当。总之我的意思就是如果导入会有这种情况那就指导入,剪藏如果有这种情况那就指剪藏。

我也觉得这个问题很不好处理,但是这又确实是个问题。
有个好方法是井号#必须有空格才能被识别为标签,就像Obsidian那样,一句话#标签不会被识别,一句话 #标签才会被识别,这样做可以规避掉绝大多数情况了。但是这得一开始就定下规矩,现在再改的话那以前的标签就都废了

@TCOTC
Copy link
Contributor

TCOTC commented Apr 25, 2024

或许加一个「导入选项」?可以自定义一些转换规则,而不是完全交给思源处理

@88250
Copy link
Member

88250 commented Apr 25, 2024

开关应该可以控制导入/剪藏时的解析,这个细节目前还无法确认。

@88250 88250 changed the title 支持禁用部分 Markdown 语法输入 支持禁用部分行级元素 Markdown 语法输入 Apr 26, 2024
@88250 88250 changed the title 支持禁用部分行级元素 Markdown 语法输入 Supports disabling Markdown syntax input for some inline elements Apr 26, 2024
@88250 88250 self-assigned this Apr 26, 2024
@88250 88250 modified the milestones: backlog, 3.0.12 Apr 26, 2024
@88250 88250 closed this as completed Apr 26, 2024
@TCOTC
Copy link
Contributor

TCOTC commented Apr 26, 2024

@88250 简体中文是不是少了「行级」:

image

@88250
Copy link
Member

88250 commented Apr 26, 2024

感谢反馈,已经补上。

@TCOTC
Copy link
Contributor

TCOTC commented Apr 26, 2024

@88250 后两个还是默认开启吧,不然平时经常用行级标签和行级公式的用户要傻掉了:

image

@88250
Copy link
Member

88250 commented Apr 26, 2024

考虑了下,标签还是不默认开启了,公式可以开启。

@88250
Copy link
Member

88250 commented Apr 26, 2024

算了,还是都不开启吧,收集一段时间反馈看看。

@neroxiangkongyue
Copy link

导入的文档里因为含有好几些井号#balabala#balabal

我就经常遇到这种情况,我再网上看见了好的教学文章就想剪藏,结果导致了很多标签.比如 QMdiArea{background:#ff0000;} 或者 QMdiArea{background-color:#ff0000;} 就被识别出#ff0000;} 或者 QMdiArea{background-color:#为标签, #ifdef、#ifndef、#else、#endif使用示例也被识别出了一些标签

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

No branches or pull requests

7 participants