模板是否支持 sub 语法?

本贴最后更新于 401 天前,其中的信息可能已经渤澥桑田

我有一个日记流程, 使用 weekday 模板

生成效果如图

image.png

我的想法是把这个 顺序的日期变成倒序. 尝试了以下几种方法

  1. 直接倒序 days_list 变量, 没有 reverse 语法, 使用 AI 帮助未成功

  2. 将里面的 add 变成 sub, 模板解析错误, 我以前看到的帮组文档版本中 go 模板语法没有 sub, 不知现在是否有?

    请大能帮忙指点, 感谢! @88250 @a2930610542

    模板如下

.action{$ng_duration := (toDate "2006-01-02" "2021-12-26").Sub now} .action{$weekhours:=mul 7 24} .action{$duration:=sub 0 $ng_duration.Hours } .action{$week := add (div (div (now.Sub (toDate "2006-01-02" "2024-01-01")).Hours 24) 7) 1} .action{$today:= (now | date "2006-01")} .action{$weekResult:= (list $today "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 ) )} .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} }}}
  • 思源笔记

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

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

    24907 引用 • 102568 回帖

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 大概是用负数吧。

  • 问 GPT 花了我 2 块钱,这个应该可以。要是还有什么问题你就自己看着修好了,问 GPT 实在烧钱:

    weekday 模板.zip (解压后的 .md 文件放到 工作空间\data\templates 目录下)

    .action{$ng_duration := (toDate "2006-01-02" "2021-12-26").Sub now} .action{$weekhours:=mul 7 24} .action{$duration:=sub 0 $ng_duration.Hours } .action{$week := add (div (div (now.Sub (toDate "2006-01-02" "2024-01-01")).Hours 24) 7) 1} .action{$today:= (now | date "2006-01")} .action{$weekResult:= (list $today "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 (sub 6 $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{$day} .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} }}}
    1 回复
  • Woody2022 1 评论 via macOS

    好的,感谢,给你充电一次

    感谢支持
    JeffreyChen

推荐标签 标签

  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 34 关注
  • Swift

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

    36 引用 • 37 回帖 • 542 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    556 引用 • 675 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    946 引用 • 1460 回帖
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 572 关注
  • RabbitMQ

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

    49 引用 • 60 回帖 • 346 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 783 关注
  • MyBatis

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

    173 引用 • 414 回帖 • 369 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    366 引用 • 1842 回帖 • 3 关注
  • 反馈

    Communication channel for makers and users.

    126 引用 • 930 回帖 • 270 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 230 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 1 关注
  • Follow
    4 引用 • 12 回帖 • 10 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 12 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 2 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    210 引用 • 2040 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 434 关注
  • Excel
    31 引用 • 28 回帖
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • 爬虫

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

    106 引用 • 275 回帖
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • 996
    13 引用 • 200 回帖 • 6 关注
  • 倾城之链
    23 引用 • 66 回帖 • 161 关注
  • Access
    1 引用 • 3 回帖 • 4 关注
  • RemNote
    2 引用 • 16 回帖 • 10 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 2 关注