重启后引用失效

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

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

  • 思源笔记

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

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

    26202 引用 • 108872 回帖 • 3 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 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/

推荐标签 标签

  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 5 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    497 引用 • 934 回帖 • 1 关注
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • gRpc
    11 引用 • 9 回帖 • 101 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 577 关注
  • Linux

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

    954 引用 • 944 回帖
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    44 引用 • 208 回帖
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 4 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 197 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 281 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 3 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    167 引用 • 408 回帖 • 488 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • BAE

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

    19 引用 • 75 回帖 • 678 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 615 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 393 关注
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 380 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 558 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖 • 2 关注
  • 人工智能

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

    115 引用 • 318 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖 • 1 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 34 关注
  • danl
    177 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 3 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    181 引用 • 400 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖