Dataview怎么解析Markdown表格数据

个人理解 dataview 没把 “md 表格” 作为默认的可解析对象,
即, 虽然笔记内的 列表 (任务条目), 文档属性, 标签, … 都可以拿 DQL 直接访问到,
但 md table 不行

所以还是得自己读文本内容, 把 table 解析出来再输出,
这事 dql 没戏, 还是写 dataviewjs 吧
可以参考 DataviewJS 的提取与汇总 - 经验分享 尤其可以借鉴 汇总原文 那一节, 比如搜 "汇总代码块、Callout" 那里

个人建议是把 table 转成 json, 比较能抗数据结构的变化, 例 (以下函数把文本形式的 table 解析为 [{name: xx, col1: yy, col2: zz}, {name: x2, col1: y2, col2: z2}, ...])

const parseTable = (content, noteFileName) => {
  const lines = content.trim().split('\n');

  // 查找表头行并确定列名
  const headers = lines[0].slice(1, -1).split('|').map(cell => cell.trim());

  // 查找数据行并提取信息,每一行为一个对象
  let dataRows = lines.slice(2).map(row => {
    const rowData = {};
    const cells = row.slice(1, -1).split('|').map(cell => cell.trim());
    headers.forEach((header, index) => {
      rowData[header] = cells[index];
    });
    rowData['filename'] = noteFileName;
    return rowData;
  });
  return dataRows;
};

如果确定表格结构不会改, 那也可以写简单点, 笔记里直接过滤以 | 起头的行, 对所有这种行, 切分后把固定位置的某几个元素取出, 就是所需数据