(视频演示)代码块自动检测语言插件现在已经完整交付而且新增自动模式,请之前答应给我点星星的用户给我点星星,谢谢

本贴最后更新于 239 天前,其中的信息可能已经东海扬尘

在自动模式下,你粘贴代码后自动 callback,不需要再点确定。但是在自动模式下,因为粘贴后会自动 callback,所以识别语言之前没有编辑能力(识别之后依然有编辑能力)。自动模式可以手动开关。

演示视频

请之前答应给我点星星的朋友给我点星星,谢谢(是 GitHub 的星星,不是链滴的心心)

image.png

  • 思源笔记

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

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

    25355 引用 • 104713 回帖 • 1 关注
  • 插件
    102 引用 • 627 回帖 • 3 关注
2 操作
zxkmm 在 2024-09-08 12:32:00 更新了该帖
zxkmm 在 2024-09-08 11:47:27 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 大佬牛 x👍 ,能否简单介绍下,怎么识别的?原理是什么?准确度如何?

    1 回复
  • 感谢!我不是大佬哈哈哈哈。

    识别是用的第三方库,第三方库识别的原理是正则识别当前行的语言类型,并按行做统计。

    准确度的话不是很高,主要问题是老是把 cpp 识别成 php

    具体可以康康代码,是开源的

    1 回复
  • 哦哦,感谢解惑!我好像记得你以前说是 ai 识别来着,是我记错了吗?

    1 回复
  • 我之前说打算用 ai,但是因为速度问题放弃了

    1 回复
  • 确实是,速度慢了就不实用了,一般能复制的,自己都知道什么语言,不如自己选择下快捷。

    不过,我赶脚代码复制到输入框再识别有点不方便,而且只能适应复制代码的场景,不如监听代码块的变化,然后再识别。

    另外,如果识别不准的话,经常手动更改也不方便,不如把可能的语言都列出来,如果自动识别错了,就手动点一下,这样既方便又快速,如果用户长时间没点,可以默认为是正确的就隐藏即可。

    1 回复
  • 监听的话我怕出问题,因为这个语言也是回写进去的,万一用户也在输入,插件也在输入,不知道会造成什么样的后果。

    bwxr 备选语言是个好主意 👀

    1 回复
  • shiyuankill

    哈哈哈,马上给你点 star❤️

  • shiyuankill

    image.png是不是识别还不太准确,import 有 java 还是检测失败了 😂

    1 回复
  • 行数少的话确实识别的不太准。我之后给那个库也改一下

    1 回复
  • shiyuankill

    好的

  • 不对呀,你现在模式需要写入。监听模式,你只识别语言,不需要写入代码。

    1 回复
  • 识别完语言要写回文档里面的。

    1 回复
  • 哦,原来思源更新只能以块为单位更新,学习了。

    不过我觉得粘贴或输入时,监听到,然后再提提示用户更新,应该比粘贴代码到专门输入框体验要好点。

    image.png

    1 回复
  • 如果模拟网络请求或者直接改 dom 的话应该可以不用以块为单位。不过我的上一个插件吃过这个亏(把 html 直接写到笔记数据里面),现在我用这个都很小心。其实现在都还有插件会做这个危险的事情,这也是我写黑名单插件的目的。

    不过这个图上的建议确实很好,我可能需要一段时间才能做。目前我尽量不写监听器,能 css 或者短线程 handler 处理的最好(我对性能有迷之执着)

    不过至于弹窗的问题,如果启用自动模式的话,操作成本都是一样的,都是“斜杠菜单,粘贴,完成“三步。只是弹窗天然让人视觉上有割裂感,感觉更复杂了。

    1 回复
  • 是的。我对官方 api 没怎么用过,请教下,你意思上一个插件是仅更新块到后台保存,而不刷新页面的块内容?这会有什么风险?我的理解是只要更新到后台的块内容和页面中块的 dom 内容一致应该问题不大吧,具体就不知道了,也许官方除了刷新块还做了别的。

    1 回复
  • 我的意思是直接改 dom 或者模拟网络的风险在于会把官方本来不支持(但是可能可以渲染)的 html 写到笔记数据的 json 里面。这样的话有两个风险:

    1. 用户没办法回退,有时候或许没办法删掉,除非手动改 json(例如插件把某个文字加粗了,用户很容易回退,因为官方本来就支持这个加粗选项。但如果你直接 html 写入局部字体,或者更糟糕的自动化地把所有笔记的某个地方都加了点 html 元素(有个插件确实这样做了),用户根本没办法回退,只能回滚)
    2. 因为这个数据官方不知情(也没计划过兼容),所以万一某次官方做了什么新功能,刚好跟这个数据发生冲突,可能会让这种数据损坏,例如笔记内容丢失之类的。
    1 回复
  • 明白了,但只要后台保存的块是官方支持的,应该问题不大。比如你这里如果仅仅更新 dom 中的语言的文字显示,然后把更新后的块的新结点通过 api 提交给后台,但不刷新页面上的块,理论上应该能避免插件更新块和用户输入冲突问题,但我没有研究过,不知道是否可行。

    1 回复
  • 应该是可行的,但我怕我写出什么差错。大佬如果愿意的话可以尝试一下

    1 回复
  • 嗯嗯,我相信你可以的,可以慢慢完善,也不是一下子做的那么完美,怎能抢你的功劳,主要我对 api 不熟,还不如你。

    最近感觉思源要用着顺需要改进的还挺多的,无奈精力有限,有些功能还是先想想吧 😄

    1 回复
  • zxkmm 1 评论

    有兴趣的话我可以把仓库转到一个组织然后邀请你 😆

    这样就是共有的了

    谢谢,不用这么麻烦,哪天需要的话我直接 fork 就行。
    wilsons
请输入回帖内容 ...

推荐标签 标签

  • OneNote
    1 引用 • 3 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    168 引用 • 597 回帖 • 2 关注
  • 反馈

    Communication channel for makers and users.

    121 引用 • 907 回帖 • 272 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 447 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 657 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 1 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖 • 2 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 2 关注
  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 27 回帖
  • Anytype
    3 引用 • 31 回帖 • 14 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 16 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 691 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 162 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 565 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    166 引用 • 314 回帖
  • abitmean

    有点意思就行了

    36 关注
  • 印象笔记
    3 引用 • 16 回帖 • 3 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 1 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    174 引用 • 3851 回帖 • 1 关注
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1794 回帖
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 5 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    588 引用 • 3538 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 339 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 488 关注