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

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 票

  • 思源笔记

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

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

    19116 引用 • 71871 回帖 • 2 关注
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.achuan-2.top/ 上海

推荐标签 标签

  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    27 引用 • 66 回帖 • 1 关注
  • Telegram

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

    5 引用 • 35 回帖
  • Sublime

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

    10 引用 • 5 回帖
  • 996
    13 引用 • 200 回帖 • 2 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 1 关注
  • 微服务

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

    96 引用 • 155 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 608 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 294 关注
  • CAP

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

    11 引用 • 5 回帖 • 570 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 123 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    148 引用 • 257 回帖
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    22 引用 • 31 回帖 • 2 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖
  • 书籍

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

    76 引用 • 390 回帖
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    10 引用 • 86 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 340 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 693 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 641 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    57 引用 • 22 回帖 • 3 关注
  • 智能合约

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

    1 引用 • 11 回帖 • 10 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • Elasticsearch

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

    116 引用 • 99 回帖 • 269 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    85 引用 • 1201 回帖 • 450 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • GAE

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

    14 引用 • 42 回帖 • 696 关注
  • PHP

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

    165 引用 • 407 回帖 • 525 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 635 关注