Enhancement 插件
融合怪插件 —— 友链增强 + 瞬间 + AI摘要 + 标签助手 + 站点地图 + 评论增强 + 外链跳转 + 视频链接解析 + QQ通知 + 邮件提醒 + 主题插件在线上传/删除等多功能于一体的 Typecho 插件。
简介
基于 Links 插件改造,新增游客提交、管理员审核功能。 融合标签助手/评论同步/站点地图等实用功能。
功能
- 使用
typecho_links数据表存储友链信息 - 输出方式:模板函数调用 + 文章内标签解析
- 三种输出模式:SHOW_TEXT / SHOW_IMG / SHOW_MIX,可在插件配置中自定义规则
- 管理面板:分类、拖拽排序、审核通过/驳回
- 游客提交:前台提交后默认待审核,仅通过审核的记录会输出
- 瞬间功能:新增
typecho_moments表并提供 JSON API - 评论同步:游客/登录用户评论时自动同步历史评论中的网址/昵称/邮箱
- 标签助手:后台写文章时显示标签快捷选择列表
- 站点地图:提供
/sitemap.xml - QQ评论通知:评论通过时通过 QQ 机器人推送
- 评论邮件提醒:支持 SMTP 推送,支持模板管理
- 可选
Gravatar头像镜像加速 - 可选视频链接解析:自动将 YouTube / Bilibili / 优酷链接替换为播放器
- 可选音乐链接解析:自动将网易云音乐 / QQ音乐 / 酷狗音乐链接替换为 APlayer 播放器
- 禁用插件时可选择删除友情链接表/说说表/QQ通知队列表
- 可选外链新窗口打开:自动为 a 标签补充 target 与安全 rel
- 外链跳转提醒:文章/评论内外链及评论者网站地址统一走
/go/<base64>中转提醒页 - 可选 Turnstile 人机验证:统一保护评论与友情链接提交
- 插件设置支持一键备份与一键恢复(数据库快照)
- 支持在线上传安装 ZIP 插件/主题,支持删除未启用插件和未启用主题
- AI 摘要:发布文章时自动生成摘要并写入自定义字段(默认
summary) - AI 摘要后台批量生成:支持“仅空字段生成 / 强制覆盖重生成”
- 摘要管理页支持状态筛选与分页(公开/私密/待审核/隐藏)
- 评论表情面板:评论框支持展开表情列表,点击自动插入短代码并渲染为图片
- 瞬间定位:后台一键获取经纬度并调用腾讯地图逆地址解析后入库缓存,避免重复查询
- 瞬间状态:支持公开/私密,默认 API 仅返回公开数据,携带有效 Token 可返回全部
- 瞬间定位地址解析改为浏览器端 JS 直连腾讯地图 API(无需服务端转发)
安装
- 上传到
usr/plugins/Enhancement - 后台启用插件
后台管理
- 管理 → 链接 / 瞬间 / 摘要
- 控制台 → 评论邮件提醒外观(模板列表/编辑)
- 控制台 → 上传(在线上传 ZIP 插件/主题,删除未启用插件/主题)
可开关设置
在插件设置页可控制:
- 评论同步
- 评论表情(评论框表情面板 + 评论短代码解析)
- 标签助手
- Sitemap
- 视频链接解析
- 音乐链接解析(APlayer + Meting)
- 附件预览增强(后台附件预览与批量插入,默认关闭)
- AI 摘要(发布文章自动生成)
- AI API 地址(支持 OpenAI 兼容接口)
- AI API Token
- AI 模型
- AI 摘要 Prompt
- AI 摘要存储字段名(默认
summary) - AI 摘要更新策略(仅空字段生成 / 每次发布覆盖)
- AI 摘要最大长度
- AI 摘要送审内容最大长度
- Meting API 地址(默认本地接口
action/enhancement-edit?do=meting-api&server=:server&type=:type&id=:id&r=:r) - 外链新窗口打开
- 外链跳转提醒(文章、评论、评论者网站链接统一中转)
- 外链 go 跳转开关(可整体启用/禁用)
- 外链跳转白名单(白名单域名不走 go)
- Turnstile 人机验证(评论/友链提交)
- 仅游客评论启用 Turnstile(登录用户评论可免验证)
- 禁用插件时是否删除友情链接表(links,默认否)
- 禁用插件时是否删除说说表(moments,默认否)
- 禁用插件时是否删除 QQ 通知队列表(qq_notify_queue,默认否)
- 插件设置备份与恢复(配置页内一键写入数据库/一键恢复)
- 瞬间图片占位文本(当内容仅包含图片时使用)
- 腾讯地图 API Key(用于瞬间定位逆地址解析)
- QQ评论通知
- 评论邮件提醒
Gravatar头像镜像加速(可开关)
AI 摘要
启用后,发布文章时会自动调用 AI 生成摘要并写入自定义字段(默认 summary)。
- 自动生成入口:文章发布
finishPublish钩子 - 批量生成入口:
管理 -> 摘要 批量页支持:
- 选中项批量生成
- 强制重生成(覆盖已有摘要)
- 状态筛选(全部/公开/私密/待审核/隐藏)
- 分页浏览
字段写入规则:
- 默认“仅字段为空时生成”
- 可在设置改为“每次发布覆盖”
插件设置备份/恢复
- 进入插件配置页,在“设置备份”区域点击
一键备份到数据库,会把当前配置保存为数据库快照。 - 点击
一键从数据库恢复会使用最近一次快照恢复,并覆盖当前插件配置。 - 支持在“最近 5 条备份”中选择指定快照进行恢复或删除。
- 插件默认保留最近 20 份备份快照,旧快照会自动清理。
前台提交
模板或页面中调用:
<?php Enhancement_Plugin::publicForm()->render(); ?>或自定义表单提交到 /action/enhancement-submit(需带安全 token,建议用 Helper::security()->getIndex('/action/enhancement-submit') 生成),字段: name、url、sort、email、image、description、user
安全说明(已内置):
- 可选 Turnstile 人机验证:启用后评论和友链提交都需要通过 Cloudflare 验证。
- 请求频率限制:同一 IP 在 5 分钟内最多提交 5 次,超限返回 429。
- 蜜罐字段拦截:表单隐藏
homepage字段,若被填写将拒绝提交。 - URL 归一化去重:同站点链接会按规范化地址判重,避免重复入库。
- 链接协议限制:
url/image仅允许http://与https://。
输出
模板中调用:
<?php $this->enhancement('SHOW_TEXT', 0, null, 32); ?>文章内容中标签:
<links 0 sort 32>SHOW_TEXT</links>说明:仅 state = 1 的记录会输出,主键字段为 lid。
瞬间 API
接口地址: /api/v1/memos
可选参数: limit(默认 20,最大 100)、page(默认 1)
访问范围说明:
- 默认(不带 Token):仅返回
status=public的瞬间 - 携带
Authorization: Bearer <token>:返回全部瞬间(含私密)
返回示例:
[
{
"id": "1",
"content": "<p>今天很棒</p>",
"time": "2025-01-01 12:00",
"tags": ["生活"],
"media": [{"type":"PHOTO","url":""}],
"status": "public",
"latitude": "39.984104",
"longitude": "116.307503"
}
]瞬间发布 API
在插件设置中填写 瞬间 API Token,然后使用: /api/v1/memos
请求头: Authorization: Bearer <token>
参数(JSON 或表单): content(必填,支持 Markdown)、tags(可选)、media(可选,若不填则从内容自动解析)、created(可选,时间戳或时间字符串) status(可选,public 或 private)、latitude / longitude(可选,经纬度;也支持 lat / lng)
Sitemap
访问:/sitemap.xml
内容短代码
- 下载卡片:
参数说明:
file:显示的文件名(可选,不填时自动从下载链接提取)size:显示的文件大小(可选)- 标签体内容:下载地址(支持
http://、https://、//)
- 前端渲染为下载卡片,包含文件名、来源域名、大小和扩展名标签。
鸣谢
感谢 Typecho 官方及所有开源插件作者提供的宝贵资源。 特别感谢以下插件提供的灵感和代码参考: