wilsons
关注
142093 号成员,2024-05-12 13:24:23 加入
1.8k
个人主页 浏览
1.4k
帖子 + 回帖 + 评论
人生最大的敌人是自己,战胜自己,才能超越一切。
  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-09 21:15

    感谢反馈!

    已经修复了这个问题,就像你上面说的,有时是 hljs,所以我加了兼容性代码。

    刚才下载了最新版,用新空间测试,确实会有这个问题,但老空间却是 code-block,不清楚什么原因。

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-09 20:53

    理论上代码片段的性能应该不如插件(因为插件“编译”过)

    你说的很对,确实会好那么一点点,不过这里的编译不是真正意义上的编译成二进制,js 本身是解释性语言,插件无非进行了压缩,可能在加载速度上快了点。另外,代码片段是字符串,先要把字符串解析为 js 代码再执行,而插件不用这一过程。

    不过,这些在代码量很小时可以忽略不计,只有在逻辑复杂,代码量大的时候才比较明显。

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-09 20:46

    抱歉,我 Mac 系统,思源 3.1.2, 3.1.3,都尝试了,无法重现你的问题。

    具体原因可能需要你自己根据自己的环境进行调试。

    defaultCodeLang 是通过 window.siyuan.storage["local-codelang"] = defaultCodeLang 实现的,你每次输入代码块前,先检查这个是否设置成功,或者手动设置试试。

    如果不是这个原因,再检查 mutation 监控中,为什么没检测到 code-block 元素的变化?如果能解决这两个问题,这个问题应该就解决了。

  • 求个大佬支持个 JS 片段 使得被钉住的文档无法被关闭

    2024-08-09 20:07

    已修复了,用新代码替换原来的代码片段即可。

    注意:替换前别忘了备份你之前的样式,然后把样式应用到新的代码片段上即可。

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-09 18:35

    你好,我按照你的操作没能重现你的问题,能否录屏看下你的操作步骤?

    我这边的测试如下

    r122.gif

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-09 12:16

    感谢 F 佬的指点!

    感谢 @zxkmm 的建议!

    也不是非不装 node 环境,大项目或者偶尔还行,有时小插件的话,感觉有点杀鸡用牛刀了。

    确实你提供的 API 非常棒,涵盖了思源的 api 还有扩充。

    不过非插件自用还好,分享的话,对不了解的人使用费事。

    关于热加载根据 F 佬的指导,我有一点思路,也参考 obsidian 的插件。主要原理还是监控文件变化,然后把项目和插件关联起来,如果文件有变动,进入思源时就自动关闭和开启下插件,这样基本能满足绝大多数的热加载需要。

    @zxkmm ob 的热加载也是这个原理。

    只是限于水平,时间和精力,完善的热加载插件估计还得考虑诸多因素,不过偶尔开发,写段代码模拟下估计还是可以的。😄

  • 求个大佬支持个 JS 片段 使得被钉住的文档无法被关闭

    2024-08-09 11:51
    1. ctrl + w 一直按可以清空所有文档并保留钉住的文档

    我已经实现了这个功能。

    原理:

    由于思源 ctrl+w 只会关闭激活标签,那么把钉住标签的 item-foucs 改成 item-pin-foucs 就行了。

    但由于思源中没有 item-pin-foucs 样式,需要自己根据 item-foucs 的样式添加一个即可。

    然后再利用监听实时监控标签切换,动态调整 item-foucs 样式为 item-pin-foucs 就行了。

    效果如下:

    r121.gif

    代码如下(放到 js 代码片段中即可,因链滴字数限制,代码只能放 jsrun 了):

    使用说明:

    把代码顶部的 注入样式 这里的样式根据自身情况改成自己主题下的样式即可(原因参考上面的原理说明)。

    怎么改呢?

    先打开一个正常的非钉住的标签,然后打开思源开发者工具(思源主菜单,倒数第二个)

    image.png

    然后用开发者工具的定位工具,定位到刚才的标签上

    image.png

    然后把 3 下面那段复制过去,把 item-focus 改为 item--pin--focus 即可,详情可参考源码示例

    image.png

    1. 鼠标能快速定位到对应钉住的文档

    有两种方式

    1 是思源自带的功能,当焦点在其他标签上时,按 ctrl+1 切换到第 1 个钉住标签上,ctrl+2 切换到第 2 个钉住标签上

    2 在上面的代码中,把 const isMovePinTabToTopInRecentlyDialog = true; 设为 true,然后 ctrl+e 打开最近的文档,然后钉住的文档会自动置顶,方便快速切换,如图

    Snipaste20240809111722.png

  • 如何配置指定某个笔记本不同步到本设备

    2024-08-08 21:10

    嗯嗯,我看错楼主需求了,所以删了,删除了你也能看到吗?

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-08 20:19

    感谢建议,插件开发我也在学习中,还有实在不想安装动辄几百兆的 node 库,我想找寻一套原生 js 开发插件的方法,这样可以做到轻量级开发,目前,原生情况下,主要热加载较麻烦。

    不知社区是否已有原生下的热加载方案?类似 obsidian 的热加载插件。

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-08 20:00

    @EmberSky @JeffreyChen 已经完美修复了。

    主要修改了 addLanguage 函数,修改内容如下

    // 传入的language参数仅供参考,真正获取最后一次使用的语言得从思源存储中或数据库查询中获取, // 这样可以防止块元素被意外触发,添加非最后一次使用的语言,导致混乱 // 这样无论哪个代码块被触发都以getLastLang为准 language = getLastLang();

    这里默认并没有采用从数据库读取最后一次使用的数据(代码留在那里仅供备用),我发现这个数据思源已经存储了,干脆用思源存储的。

    为了达到一致的体验,第一次运行时,默认会把上次使用的语言置顶。

    新增了支持自定义语言,即使列表中不存在的语言也支持。

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-08 14:34

    已修复意外触发代码块导致的添加历史语言错乱情况。

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-08 13:24

    已修复,这个是因为第一次运行缺少存储文件引起,记得之前处理过,可能我撤销代码时撤没了。

  • [js] 代码片段实现代码块最近使用的语言置顶

    2024-08-08 12:28

    哈哈哈,怎么说呢,前期也做了一些调研,昨天还研究了一些细节,做一些简单测试。有时候难点在于未知的,比如,为了实现这个默认语言,追着代码跟踪了很久才找到踪迹,不过对于熟悉思源的大佬来说,这些都是小儿科了。

  • 代码块功能优化建议

    2024-08-08 12:04

    最近语言,可以写个插件或代码片段在每次选择了后存储起来,然后加载时按之前存储的顺序优先排序

    我已经实现了这个功能

    疯狂点这个链接

    [js] 代码片段实现代码块最近使用的语言置顶

    Snipaste20240808113432.png

  • Marginnote4 和思源能联动吗

    2024-08-07 22:12

    理解了,我一般习惯于以笔记为主,边阅读边记录,点评和记录疑问点到笔记,然后搜集资料,整理总结。

    不过,如果你习惯于看时在 mn 整理的话,确实有插件更方便,如果思源不可以,也可以试试 ob 或获取其他软件联动或者用 AppleScript,先自动写入到 Markdown 文件中,然后再导入到思源,虽然麻烦了点,但也是没办法的事。

  • 如何修改工作空间存储路径

    2024-08-07 21:57

    你标题和内容说的是两个事情。

    修改工作空间路径,是指把空间移动到别的目录,然后重新用思源打开。

    新建工作空间,然后把数据(比如 data 文件夹)拷贝过去,这是新建工作空间。

    所有的数据都在 data 里,新空间复制这个文件足矣,只是没有历史数据,如果想有历史把 history 目录也拷贝过去。

    推荐看看这两篇文章

    缓解数据焦虑,思源笔记文件存储介绍

    缓解数据焦虑,思源笔记文件存储介绍 2

  • Marginnote4 和思源能联动吗

    2024-08-07 21:50

    不太理解你的痛点。

    我的理解,如果复制 URL 用快捷键复制到思源等第三方软件和通过插件复制也差不多吧。如果复制内容道理也是一样。无非插件一步完成,这需要两步。

    我习惯用小窗口与其他软件互动,感觉也挺方便的。当然如果有插件或自己开发能做到完美更好,如果不能,退而求其次不也是挺好的嘛。

    或许是我对联动的理解有误吧。

  • Marginnote4 和思源能联动吗

    2024-08-07 21:12

    这要看你怎么联动了,如果仅仅简单链接相互跳转还是可以的,参考 https://www.wolai.com/cVX6v1GCUHVW7P4jgWw55A

    如果简单的从一个软件复制到另一个软件,思源是支持悬浮窗口置顶的,这要其实有能方便的互相复制,我看某些插件实现点击复制,其实和复制粘贴也差不了多少。

    如果其他更复杂的联动,估计要自己开发了,而且得熟悉双方的 api 或者借助某些自动化脚本。

  • 代码块功能优化建议

    2024-08-07 14:15

    image.png

    这不是能识别吗?这个文件是新建的无标题文档,未保存,更没有扩展名,这说明 vscode 不仅仅是通过后缀识别的。

    我觉得,vscode 可能是基于规则的识别,当然,后缀识别应该是最优先的。如果没有后缀的情况下,不是定义了每种语言基于什么规则,如何高亮显示吗,它可能会选择一种匹配度最高的匹配。所以没扩展名的情况下,有些相似的语言,它也会识别错误。

    那么,Markdown 的规则里肯定没有涉及到具体语言的规则,最多是代码块的规则,所以无法识别具体语言,但如果设置了代码块的语言它就能高亮了。

    注意:以上说法只是个人猜测,没有任何依据。

  • 代码块功能优化建议

    2024-08-07 10:04

    非常感谢你的积分!别客气哈,心意到足矣!凑巧了,感觉可能是空间问题就试了下,没想到还真行。

  • 代码块功能优化建议

    2024-08-07 09:51

    不不不,和收藏夹不一样,收藏夹至少是你喜欢的,有强烈愿望的。

    issue 更像是妈妈的话或朋友的建议,虽然知道都是为你好,但你听过几个?

    更像是石沉大海,不知何时能见天日。😄

    哈哈哈,所以,求人不如求己,我解决了这个代码选择的 bug

    css 片段中,添加以下 css 样式即可

    /* 取消行号列占用的空间 */ .code-block .protyle-linenumber__rows { position: absolute; left: 0; } /* 当有行号时,代码块右移,给行号列让空间 */ .code-block .hljs.protyle-linenumber { margin-left: 3.6em; }

    效果

    r11.gif

  • 思源笔记如何调整文字间距?

    2024-08-07 08:06
    .protyle-wysiwyg [data-node-id] [spellcheck] { letter-spacing: 4px; /* 大小根据自己情况调整 */ }

    效果

    image.png

  • 代码块功能优化建议

    2024-08-06 21:54

    哦哦,我知道了,第 2 个问题,原来是因为我没显示行号,所以没这个问题。

    @EmberSky 有个技巧,在没完成选择前不要松开鼠标左键,哪怕选择框消失,比如,拖到左侧时选择框消失,并不要紧,不要松开鼠标左键,继续拖到右侧来选择框又出现了。

  • 代码块功能优化建议

    2024-08-06 21:40
    1. 最近语言,可以写个插件或代码片段在每次选择了后存储起来,然后加载时按之前存储的顺序优先排序
    2. 代码选择,可能是主题或样式问题,我用官方默认主题和 Asri 没这个问题,Odyssey 有类似问题但又不完全一样。
  • 插入表格后,无法一次删除多行

    2024-08-06 17:15

    菜单中看下快捷键,用快捷键删除,很快的 😄

  • 通过模板对 block 命名异常

    2024-08-06 17:02

    模板里面的属性最好加双引号。

    比如这样就是正确的 {: name=".action{ "2023-04-04" }" } name 属性两边加双引号。

  • 分享用 Savor Callout 插件实现康奈尔笔记和九宫格笔记模板

    2024-08-06 12:07

    系统自带的字体,应该是 Helvetica Neue

  • 分享用 Savor Callout 插件实现康奈尔笔记和九宫格笔记模板

    2024-08-06 10:57

    补充:九宫格-简洁版

    效果

    jjb.png

    模板代码如下

  • 如何用思源做九宫格日记,各位老哥有啥好的方案吗?

    2024-08-06 09:56

    可以在模板里更改样式,边框,边距,背景色都能自定义的。