vran-dev / obsidian-contribution-graph

generate interactive gitxxx style contribution graph for obsidian, use it to track your goals, habits, or anything else you want to track.
Apache License 2.0
244 stars 5 forks source link

日期字段按文件名称时由于文件名有后缀导致无法识别 #67

Closed forvoid closed 8 months ago

forvoid commented 8 months ago

您好,感谢你开发的插件,非常契合我的需要。 但是我在配置过程中发现一个困难,由于我的日记是采用 momentjs 的格式生成的

YYYY-MM-DD_ddd

所以生成的文件名称为:2024-01-01_周一 导致无法使用 按文件名称配置日期字段 https://momentjs.com/docs/#/displaying/format/ 目前有什么好的方式能帮助我解决这个问题吗? 再次对您的帮助表示感谢

forvoid commented 8 months ago

我参考了https://github.com/vran-dev/obsidian-contribution-graph/blob/master/README_ADVANCE.md 使用dataviewjs 大致实现了我想要的效果。但是与配置实现方式相比比较麻烦,而且展现的效果没有配置实现的好

image

希望大神看看是否能配置实现对 日期字段的规则修改

const from = '2024-01-01'
const to = '2024-12-31'
let frontmatterName = '提升/看书'
const data = dv.pages('"文件"')
    .filter(p => p.file.frontmatter.hasOwnProperty(frontmatterName))
    .groupBy(p => p.file.name.substr(0,10))
    .map(entry => {
     let num = entry.rows.values[0][frontmatterName]
        return {
            date: entry.key,
            value: num
        }
    })
console.log(data)

const calendarData = {
    title:  `2024年看书情况统计-分钟数`, // graph title
    data: data, // data
    fromDate: from, // from date, yyyy-MM-dd
    toDate: to ,
    cellStyleRules: [
        {
            color: "#f1d0b4",
            min: 2,
            max: 2,
        }
    ]// to date, yyyy-MM-dd
}
renderContributionGraph(this.container, calendarData)
vran-dev commented 8 months ago

_ddd 这种格式化的结果依赖于本地语言环境,每个框架可能都有自己的输出结果,迁移性不好。

建议是将文件名改为标准的日期格式(比如 2024-01-01 这种),然后将星期的信息维护到笔记属性中。

或者是在笔记属性中加一个标准的日期属性,然后用这个属性来做统计。