后端与接口
需要在对话、代码审查、社媒或发布庆祝中快速生成语境…
适用于无需 API key、通过拼接 URL 快速生成和嵌入流行模板 meme 的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要在对话、代码审查、社媒或发布庆祝中快通用
解决思路
- 手动调用:使用 `/meme-factory`。
- 直接生成:使用 `/meme-factory {template} {top} {bottom}`。
- 自然语言请求:使用 `meme-factory: create a meme about X`。
- 生成基本 meme:访问 `https://api.memegen.link/images/{template}/{top}/{bottom}.png`。
- 设置尺寸:在 URL 后添加 `?width=1200&height=630`。
- 设置自定义背景:在 URL 后添加 `?style=https://example.com/image.jpg`。
- 查看所有模板:访问 `https://api.memegen.link/templates/`。
- 查看交互式文档:访问 `https://api.memegen.link/docs/`。
- 阅读 Markdown Memes Guide:`references/markdown-memes-guide.md`,其中包含 15+ 文本 meme 格式。
- 阅读 Examples:`references/examples.md`,其中包含实用示例。
- 使用 Python 辅助脚本:`scripts/meme_generator.py`。
- 按基本结构构造 meme URL:`https://api.memegen.link/images/{template}/{top_text}/{bottom_text}.{extension}`。
- 示例:使用 `https://api.memegen.link/images/buzz/memes/memes_everywhere.png` 生成 Buzz Lightyear meme,上方文字为 `memes`,下方文字为 `memes everywhere`。
- 文本格式化:将空格编码为 `_` 或 `-`。
- 文本格式化:将换行编码为 `~n`。
- 文本格式化:将问号编码为 `~q`。
- 文本格式化:将百分号编码为 `~p`。
- 文本格式化:将斜杠编码为 `~s`。
- 文本格式化:将井号编码为 `~h`。
- 文本格式化:将单引号编码为 `''`。
- 文本格式化:将双引号编码为 `""`。
- 热门模板 `buzz`:用于 `X, X everywhere`,示例 `bugs/bugs_everywhere`。
- 热门模板 `drake`:用于比较,示例 `manual_testing/automated_testing`。
- 热门模板 `success`:用于胜利,示例 `deployed/no_errors`。
- 热门模板 `fine`:用于出问题,示例 `server_on_fire/this_is_fine`。
- 热门模板 `fry`:用于不确定,示例 `not_sure_if_bug/or_feature`。
- 热门模板 `changemind`:用于热点观点,示例 `tabs_are_better_than_spaces`。
- 热门模板 `distracted`:用于优先级,示例 `my_code/new_framework/current_project`。
- 热门模板 `mordor`:用于 `One does not simply`,示例 `one_does_not_simply/deploy_on_friday`。
- 选择模板:比较选项时用 `drake`,因为它是双面板拒绝/赞同格式。
- 选择模板:庆祝胜利时用 `success`,因为它强调正面结果。
- 选择模板:问题被忽略时用 `fine`,因为它是讽刺的“一切正常”。
- 选择模板:不确定时用 `fry`,因为它是 `Not sure if X or Y` 格式。
- 选择模板:有争议观点时用 `changemind`,因为它是陈述 + 挑战。
- 选择模板:无处不在的东西用 `buzz`,因为它是 `X, X everywhere`。
- 选择模板:坏主意用 `mordor`,因为它是 `One does not simply...`。
- 生成后验证:在浏览器中测试 URL 返回有效图片。
- 生成后验证:检查文本可读,不要过长。
- 生成后验证:检查模板匹配消息语境。
- 生成后验证:检查特殊字符已正确编码。
- 生成后验证:检查尺寸适合目标平台。
- 平台尺寸:Social media (Open Graph) 使用 `1200x630`。
- 平台尺寸:Slack/Discord 使用 `800x600`。
- 平台尺寸:GitHub 使用默认尺寸。
- 避免反模式:不要使用未编码空格;改用 `_` 或 `-`。
- 避免反模式:不要文字过多;每行保持 2-6 个词。
- 避免反模式:不要用错模板;将模板匹配语境。
- 避免反模式:不要缺少扩展名;始终包含 `.png`、`.jpg` 等。
- 避免反模式:不要使用未编码特殊字符;使用 `~q`、`~s`、`~p` 等。
- 避免反模式:不要假设模板存在;先查看模板列表。
- 成功标准:URL 有效并返回 HTTP 200。
- 成功标准:图片在 markdown 中正确显示。
- 成功标准:文本在图片上正确格式化且可见。
- 成功标准:模板匹配消息。
- 测试命令:运行 `curl -I "https://api.memegen.link/images/buzz/test/test.png"`,应返回 `HTTP/2 200`。
- 高级图片格式:`.png` 用于最佳质量,默认。
- 高级图片格式:`.jpg` 用于更小文件大小。
- 高级图片格式:`.webp` 用于现代且良好压缩。
- 高级图片格式:`.gif` 用于动画模板。
- 高级尺寸:使用 `?width=800`。
- 高级尺寸:使用 `?height=600`。
- 高级尺寸:使用 `?width=800&height=600` 以填充到精确尺寸。
- 高级布局:使用 `?layout=top` 只在顶部显示文本。
- 高级布局:使用 `?layout=bottom` 只在底部显示文本。
- 高级布局:使用 `?layout=default` 使用标准顶部/底部布局。
- 自定义字体:查看可用字体 `https://api.memegen.link/fonts/`。
- 自定义字体:使用 `?font=impact`(默认)。
- 自定义图片:用任意图片作为背景:`https://api.memegen.link/images/custom/hello/world.png?style=https://example.com/image.jpg`。
- 上下文 meme(代码审查):使用模板 `fry` 和 URL `https://api.memegen.link/images/fry/not_sure_if_feature/or_bug.png`。
- 上下文 meme(部署):使用模板 `interesting` 和 URL `https://api.memegen.link/images/interesting/i_dont_always_test/but_when_i_do_i_do_it_in_production.png`。
- 上下文 meme(文档):使用模板 `yodawg` 和 URL `https://api.memegen.link/images/yodawg/yo_dawg_i_heard_you_like_docs/so_i_documented_the_documentation.png`。
- 上下文 meme(性能问题):使用模板 `fine` 和 URL `https://api.memegen.link/images/fine/memory_usage_at_99~/this_is_fine.png`。
- 上下文 meme(成功部署):使用模板 `success` 和 URL `https://api.memegen.link/images/success/deployed_to_production/zero_downtime.png`。
- 在响应中生成 meme:使用 markdown ``。
- 动态生成(Python):定义 `generate_status_meme(status: str, message: str)`,使用 `template_map = {"success": "success", "failure": "fine", "review": "fry", "deploy": "interesting"}`。
- 动态生成(Python):用 `template = template_map.get(status, "buzz")` 选择模板。
- 动态生成(Python):将 `message.split()` 后的前三个词用 `_` 连接为 `top`,后三个词连接为 `bottom`。
- 动态生成(Python):返回 `f"https://api.memegen.link/images/{template}/{top}/{bottom}.png"`。
- 使用辅助脚本:执行 `from meme_generator import MemeGenerator`。
- 使用辅助脚本:执行 `meme = MemeGenerator()`。
- 使用辅助脚本:执行 `url = meme.generate("buzz", "features", "features everywhere")`。
- 使用辅助脚本:执行 `print(url)`。
- API 端点:`/templates/` 用于列出所有模板。
- API 端点:`/templates/{id}` 用于模板详情。
- API 端点:`/fonts/` 用于可用字体。
- API 端点:`/images/{template}/{top}/{bottom}.{ext}` 用于生成 meme。
- API 特性:免费且开源。
- API 特性:无需 API key。
- API 特性:正常使用无限流。
- API 特性:无状态,所有信息在 URL 中。
- API 特性:图片按需生成。
- 错误处理:在 `https://api.memegen.link/templates/` 检查模板。
- 错误处理:验证文本格式(空格用下划线)。
- 错误处理:检查特殊字符编码。
- 错误处理:确保扩展名有效。
- 错误处理:在浏览器测试 URL。
- 参考文档:`references/markdown-memes-guide.md` 包含 15+ 文本 meme 格式(greentext、copypasta、ASCII 等)。
- 参考文档:`references/examples.md` 包含实用示例。
- 脚本:`scripts/meme_generator.py` 是 Python 辅助脚本。
- 总结用途:生成语境 meme 来为对话增加幽默。
- 总结用途:创建社交媒体视觉。
- 总结用途:让代码审查更有趣。
- 总结用途:庆祝成功。
- 黄金法则:保持文本简洁,模板匹配语境。
适用边界 · 注意事项
- 需要离线、内网或无法访问第三方 API 时。
- 需要严格版权/隐私合规,或不能把文本/背景图发送给外部服务时。
- 需要高可用、SLA 或大规模自动化生成且不能依赖无保障公共 API 时。