关于思源笔记块引平替脚注的改进建议

本贴最后更新于 237 天前,其中的信息可能已经时移世异

GitHub issue:块引导出脚注对*引用的优化 · Issue #11247 · siyuan-note/siyuan (github.com)

目前块引导出脚注只适配了对选中一句话进行引用
Clip_2024-05-04_10-51-44
在 GitHub 预览,效果是预期内的,很不错
Clip_2024-05-04_10-52-12
但是这种选中一句话的引用有一个问题,如果我想要一句话引用多个出处就做不到了,所以我会使用 * 作为锚文本来引用,比如下面这样子:
Clip_2024-05-04_11-02-32
但是目前思源对这种引用的脚注导出没有很好适配,导出的脚注依然有 *建议锚文本为 * 的,如果设置块引导出为脚注,则将 * 删除,直接为脚注引用语法
Clip_2024-05-04_11-01-57

此外,如果想用块引在思源笔记内实现脚注功能,要么块引新建文档要么基于段落块引用块引选中文字

新建文档的问题有两个

  1. 新建那么多脚注块引文档不切实际,就算不在乎文档树有这些文档,考虑到文档在搜索的优先级,这些文档也会影响到日常搜索体验
  2. 块引选中文字新建文档会导致一句话只能引用一个引用,不好再引用另一个了。

而基于段落块引用现在的问题主要在于在文章最后放备注内容,引用完了之后,这些备注内容依然会导出,要解决只能把这些块放到子文档里去,不是那么方便。
所以我还想建议,一个垂直超级块如果命名为脚注或者 Footnotes 的块则不导出(这个命名可以官方自定义,或者在导出设置里添加一个选项,凡是块命名为 xxx 的就都不导出)
Clip_2024-05-04_11-16-41

建议 1

  1. 块引用导出,锚文本为 * 的,如果设置块引导出为脚注,则将 * 删除,直接为脚注引用语法。因为没人会对 * 进行备注,* 只是一个占位符号,而且官方的块引转换就包含的转换锚文本为 *,可以看作是一个规范。
  2. 为了方便使用笔记末尾的段落块来引用,实现脚注功能,建议一个块如果命名为脚注或者 Footnotes 的块则不导出(这个命名可以官方自定义,或者在导出设置里添加一个选项,凡是块命名为 xxx 的就都不导出)这个建议也不仅仅可以用于笔记末尾段落块引用这个场景,还可以用于屏蔽某个块,毕竟个人笔记要导出,有些块可能是个人的备注等等,不希望导出。

改进这两点之后,思源的块引就完全可以代替脚注功能了

建议 2

还有一个想法,块引转换添加一个转换为 [*],锚文本为 [*] 的,只要引用的块在本文章内,就不在正文导出,只导出为脚注,并且导出时块引的锚文本删除,替换为脚注引用语法
这个会比要用块命名来避免导出更方便,[*] 这个文本也是参考脚注语法,或者改成 [^*] 就更像了。改成这样的话,使用块引的体验就几乎和 Markdown 脚注体验一致了

这样就意味着我要引用一篇文献,不一定要先把这篇文献放在文章末尾,而是直接可以在该段下面添加,然后块引进行引用,就完事。写完之后再把所有文献列表汇总放在末尾也不迟。
Clip_2024-05-04_11-33-16

关于思源笔记块引导出脚注的改进建议

多选 公开 永不结束 7 票
支持块引锚文本为 `*` 的,导出脚注时,不导出 *
28% 2 票
支持设置某个块不导出
14% 1 票
支持块引转换添加一个转换为 `[*]`,可以看作就是脚注的平替
57% 4 票

  • 思源笔记

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

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

    23125 引用 • 93110 回帖 • 1 关注
3 操作
Achuan-2 在 2024-05-04 12:29:20 更新了该帖
Achuan-2 在 2024-05-04 12:18:12 更新了该帖
Achuan-2 在 2024-05-04 11:57:53 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
Achuan-2
给时间以生命而不是给生命以时间,如果你喜欢我的分享,欢迎给我买杯咖啡 https://www.yuque.com/achuan-2 上海

推荐标签 标签

  • CAP

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

    11 引用 • 5 回帖 • 614 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    26 引用 • 196 回帖 • 19 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖 • 1 关注
  • 架构

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

    142 引用 • 442 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 72 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    92 引用 • 588 回帖
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    575 引用 • 3533 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖 • 1 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 779 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 28 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • Swift

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

    36 引用 • 37 回帖 • 536 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 538 关注
  • 新人

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

    52 引用 • 228 回帖
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    210 引用 • 2036 回帖
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 386 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 129 关注
  • jQuery

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

    63 引用 • 134 回帖 • 727 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 479 关注
  • 以太坊

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

    34 引用 • 367 回帖 • 2 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 675 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    126 引用 • 169 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 97 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 438 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 163 关注