惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
Attack and Defense Labs
Attack and Defense Labs
Security Archives - TechRepublic
Security Archives - TechRepublic
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Full Disclosure
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
V2EX - 技术
V2EX - 技术
B
Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
TaoSecurity Blog
TaoSecurity Blog
T
Threatpost
小众软件
小众软件
T
The Blog of Author Tim Ferriss
Google Online Security Blog
Google Online Security Blog
MongoDB | Blog
MongoDB | Blog
T
Tenable Blog
P
Privacy International News Feed
S
Security @ Cisco Blogs
H
Heimdal Security Blog
大猫的无限游戏
大猫的无限游戏
B
Blog RSS Feed
H
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
有赞技术团队
有赞技术团队
Application and Cybersecurity Blog
Application and Cybersecurity Blog
O
OpenAI News
Security Latest
Security Latest
S
Securelist
Cyberwarzone
Cyberwarzone
D
Docker
S
Schneier on Security
V
Vulnerabilities – Threatpost
The GitHub Blog
The GitHub Blog
P
Privacy & Cybersecurity Law Blog
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research

eallion's Blog

春假清明自驾游 Ubuntu 25.10 安装和配置 秋假 彩礼 2025 博客变化 预制菜 联邦礼仪之一 重拾写博客的乐趣 少儿 TED - 时间管理大师 n8n 之同步博客到 Mastodon n8n 之备份 Mastodon 嘟文 如何备份 Mastodon Docker 部署 Mastodon NAS 折腾记 Windows 11 安装软件 博客排版 - 挤压中文标点符号 Hugo 博客集成 Mastodon 独立博客自省问卷 15 题 Chrome 插件更新:网址净化器 在 Hugo 中使用 Shiki 炒菜万能公式 uBlacklist 订阅合集 读《中文互联网正在加速崩塌》 CSS 和 JS 实现博客热力图 受灾小记 那,他吃什么?! Mastodon 同步到 Memos Hugo 外部链接跳转提示页面 联邦宇宙及 Mastodon 简介 2024 博客变化 再看《星际穿越》 实感 自部署 GitHub 风格的 Reactions 点赞功能 图床 CDN CNAME 接入 Cloudflare SaaS 实现分流 利用 GitHub Actions 同步对象存储 留给孩子一个完整的母亲 博客 AI 摘要及优化 豆瓣同步到 Notion 和 Neodb NeoDB API 创建观影页面 Artalk 无评论随机显示诗词 孙燕姿关于AI孙燕姿的回复 Windows 安装 Rime 小狼毫五笔拼音输入法 Umami Docker 部署及优化 去有风的地方 非 24 小时睡眠觉醒障碍 Memos API 获取总条数 Memos API 公告样式滚动效果 Memos API 调用渲染页面 Memos 手动导入数据 Memos 简介 凉城利川·避暑旅居胜地(附 CCTV 报道) 珊瑚鱼 读《中文大约的确已经死了》 再说评论 且试天下 记一次博客被攻击 Hugo .GitInfo 的替代方案 Gitea 安装备忘 Twikoo 集成 Slimbox2 灯箱插件 童心皆可爱 减肥小结 白粽肉粽及端午快乐安康 劳动合同解除 (终止) 及赔偿一览表 启用 Waline 静态博客评论系统的选择 好好说话 KMS Windows 激活服务器 Ubuntu 20.10 优化 关于 Ubuntu Ubuntu ZFS 原生全盘加密 Ubuntu ZFS 加密 Home 目录 爱丽丝梦游仙境症 偶发 月半 Ubuntu 20.04.1 配置 LNMP 本地环境备忘 佛性写博 Ubuntu 20.04 优化 免费领取咪咕版 Kindle Typecho 迁移到 Hugo 博客迁移到 Hugo GitHub Actions 自动部署 Hexo 脚本 Gridea Hexo Hugo 等 git push 同步到多个仓库 Ubuntu 19.10 优化 Typecho 中英文之间自动加上空格 Ubuntu 配置 EverVim Ubuntu 配置 Guake Ubuntu 配置 Oh-My-Zsh 阿里云镜像改版 备份工具 Duplicati Ubuntu Server snap 安装 Nextcloud Ubuntu Server 安装 Mosh 算命 言论自由 无意义的个性化 「我谈的话题没什么敏感的」 博客换回默认主题 typecho1.2 (18.10.23) 新窗口打开链接 一言 APP 添加 “今日诗词” 官方源 api 让 Firefox 只在新标签页 newtab 显示书签栏 爱子七不责 改革开放 40 年 大民大国 40 年 40 本书
部署动态生成 OG Image 的 API
Charles Chin · 2023-11-23 · via eallion's Blog

# 前言

Deprecated:我现在已经手动生成 OG Image 了。

DEMO: https://og.eallion.com/api/og?title=蜗牛

Vercel 官方有提供 @vercel/og 这个包,可以生成 OG Image( The Open Graph protocol),有直接可用的 API https://og-playground.vercel.app 调用方式为:https://og-image.vercel.app/eallion.png 但是有个很大的问题,不支持中文。再加上「 得意黑」字体当时刚发布,很适合做标题,我就利用 @vercel/og 糊了一个 Next.js 的应用,部署到 Vercel,调用方式为:https://og.eallion.com/api/og?title=蜗牛 后来换成「思源宋体」了。不过如前文说所,我现在已经手动生成 OG Image 了,毕竟年更博客。

# 注意

🚨 注意:Vercel 免费套餐的 Edge 应用最大只支持 1M,而最小的中文字体就远远不止 1M。
不过后文有介绍仅提取用到的字符,压缩字体体积的方法,方法总比困难多,连摇一摇打开淘宝都能想出来,还有什么是不能实现的呢。
另外:Vercel 官方有文档,介绍得非常详细,不像我胡言乱语,连我这种门外汉都可以照着官方文档糊个应用出来,何况现在还有 ChatGPT 了,还是建议看官方文档:

Cloudflare Pages 也有官方插件,但是我没有研究过:

# 教程

# 1. 准备

  • 背景图:需要准备一张 1200x630 分辨率的背景图,当然是体积越小越好,始终要想到最大只有 1M,然后把图片转换成 base64: https://base64.guru/converter/encode/image 这可以进一步压缩体积。
  • 字体:准备 .ttf 字体文件,我试过 Google fonts 在线字体,但在当时不能用,还要注意 Licence。

# 2. 本地调试

Fork GitHub 仓库: https://github.com/eallion/vercel.og
Fork 后克隆自己的仓库到本地,安装依赖:

git clone https://github.com/XXXXXXX/vercel.og # XXXXXXX is your GitHub username
cd vercel.og
npm insatll --save
npm run dev

然后在浏览器打开 http://localhost:3000/api/og?title= 就能看到效果了。

自定义修改 pages/api/og.tsx 如下几个地方:

其他自定义的地方可自行修改,这是一个 Next.js 应用。

# 3. 压缩字体

压缩字体的思路就是利用工具只提取博客标题使用到的字符,这大大减少了字体的体积。
提取标题使用到的字符,我用到的是 aui/font-spider 这个工具,按照工具的文档就能很方便的处理了。
基于这个工具,我用的是 eallion/font-spider-smiley-opengraph,是利用自己博客的 摘要文件 来提取 Title 的,这只是一种提取字符集的思路。希望有更好的方式,一起探讨。
把压缩后的 .ttf 字体文件复制到 public/ 目录。

PS:修改完,记得 push 到 GitHub 仓库。

# 4. Vercel 部署

到 Vercel 控制台,选择 Add New Project Import Git Repository 选择自己仓库的 vercel.og 然后 ImportFramework Preset 要选择 Next.js,然后点击 Deploy 等待部署完成。
部署成功后,打开 “域名 + /api/og?title= + 内容” 就可以使用了,API path 是 /api/og
完整 API: https://og.eallion.vercel.app/api/og?title=
对于部分地区,可能需要绑定一个域名才能访问。

# 其他

我现在手动生成 OG Image 的工具是: https://cover.eallion.com
来自: youngle316/cover-paint