增强编辑器插件已发布,欢迎大家使用

项目地址

siyuan-plugin-enhance-editor

为什么要写这个插件,参考 用 codemirror 小写了个 latex 公式的提示插件 这篇帖子

目前通过思源本体的集市就可以进行安装

上架的插件相比之前帖子里的改变了什么

  1. 已经可以和数学增强插件联动了,你可以先在编辑器里进行具有代码提示的插件,然后在下方的编辑器中进行修改或者其它一些更方便的操作。
    view.gif

    需要注意的是,通过数学增强插件修改后,本身的 LaTex 公式会失去格式(例如手动打的回车,这点可能还需要研究一下,或者之后可以做一个格式化的快捷键

  2. 编辑器中的快捷键目前设定为 vscode 中的快捷键,当然一般来说也用不到那些,但是比较常用的例如 ctrl+z, ctrl+y 之类的已经可以用了,而且不会触发思源本体的全局快捷键

  3. 通过 ctrl+enterctrl+shift+enter 可以触发原本编辑器中的“在下方插入块”和“在上方插入块”

  4. 按下两次 esc 会退出编辑器(不改成按下一次就触发是因为不太清楚思源里面退出的操作,按两次好像也没那么麻烦)

  5. 每次弹出编辑器的时候会自动调整暗色和亮色
    image.png

之后继续改进的方向

  1. 在使用过程中我会继续删除提示中不属于 KaTex 的部分(因为用的是 MathJax 的关键词库),另外之后可能会增加一些可以自行配置的部分(比如把 json 配置文件移动到 public 文件夹,可以自己添加或者删除代码提示关键词或者 snippets 之类的,KaTex 的宏毕竟没办法复制到正经 LaTex 文件里)
  2. 对数学增强插件进行修改,现在已经有了官方的触发点击不可编辑块的事件,不再需要通过监听整个编辑器实现
  3. 实现数学增强插件和本插件的联动,比如说下方编辑器光标所在位置会在上方高亮,这样的话可能需要修改 mathlive 本体
  4. 增强编辑器的代码格式化(自动判断环境和 \\ 添加回车和制表符之类的,不指望能做好)
  5. 支持 HTML 块和 sql 块(包括其中的 js)的代码提示和高亮(这一点应该 codemirror 本身会有已经开发好的东西,之后看看),不过需要思源本体能够提供 open-noneditableblock 事件触发的更多信息
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22928 引用 • 92187 回帖 • 1 关注
  • 插件
    100 引用 • 591 回帖 • 3 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 49 关注
  • 数学
    32 引用 • 87 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 太酷了!

  • 其他回帖
  • KragiKuak

    推薦考慮設定 hotkey 的數學輸入方式,參考 https://www.mathcha.io/editor
    這個編輯器可以設定「快捷鍵」(hotkey),在公式環境內輸入特定字符(其實是按鍵順序)就可以將這些字符變爲 latex 中的命令,而這些快捷鍵指令是完全自定義的。例如可以設定在公式環境內鍵入 gam 自動變成 \gamma。這樣可以極大增加公式的輸入速度。(這個編輯器也才用了和您的 floatbox 一樣的公式輸入思路,但我仍然覺得它的 hotkey 更勝一籌)

    1 回复
  • WingDr 1 评论

    你说的这些我都看了(包括上一个帖子里的评论),我现在在改数学增强插件的内容,读取明暗用的是 siyuan.config 里面就有设置,深浅模式也能直接读,然后用 mathlive 读取的变量来改颜色。

    mathlive 虽然自带了宏写法(插件作者也加了),但是我不准备用 katex 宏,说实话可移植性很差,所以我要写这个插件快速输入,现在文件读写写好了(从已有的插件里 copy 的代码),之后挪个位置做一下判断就能自定义了,现在主要是我在筛选里面的不可用部分,所以暂时还是保持更新

    此外 mathlive 也有触发的写法,可以写一些两个插件之间的联动回调

    感谢回复
    EmptyLight
  • WingDr 1

    感谢建议,这个实现起来好像并不是特别困难,我之后会尝试

    另外我猜你想要的是 math-enhance 插件,这个插件使用的 mathlive 有已经开发好的 shortcut 输入功能(虽然得在代码里添加,但是这个文档里有可以试用的部分),之后我也会尝试在两方面进行更新

  • 查看全部回帖