【已解决】请教一下如何汇聚一周时间日记的内容。

我的日记是有“工作”、“日常”、“随想”三个内容

目前的需求是想建立一个周记模板,能自动汇聚一周时间中这三个内容。第一时间想到的是通过dataview插件,尝试如下:

```dataview
task 
from  [[{{date:YYYY-MM-DD}}]] or [[{{date-1d:YYYY-MM-DD}}]] or [[{{date-2d:YYYY-MM-DD}}]] or [[{{date-3d:YYYY-MM-DD}}]] or [[{{date-4d:YYYY-MM-DD}}]] or [[{{date-5d:YYYY-MM-DD}}]] or [[{{date-6d:YYYY-MM-DD}}]] or [[{{date-7d:YYYY-MM-DD}}]]
where completed

效果:

这个样式我可以接受,但有以下几个问题:

  1. dataview我目前只会简单的list 、table 、task三种,其中list 、table 的样式不要我要的,但task只能汇聚 任务列表(- [ ]),但我的日记内容是无序列表(- )。
    image

  2. 我的周记也是想分别汇聚“工作”、“日常”、“随想”内容,我知道dataview插件可以通过文件名称、标签等进行筛选,如何实现标题筛选了?

  3. 通过” [[{{date:YYYY-MM-DD}}]] or“可以框定为汇聚时间段内的日记,但如果其中有一天没写日记dataview插件就会报错,这个能否有改善的办法。

[2021-01-04] 楼主的个人需求已解决,通过绝对引入( ![工作] ) 的方法直接将日记中二级标题下的内容进行汇聚,通过修改CSS文件将汇聚的标题隐藏、距离缩小,已经满足了我个人的需求,可以很方便就完成每周的工作周报和学习进度。感谢 @乔诚 大佬的技术支撑,提供了css文件的非常好用,不仅满足了需求,还提供了非常详细的注释,连我这个小白也能看得懂! :pray: :pray: :pray:

其实可以通过text expand、dataviewjs 等等方式实现,但有一定的技术门槛,各位大佬可以继续讨论,我也会继续学习,不定期更新成果。
效果:

标题是section 或者header , 比如 contains(string(section), "journal") 能够筛选出标题中带有journal 的标题的内容, 不过好像只能作用于 task 类型

dataviewjs 好像可以, 这个就需要研究了, 比如 :
Customizing Group Headers in Dataview

1 个赞

看了一下,有点复杂,感觉要从头学js :sweat_smile:

是的,

另外text expand 好像有类似的功能, 是个搜索的扩展, 你可以看一下

text expand我也看了 ,涉及到汇聚标题的还看的懂,到了汇聚标题下的内容的就搞不懂了

为什么不用列表嵌入呢?就是每周写一次,做个模板,在模板上改。
如下:

| 周一             | 周二             | 周三             |
| ---------------- | ---------------- | ---------------- |
| ![[2022-0101#工作]] | ![[2022-0102#工作]] | ![[2022-0103#工作]] |
| ![[2022-0101#随想]] | ![[2022-0102#随想]] | ![[2022-0104#随想]] |
| ![[2022-0101#日常]] | ![[2022-0102#日常]] | ![[2022-0105#日常]] |

如果屏幕不够大,可以三天一个表
和你一样,我希望在ob上写日记,每周用一个周记md将本周的信息汇总过来。
我的每日日记主要有:每日todo、每日记录、记账、每日随笔。
在周计划里我希望将每日todo、时间记录、每日开销总计显示在周历上。周历上有每日的链接,可以跳转。
目前做了个小样,效果如下。



第三行的每日时间条是用svg画的,每天结束时需要将对应的数据填到svg代码中。以后等我学会了开发插件,就做个自动生成时间线svg代码的插件。
日记页面如下


改天开个帖细说
感兴趣的来看看这个帖子

没用过, 确实需要一定的学习成本

svg 的部分可以使用 excalidraw 或者 diagrams 来完成 , excalidraw 可以使用模板的, 两者都可以保存为svg, 只要右键插入就可以了

或者使用 templater 插入日期

英文论坛上应该是有例子的;

还有可以给代办一个时间标签, 然后使用类似于day palnner 的功能自动展示成 timelines 的效果

请教下,我希望实现如下的效果
像mermaid一样输入如下代码块,切换成预览模式后变成如下svg。excalidra可以做到吗。或者有什么简便的办法

```day_log
0600,0730,a,洗漱吃饭
0932,1052,b,上课
1200,1240,a,午饭
......

每行分别是时间起始、终止时间、事件分类、事件备注。根据时间起始时间自动计算矩形的位置、高度。根据事件分类自动给正方形填充预设的颜色。备注作为text元素与相应矩形自动对齐
渲染出的svg效果如下

我现在只能记录完时间后手动计算,修改svg代码。

我是这样弄的:

上周总结

<% tp.date.weekday(“YYYY-MM-DD”, -7) %>![[<% tp.date.weekday(“YYYY-MM-DD”, -7) %>#总结]]
<% tp.date.weekday(“YYYY-MM-DD”, -6) %>![[<% tp.date.weekday(“YYYY-MM-DD”, -6) %>#总结]]
<% tp.date.weekday(“YYYY-MM-DD”, -5) %>![[<% tp.date.weekday(“YYYY-MM-DD”, -5) %>#总结]]
<% tp.date.weekday(“YYYY-MM-DD”, -4) %>![[<% tp.date.weekday(“YYYY-MM-DD”, -4) %>#总结]]
<% tp.date.weekday(“YYYY-MM-DD”, -3) %>![[<% tp.date.weekday(“YYYY-MM-DD”, -3) %>#总结]]
<% tp.date.weekday(“YYYY-MM-DD”, -2) %>![[<% tp.date.weekday(“YYYY-MM-DD”, -2) %>#总结]]
<% tp.date.weekday(“YYYY-MM-DD”, -1) %>![[<% tp.date.weekday(“YYYY-MM-DD”, -1) %>#总结]]

我现在是每周末新建周记md,手动填写。模板的语法只能实现七天前至今的汇总。这点工作量不多,没必要实现自动化,学习成本对我而言太大了

请问一下, tp.date.weekday 是定义的什么代码了?我直接复制报错

这个放到周记模板里,生成周记时自动生成上一周每一天总结部分的块引用
日记里每天记的内容放到 #总结
Ob安装Calendar插件,每周第一天设为周一,tp.date.weekday获取的就是周一

我大概了解这个逻辑了,是直接通过 块引用 来进行汇总,再请教一个问题,块应用会显示标题,这个有办法隐藏吗?

你这个问题可以解决,只需要定制下css。我可以帮你写一个。方便给我发一下你用的css文件吗?我qq:2030950597

并不大,附上链接上下周的dataview代码

const format =  'gggg-[W]ww';
dv.paragraph(`<<[[${moment(dv.current().file.name, format).subtract(1, "week").format(format)}|上周的周记]]  [[${moment(dv.current().file.name, format).add(1,  "week").format(format)}||下周的周记]]>>`)
1 个赞

看来蛮好用的。有空学学dataview的语法

[2021-01-04] 楼主的个人需求已解决,通过绝对引入( ![工作] ) 的方法直接将日记中二级标题下的内容进行汇聚,通过修改CSS文件将汇聚的标题隐藏、距离缩小,已经满足了我个人的需求,可以很方便就完成每周的工作周报和学习进度。感谢 @乔诚 大佬的技术支撑,提供了css文件的非常好用,不仅满足了需求,还提供了非常详细的注释,连我这个小白也能看得懂! :pray: :pray: :pray:

其实可以通过text expand、dataviewjs 等等方式实现,但有一定的技术门槛,各位大佬可以继续讨论,我也会继续学习,不定期更新成果。
效果:

2 个赞

大佬,可以请教一下隐藏标题的css吗?感谢 :pray:

隐藏嵌入笔记的标题,缩减嵌入笔记的页边距
你可以根据自己需要删改
效果预览



/* 紧凑的嵌入———————————————————— */

/* 缩减不必要的边距 */

.markdown-preview-view .markdown-preview-sizer
.markdown-embed{
   margin-top: 0px !important;
   margin-bottom: 3px !important;
   padding-top: 0px;
   padding-bottom: 0px;

}
.markdown-preview-sizer .markdown-preview-section{
   margin: 0px !important;
   /* padding: 0px 0px !important; */
   padding-left: 5px !important;
   padding-right: 5px !important;
   padding-top: 0px !important;
   padding-bottom: 0px !important;
}
/* ———————————————— */
.markdown-preview-view{
   padding: 50px;
}
.markdown-embed .markdown-preview-sizer{
   padding-left: 10px;

}
  

/* 隐藏嵌入的标题 */
.markdown-embed-title,
.markdown-embed h1,
.markdown-embed h2,
.markdown-embed h3,
.markdown-embed h4,
.markdown-embed h5,
.markdown-embed h6{
   display: none !important;
}



.markdown-preview-view .markdown-embed-content > .markdown-preview-view{
   min-height: min-content !important;
   max-height: 500px !important;
   background-color: var(--embed-bg);
   vertical-align: top !important;
}


/* 在嵌入的文件前显示来源 &nbsp;显示宽度为5em 根据实际情况可采用40px之类的值 超出部分隐藏*/
/* .internal-embed:not([src$=".png"]) :not([src$=".bmp"]) :not([src$=".svg"])::before{
.internal-embed::before{
   content: attr(alt) " ";
   display:block;
   width: 5em !important;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: clip;
} */


/* 在嵌入的文件上方画一条上边框线 */

.markdown-embed:not([src*="."]){
   /* border-top: solid 1px #ff3c00; */
   border: #888 solid 1px;
   border-radius: 0px;
}


/* 嵌入文件的右上方打开链接按钮 */
.markdown-embed-link{
   top: 10px !important;
   right: 20px !important;
   text-align: right;
   width: 26px !important;
   height: 26px;
   border-radius:   5px;
   padding: 3px;
   /*指定链接按钮背后的背景色(现在为透明色)*/
   background-color: #2e970e;
   /*指定链接的图标颜色*/
   color: #ffffff !important;
}


1 个赞