日、周、月记录模板分享

第一次使用思源笔记,感觉社区中相关的模板还是比较少,然后在大佬给出的模板基础上,进行了一些修改,于是有了本文。(由于参考了直接导出,相关 id 没有删除,可以自行处理,但是不删也不影响)

还有一个问题:在周和月导出的时候会出现几个不知名“}}}”,但是在笔记页面的显示是正常的,目前还不知原因。

使用方法:将代码保存到 md 文件中,然后放入到模板文件夹就可以调用了。

吐槽一下:笔记导出的模板并不能很好的支持时间等动态设置,其实这一块可以进行对应设计(大部分都是时间要求,导出时加上固定模板和变量名即可),但是导出是静态的。【希望大家多多支持社区发展!!!】

这是在其他大佬项目下自己做的一个针对性修改,欢迎给大佬 star:https://github.com/Achuan-2/siyuan-note-templates

Update:有大佬加入了天气功能,并提供了相关下载,详情见评论区!!!

日模板:

file20241218.png

.action{ $anchorSunday := "2022-12-25" }
.action{ $yearStartDate := now.Year | printf "%d-01-01" | toDate "2006-01-02" }
.action{ $ysDateDuration := div ($yearStartDate.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24 }
.action{ $ysWeekDay := mod $ysDateDuration 7 }
.action{ $yearStartWeek := add (div (sub $ysDateDuration 1) 7) 1 }
.action{ if or (eq $ysWeekDay 0) (gt $ysWeekDay 4) }
    .action{ $yearStartWeek := add $yearStartWeek 1 }
.action{ end }


.action{ $nowWeek := add (div (div (now.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24) 7) 1 }
.action{ $week := add (sub $nowWeek $yearStartWeek) 1 }
.action{$today:= (now | date "2006-01")}
.action{$weeks:= (list $today "Week" $week| join " ")}



.action{ $nextYear := now.Year | add 1 }
.action{ $nextYearStart := $nextYear | printf "%d-01-01" | toDate "2006-01-02" }
.action{ $dayleft := (div (($nextYearStart).Sub now).Hours 24) }
.action{$week := add (mod (div ((toDate "2006-01-02" "2100-12-27").Sub now).Hours 24) 7) 1}


.action{ $anchorDate := toDate "2006-01-02" $anchorSunday }
.action{ $daysSinceAnchor := div (now.Sub $anchorDate).Hours 24 }
.action{ $weekIndex := mod (add $daysSinceAnchor 7) 7 }
.action{ $weekDays := list "星期天" "星期一" "星期二" "星期三" "星期四" "星期五" "星期六" }
.action{ $currentWeekDay := index $weekDays $weekIndex }


{{{col
{{{row
🕐 创建时间:.action{now | date "2006-01-02 15:04"} .action{$currentWeekDay}
}}}
{{{row
距离 `.action{ $nextYearStart.Year }-01-01` 还剩 `.action{$dayleft}` 天,Power!
}}}
{: style="color: var(--b3-card-info-color); background-color: var(--b3-card-info-background);"}
}}}

<br/>

{{{row

## 🎯Schedule
{: name=".action{now | date "2006-01-02"}" style="background-color: var(--b3-font-background11); --b3-parent-background: var(--b3-font-background11);"}

{{{col

{{{row
### ⏰今日目标
---
- [ ] 
}}}

{{{row
### ⛱相关资源
---
* 
}}}

{{{row
### 🧠其他收获
---
* 
}}}

}}}
{: name="" fold="0"}
.action{/*s上面设置命名为空和不折叠,为了防止超级块内部的属性错位,被超级块获取*/}
}}}

<br/>

---

## <span data-type="strong">✏️工作记录</span>
{: id="20241216161447-5xs9g5h" style="background-color: var(--b3-font-background5); --b3-parent-background: var(--b3-font-background5);"}

@Aim:
{: custom-docinfo="@aim" }

@Point:
{: custom-docinfo="@point"}

###### Main:
<br/>

---

{{{row
## ✍每日总结
{: alias=".action{$weeks}" name=".action{now | date "2006-01-02"}" style="background-color: var(--b3-font-background12); --b3-parent-background: var(--b3-font-background12);"}

* 
<br/>

}}}

{: name="" fold="0"}
.action{/*s上面设置命名为空和不折叠,为了防止超级块内部的属性错位,被超级块获取*/}
---

## 🤨新的问题
{: id="20241216161048-9bcmrl5" style="background-color: var(--b3-font-background1); --b3-parent-background: var(--b3-font-background1);"}

* {: id="20241216163341-tzjytgu"}
  {: id="20241216163341-sapefqz"}
{: id="20241216161048-l036r1d"}

{: id="20241216163337-grbzksp"}

---
{: id="20241216161048-beu85nf"}

## <span data-type="text">📂</span>{: style="background-color: var(--b3-font-background8); color: var(--b3-card-success-color);"}<span data-type="text">知识补充&资源记录</span>{: style="background-color: var(--b3-font-background8);"}
{: id="20241216161826-hc10ke6" style="background-color: var(--b3-font-background8); --b3-parent-background: var(--b3-font-background8);"}

* {: id="20241216161826-sjo55jx"}📂<span data-type="strong">Project</span>
  {: id="20241216161826-n8jfixd"}
* {: id="20241216161826-misoirf"}📂<span data-type="strong">Resources</span>
  {: id="20241216161826-xdiudv6"}
{: id="20241216161826-gqcm5z7"}

{: id="20241216161021-yyxcsay" title="未命名文档" type="doc"}




周模板:

fileWeek51.png

.action{ $anchorSunday := "2022-12-25" }
.action{ $yearStartDate := now.Year | printf "%d-01-01" | toDate "2006-01-02" }
.action{ $ysDateDuration := div ($yearStartDate.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24 }
.action{ $ysWeekDay := mod $ysDateDuration 7 }
.action{ $yearStartWeek := add (div (sub $ysDateDuration 1) 7) 1 }
.action{ if or (eq $ysWeekDay 0) (gt $ysWeekDay 4) }
    .action{ $yearStartWeek := add $yearStartWeek 1 }
.action{ end }

.action{ $nowWeek := add (div (div (now.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24) 7) 1 }
.action{ $week := add (sub $nowWeek $yearStartWeek) 1 }


.action{$today:= (now | date "2006-01")}
.action{$weekResult:= (list $today "Week" $week| join " ")}

.action{$curYear := now.Year}
.action{$weeks:= (list $curYear "Week" $week| join " ")}



## 📅.action{$weekResult}



.action{/*今天距离周一有几天*/}
.action{$ng_week := (mod (div ((toDate "2006-01-02" "2021-06-28").Sub now).Hours 24) 7) }

.action{/*用于range循环,表示循环7次, 没什么实际意义*/}
.action{$days := list "星期六" "星期五" "星期四" "星期三" "星期二" "星期一" "星期天"}


.action{/*循环生成星期列表*/}
.action{/*生成周一日期所需要修正的时长*/}
.action{$monday:= mul 24 $ng_week}

{{{col
.action{range $index,$day:=$days}

.action{/*布局*/}
.action{$setColum:= mod (add $index 1) 3 }
.action{if eq $setColum 1}
{{{
.action{end}


.action{/*迭代 每次增加24*/}
.action{$after := mul 24 $index}
.action{/*在周一的基础上,附加的时间*/}
.action{$realdate:= add $monday $after}
.action{/*生成以 h 为单位的 字符串*/}
.action{$result:=(list $realdate "h" | join "")}
.action{/*获取列表项*/}
.action{$days_list := now | date_modify $result  | date "2006-01-02"}

### .action{$days_list}  .action{last (slice (list "星期一" "星期二" "星期三" "星期四" "星期五" "星期六" "星期日") 0 (add 1 $index ) )}

{{select * from blocks where name=".action{$days_list}" and content="🎯Schedule" }}

<br/>


.action{/*布局*/}
.action{$setColum:= mod (add $index 1) 1 }
.action{if eq $setColum 2}
}}}
.action{else if eq $index 3}
}}}
.action{end}

.action{$index := add  $index 2}
.action{end}



### 日总结汇总
{{SELECT * from blocks where type='h' and  content = '✍每日总结' and alias='.action{$weekResult}' }}
<br/>
---

### 一周总结
{: alias=".action{$weeks}" style="background-color: var(--b3-font-background10); --b3-parent-background: var(--b3-font-background10);"}
<br/>


月模板:

file202412.png

.action{$currentYear := now.Year}
.action{$currentMonth := now.Month | printf "%02d"}
.action{$currentMonthYear := list $currentYear $currentMonth | join "年" | printf "%s月"}

## 📅 .action{$currentMonthYear}
---

.action{$anchorSunday := "2022-12-25"}
.action{$yearStartDate := $currentYear | printf "%d-01-01" | toDate "2006-01-02"}
.action{$ysDateDuration := div ($yearStartDate.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24}
.action{$ysWeekDay := mod $ysDateDuration 7}
.action{$yearStartWeek := add (div (sub $ysDateDuration 1) 7) 1}
.action{if or (eq $ysWeekDay 0) (gt $ysWeekDay 4)}
  .action{$yearStartWeek := add $yearStartWeek 1}
.action{end}


.action{$nowWeek := add (div (div (now.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24) 7) 1}
.action{$week := add (sub $nowWeek $yearStartWeek) 1}


.action{$weeksToDisplay := list 0 1 2 3}
.action{range $weekIndex := $weeksToDisplay}

## 第.action{add $week $weekIndex}周

.action{$aliasValue := printf "%d Week %d" $currentYear (add $week $weekIndex)}
{{select * from blocks where alias=".action{$aliasValue}"}}

<br/>

.action{end}

---


### 月总结
{: alias=".action{$currentYear} Month .action{$currentMonth}" style="background-color: var(--b3-font-background11); --b3-parent-background: var(--b3-font-background11);"}
-
<br/>

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22919 引用 • 92141 回帖
5 操作
EsonLiu 在 2024-12-18 13:26:45 更新了该帖
EsonLiu 在 2024-12-18 13:24:35 更新了该帖
EsonLiu 在 2024-12-17 19:50:53 更新了该帖
EsonLiu 在 2024-12-17 14:23:46 更新了该帖 EsonLiu 在 2024-12-17 14:16:15 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • EsonLiu
    作者

    sorry,已调整,感谢提醒!🙏

  • 其他回帖
  • EsonLiu
    作者

    一个不太好的消息 TAT~~~ 。我注意到星期逻辑还是有问题,现在已经对 action 的相关代码进行简化和修改(现在应该大概率也许是没有问题的,还得经过时间检验检验)(ps:如果您方便的话,可以在您贡献的代码中将前面的 action 部分代码全部替换成现在贴子里的 action 操作即可:即第一行到这一行代码{.action{ $currentWeekDay := index $weekDays $weekIndex }}),再次抱歉,第一次学这个代码,bug 多多 😭 😭 😭

    1 回复
  • 好的,没事的,已修改。


    最新版更新:

    完整日记模板代码(右键菜单另存为即可下载):

    https://gitee.com/wish163/mysoft/raw/main/%E6%80%9D%E6%BA%90/daliy_note.md

    如果想在自己已有模板基础上添加天气,可以把上述模板的最后一行的代码复制到你的模板任意一行即可,为防止意外,最好单独放置一行,通常放模板最后一行即可。

    源码:

    https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E7%BB%99%E6%97%A5%E8%AE%B0%E6%A8%A1%E6%9D%BF%E6%B7%BB%E5%8A%A0%E5%A4%A9%E6%B0%94%E6%94%B9%E8%BF%9B%E7%89%88.js?utm_source=ld246.com

    注意,以上模板的代码每次打开都是最新版。


    也可以直接用这个代码,放到模板任意行即可(不推荐,因为这个代码是在帖子里写死的,不会实时更新)

    {{//!js_esc_newline_return (async () => {_esc_newline_    // 等待时长,默认60秒_esc_newline_    const waitForTime = 60;_esc_newline_    getWeather();_esc_newline_    async function getWeather () {_esc_newline_        const weather = await fetch('https://wttr.in/?format=1');_esc_newline_        const text = await weather.text();_esc_newline_        render(text);_esc_newline_    };_esc_newline_    async function render(text) {_esc_newline_        const {datetimeP, datetimeEl} = getDatetimeEl();_esc_newline_        if(!datetimeP && !datetimeEl) {_esc_newline_            delItem();_esc_newline_            return;_esc_newline_        }_esc_newline_        const loadingEl = datetimeEl.querySelector('span[data-type~="loading"]');_esc_newline_        if(loadingEl) {_esc_newline_            loadingEl.remove();_esc_newline_        }_esc_newline_        datetimeEl.innerHTML = datetimeEl.innerHTML + ' ' + text.trim().replace(/\s+/g, ' ');_esc_newline_        // 更新日期块_esc_newline_        fetchSyncPost('/api/block/updateBlock', {_esc_newline_            "dataType": "dom",_esc_newline_            "data": datetimeP.outerHTML,_esc_newline_            "id": datetimeP.dataset.nodeId_esc_newline_        });_esc_newline_        // 删除嵌入块_esc_newline_        delItem();_esc_newline_    }_esc_newline_    function getDatetimeEl() {_esc_newline_        const protyle = item.closest('.protyle-wysiwyg');_esc_newline_        const datetimeP = protyle?.querySelector('.sb:first-child .p:first-child');_esc_newline_        if(!datetimeP) return {};_esc_newline_        const datetimeEl = datetimeP.querySelector('[contenteditable="true"]');_esc_newline_        if(!datetimeEl) return {datetimeP};_esc_newline_        return {datetimeP, datetimeEl};_esc_newline_    }_esc_newline_    function delItem() {_esc_newline_        // 删除嵌入块_esc_newline_        fetchSyncPost('/api/block/deleteBlock', {id: item?.dataset?.nodeId});_esc_newline_        // 清除定时器_esc_newline_        if(timer) clearTimeout(timer);_esc_newline_    }_esc_newline_    let timer = 0;_esc_newline_    whenRender().then(el => {_esc_newline_        el.outerHTML = '正在获取天气...';_esc_newline_        const {datetimeEl} = getDatetimeEl();_esc_newline_        if(datetimeEl) {_esc_newline_            item.style.display = 'none';_esc_newline_            datetimeEl.innerHTML = datetimeEl.innerHTML + '<span data-type="text loading"> Loading</span>';_esc_newline_        }_esc_newline_        timer = setTimeout(() => {_esc_newline_            // 删除嵌入块_esc_newline_            if(item?.dataset?.nodeId) fetchSyncPost('/api/block/deleteBlock', {id: item?.dataset?.nodeId});_esc_newline_            // 删除loading_esc_newline_            const loadingEl = datetimeEl.querySelector('span[data-type~="loading"]');_esc_newline_            if(loadingEl) loadingEl.remove();_esc_newline_        }, waitForTime * 1000);_esc_newline_    });_esc_newline_    function whenRender(selector = '.b3-form__space--small') {_esc_newline_        return new Promise(resolve => {_esc_newline_            const check = () => {_esc_newline_                let el = item.querySelector(selector);_esc_newline_                if (el) resolve(el); else requestAnimationFrame(check);_esc_newline_            };_esc_newline_            check();_esc_newline_        });_esc_newline_    }_esc_newline_    return [];_esc_newline_})();}}
    
  • 日模版中星期不对呀,今天是星期二 😂

    image.png

    1 回复
  • 查看全部回帖

推荐标签 标签

  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 3 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 534 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    62 引用 • 289 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 11 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 721 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 210 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 744 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 79 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 38 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 77 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    92 引用 • 899 回帖 • 1 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 587 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 1 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 667 关注
  • OnlyOffice
    4 引用 • 3 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 360 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 364 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 630 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 383 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    28 引用 • 108 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1737 回帖
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖 • 2 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖