遇到的问题
obsidian 1.11.7, dataview0.5.68
文件A 中,有以下内容
- description: (DV_variable:: content)
dataview(js)渲染的代码块,表格、列表
在文件B使用![[文件A]]进行引用。export或者better export pdf 文件B时,代码块显示loading 或者无法正常显示。
如果删除(DV_variable:: content)的两边括号,就能正常显示
obsidian 1.11.7, dataview0.5.68
文件A 中,有以下内容
dataview(js)渲染的代码块,表格、列表
在文件B使用![[文件A]]进行引用。export或者better export pdf 文件B时,代码块显示loading 或者无法正常显示。
如果删除(DV_variable:: content)的两边括号,就能正常显示
使用包含着 dv 行内属性的如下文本
- description1: (DV_variable1:: content)
dataview(js)
- description2: [DV_variable2:: content]
dataview(js)
然后嵌入到另一个笔记里, 最后导出 pdf 或以 Better Export PDF 导出 pdf
预览和导出都没发现问题啊
猜不出来, 考虑检查一下:
总之先判断出来是哪一步引起的错误
好的, 看明白了,
试了下, 问题有点复杂, 我花了大量时间去查 dv 块的 query 语法上下文的问题, 但我现在觉得, 这更可能是个显示问题, 几个支持 “是显示问题” 的证据如下:
1 虽然 Better Export PDF 预览没展示出表格, 但能看到它列出了一条记录

2 如果把 dv 查询脚本, 改造成输出自定义 json , 其实在 pdf 能展示出来
原先为
```dataviewjs
let data = dv.pages().where(p=>p.file.name.includes("文件A"))
dv.table(
["file", "DV_variable"],
data.map(p=>[p.file.link, p.DV_variable])
)
```
改变为:
````dataviewjs
let data = dv.pages().where(p => p.file.name.includes("文件A"))
let jsonData = data.map(p => ({
file: p.file.path,
link: p.file.link,
DV_variable: p.DV_variable,
}))
dv.paragraph("```json\n" + JSON.stringify(jsonData.values, null, 2) + "\n```")
````
(打印 pdf, 会看到这些数据其实已经收集到了)
3 在不改变dv查询块内容的情况下, 简单重复一遍嵌入, 则可以展示
![[文件A]]
![[文件A]] <- 再嵌入一遍, 则输出 pdf 的表格正常
不知道楼主情况是否跟我相同? 这问题有点复杂, 感觉想解决并不容易, 目前觉得, 至少咱们需要先定位讨论到同一个问题
目前我能做出来的最小复现是这样子
以下为 “文件A”
### 硬编码表格携带dv行内属性语法
此处写一句dv行内属性语法 (dv_var_xx:: 无关的dv行内属性)
```dataviewjs
dv.table(
["表格列名A", "表格列名B"],
[[3,4], [5,6]]
)
```
以下为 “文件B”
![[空白笔记]] (无关的简单笔记)
![[文件A#硬编码表格携带dv行内属性语法]]
![[文件A#硬编码表格携带dv行内属性语法]] (重复一遍)
我这边总结的问题出现规律是:
dv.pages().where() 无关
[[表格列名A, 表格列名B], [1, 2], [3, 4]] 的简单表格, 也会无法显示所以目前我比较怀疑, 是一个跟 media print, 跟 first-child 元素, 跟 dv 生成的元素 classname, … 有关的 pdf 打印的 DOM 元素显示问题, 但这太复杂了, 还没查明白