导出笔记能力建议

本贴最后更新于 351 天前,其中的信息可能已经时异事殊

我尝试了一下导出整个笔记本到 markdown 格式,发现原本是引用的地方,导出后是 markdown 格式的链接,链接目的地址还是是 siyuan 的 block 地址。

image.png

为啥需要导出功能?因为笔记最重要的是内容,不是工具,这就需要内容随时可以迁移出来,改用其他工具打开。目的是假如一个工具不可用了,可以用另一个工具快速续上。

但以当前的情况看,即便用其他工具打开了,也是依赖 siyuan 的。

能否在导出的时候,可以自行适配当前市面上其他的 markdown 双链笔记的格式?或者至少纯 markdown 内容,不依赖 siyuan?

我觉得提供一个退出机制会让用户更安心的使用。

  • 思源笔记

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

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

    19811 引用 • 75858 回帖
1 操作
duyujie 在 2023-07-18 15:20:18 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 想无损从 a 软件转移到 b 软件,理论上可行,但是实际上没人愿意这么做。大家虽然都是 markdown,但有些功能非标准,是扩展的,扩展的内容不支持导出很正常。而且做一个完美导出到 xx 软件的功能,需要非常熟悉另一款软件的存储结构,而且可能随着它的更新,又要调整导出结构,作者没有任何理由开发这种,费力不讨好的功能,支持标准语法导出就行了

    2 回复
    1 操作
    lunzi 在 2023-07-18 15:17:17 更新了该回帖
  • duyujie 1 评论

    你说得对,不过不考虑从 a 导出到 b,也至少可以考虑从 a 导出来后不依赖 a,即便损失一些能力。
    比如内链可以用目标文件的相对路径表示。。我测试下是可行的

    嵌入块没有办法,markdown 语法不支持,可以考虑纯文本拷贝
    duyujie
  • 导出我没用过,我也不清楚。细节方面,怎么抹去私有格式,换成 markdown 格式,这个是作者考虑的事,如果不合理,提下具体改进方案就好

  • Undii 1 评论

    我一般用的脚注,改成仅锚文本、并重新设置锚文本包裹符号可能更兼容一些;对于块引的话好像挺难办。

    图片.png

    1 回复
    试了一下,改成 [[ ]],不重名的情况下 ob 还是识别的(无法处理块引,有个 [[]] 会显得很多余),但不容易保证文档名不重复。
    Undii
  • duyujie

    欸,没注意到有这方面的配置,我试下

  • duyujie 2 评论

    哎,导出配置不顶用啊。。。建议增加配置,引用块导出按照 markdown 内链的格式,指向目标文件的相对路径

    比如 [锚文本](../目标文件)
    duyujie
    支持
    Undii
  • duyujie

    还有一种方式,就是用户自定义渲染模板。

    模板的变量为 $(.arg),渲染格式用户指定

    比如引用块可以这样定义:[$(.anchorText)]($(.rpath)) 等等

  • duyujie

    @88250 帮忙看一下上述两个方案?有没有可能支持下?

    1. 导出配置新增,引用块按 markdown 内链的方式指向文本相对路径
    2. 用户自定义导出模板,siyuan 支持多种渲染变量
  • 话说如果能这样搞的话,ob 那边应该有插件吧,ob 那边是怎么做的?在 markdown 里引用块级别的操作的,我都是用的脚注,通用

    1 回复
  • duyujie

    ob 直接存储和操作 markdown 文件,不需要导出

    1 回复
  • 额,意思是它的引用链接是什么样式,我记得也有你说的这样的 wiki 一样的链接形式,其他软件比如 ty 或者 vscode 的能识别?

    我也只知道 []() 这种格式。。
    duyujie
    @duyujie 主要路径困难吧,md 是文件形式的,那路径怎么对应到块,就是.rpath 这个内容是怎么填?主要是这个,只支持文档的压根不支持,支持块的支持每家对块内容的 ID 定义都不同。
    mozhu
  • 你设置错了,设置中的导出选项,将引用设置成脚注导出即可。

    而且这样导出的内容,更符合你的不依赖软件的需求。因为脚注是 md 通用语法,所以你可以用 typora 打开,也可以用 vscode 打开,甚至可以用浏览器打开。

    1 回复
  • ljgeneral

    现在怎么更新新的软件版本啊

    1 回复
  • duyujie

    确实,脚注通用。主要是这样就破坏了双链结构。。。哎,我是想自定义一点,如果导出能支持自定义渲染模板就好了,这样我就能直接导出目标软件能读的格式。

  • duyujie 1 赞同 3 评论

    我打算以 obsidian 为后备工具,然后 siyuan 到 obsidian 之间的导出方案是:

    1. 在 siyuan 中,引用应当以笔记粒度进行,不做标题引用。
    2. 笔记与笔记不要有重名。
    3. 笔记按照"文件夹-文件"的方式组织,不要按照"笔记-子笔记"的方式组织。如果笔记之间确实有层级关系,通过引用来表示。("文件夹-文件"可以组织为"笔记类型-笔记",这样可以维持组织度同时不必在上级笔记中记录内容。)
    4. 导出配置引用方式是“仅锚文本”,锚文本包裹符号是 [[ ]]
    5. 嵌入块无法无损迁移,因此少用,导出配置为“引述块”
    6. 标签包裹符号配置为 # (无)

    以此,引用关系和标签可以无损导出,嵌入块有损导出,笔记双链结构不会破坏。

    1 回复
    喜欢 siyuan 的便利,同时又打算准备一个后备工具的用户可以参考这个方案。
    duyujie
    注意,笔记标题中不能有 markdown 语法符号,否则引用关系迁移会出问题
    duyujie
    标签中不能带空格
    duyujie
  • a1993613 1 评论

    “在 siyuan 中,引用应当以笔记粒度进行,不做标题引用。”这是啥意思?能否进一步解释下

    就是只引用完整的一页,不引用页里面的局部内容。因为迁移出去的时候,只有对页的引用能无损迁移
    duyujie
  • joker682

    但是一些常用的、重要的功能标准化还是很有必要的,比如引用双链功能。用在笔记中非常方便。特别大量的笔记,难免重复。

  • joker682

    这也是我疑惑的地方,md 格式导出双链引用有三种方式

    1.锚文本块链:(需要思源会员功能支持)引用链接导出后,格式为:
    tmpFF8F.png
    即[标题](思源块代码)这种格式只适合思源使用,其他笔记软件不通用。
    2.仅锚文本:这个选项导出的引用链接仅仅是文本——被引用笔记
    3.脚注:这个选项导出的引用链接的笔记以脚注形式存在,即整个被引用笔记会黏贴到引用笔记中,成为引用笔记的脚注。

    其实完全可以将仅锚文本中的仅文本形式改为[[被引用标题]]格式,毕竟思源自己就支持这种格式。以仅锚文本形式导出去后再导回来自己都不能用了

    1 回复
  • 你说的目前思源就支持的额,导出设置锚文本自己加上两个[[ ]],这个对文档级的引用生效,块级别的就别想了,各家都是带 id 的,否则无法保证唯一性,也就不通用了。比如 ob 的段落文本引用或标题引用,在其他地方也无法识别,甚至它开启了 wiki 链接的话,连图片都无法识别,是自己的![[]]格式,无法被其他通用编辑器识别。

    image.png

    是的,所以我现在都是只使用能够迁移的语法格式,各家独特不可迁移的都不用
    duyujie
请输入回帖内容 ...

推荐标签 标签

  • 招聘

    哪里都缺人,哪里都不缺人。

    189 引用 • 1056 回帖 • 1 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • 笔记

    好记性不如烂笔头。

    306 引用 • 782 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖 • 2 关注
  • 博客

    记录并分享人生的经历。

    272 引用 • 2386 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 531 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    141 引用 • 3721 回帖 • 1 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 141 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 233 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • JWT

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

    20 引用 • 15 回帖 • 19 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 58 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 234 关注
  • webpack

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

    41 引用 • 130 回帖 • 288 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 708 关注
  • BND

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

    107 引用 • 1281 回帖 • 31 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    60 引用 • 287 回帖
  • OkHttp

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

    16 引用 • 6 回帖 • 53 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 16 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 43 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 11 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    76 引用 • 429 回帖
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    76 引用 • 390 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Firefox

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

    7 引用 • 30 回帖 • 446 关注