Files
Obsidian/Extras/Template/Diary.md

81 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
atlas: "[[DailyNote]]"
completed: 0
created: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
incomplete: 3
modified:
tags:
- DailyNote
title: <% tp.file.title %>
total: 3
---
<%*
/** 使用 Obsidian 的 requestUrl 绕过 CORS并且所有正则结果都做了空值保护 **/
const resp = await requestUrl ({
url: ' https://www.tianqi.com/yuexiuqu/ ',
method: 'GET',
// 可选:有些站会根据 UA 返回不同内容
headers: { 'user-agent': 'Mozilla/5.0 Obsidian-Templater' },
throw: false, // 出错时不要直接抛异常
contentType: null // 让它按文本处理
});
if (! resp || resp. status >= 400) {
let 错误 = resp ? `HTTP ${resp. status}` : '无响应';
let 提示 = `天气获取失败(${错误}`;
// 给下面的变量提供安全默认值,避免后续渲染时报错
tR += ''; // 不输出提示到正文的话,保留空字符串
var 天气 = 提示, 温度范围 = '', 湿度 = '', 风向 = '', 紫外线 = '', 空气质量 = '', 日出日落 = '';
} else {
let html = String (resp. text || ''). replace (/\n/g, '');
// 正则执行+容错
const mNow = /<p class="now"><b>(\d+)<\/b><i><\/i><\/p>/. exec (html);
const mRange = /<span><b>(.*?)<\/b>(.*?)<\/span>/. exec (html);
const mShidu = /<dd class="shidu"><b>(.*?)<\/b><b>(.*?)<\/b><b>(.*?)<\/b><\/dd>/. exec (html);
const mKq = /<dd class="kongqi"\s*><h5 style="background-color:#[0-9a-z]{6};">(.*?)<\/h5><h6>(.*?)<\/h6><span>(.*?)<br \/>((?:.|\s)*?)<\/span><\/dd>/. exec (html);
// 安全取值
const 当前温度 = mNow?.[1] ? `${mNow[1]}℃` : '';
const 天气文本 = mRange?.[1] ?? '';
const 温度段 = mRange?.[2] ?? '';
const 湿度文本 = mShidu?.[1] ?? '';
const 风向文本 = mShidu?.[2] ?? '';
const 紫外线文本 = mShidu?.[3] ?? '';
const 空气级别 = mKq?.[1] ?? ''; // 如优/良/轻度污染...
const 空气描述 = mKq?.[2] ?? ''; // 如 AQI 数值或说明
const 日出 = mKq?.[3] ?? '';
const 日落 = mKq?.[4]?.replace (/<.*?>/g, '') ?? ''; // 去掉可能的标签
// 暴露给下方模板使用的变量(沿用你的命名)
var 天气 = '天气:' + (天气文本 || '未知');
var 温度范围 = '温度:' + ([当前温度, 温度段]. filter (Boolean). join (' / ') || '未知');
var 湿度 = 湿度文本 || '';
var 风向 = 风向文本 || '';
var 紫外线 = 紫外线文本 || '';
var 空气质量 = (空气描述 && 空气级别) ? `${空气描述}${空气级别}` : (空气描述 || 空气级别 || '');
var 日出日落 = [日出, 日落]. filter (Boolean). join (' ');
}
-%>
> [!tip] << [[<% tp.date.now("YYYY-MM-DD", -1) %>]] | [[<% tp.date.now("YYYY-MM-DD", 1) %>]] >>
> <% 天气 %><% 温度范围 %><% 湿度 %><% 空气质量 %> <br>
> <% 风向 %><% 紫外线 %><% 日出日落 %>
# 生活
- [ ] <% tp.file.cursor() %>
# 学习
- [ ]
# 工作
- [ ]
# 随笔
# 复盘
-