Loading...

文章背景图

Obsidian 每日一句组件

2024-09-21
0
- 字
- 分钟
|

Obsidian 每日一句组件

// 每日自动更新的中文名句 (24小时刷新)
(async () => {
  // 配置区(可自定义)
  const CACHE_KEY = 'dailyChineseQuote';  // 本地存储键名
  const API_URL = 'https://v1.hitokoto.cn/?c=i';  // 诗词类API

  // 尝试读取缓存
  const cachedData = localStorage.getItem(CACHE_KEY);
  const now = new Date().getTime();

  // 如果有缓存且未过期
  if (cachedData) {
    const { quote, author, timestamp } = JSON.parse(cachedData);
    if (now - timestamp < 86400000) { // 24小时 = 86400000毫秒
      return renderQuote(quote, author);
    }
  }

  // 无缓存或已过期时请求新数据
  try {
    const response = await fetch(API_URL);
    const data = await response.json();

    // 缓存新数据(带时间戳)
    localStorage.setItem(CACHE_KEY, JSON.stringify({
      quote: data.hitokoto,
      author: data.from,
      timestamp: now
    }));

    renderQuote(data.hitokoto, data.from);
  } catch (error) {
    dv.paragraph("> [!error] 今日名句获取失败,可尝试手动刷新");
    console.error('[名句更新失败]', error);
  }

  // 渲染函数
  function renderQuote(quote, author) {
    dv.paragraph(`> [!跑马灯]\n${quote}\n<cite style="text-align: right; display: block;">——《${author}》</cite>`);
  }
})();
原创

Obsidian 每日一句组件

本文链接: Obsidian 每日一句组件

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录