重启后引用失效

本贴最后更新于 1221 天前,其中的信息可能已经斗转星移

还发现一个问题,虽然开了关闭时保持 ID 选项,但依旧有些引用在重启后失效,多次尝试后,发现每次重启后同一块的 ID 确实变了。但是貌似只是若干个文件有这个问题。

  • 思源笔记

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

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

    18699 引用 • 69814 回帖

相关帖子

欢迎来到这里!

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

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

    例如上图,当时嵌入是正常的,重启就失效,再次重新链接后,发现 ID 确实变了。但是又不是同次设置的所有嵌入都会重启失效。

  • 请帮忙观察一下重现步骤,谢谢。

    4 回复
  • D 大,给你发了邮件,请查收。不知道是不是我这几个笔记有什么特殊的地方。

  • 看了一下源文件,貌似这几个失败的链接导向的文件还是普通的 md 文件,不是思源格式的每段后附有 id 样式的文件,可能是这个原因。

    但是这几个文件已经是思源笔记本内的文件了,不知道为什么没有处理成思源的格式。

  • 又试了删掉笔记本内的.git 文件夹,删掉家目录下的.sisyuan 文件夹之后重新打开笔记所在文件夹,对应的文件依旧没有被处理成思源的带有 ID 的格式。

  • 我自己搞定了。

    原因就是因为思源笔记此前导入 md 文件时,虽然选择了退出保持 ID,但很多文件仅在文件末尾添加了 id,并没有每段后都添加 id。因此导致每次引用当时正常,重启后无法找到相应内容(因为被引用内容的 id 并未保留在文件中。)

    我的方法是:用思源笔记手动逐个修改文件并保存,此时会思源笔记会在每段后添加固定 id,之后再引用或者嵌入,都没有问题了。

    所以具体 bug 应该是:目前导入常规 md 文件后,思源笔记仅在文件尾部添加 id,没有逐段添加。

    1 回复
  • 谢谢帮忙排查,应该是保持 ID 的实现上有缺陷,稍后会排查。这个选项我们计划在后面的版本直接去掉,你觉得呢?

    1 回复
  • abbj 1

    退出保留 id 的选项吗?我也觉得这个其实没必要保留,既然都用链接了,当然希望链接持久化。

    另外,其实我觉得执着于源文件是 md 格式也没有必要,只要给用户提供随时批量导出成标准 md 格式的选项,程序运行中想采用啥格式都行,比如是不是用数据库便于搜索或者引用?或者更便于支持大量数据?(这个我实在不懂,就是想想)。

    总之,只要能够提升程序体验(反应速度、功能等)且保证能方便的导出通用格式,其实可以大胆的使用任何格式来保存数据。

    还得补充一点,除了保证能随时批量导出,还要保证能随时批量导入标准 md 文件,这样,思源笔记自己用什么格式做内部处理或者存储,就都随意了,其实不影响用户数据的安全性或者通用性,而且我觉得多数用户其实也不会关心思源笔记自身用了什么格式来储存数据,只要数据能随时完整导出成标准 md。

    1 回复
  • 嗯,是这个选项。之前加上这个选项主要是考虑到有的用户可能需要用其他编辑器打开 md 文件,加一堆 ID 以后存在一定“污染”问题。

    随着时间推移,思源自身的编辑器也在改进,所以这个选项应该可以去掉了。存储方面目前底层是 md 文件和数据库都有,数据库主要是用于只读查询,最终物理存储格式估计短期内还是会基于 md 文件,这样即使没有启动思源的情况下也基本能够让用户进行笔记查看和修改。导入导出方面也会继续改进,近期计划是支持批量导出标准 Markdown 文件。

    下个版本直接去掉保持 ID 好了,感谢讨论 🙏

请输入回帖内容 ...
abbj
我的小站 https://blog.abbj.top/

推荐标签 标签

  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    163 引用 • 1450 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    40 引用 • 24 回帖
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 192 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 2 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • Tomcat

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

    162 引用 • 529 回帖 • 4 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 56 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 563 关注
  • jsoup

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

    6 引用 • 1 回帖 • 462 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 594 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 43 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    82 引用 • 122 回帖 • 621 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    523 引用 • 4581 回帖 • 690 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    198 引用 • 120 回帖 • 1 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 521 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 618 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    21 引用 • 58 回帖 • 1 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 683 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    126 引用 • 1699 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 291 关注