【Dataview求助】Dataview中如何直观展示子列。

可以在dataview的结果中直观展示子列表么。像展示子任务那样。


遇到的问题

我在使用dataview汇总列表的时候发现子列表也会提取出来作为并列列表展示。但是在提取任务的时候就会把子任务正确展示。有什么办法让子列表和子任务的展示形式一样呢?

预期的效果

希望可以像截图这样可以直观展示出子列表的感觉,现在的dataview结果是并列的。

已尝试的解决方案

我现在只能单纯的列出这两个列表。我知道list有children这个属性,但是怎么运用不太清楚

我在国外论坛找到了一个方法,但是这个方法说有一定的“风险“,是什么风险呢?然后目前这个代码的限制是在于,这里出现的任务是没有互动功能的,是单纯的展示。
代码如下

const dvF = dv.evaluationContext.functions

// Create a new DQL function
dvF.listChildren =  (ctx, children, offset = "" ) => {
  let result = ""
  for (const child of children) {
    result += offset + "- " +
       (child.task ? `[${ child.status ?? " "}] ` : "" ) +
       child.text + "\n"
    
    if (child.children.length)
      result += dvF.listChildren(ctx, child.children, offset + "  ") 
  }
  return result
}
  LIST WITHOUT ID item.text + "\n" + listChildren(item.children)
  WHERE file.lists AND file.name != "ForumGold"
  LIMIT 5
  FLATTEN file.lists as item
  WHERE !item.parent

在Dataview中有一个taskList方法可以满足你的需求。

dv.taskList(dv.pages().file.tasks, false);

感谢,task这个我知道,目前上门那个list方案没办法的话我就曲线用task形式了。