思源 2.4.1 至 2.5.0 重要更新一览(带图)

思源 2.4.1 至 2.5.0 重要更新一览(带图)

本次更新了 13 个版本,其中有些重要特性正好可以拿来分享下用法,挖掘思源作为本地 PKM 系统的潜力。

听说思源笔记会通过用户电脑挖矿

  • 以前不会、现在不会,将来也不会。详情请看如何评价思源笔记? - 知乎 (zhihu.com)

  • 目前此条问答已经加入“常见问题”里,点击思源右下角的?按钮打开内置帮助文档,复制以下代码块粘贴到思源里即可点击查看:

    • ((20221031001313-rk7sd0e '听说思源笔记会通过用户电脑挖矿?'))
      

开源云端同步服务实现

  • 继开源思源之后,思源的云端同步也在 2.4.10 开源,并在 2.5.0 大版本提供界面配置,结束订阅用户内测阶段,开始进入免费公测阶段。

  • 开源云同步之后和我以前用第三方网盘同步 data 文件夹有什么不同?

  • 之前利用第三方网盘同步思源有以下缺点:

    • 不能在思源运行时进行同步,否则极大概率会造成数据丢失
    • 储存在第三方网盘上的是明文数据
  • 在同步服务开源后开发者又完成以下两个 issues:

  • 自此,在免费公测阶段大家可以做到不订阅也能享受到订阅后才有的同步功能,包括:

    • 端对端加密同步:在云端上储存的是加密过的数据仓库文件

      • 同步时,两端的变更没有冲突则直接合并

        • 如果存在文件冲突,则以本地为准覆盖云端,同时拉取到的云端冲突文件会归入到数据历史中
        • 我建议在设置—云端里打开“同步冲突时生成冲突文档”这一选项,防止在不知道的情况下,被归于数据历史的冲突文件超过保留天数被删除
        • image
    • 加密后的数据快照备份,支持保存 12 个数据快照

  • Cloudflare R2 有免费 10G 存储,流量不计费,这里演示下在 Cloudflare 配置 S3 储存同步思源的流程:

    1. 打开全局代理

    2. 访问 Cloudflare 中国官网 | 智能化云服务平台 | 免费 CDN 安全防护 | Cloudflare 并注册登陆

    3. image在左侧栏选择 R2

    4. 花 0$ 购买服务 (可以用 Paypal )

    5. 创建存储桶

      image

    6. 区域是自动,访问是受限,点击右下角的创建

      image

    7. image创建好后点击这里的复制

    8. 在思源 设置-云端-S3 配置页中的 Endpoint 里粘贴刚才复制的链接

      在 Bucket 里填上自己的存储桶名称

      在 Region 里填上 auto

      image

    9. 返回 R2 页面,点击管理 R2 API 令牌(可能第一次创建时这里不一样,找到创建 API 令牌的地方就行)

      image

    10. 点击创建令牌

      image

    11. 设置为编辑权限和令牌时间后点击创建

      image

    12. 在成功创建的页面里复制“访问密匙 ID”和“机密访问密匙”

      image

    13. 分别粘贴到思源 设置-云端-S3 配置页里的 Access Key 和 Secret Key 里

      image

    14. 点击思源左上角的同步按钮即可同步

  • PS:不建议使用坚果云 WebDAV,因为它的接口有频率限制,会导致可用性较低,具体限制可参考坚果云官方文档 https://help.jianguoyun.com/?p=2064

  • PS2:目前是在免费公测,什么时候结束公测我想应该取决于开发者什么时候负担不起思源服务器的支出,如果思源运营良好的话,开发者会一直公测下去。

  • PS3:除了云端同步和备份,订阅思源还有其它功能,例如:

    • 发布文章时带资源文件复制到对应平台的在线图床功能
    • 微信提醒
    • 收集箱
  • 相关 issues:

支持非列表大纲式缩出

  • 2.4.6 更新了非列表大纲式缩出的功能,并默认打开,这个功能对于普通用户来说是非常顺手的,并且开发者并没有剃除原来的列表大纲式缩出,而是做了个开关放到 设置-编辑器 里(开关也越来越多了,有点难顶)。
  • image
  • 20221113140004

桌面端内核进程使用随机端口

  • 在 2.4.6 的更新里开发者做了这个改进,在之前思源是使用固定端口 6806,以此衍生出了很多思源用法,但是如果端口 6806 被占用就会导致思源内核无法启动,例如:Hyper-V 保留端口导致启动失败 - 链滴 (ld246.com)

  • 于是开发者一直在思考如何解决这个问题,在 22 年 5 月 19 号时第一次开启这个 issue 桌面端内核进程使用随机端口,准备直接将固定端口改为随机端口,因改动后果影响较大遭到反对。

  • 开发者找到合适方案后,在 10 月 24 日重开了这个 issue ,既保留了固定端口,也支持随机端口,在 设置-关于 里可以看到相关选项,默认是关闭。

  • image

  • 下面将介绍下由固定端口 6806 衍生出的思源用法。

  • 将思源作为本地 Web 静态文件服务器与图床使用

    • 由于思源开发者 D 与 V 的设计,思源可以作为静态文件服务器使用,工作空间部分目录下的文件可以通过链接访问,比如一张图片的路径是:工作空间/data/assets/1644926207596-20220216001927-8vdanwu.jpeg

    • 那它的访问地址是:http://localhost:6806/assets/1644926207596-20220216001927-8vdanwu.jpeg

      • image
    • 如果需要提供给局域网内其它设备使用,就要将 localhost 改为思源所在设备的内网 IP ,例如 192.168.123.101,这个地址能在思源 设置-关于 里看到。

      • image
      • Screenshot_20221113_150613_com.android.browser
    • 除了用作本地图床,还可以在浏览器中访问其它类型的文件,比如 PDF 、txt 、视频等等……

      • image
      • image
      • image
    • 这样用的好处是我们只用在思源里有底层文件,就可以在其它软件里通过链接复用文件,从另一种角度上做到了“管理链接而非管理本体”,这是思源作为本地 PKM 工具的先进设计之一。下面是在 SuperMemo 使用思源本地图床的用法:

    • 思源作为本地图床导入材料至 SuperMemo,以网页为例 - 链滴 (ld246.com)

    • 思源工作空间其它部分目录也能请求静态资源(http://localhost:6806/目录名/文件名),这几个目录分别是:

      • assets、emojis、snippets、templates、widgets、appearance、export
    • 利用了思源作为本地 Web 静态文件服务器这个特性的,还有集市里的挂件 url-scheme :

      • image
      • 有些软件、网站无法跳转超链接,比如 MindMaster ,这时候就可以做一个中转页面作为跳转,将软件的超链接粘贴到挂件里,复制出来的链接就可以在这些不支持超链接跳转的网站、软件里正常跳转了。具体代码请看原作者 DiamondYuan 的在任意网站支持 URL Scheme (yuque.com)
      • 超链接应用策略请看临时哈桑老师的总结:url scheme 相关 (yuque.com)
    • 手机上的思源也可以当做本地 Web 静态文件服务器与图床使用,关于手机伺服的经验请看这里

    • 这里有一个小技巧,如果用来当做本地服务器设备内网 IP 经常变动,可以这么做:

      1. 为局域网设备分配固定内网 IP,请看这里

      2. 打开 c:\windows\system32\drivers\etc 下的 hosts 文件,加入这么一行:

        • image

        • 左边写思源所在设备的内网 IP ,右边随便写个中意的域名,在使用本地图床的时候,将图床链接从 http://192.168.123.228:6806/assets/文件名 变为 http://siyuanmemo:6806/assets/文件名

          • imageimage
        • 这样就避免了因内网 IP 变动导致链接失效。

  • 相关 issues:

文档树支持 Ctrl+Click 和 Shift+↑/↓ 进行多选

  • 2.4.10 更新了文档树多选的操作,但根据我接收到的反馈和使用经验来看,在文档树上频繁管理文档块是非常不稳定的。

  • 归根结底,文档树上的移动还是在操作文档块对应的底层文件,而操作底层文件有风险且不高效,我之前有遇到过“移动后出现同名文档块”、“删除同名文档块导致本体也被删除”、“移动后大量子文档块丢失”,需要频繁回滚重建索引,数据量大了之后,每次重建索引都是一种对自己的打断。

  • 所以可以考虑用 列表大纲 + 链接 的方式替代文档树,无论是索引的功能,还是想构建知识结构,列表大纲 + 链接都能完美替代。

  • 我对文档树的感情很复杂,从坚定的文档树捍卫者慢慢变成文档树的改造者,到最后完全抛弃文档树,这个成长过程或许大家都要走一遍,最后的感悟跟 RR 的创始人 Conor 的观点相同

    • 文件柜方法使聚合或重用同一条信息很难甚至是不可能,因为每次对任何给定文件进行修改时,都必须在其存在的每个位置对其进行跟踪和更新。 这就导致了冗余,几乎相同的想法重复被记录,且在任何需要系统范围更改时都要进行大量工作。

    • 许多文件被孤立而脱离了其上下文;信息被放在抽屉里,而不是系统性的放进更广泛的知识框架中。知识树可以在给定层次结构中的文件之间创建非正式关系,但这些关系通常是不明确的,且只能描述垂直的“父和子”分类关系。

  • 在这个过程中寻找到的解决方案,正是 @deerain 老师的“管理链接而非本体”:“分类体系不一定体现在文件树上”,而管理链接要比管理本体高效。

  • 如果觉得自己文档块太多懒得手动迁移,或者有强迫症害怕有注意不到的文档块在,可以尝试下集市里的挂件“list Child Docs”,能自动创建和更新当前文档块的子文档块目录列表,支持块引用和块超链接两种形式。

  • 另外 @Achuan-2 老铁的模板也能做到一样的效果 https://www.yuque.com/achuan-2/siyuan/xz0rn0 ,模板的用法流程如下:

    1. 复制模板代码
    2. 在 工作空间目录\data\templates 目录下新建文本文档.txt
    3. 打开该 txt 文件将代码粘贴进去保存,关闭后将该 txt 文件的后缀改为 .md
    4. 打开思源,在文档块里使用斜杠菜单,唤出刚刚新建的模板
  • 这样能利用挂件或者模板做到文档树的第一步迁移,变成无序列表 + 链接的 MOC ,之后维护或者不维护该 MOC 的选择在于你,但至少不会频繁出现操作底层文件的风险。

  • 而无序列表的功能也强过文档树太多,比如:

    • 一键折叠展开子级、折叠展开同级
    • 越过“层级不能超过七的限制”
    • 块聚焦当前的知识结构的分类
    • 同一个链接可以放在不同分类结构之下
    • 把一条笔记的从一个分类移动到另一个分类、其实就是在移动一行文字
    • 文档树只能放文档块,无序列表可以放任何块,例如视频块、段落块里的图片等等
    • 一些主题自带的功能能将无序列表块变成脑图方便查看
  • 此外还有表格 MOC 、图片 MOC ……

  • 相关 issues:

  • 扩展阅读

支持通过界面设置代码片段

  • 2.4.0 引入的新特性增加公共代码 js/css 片段 在 2.4.7 支持通过界面设置代码片段,在 设置-外观-代码片段 里可以找到设置,以下是两个社区老铁分享的代码片段:

    • CSS 片段,更改块引用颜色,给块引用增加双方括号,分享自我的咸蛋超人 @royc1

      • image
      • .protyle-wysiwyg [data-node-id] span[data-type='block-ref'] {
            color: var(--b3-theme-primary);
            font-weight: inherit;
        	background-color:transparent;
        	border-bottom:none;
        }
        
        .protyle-wysiwyg [data-node-id] span[data-type="block-ref"]::before {
            color: var(--b3-theme-on-surface);
            content: "[[";
        }
        
        .protyle-wysiwyg [data-node-id] span[data-type="block-ref"]::after {
            color: var(--b3-theme-on-surface);
            content: "]]";
        }
        
        .protyle-wysiwyg [data-node-id] span[data-type="block-ref"]:hover {
            background-color: var(--b3-theme-primary-lightest);
        }
        
    • JS 片断,一键展开反链顶栏版,分享自分享一键展开新反链面板的代码 - 链滴 (ld246.com)

      • image
      • 
        // 反链全部展开图标
        var barSearch = document.getElementById("barSearch");
        barSearch.insertAdjacentHTML(
          "beforebegin",
          '<div id="backlink_allexpand"class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="反链一键展开" ></div>'
        );
        let backLinkAllExpand = document.getElementById("backlink_allexpand");
        backLinkAllExpand.innerHTML = `<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
          width="1280.000000pt" height="1194.000000pt" viewBox="0 0 1280.000000 1194.000000"
          preserveAspectRatio="xMidYMid meet">
         <metadata>
         Created by potrace 1.15, written by Peter Selinger 2001-2017
         </metadata>
         <g transform="translate(0.000000,1194.000000) scale(0.100000,-0.100000)"
         fill="#FFFFFF" stroke="none">
         <path d="M3075 11863 c-622 -387 -1140 -833 -1582 -1363 -925 -1106 -1440
         -2454 -1489 -3900 l-7 -200 2241 0 2242 0 0 45 c0 234 89 587 206 815 160 313
         417 597 695 766 l60 36 -33 58 c-196 345 -2204 3819 -2208 3819 -3 -1 -59 -34
         -125 -76z"/>
         <path d="M9534 11832 c-33 -59 -533 -927 -1112 -1929 -579 -1003 -1053 -1827
         -1054 -1832 -2 -5 43 -40 99 -77 378 -255 652 -631 778 -1069 34 -118 62 -286
         71 -419 l7 -106 2240 0 2240 0 -7 200 c-68 1986 -1022 3787 -2631 4969 -147
         108 -552 373 -568 371 -1 0 -29 -49 -63 -108z"/>
         <path d="M6210 7666 c-470 -85 -824 -366 -995 -790 -159 -397 -112 -829 130
         -1197 63 -95 239 -271 335 -334 224 -148 452 -218 715 -218 165 -1 230 9 380
         54 207 64 367 161 526 319 144 143 236 288 304 478 237 664 -121 1403 -790
         1630 -49 17 -124 38 -165 47 -102 22 -344 28 -440 11z"/>
         <path d="M5436 4731 c-11 -20 -1530 -2652 -1843 -3194 -206 -356 -376 -654
         -379 -661 -7 -17 76 -67 311 -186 731 -370 1474 -583 2326 -667 249 -24 844
         -24 1098 1 845 81 1594 296 2326 666 235 119 318 169 311 186 -4 11 -1949
         3386 -2168 3762 l-60 103 -53 -30 c-82 -47 -251 -116 -363 -149 -175 -53 -334
         -75 -532 -76 -320 -1 -588 60 -864 199 -58 29 -108 50 -110 46z"/>
         </g>
         </svg>`;
        
        backLinkAllExpand.addEventListener(
          "click",
          function (e) {
            var list = document.querySelector(
              "div.backlinkList.fn__flex-1 > ul"
            ).children;
            for (var i = 0; i < list.length; i++) {
              if (list[i].nextSibling && (list[i].nextSibling.tagName == "LI" || list[i].nextSibling.className.indexOf("fn__none")) > -1) {
                list[i].click();
              }
              if (i == list.length - 1) {
                list[i].click();
              }
            }
          },
          false
        );
        backLinkAllExpand.addEventListener(
          "click",
          function (e) {
            e.stopPropagation();
          },
          false
        );
        
  • 相关改进:

支持设置悬浮窗弹出选项和动态加载块数

  • 2.4.8 支持了这两项设置,可在 设置-编辑器 里找到

  • image

  • image

  • 思源触发悬浮窗弹出的地方有:

    • 块引用锚文本

    • 块超链接

    • 块标

      • 面包屑上的块标
      • 反链面板里的块标
      • 块引用搜索窗口里的块标
      • 大纲( ALT+2 )里的块标
      • 书签里的块标
    • 引用数统计

      • 文档树上文档块右侧
      • 块右上角
    • PDF 标注

    • 关系图和全局关系图

      • 需要用 ctrl + 鼠标左键点击才能触发浮窗
    • PS:有块标就能触发浮窗,有浮窗就有面包屑,有面包屑就能用 ctrl+ 左键 点击跳转

    • PS2:有浮窗就能和编辑器正文产生互动,比如拖拽原块块引用、块嵌入到正文,甚至可以在浮窗里做笔记。

      • 演示:

        • 浮窗的使用
    • 待补充……

  • 相关 issues:

Windows 端不再支持安装时选择安装路径

  • 经过 @shuoying 超人 的贡献,对一些安装选项进行了变更,思源的安装目前是这样的:

    • 双击运行安装程序直接安装时,用户无法自定义安装目录:

      • 如果是初次安装思源

        • 用户可选为当前用户安装/为所有用户安装(需要管理员权限)

          • 为当前用户安装默认安装目录为 C:\Users\<用户名>\AppData\Local\Programs\SiYuan
          • 为所有用户安装默认安装目录为 C:\Program Files\SiYuan
      • 如果是覆盖安装(更新)

        • 用户可选为当前用户安装/为所有用户安装(需要管理员权限)
        • 同样用户无法自定义安装目录,默认安装目录为原安装目录(如果你之前安装在了 D 盘,那么覆盖安装也一直是装在 D 盘)
    • 带参数安装时(使用命令行带参运行安装程序),用户可以自定义安装目录:

      • 带参数 /D 自定义安装目录(初次安装/覆盖安装均适用)

        • 示例: 将安装包 siyuan-2.4.8-win.exe 安装至 D:\Program Files\SiYuan 目录

          • ./siyuan-2.4.8-win /D=D:\Program Files\SiYuan
      • 演示如下( 我的系统是 win11 ,其它系统可能有不一样之处 ):

        1. 打开思源安装包所在的文件夹

        2. 按住 shift+ 鼠标右键会看到右键菜单里有一个“在此处打开命令窗口”选项,点击即可

          • 或者在当前目录上面的路径显示框中输入 CMD,然后回车即可
        3. 输入命令安装,比如将安装包 siyuan-2.5.0-win.exe 安装至 D:\Program Files\SiYuan 目录就要用:siyuan-2.5.0-win /D=D:\Program Files\SiYuan

        4. 在安装时会出现你之前安装路径的提示,不用管,继续点安装,等安装完毕即可

          image

  • 出现这个 issue 是因为一直有用户将工作空间目录设定在思源安装目录下,更新思源时安装目录清空导致笔记数据丢失。

  • 很久前就有热心老铁发现并反馈这个问题,在开发者做了各种安装提醒后,依旧会有不看提醒导致数据丢失的情况出现,于是开发者不得以只能强制无法自定义安装目录( logseq、obsdian 也是这么做的,学习它们的经验)。

  • 这个问题并不是说服开发者就能解决的,开发者也是倾向于能够选择安装路径的,不然也不会一开始就这么做。

  • 改动之后并不能完全解决问题,比如可能还是会有新用户将工作空间目录设定在安装目录,但是能降低问题出现的概率,从用户(普通用户)角度考虑的话也是后者更安全,出错概率更低,需要关注的问题更少。

  • 正如开发者所说:“如果我们开发思源,不是从普通用户角度考虑问题,那思源可能一直就这样发展不了。”

虚拟引用的改进

搜索资源文件支持跟随 assets 文件夹符号链接

  • 这个 issue 涉及到在 win 系统上使用 mklink 命令创建链接文件、文件夹的用法。mklink 可以像创建快捷方式一样建立文件或文件夹的链接,但和快捷方式不同的是,mklink 创建的链接绝大多数程序(包括思源)都会识别为实在的文件或文件夹,并且不占用空间,这样搭配思源我们能衍生出很多用法(管理链接而非本体的队伍又增加了)。

  • 管理员模式打开 CMD ,无参数指定的默认情况下,mklink 命令建立的是文件的符号链接:

    • 使用格式:mklink "目标地址" "源地址"

    • 例子:mklink "E:\SiYuanXY\data\assets\14604797.pdf" "D:\BOOK\PDF\14604797.pdf"

    • 这时:

      • 修改源文件后链接文件会随之修改
      • 修改链接文件后源文件也会随之修改
      • 删除链接文件不会影响源文件
      • 删除源文件后链接文件失效
  • 管理员模式打开 CMD ,当指定参数的 /D/J 时,mklink 命令建立的是文件夹的符号链接:

    • 使用格式:mklink /D "目标地址" "源地址"

    • 例子:mklink /D "E:\SiYuanXY\data\assets" "E:\Assets\assets"

    • 这时:

      • 源目录删除后,链接目录无效
      • 链接目录删除,源目录不受影响
      • 源目录里面的文件发生变化时(新增、修改、删除),链接目录里面的文件同步发生变化,反之亦然
    • 参数 /D /J 是有差别的,社区里老铁有的在用 /D,有的在用 /J,但是都能正常在思源里使用,并且利用第三方网盘同步也没问题,所以我也没去实验,等将来发现在思源里使用上的差别我再回来更新。

  • 和思源搭配使用的思路如下:

    • 使用 mklink 节省同步云空间,详细请看:OneDrive 云盘接管思源 assets 文件夹这里

    • 使用 mklink 扩充思源作为本地 Web 静态文件服务器的范围

      • 把链接文件放进思源可以伺服的文件夹下,可以通过 http://localhost:6806/目录名/链接文件名 访问
      • 把链接文件放进思源里的链接文件夹,同样可以通过 http://localhost:6806/链接目录名/链接文件名 访问

改进编辑器布局设置

Windows 端不再支持 32 位系统

云端收集箱的改进

桌面端 /模板 增加打开文件位置

  • 现在模板界面有打开文件位置的按钮了image

加入 Google Analytics

块滚动条跟随滚动

  • 现在的文档快速滚动条支持跟随滚动,可以提示当前块位于文档的位置了,在此之前 dark+ 主题有这个功能,随着官方加入这个功能后,在 dark+ v1.3.7 里随之移除。
  • 块滚动条
  • 但是灰色滚动条好像无法拖动了,像是 BUG 又像是改进。

PDF 支持深色和浅色模式选择

  • 现在在 PDF 右上角能切换深浅模式
  • image

导出为长图

  • 对部分用户使用体验的大提升,现在的导出加入了导出长图功能
  • image

编辑器右侧加入滚动到顶部和底部按钮

  • 现在的编辑器右侧有滚动到顶部和底部的按钮,只有鼠标移动过去才会触发显示
  • image

对自动更新的改进

1 操作
dammy 在 2022-11-15 06:04:15 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • gkynx85

    楼主有心了,辛苦了感谢,大赞特赞,持续关注 👍 👍

  • vicjoo
    订阅者

    超级详细~~ 👍

    去试试~~

  • JINSILI
    订阅者

    大佬牛掰,支持支持 👍 👍👍 又收获了新的用法

  • zxy0124
    订阅者

    牛逼。

  • gdpinchina 1 赞同
    订阅者

    开源云服务以后, 我担心 D 大的盈利问题

  • deerain
    支持者 订阅者

    大佬

  • PiChou
    订阅者

    感谢汇总!给我们这些不怎么关注的提供了一个便捷的信息途径 👍

  • tempvic
    订阅者

    感谢

  • yumenawei
    支持者 订阅者

    大佬,用心啦

  • qifengle1998

    Dammy 有德啊

  • qifengle1998

    老实说,我都不知道最近几个月更新了什么。 就靠看你这个帖子了

  • guang222

    66!!!

  • sanliang233

    赞啊,大佬

  • www766
    订阅者

    牛逼啊 我也跟了很久了 可还是很多功能不知道啊 继续多出干货 牛逼!

  • ahtian928

    厉害了大佬

  • iamqiz
    订阅者

    大米 yyds

  • orangemeow

    docker 升级以后出错,无论加不加 servePath 参数都不能正常打开网页,F12 看到的报错信息显示思源一直在尝试访问 http://网址:6806/,而我实际上已经用 nginx 反代到 https://网址/

请输入回帖内容 ...