「QuickAdd」快速获取网页预览图

一句话总结

  • 使用 QuickAdd 调用 LinkPreview 的 api,获取网页预览图、网页标题插入笔记

使用方法

  • 使用
    • 调用创建好的quickadd capture命令,输入网址
    • 回车自动插入网页预览图
  • 配置
    • LinkPreview API 申请一个免费 api
    • 创建.js文件到库中,粘贴代码,将 api 替换为你申请到的 api
    • quickadd设置,创建macro;配置macro添加UserScripts,选择创建好的js文件
    • quickadd设置,创建capture;开启Capture to active file选项、配置capture format为{{MACRO:刚才创建的macro名称}} (输入{{后,下拉菜单拉到最底部就有)

脚本

module.exports = fetchLinkPreview;

async function fetchLinkPreview(params) {
    const userInput = await params.quickAddApi.inputPrompt("请输入目标网页:", "默认值");
    var data = { q: userInput };
  
    try {
      const res = await fetch('https://api.linkpreview.net', {
        method: 'POST',
        headers: {
          'X-Linkpreview-Api-Key': '123456', // 请替换为你的真实 API Key
        },
        mode: 'cors',
        body: JSON.stringify(data),
      });
  
      if (res.status != 200) {
        throw new Error('Something went wrong');
      }
  
      const response = await res.json();
  
      // 组合成Markdown格式的图片
      const formattedContent = `![|300](${response.image})`;

      // 返回格式化后的文本
      return formattedContent;
    } catch (error) {
      return `Error: ${error.message}`;
    }
  }
  

其他

  • 发现 auto-link-title 插件使用的 LinkPreview api 也可以用于获取预览图,于是用 GPT 改了改写成 quickadd 脚本了;另外,vault explorer 插件也有自动获取预览图的功能,大佬们有空也可以参考对比一下方案
  • 免费 api 的额度是一小时 60 个,见 LinkPreview | pricing
  • 网页标题、网页描述可以用类似的方法获取,把代码中的 ${response.image} 改为 ${response.xxx} 就可以了,xxx 可以是 title、description、url 等,详见 LinkPreview 文档:
  • 网页图标的快速获取之前分享过,是参考的 link-favicon 使用的三方供应商,见 「QuickAdd」快速插入图片超链接(URL转图片超链接快速插入笔记)
3 个赞