首页 > 其他分享 >obsidian dataview写年报:按标签分类汇总

obsidian dataview写年报:按标签分类汇总

时间:2023-12-23 22:45:41浏览次数:43  
标签:rows tags 标签 dataview 任务 file obsidian createTime

原文地址:https://www.cnblogs.com/liqinglucky/p/ob-dataview.html

使用场景

上次我们讲过用dataview写周报obsidian dataview写周报:统计一周内的文件 - liqinglucky - 博客园 (cnblogs.com)。现在考虑另一个场景,年底要写年报,将一年的工作汇总。但通常不是像周报那样只是简单的罗列,还需要按照不同的项目内容分类汇总。这种情况就可以通过obsidian dataview按照每个文件的标签分类统计。

被统计文件的格式要求

参考:Adding Metadata - Dataview (blacksmithgu.github.io)
同样按之前的文章中的方法创建的三个工作文件,但使用了不同的标签。

工作任务1.md

---
type: 工作任务
issueId: issue-001
theme: 任务:写项目计划
status: 完成
createTime: 2023-12-16               
finishTime: 2023-12-16
tags:
  - 项目1                   <<< 标签 
---

工作任务2.md工作任务3.md采用相同的属性和标签。

--
type: 工作任务
issueId: issue-002
theme: 任务:查资料
status: 完成
createTime: 2023-12-23
finishTime: 2023-12-23
tags:
  - 项目1                        <<< 标签 
  - 调研
---

工作按项目统计

关键问题是我想把工作任务按项目关键词分类。首先是针对不同的文件使用不同的标签,这里我有两类标签项目1标签和项目1,调研标签。我期望的是能把不同标签的任务放一起。

方案1:按照tags排序显示

使用排序语法

SORT tags ASC

代码:

TABLE
tags as "项目", issueId as "编号", theme as "任务", createTime as "启动时间", finishTime as "完成时间"

WHERE type = "工作任务" AND createTime >= date(today) - dur(12 month)

SORT tags ASC

效果:

之前提到过,dataview的最小单元是文件,所以一个文件是占一行的。这种方式把相同标签的放相邻行。

方案2:按照tags分组显示

为了让相同的项目内容可以更集中,可以使用分组语法

GROUP BY file.etags

但这里要注意,分组后,为了让两个文件的同一属性合并在同一行。需要使用语法:

rows.属性

TABLE格式

代码:

TABLE 
rows.issueId, rows.theme as "任务", rows.createTime as "启动时间", rows.finishTime as "完成时间", rows.file.link as "文件"

WHERE type = "工作任务" AND createTime >= date(today) - dur(12 month)

GROUP BY file.etags as "项目"

效果:

这样相同标签的就集中到一行了。

LIST格式

代码:

LIST  rows.theme

where type = "工作任务" AND createTime >= date(today) - dur(3 month)
//sum函数使得条目扁平化
GROUP BY sum(file.etags)

效果:

方案3:按照tags分表显示

更进一步,想按不同项目标签分不同的表格。研究了官方给的用例Codeblock Examples - Dataview (blacksmithgu.github.io)。使用dataviewjs 可以达到效果,有兴趣的就可以学习下JavaScript语法。
示例代码:

for (let group of dv.pages("#项目1").groupBy(p => p.tags)) {  
    dv.header(3, group.key);  
    dv.table(["Name", "文件时间", "任务"],  
        group.rows  
            .sort(k => k.file.cday, 'desc')  
            .map(k => [k.file.link, k.file.cday, k.theme]))  
}

效果:

标签:rows,tags,标签,dataview,任务,file,obsidian,createTime
From: https://www.cnblogs.com/liqinglucky/p/ob-dataview.html

相关文章

  • obsidian dataview写周报:统计一周内的文件
    原文地址:https://www.cnblogs.com/liqinglucky/p/dataview.html使用场景工作中经常每周要将一周的工作汇总成周报。汇报内容会包括任务的开始结束时间和进展情况。obsidiandataview可以按照时间条件将库里的文件统计出来形成表格,并且可以自定义每一栏的标题。被统计文件的格式......
  • 微信标签如何分类,可以标签群发吗?
    微信群组太多?管理起来有难度?不知道怎么分类标签管理?别急,这就教你个好办法,可以轻松分类好友标签,还可以根据标签进行批量群发。在微信中,建立标签有三种途径,分别是:添加新联系人:设置备注和标签功能中,输入标签后,会自动建立新标签并将当前联系人加入此标签修改联系人备注和标签:修改备注和......
  • 【Python&目标识别】Yolo v5-7.0版本中文标签显示方法(附字体链接)
    ​    Yolo的程序之前已经定制化输出过了,但是最近业主突然想要中文的标签,所以赶紧去修改了一下源代码,从网上发现很多资料都改这改那,搞四五个文件结果还没成功。所以自己研究了一下,现在已经完美解决了。今天就和大家分享一下Yolov5-7.0版本的目标识别如何添加中文的标签......
  • HTML5 dialog标签简单使用
     HTML5dialog标签简单使用<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>......
  • HTML5新增标签及API
    之前有一天看到了这样的一段代码,居然可以使用dom的id直接调用方法和获取属性,真是刷新了我的认知了。<div><pid="content">aa</p><buttononclick="console.log(content.innerText)">打印内容</button></div> 点击按钮,控制台就可以打印出aa字符串习惯写后端的我前......
  • 前端标签
    前端标签是用于描述网页结构和内容的标签。它们可以分为以下几类:文档声明、文档结构、功能标签这类标签用于描述文档的类型、结构和功能。例如:<!DOCTYPEhtml>:声明文档的类型<html>:定义文档的根元素<head>:定义文档的头部<body>:定义文档的主体<title>:定义文档的标题<link>:......
  • html标签里面修改title样式
    默认的title不能设置样式,但我们可以通过js和css实现title的功能。CSS样式:<style>/*修改提示框*/#mytitle{position:absolute;color:#ffffff;max-width:160px;font-size:14px;padding:4px;background:rgba(......
  • HighCharts 以轴标签为标签+蓝色圆圈跟随鼠标移动
    需求:画一个蓝色圆圈跟随鼠标移动,点击图表并保存这个点,点的右侧有以轴标签为标签的标签分析:调用load事件,使用renderer画个圆圈跟随鼠标,点击图标保存点用click事件,在click事件里使用renderer画一个圆和标签,标签以轴为单位解决:源代码:示例:HighCharts以轴标签为标签及蓝色圆圈跟随鼠......
  • VUE框架指令语法与v-bind实现标签属性内部动态------VUE框架
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • 机器学习的方法主要可以分为以下几类¹²³: 1. **监督学习**:在监督学习中,我们有一个
    机器学习的方法主要可以分为以下几类¹²³:1.**监督学习**:在监督学习中,我们有一个标记的数据集,我们的目标是训练一个模型,使其能够预测新数据的标签。常见的监督学习算法包括:  -线性回归  -逻辑回归  -支持向量机(SVM)  -最近邻居(KNN)  -决策树......