利用 Templater 编程模板实现随机读取图片等功能,轻松解决记账难题

2024-10-16
来源:网络整理

利用编程模板实现随机阅读图片(图床格式)、随机获取已读书籍、天气信息等功能。 “日记模板.md”的完整内容:

<%*
let today = tp.date.now("YYYY-MM-DD")// 日期
before_date = window.moment(today, "YYYY-MM-DD", true).add(-1,"days").format("YYYY-MM-DD:dddd")
after_date = window.moment(today, "YYYY-MM-DD", true).add(1,"days").format("YYYY-MM-DD:dddd")
-%>
<%*
const files = this.app.vault.getMarkdownFiles()//图片
let imageUrl ="![](https://cmsy.oss-cn-guangzhou.aliyuncs.com/image/Picgo/DSC01492.jpg)"
for (let i = 0; i < files.length; i++) {
if(files[i].path.indexOf("ImageBed")!=-1){
let aaa = this.app.vault.read(files[i])
await aaa.then(res =>{
let fileContents = res.match(/\!\[.*\)/g)//找出所有图片![](...)
let lineNo = Math.floor(Math.random()*fileContents.length)
lineNo = Math.floor(Math.random()*fileContents.length)
imageUrl = fileContents[lineNo]
return
})
}
}
-%>
<%*
var books =[]// 存储书籍
let arrb =0
for (let i = 0; i < files.length; i++) {
if(files[i].path.indexOf("Books")!=-1){// 我的书md文件都带有"Books"字符串,
books[arrb] = files[i].name
arrb++
}
}
let bookNo = Math.floor(Math.random()*arrb)
-%>

<< [[]] | [[]] >>
## ️每日语录
- ——[[]]
-

## ⛅天气
- 广州{{time}},

## ✅Todo
### CMSY

### Life

### Finances

#日记

记账功能

相关功能:,

毕业后的最初几年,我很好奇自己每年的开支是多少,所以我开始记账。每次手动进入会计软件,发现三年后每年都差不多,就停了。毕竟,这并不是一件容易的事。后来有了自己的自媒体频道,我就得区分哪些钱是“橙猫涉影”的钱,哪些是个人开支。记账成了“必须做”的事情。每月手动将微信账本、支付宝账本录入传统票据,很像去银行“部分存取款”。我花了半天时间整理了一下,但实在不想做,导致拖延。

“想做”和“必须做”对我们处理事情的方式有很大影响。

——《如何说话才能打动别人》

下一步是将“必须做”转变为“想做”。我长期以来一直在探索是否使用新的会计软件,嵌入表格,或返回。出于对编程的爱好,我最终选择了“最复杂的过程,最简单的结果”的方法。借助插件的js功能,我把记账功能放到了ob日记中。想想,发呆的时候,我也不知道。当你想做某事时,写下费用,“用你琐碎的时间做琐碎的事”。

与零押金和轮次提现相比,这是零押金的自动提现。当然会计软件可以做到。但由于Ob始终处于打开状态,因此这里的输入没有任何刺激,没有“刻意”的操作,过程非常顺利。每次记账,减少了打开、关闭APP等一系列操作。 “每少一步,就是多一步动力。”这种方法也丰富了All in one的笔记管理。这次使用的2个插件:和

会计方法

我同时使用支付宝和微信支付,微信账本和支付宝账本都激活了(是免费的,不过不激活的话好像只能保存几个月),以保护我的记忆。在日记中创建会计功能。每一项支出都记录在一个清单中,前面有“cmsy”,将其分为两大类。我只需要不同类别的支出总额,不需要细分每一项。相应的代码写起来也比较简单。

日记中的记账风格采用的是无序列表。 “:”或“:”后面必须跟相应的消费金额,如下图:

再加上插件的美化效果,界面看起来更加舒服。 《.md》中2023年1月的核算+最终效果如下:

其对应的代码块:

```dataviewjs
const year = "2023";
const curMonth ="01"; // 要统计的月份
const splitChar = "-"; // 日期的间隔符
const keyWords ="cmsy";// 分类标识字符
const moneyHeading = 'Finances';//记账的heading
var p =dv.pages("#日记").filter(b=>(String(b.file.name).split(splitChar )[0]==year)&&(String(b.file.name).split(splitChar )[1]==curMonth)&&(b.file.lists.section.subpath.indexOf(moneyHeading)>-1));// 选定文件范围和时间-年月
let collect ="";
var sumMoney = 0;
var pathTemp ="";
var daySum =0;
for(let i of p.file.lists){
if(i.section.subpath==moneyHeading) {
if(i.text.indexOf(keyWords)==-1){//统计包含cmsy的序列
//if(i.text.indexOf(keyWords)>-1){//不含cmsy的序列,即个人,这2行必须注释一行
delete i.text;
continue;
}
var curSpend = parseFloat(i.text.replace(/\s*/g,"").match(/(?<=[::])\S*/g));// 获取金额,去除了字符串中的空格,然后检测在":"或":"之后的数字作为金额
sumMoney += curSpend// 计算总金额
if(pathTemp!= i.path){//同文件第一个先清0
pathTemp = i.path;
daySum =0;
}
daySum += curSpend
i.finance = Math.round(daySum*100)/100
}else{
delete i.text
}
}
p = p.filter(function(b){
return b.file.lists.finance.length != 0
});
dv.paragraph("一共:"+Math.round(sumMoney*100)/100)
  dv.table([curMonth+"月","清单","日统计"],
  p.sort(b => b.file.name,"desc")
  .map(b => [b.file.link,b.file.lists.text,b.file.lists.finance]))
```

每个月初,您只需检查微信记账、支付宝记账、账户内的金额是否相符,大大减少了时间。

卡片视图

相关函数:,,内置函数,YAML格式

我最喜欢的功能是查看,它为我的照片提供了另一个用途。视觉记录非常直观、方便查看,也非常适合用作视频展示材料。

中也有类似的功能,是依靠主题和css来实现的。方法参考:豆瓣制作风格主题阅读清单卡,链接:

使用YAML,可以呈现表格效果。我使用主题并将“:”添加到 md 文档的 YAML(需要主题支持)。表格样式将以卡片的形式显示。

完整的md文档内容如下:

---
cssClasses: cards
---
> [!tldr]- 摄影日志
> ```dataview
> table
> ("![](" + cover + ")") as 封面,
> "主题:"+ theme as theme,
> "模特:"+ model as model,
> "地点:"+ place as place
> from "001-CMSY/004-摄影日志"
> sort date desc
> ```

这个功能是我最常使用的一个。我读过的书,我组织的拍摄,我制作的视频,衣柜里的衣服,模型文件,摄影器材库等等都用它,感觉就像收集水浒卡。 2022年我一直坚持记录每一次拍摄,最大的感触就是“我的记忆不再需要被记住”。

这是我2022年读过的书,我定下的目标是每月读一本书。关于阅读,我有一些笔记,但是有很多重要的知识点需要记下来。我会配合插件微信阅读笔记助手,协助获取热门注释作为更详细的笔记。复习时,可以轻松浏览整本书的知识点,并结合日常名言,温故知新。

对于我制作的视频,我第一次感到很舒服,因为我的东西仍然属于我。以前我的视频属于视频网站,不是我的。在Ob的可视化帮助下,我用爬虫爬取了我过去的200多个视频,并将它们整理成笔记。如果以后需要任何视频相关信息,只需在笔记中搜索即可。

衣柜里的衣服太多了,很难挑选。我把它们都放进去了,非常直观。

在收集过程中,类似的记录还有很多。只要金额增加,这个功能就直接变成我的“”了!

地图功能,记忆进一步可视化

相关功能:-

我不是一个爱旅行的人,但当我在城市的时候,我也会好奇我去过的地方,以及我是否经常重复选择拍摄地点?

拍摄有目的地,朋友/模特有地址,组织活动时要考虑朋友之间的距离,以便安排司机。这些信息基本上依赖于头脑中的记忆和对当地的熟悉程度。我们的手机照片有在地图上显示拍摄地点的功能。如果笔记也有这个功能就好了。我的想法也一定是别人的想法。必须有人有这个想法,并且有能力实现它并把它做成一个插件。于是我就在插件市场一一查找,果然找到了。

:根据md文档中的yaml属性在地图上标记。

统计支付宝微信账单软件_记账软件统计微信和支付宝支出_记支出的软件都有哪些

根据文件路径进行标记:

```leaflet
id: leaflet-map
lat: 23.125463267494546
long: 113.29981259960813
minZoom: 5
maxZoom: 17
defaultZoom: 12
unit: meters
scale: 1
markerFolder: 001-CMSY/005-摄影资料/模特档案
```

在设置中,您可以根据Tag标签指定相关图标:

对应的注释格式:

---
model: 模特A
wechat:
phone:
place: 鹭江
location: [23.096685,113.311895]
tags: 摄影/模特
---

使用高德地图的坐标拾取系统:需要注册账户才能获取准确的坐标。五年来我标记了200多个视频拍摄地点,只能说真的很累。

全平台同步和文件管理

使用功能:保存、坚果云、阿里云

使用起来非常可靠,离不开它的全平台!它是全平台的,而不仅仅是跨平台的!使用插件Save实现全平台同步。无论是搭配阿里云、腾讯云还是坚果云,相关教程都有很多。与阿里云合作构建同步系统,真正实现全平台。

我使用同步功能的方式是用Save来同步全平台。电脑还配备了坚果云备份,所以至少保证了操作错误。实际使用中,误删的情况很多,花了很多天才发现。强烈建议您注册阿里云。除了同步文档之外,它还可以用作图片的图床。我的照片都是画床的形式。

同步和影像床已经使用了半年多了,费用大概只有一碗猪脚。

8月份成本增加了,因为我买了一个域名来试水。

衍生品:个人网站

相关功能:Hexo

看看我构建的各种功能,它们组合起来就像一个网站,于是我想到了一个想法:有没有一种网站架构可以支持MD格式?

想法一产生,我又挣扎了一番,找到了Hexo,一个可以把本地MD笔记变成网站的网站架构。学习Hexo基本上需要半天时间。由于个人需要,我对它的主题做了很多修改,大约花了一个半月的时间。

它声称是最受摄影师欢迎的网站,因为如果您没有自己的一般摄影网站,那么它就没用。对我来说,它只是的一个衍生品,其功能转移到了服务器上。

作家的障碍,开始做减法

到目前为止,它似乎很完美,我已经学到了足够多的东西。无论是知识管理还是个人管理,一切都在变得更好。这只是表面现象,但实际上,我面临着最严重的障碍:“我不能再写了”。

各种奇特的功能、炫酷的造型,看起来就像一个数据大屏。

一堆诱惑在向你招手,仿佛在说:客人,来玩吧。这样的笔记是不可能静下来写的。直到写这篇文章时,我才找到原因:“我需要的只是一张纸”。

我开始减少各种插件,从50多个减少到20多个,取消笔记的全屏,取消Tab的花式模式,取消切换,隐藏树形文件管理,将彩色笔记字体恢复为黑色,并以博主的身份了解,在文件中添加上下超链接,开启类似网页的模式。作为首页,点击即可完成品类跳转。

每个文件都有层次跳转,就像网页上的前进后退一样,非常方便。不再需要占据整个屏幕,随意放大缩小即可。

管理时,它只是一个窗口。写作时,就是一张白纸,这篇长文就这样诞生了。我想起了人们常说的“重施轻用”。它没有变轻,但是给我一种很轻很轻的感觉,这种感觉很重要。 “重”是指功能,“轻”是指感觉。

打开新世界:白板和

一开始我不明白为什么这个插件的下载量这么高。

后来我调整了视频的方向,设计了卡片形式的短情节。有的可能只有一句话,最长的也只有一段,有的则是影视视频的剪辑片段。当我寻找合适的版块时,我必须一一点击查看,内容非常有限,看不到整体情况。没有“大局”,我无法做出合理的选择。

该插件完美解决了这个问题。每张卡都是本地MD文件,全平台,工具免费,还奢求什么!

后来官方推出了白板功能,完成撒花!与白板有重叠的功能,也有各自的优势。目前,我使用白板来设计一些脚本和摄影课程。毕竟是我们自己的产品,兼容插件,可以直接看视频。

我尝试过H2D、H2D、 等白板工具。如果你的需求和我一样简单,但对你来说又很复杂,那么至少试试它的白板吧,支持MD、本地、免费。我至今都无法忘记,当我在寻找相匹配的白板工具时,突然看到一个内测白板工具的功能时的激动!尤其是发布那天,我真是太兴奋了!

总结

2022年,我还要为笔记写代码而苦苦挣扎。与纯笔记相比,过程非常繁琐,但使用却非常简单。 “把最复杂的化繁为简”,提取记忆变成笔记,成为你的“”,让“更多的去创造”。我鼓励大家折腾,不仅是“为你”,也是“免费”折腾也是一个学习的过程,“任何事情只有走得太远,才能找到适合自己的程度”。

对我来说,2022年我已经完成学业,2023年我会在视频创作上投入更多。

分享