[思源笔记经验分享] 使用 Query 挂件实现属性视图

本贴最后更新于 996 天前,其中的信息可能已经时移俗易

背景

思源的 属性视图 还遥遥无期, 那不如先搞个伪·属性视图先用着

介绍

挂件 Queryv0.3.1 可以将块的 IAL (内联属性表, 也就是块属性们) 渲染为多行或多列

默认会将块属性在一个单元格中渲染为如下样式(渲染为多行)

key1: value1
key2: value2
key3: value3
...

如果想将其渲染为多列

  • 方案 1 (全局自定义配置): 新建 <工作空间>/data/widgets/custom.js 文件, 在文件中设置如下选项, 该选项会覆盖 <工作空间>/data/widgets/Query/src/script/module/config.js 文件中变量 config.query.render.ial.shape 的默认字段 'rows'

    export var config = { query: { render: { ial: { shape: 'columns', }, }, }, };
  • 方案 2 (局部自定义配置): 为挂件块设置自定义块属性 query-render-ial-shape: 'columns'"columns"

如果想自己控制渲染字段

  • 方案 1 (全局自定义配置): 在 custom.js 文件中设置如下选项

    export var config = { query: { render: { ial: { fields: { forced: [], ignore: [], valid: [], }, }, }, }, };
  • 方案 2 (局部自定义配置): 为挂件块设置自定义块属性
    • query-render-ial-fields-forced: (Array) 强制渲染的 IAL 字段(优先级最高)
    • query-render-ial-fields-ignore: (Array) IAL 字段渲染黑名单(优先级次高)
    • query-render-ial-fields-valid: (Array) IAL 字段渲染白名单(优先级最低)

示例

IAL 渲染为多行

image.png

IAL 渲染为多列

image.png

自定义查询

image.png

SELECT '[' || b.content || '](siyuan://blocks/' || a.block_id || ')' AS __1____pre__文档标题, MAX( CASE WHEN a.name = 'name' THEN a.value ELSE NULL END ) AS __2____kbd__命名, MAX( CASE WHEN a.name = 'alias' THEN REPLACE( '<kbd>' || a.value || '</kbd>', ',', '</kbd><br/><kbd>' ) ELSE NULL END ) AS __3____pre__别名, MAX( CASE WHEN a.name = 'memo' THEN REPLACE( '<kbd>' || a.value || '</kbd>', ',', '</kbd><br/><kbd>' ) ELSE NULL END ) AS __3____pre__备注 FROM attributes AS a INNER JOIN blocks AS b ON a.block_id = b.id WHERE ( a.name = 'name' OR a.name = 'alias' OR a.name = 'memo' ) AND b.type = 'd' GROUP BY a.block_id ORDER BY RANDOM() LIMIT 10;

如果需要订阅服务, 欢迎使用我的推荐码呀: h0sc9rc (*^▽^*)

  • 思源笔记

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

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

    23209 引用 • 93602 回帖
2 操作
shuoying 在 2022-04-11 02:17:01 更新了该帖
shuoying 在 2022-04-11 02:15:04 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...