思源笔记丨写了一个插件,用块引实现脚注和备注

Github:Achuan-2/siyuan-plugin-blockref-footnote: 用块引实现脚注备注

✨ 功能

使用思源的块引实现脚注和备注功能

使用 Tsundoku 主题演示,对嵌套引述块样式进行了优化

📝 使用介绍

插件需要思源笔记版本 >3.1.12

本插件支持高度自定义化,支持的设置如下:

  • 脚注存放位置:可以设置存放在当前文档或者指定文档,默认为 当前文档

  • 选中文本的样式:可以为选中文本添加加粗、高亮、斜体、下划线样式,默认:无样式

  • 插入脚注的顺序:顺序或者倒序,默认:顺序

  • 脚注标题:设置存放脚注的标题名,默认:脚注

  • 脚注块引锚文本:设置脚注引用的锚文本,默认:

  • 脚注内容模板:设置脚注的模板,推荐使用引述块或超级块组合,保证脚注内容属于同一个块。 ${selection} 表示选中文本的内容,${content} 代表脚注内容占位

    • 嵌套引述块模板

      >> ${selection}
      >> 
      > 💡${content}
      
    • 竖向超级块组合模板

      {{{row
      > ${selection}
      
      ${content}
      }}}
      

支持同时删除脚注引用和脚注内容,可以在脚注引用右键菜单,点击【插件-删除脚注】

🙏 致谢

❤️ 用爱发电

穷苦研究生在读ing,如果喜欢我的插件,欢迎给 GitHub 仓库点 star 和捐赠,这会激励我继续完善此插件和开发新插件。

  • 思源笔记

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

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

    22367 引用 • 89514 回帖 • 1 关注
2 操作
Achuan-2 在 2024-11-20 12:33:30 更新了该帖
Achuan-2 在 2024-11-19 12:49:35 更新了该帖

相关帖子

优质回帖
  • Achuan-2 2 1 赞同

    @participants

    v1.0.6 / 2024.11.20

    • ✨ 脚注内容模板新增 ${refID},代表选中文本所在的块 ID,现在可以通过模板插入选中文本所在的块链接了,方便在脚注内容里直接跳转到原来的块
      {{{row
      > ${selection} [[↩️]](siyuan://blocks/${refID})
      
      ${content}
      }}}
      {: style="border: 2px dashed var(--b3-border-color);"}
      

    思源笔记脚注插件支持直接跳转到原来的块.gif

  • Achuan-2 1 1 赞同

    要用思源笔记 3.1.12dev 版本

    插件添加工具栏的 api 有变动,我用了最新的 api,不适配旧版本

  • Achuan-2 1 1 赞同

    @participants

    插件更新 v1.0.5 / 2024.11.20

    • ✨ 支持设置脚注块引为块超链接
    • ✨ 支持设置脚注放在子文档

    PixPin20241120212520.png

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • Achuan-2 1 1 赞同

    第二点已经做了,见 v1.0.6 更新,用 refID 变量结合思源块超链接放到模板里,就可以在生成的脚注内容绑定原始的块

    第一点暂时不考虑,因为初衷就是做脚注,不是做划词评论插件,用块引当划词评论会让划线的文字格式消掉(思源的块引不支持富文本),也不方便多次注释,我是不喜欢的,另外现在的脚注块引也能和常规的块引区别开。思源增强插件也做了划词评论,用反链来做,可以保留划线文字格式(虽然要付费),就暂时不考虑做这个了

    1 回复
  • 其他回帖
  • Achuan-2

    要数字编号,暂时可以通过对脚注内容块进行命名,把脚注引用变为动态锚文本来实现

    PixPin20241118185457.png

    之后我会尝试下让插件有一键转换数字脚注的功能

  • syuer9528 1 赞同

    好吧直接升级到 3.1.13 了哈哈。

    这个插件再有两个功能就基本完备了

    一是自动编号,脚注应该是有序号的,甚至可以最后把所有的脚注包裹到一个有序列表中,不过原文处的上角标应该也是自动更新编号的,应该有个全局变量来维护这个编号列表值。

    二是指定文档为当前文档的子文档,文档名是:当前文档名 + 自定义后缀,例如{{filename}}-"脚注"

    这两个功能之后这个插件就算大成了;)

    1 回复
  • syuer9528

    叠甲:以下仅作为备注相关功能设计的讨论,非 feature request。

    点击“备注”按钮后,自动指定文档名这个功能要考虑的情况太多了,我目前想到的一些情况,想想都头大哈哈:

    脚注 、备注、读后感(这个相当于一种需要区别对待的特殊引用,和一般的脚注、备注有很本质的区别),不应被它的表现形式也是“引用”(或链接)所迷惑。

    当指定文档时:指定到哪个笔记本?如果要手动了怎么办?有的自动有的手动怎么办?那么就是不是需要在文档属性中指定一个自定义字段用于:处理脚注的一些细节、用于星图过滤……如果原文档中已经有了备注怎么办?需要不需要把已有的移到指定的文档中?怎么移动?

    如果是固定的一个文档,为什么要由它来统一管理所有的备注?

    所以是不是要指定的其实是一个笔记本?

    备注是不是可以涵盖浮评(COMMENT)功能?要不要显示回复时间?要不要用递归的大纲呈现回复关系(类似“回复盖楼”功能)?(这个是不是属于协作功能方面的设计了……目前设计这个笔记软件并不多)

    然后是细节:

    原文中的锚是不是应该是被引用文本?而不是那个角标?或者两者是可选?

    然后就是原文和备注之间应该是“链接”,然后备注到原文也是一个链接。其实就是手动建立非“引用”的两个链接,两个对接的锚。相当于手动添加两个链接,一个是原文指向备注,另一个是备注指向原文。

    仅作技术层面的交流探讨,感谢楼主辛勤制作的插件。

    2 操作
    syuer9528 在 2024-11-20 14:39:32 更新了该回帖
    syuer9528 在 2024-11-20 14:39:03 更新了该回帖
  • 查看全部回帖
Achuan-2
给时间以生命而不是给生命以时间,如果你喜欢我的分享,欢迎给我买杯咖啡 https://www.yuque.com/achuan-2 上海