关于思源笔记的一些看法

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

之前在思源三群发了个消息:

思源写作体验非常棒,算得上 PC 上 MD 笔记的写作体验的领头羊,唯一遗憾的默认存储格式不是.md,限制了玩法和使用场景,否则应该可以封神了。

然后有了如下对话:

萌新的化身[2] 2022/8/8 12:05:20
因果关系搞反了,就是因为打破了 md 的限制才有现在的思源

鸢尾 2022/8/8 12:44:28
果真 .md 格式总是成为大家对思源放不下心的原因

鸢尾 2022/8/8 12:45:17
军师 急需您写一条为什么思源不是.md 的说明

Evil Eyes 2022/8/8 12:46:59
“notion 也不是 md,有本事你去 notion 群里说啊”

Evil Eyes 2022/8/8 12:47:43
再回来的时候已经被骂得不成人形了

是 Dammy 不是 D 大 2022/8/8 12:48:34
MD 问题 D 大熟,我去翻翻 D 大语录看记下了吗,理解老深刻了

是 Dammy 不是 D 大 2022/8/8 12:50:07
坏了我没记

鸢尾 2022/8/8 12:55:05
D 大发的那个我也有点印象

有说大佬曾在群里深刻剖析过为啥不存储 md 的原因。但我进群的晚,没看到大佬的理解。不过呢,感觉对话中的两个理由都比较牵强。

首先我知道思源数据结构是基于内容块的,很多功能和复杂查询与数据关联都是基于这种特有的设计实现的,它就像一个数据库,甚至可以用类似 SQL 的语法进行查询,这种设计思路不错,不过这与最终是否存储为 MD 格式文件没有啥必然联系,因为保存现有格式的元数据与同时再生成一份 MD 文档并没有冲突,而且对直接存储 md 格式不放心的人毕竟是少数,没有啥放不放心,不行的话难道不能对是否存储 md 格式文档设置为用户可选项?

其次我个人认为思源现有的用户增量主要基于写作体验、开源、跨平台、官方同步等方面的原因,这些方面思源除了在移动端的的体验比较糟糕外其他都不错,所以用户的增长几乎是水到渠成的。但这个增速实话说却不是它应有的增速。还有大批人并不知道思源,不知道的原因除开官方推广外主要还是在于用户并没太大的主动意愿去做口碑传播,有些人知道,但用了不久又换其他笔记了,比如 ob。

刚开始我在一些平台回答笔记类的问答时也会推荐一下思源,但后来没有进行推荐了。主要原因有三:

第一、通常发问的人一般都找过许多笔记应用试用过,他们的需求一般是除写作之外的额外要求,否则 word 已是写作体验的天花板,他们也没必要发问,一些需求比较个性化,思源目前并不支持插件扩展,显然无法满足。

第二、md 笔记本身是些简单的标记格式,虽然简单,但也没到人人都懂的程度,懂得 md 语法,并且需要 md 笔记的人大多喜欢折腾,玩 nas、blog、web dev 的人居多,这些人对数据的敏感性高,同时又对数据的通用性有所要求,md 存储格式是其中一个指标,支持第三方同步也是一个指标。这两点不一定是比较重要的指标,但思源显然都不支持。

第三、推荐给一些人用了一段时间后,用的人最终大多还是没选择押宝思源,原因是多方面的,除了我前面说的那些,最主要的是偶发性的报错,思源版本更新很快,但同时也带来了一些问题,比如测试并不严谨,很多问题等新版发布一段时间后才会收到用户反馈,如果是通用型 BUG,恰好被新手体验到了,有些人会选择提交给官方,但更多的人怕是直接选择不用了。我用思源时也会经常遇到崩溃重建索引的情况,而且是连续几个新版本都存在这种偶发性错误,虽然似乎也没影响到数据,但也不太好跟人介绍了。

除上所述外还有一些其他问题,在此不一一列举。总之,思源有它独特的优势,第一眼就觉得惊艳,第二眼还是喜欢,但就目前而言尚未成熟,我知道思源是因为 Vditor,如果不是它,我可能至今也不晓得思源。这本身就是问题。

期待几年后的思源能够建立真正的 md 笔记生态,适用更多的场景,特别是深层次的插件支持,很多功能官方可以说一万个不做的理由,但对于需求者来说,只需要一个理由,扩展插件的意义就在于:你不做,我做。
我会随时关注,期待它超越 ob 的时候!

  • 思源笔记

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

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

    18697 引用 • 69807 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • Bard 1 评论

    如果思源不是基于 MD 我可能用都不会用,用思源本质上就是基于 MD 写作,思源要另立标准那也无所谓,再找另外的 MD 编辑器就是。是的,目前来说我只是把思源当作 MD 编辑器在使用,用它做知识管理是有风险的,不是诅咒哈,但我从不相信有啥万年不腐的软件,假使有一天思源不再更新了,那么思源独有的数据格式迁移起来就麻烦了,最明确的文件夹 + 文件本体的物理存放 MD 文档是最稳妥的方式,思源的逻辑分类实话说迁移起来比较费事,文档结构里每个分类都一个多余的 MD 文档不说,批量导出也不含资源,只能一个大分类一个大分类的导出,确实麻烦,不是我对思源没信心,只是见惯了跑路和毁前途的软件,用之前都得考虑好结局,这是底线,也是不想受制的考量。你可以说我格局小,但真不想也不愿在一棵树上吊死。

    作者:shileiye
    链接: 关于思源笔记的一些看法
    来源:链滴
    协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

    思源没有另立“标准”,内部封装形式本质就和用户所解耦的,就是用火星文写也没关系

    在用户侧来说就是“MD 语法写,MD 文件导入,MD 语法导出”

    凡是都是有风险的,我理解楼主的担忧,但有句话是这样说的“不谈计量谈毒性,都是耍流氓”

    引申到这里,显然就是:不量化风险大小就说风险是不够严谨和轻佻

    此处思源的核心优势就是“开源”了,相信楼主肯定会在仔细读过楼上已经有别的朋友评论过的

    哦对,再提一嘴什么是开源。

    开源就是这些源码是公布的,有效的,所有人都可以看、下载、修改和编译的,你自己可以在约定的规则下编译、修改和使用的。

    那么之所以 D 大和 V 大哪怕把项目删了,都无所谓,就是代码是完全公开的,这个项目不是像 QQ、WX、Word、WPS 那种私有的,代码完全不公开,这几个公司没了这软件就不能用的。而 Siyuan 你完全可以自己编译,或者用 Github 编译,都是你的自由。你也可以感觉 Siyuan 那里写的不好,不随你的心意,只要 Fork 一下,你就有一份随便你使用的 Siyuan 代码,随便改。

    Siyuan 自带的同步是官方同步,但这个文件夹就在我本地,我随时都可以访问,明文存储,我想备份到哪都可以,我就是直接备份到我的 Github 私有项目。我这两年都来来回回重装十几次系统了,Linux、Windows、MacOS 都用过,Linux 发行版我都用过五六个,要么直接复制粘贴,要么直接 git pull 一下,都没有一点影响 Siyuan。

    所以,支持开源,相信开源。

    作者:GuangDai
    链接: 关于思源笔记的一些看法 - GuangDai 的回帖
    来源:链滴
    协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

    以及再自行细心搜索“开源意味着什么”后

    真正的理解“使用思源的风险到底有多低”

    要是还不理解的话,楼主可以去把 D 的帖子搜出来,看看

    算了,我人好,怕楼主麻烦,已经找到了 思源笔记缘起 - 链滴

    数据可以完全离线以后,还剩下最后一个问题:软件生命周期。

    没有任何软件开发团队能保证软件能够持续可用,从开发团队来说,发生软件终止维护的可能性太多了,比如:经费不足、研发目标转移或者遇到不可抗力(比如开发人员突然离世)。

    有一种有效的方法可以在最大限度上解决软件停更造成的不可迁移,那就是 开源 。如果软件有足够价值且是完整开源的,即使主创团队无法继续维护了,其他开发者也能接过重任。从开发团队实际情况出发,完全开源是比较难办到的,虽然开源商业化模式在很多项目上已经大获成功,但并不是每一个项目都适合这样做或者说需要等待适合的时机。

    作者:88250
    链接: 思源笔记缘起
    来源:链滴
    协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

    虽然看完这篇“缘起”的帖子相信楼主已经可以进一步理解思源的部分情况

    但还是说以下万一地球毁灭,没人接手思源,应该怎么办吧

    1. 不要折腾思源的 .sy 源文件
    2. 直接导出 MD 文件包
    3. 找到支持 MD 导入的软件,导入

    要是还不行的话,思源的数据解析器也是开源的,楼主“不过是”改改解析器 .sy 文件想怎么导出就怎么导出,什么 Word,富文本,自己开发套笔记都可以

    有人说“历史虽然不重复,但总是压着相同的韵脚”

    但也有人说“历史数据不能代表未来走势”

    文档结构里每个分类都一个多余的 MD 文档不说,批量导出也不含资源,只能一个大分类一个大分类的导出

    我刚才试了,通过软件导出 Markdown 的形式都是可以的,所以我并不清楚楼主为什么这么说,我不相信楼主不自己试试就冒出来这句话,应该是我理解有误吧,希望楼主有时间的话可以进一步描述这个场景的不合理之处

    只要言之有理,我就带头提开发需求,再不行就在社区开投票贴,再不行就磨开发者,直到满足需求为止,这当然不是说服楼主转投思源,毕竟这是个开放的社区,您的建议或许可以方便的更多的用户

    说到这里,希望楼主用的不是 ob ,毕竟 ob 连开源软件都不是,从这个角度来说 ob 很有可能就死在思源前面了,谈何“超越”呢

    拜读了一下思源笔记缘起,上面所述的我基本赞同,因为二十年来我也确实在寻找一款可以长期使用的个人文档管理应用,也动过自己写一个的念头。但一是技术不到家,二是懒,所以一直在躺平。这一点上我是很佩服这些不服就干的人的。不过呢,哪怕遇见了思源也没完全满足我个人的需求。我也不想说什么代表广大用户的需求,至少二十多年来所经历的应用确实没有一个能完全满足的我个人需求的。或许我个人对文档的应用场景确实比一般人多一些,本来我也不想提这些的。因为就这些年在这行混的经验来说,很少有官方会为个别用户的需求而改变既定策略,各有各的想法,难免出现认知冲突,只是不吐又不快,我大概这辈子也很难自己去写个笔记应用,但有些东西说不说是一回事,听不听是另外一回事,如果有需求不说,那自然是我的问题。说出来有没人在意那不是我的事。所以基于此我在这里说了一下,并非指望官方就眼巴巴的赶紧给做出来,也只是让一些人知道有人有这些需求,有一些声音罢了。 至于说开源的问题,技术不到家,写写小插件还好,涉及到架构调整还是算了。官方给的源码没有说明,我至今都还没编译成功,更别提修改了。所以我改不了,即便改得了,官方也不一定接受。总之呢,思源的开源目前对于我等渣渣意义不大。否则我也不用在这里提这些“非主流”需求了。 最后,关于导出导入 MD 文档,我只是说它繁琐,不如直接保存 MD 来的实在,仅此而已。
    shileiye
  • 其他回帖
  • 对于 Markdown 的不合适用于知识管理有以下几点

    1. 知识管理需要对一段知识,或者一个块进行唯一标记,但在 Markdown 设计之初就没有这样的需求,所以 ob 在这一块实现的既不优雅,也不够实用,块的定位有问题
    2. Markdown 文件无法保证文件的唯一写入,这就会造成文件损坏,权限异常等无法解决的问题,解决的办法只用思源通过 api 才能对文件保证“事务性”的操作
    1 回复
  • 在扩展语法的道路上越走越远以后,我们发现这似乎是在开历史的倒车。随着更多特定语法的引入,Markdown 的通用性逐步散失,就好像变成了特定软件的私有格式一般。更讽刺的是,语法引入却不能解决 Markdown 最大的问题 —— 自带资源文件(虽然 TextBundle/TextPack 做了一些努力,但就目前而言基本也还是不通用)。

    对于开发者来说,另一条路是一开始就不选择以 Markdown 文本作为存储格式,而是使用更结构化的存储方式,比如数据库或者 JSON,然后在应用层面支持 Markdown 语法排版。选择这条路的开发者,也许已经预见到了将来可能的复杂场景。

    作者:88250
    链接: 纯粹的 Markdown
    来源:链滴
    协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

  • shileiye
    作者

    首先,这种设计是没问题的,为了支持复杂的应用场景,纯 MD 格式肯定是很难的,但哪怕是用到再复杂的数据结构,甚至直接用数据库也不妨碍同时生成一份 MD 文档,以及反解析 MD 文档为特定数据结构,如果是为了满足知识管理、块管理等,关联特定数据结构即可,没必要彻底放弃 MD 存储格式。

    其次,所谓的唯一写入其实是伪需求,目的只是为了防止内容冲突不好合并,但如果笔记有协作需求,那思源目前来讲绝不是一个好的解决方案,除协作需求外可能产生写入冲突的地方应该是在第三方同步和其他软件直接修改 MD 文档上对吧?

    这涉及到以特定数据结构为主数据还是 MD 文档本身为主数据的问题,用特定结构数据的话自然可以更加方便的管理数据,第三方软件对 MD 文件的写入对主数据并无影响,也就是说思源打开这个 MD 文档还是会恢复为主数据库存储的数据,但这显然有些违反直觉。因此以 MD 文档为主,特定结构数据为辅未尝不可。

    结构数据的生成由 MD 决定,本身思源目前的原理也是这样,扫描 MD 文档的改动并重新建立结构数据用于各种辅助功能和查询,MD 文档作为主要数据生成的载体是可行的,因此不存在说无法实现思源目前的功能以及数据结构的问题,因为 MD 文档的普适性,决定了它的应用场景不仅仅是笔记,它是一个生态,比如市面上基于 MD 文档的各类管理系统,其数据源文件就是 MD 格式,比如在移动端一些写作体验较好的应用源文件格式也是 MD,在思源移动端体验依旧跟不上的情况下,使用第三方 MD 编辑器直接编辑 MD 文件也是最好的选择,另外第三方同步读写 MD 也比被思源锁定的特有格式有优势,唯一要解决的就是版本冲突合并罢了。就像代码协作提交前处理代码冲突,对代码进行合并,这并不是什么难事,这本身就是多端同步协作逻辑上肯定会发生的问题,不应为避免冲突而强制它不冲突,而是在冲突时给个解决方案,无论是强制覆盖,还是内容合并,或者是放弃更改,都应该是交给用户,而不是程序。

    1 回复
  • 查看全部回帖

推荐标签 标签

  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 152 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 19 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 6 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 39 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 643 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    330 引用 • 614 回帖
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 597 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 740 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 693 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    169 引用 • 799 回帖
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 345 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 294 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 605 关注
  • BAE

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

    19 引用 • 75 回帖 • 618 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6551 引用 • 29424 回帖 • 246 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖 • 1 关注
  • WebClipper

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

    3 引用 • 9 回帖 • 6 关注
  • uTools

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

    5 引用 • 13 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • V2Ray
    1 引用 • 15 回帖 • 2 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 54 关注
  • Postman

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

    4 引用 • 3 回帖
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖