Obsidian Get Weather Automatically 天气自动获取方案
很多人会使用 obsidian 写日记,需要在日记中添加当天天气。既然已经使用电子日记,日期和时间都可以十分便捷的自动更新到笔记中,那么天气要怎么自动获取呢?
天气插件(不推荐)
截止到目前,obsidian 的插件市场已经更新了两款天气插件,分别是 OpenWeather
和 WeatherFetcher
。
OpenWeather
需要注册账号,配置 API,比较繁琐。 WeatherFetcher
需要自己输入指令生成,比自己手动输入天气区别不大,而且出现过多次拿不到当地信息的或者获取到错误位置信息的情况。
模板自动化(推荐)
安装 Chocolatey 软件管理自动化工具
检查是否已经安装 Chocolatey,终端输入
1 | choco --version |
如果没有输出版本号,则继续执行下面的安装步骤。如果输出版本号,则跳到下一步。
推荐官网安装方式,参考(Chocolatey Software | Installing Chocolatey)。
一般来说,windows 系统打开【administrative shell】,复制以下内容到命令行
1 | Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) |
其他系统或者安装出现问题,请参考官网步骤或者网上搜寻
安装 curl 命令工具
命令终端中输入命令
1 | choco install curl |
测试 curl 获取天气
命令终端中输入命令
1 | curl wttr.in/Beijing?format=1 |
正常的情况下,终端上会输出北京市的天气信息和一些其他信息。
终端上成功输出天气后,可以进入下一步。
配置日记模板
- 创建每日日记的模板。比如
/_templates/_log
仅对于天气自动更新而言,日记模板的 front matter
中需要添加语句如下
1 | --- |
- 配置【日记】创建来自模板文件下的
配置 obsidian 插件 templater
需要先从插件市场或者第三方来源安装插件 templater
。
- 安装后设置模板文件夹和上一步【模板】功能设置的模板文件夹相同。
- 打开选项
Trigger Templater on new file creation
。
-
下拉至
Enable User System Command Functions
。 -
添加
User Function
,如下
- Function name:
getWeather
- System Command:
curl wttr.in/Beijing?format=4
- 新创建当日日记,即可看见天气自动填写(必须是新创建日记或者文件)
wttr 格式
wttr 还有很多可选格式,参考(chubin/wttr.in: :partly_sunny: The right way to check the weather (github.com))
format 之后可以直接使用 1,2,3,4 四个默认的格式,也可以细致的使用更多格式
1 | c Weather condition, |
比如
1 | curl wttr.in/Beijing\?format=”%l:+%c+%t+feels+like+%f\nSunrise:+%S\nSunset:++%s\nMoon:++++%m\n” |
可以上网查询尝试替换,找到自己满意的使用格式。