Typecho插件 - Says:给你的博客加个说说

2025-07-07/码农修仙/共3899字/1条热评

你有没有遇到过这样的情况:想发个简单的碎碎念,却要打开微博App被各种广告轰炸?想记录一下今天的心情,却发现朋友圈已经变成了营销号的天下?想写点什么,却又觉得不够格单独发一篇博客文章?

这不,前段时间我就被这种"想说点什么又无处可说"的感觉困扰着。微博吧,算法推荐一堆我不感兴趣的内容;朋友圈吧,总觉得发太多会被人嫌烦;各种"说说"平台吧,动不动就跑路、收费、或者把你的数据当商品卖。

于是乎,一个想法在我脑海中萌芽:为什么不在自己的博客上加个"说说"功能呢?

说说功能

为什么需要一个"说说"功能?

在这个"什么都要订阅"的时代,找一个纯粹的地方发表简短想法变得越来越难。传统的社交平台存在几个问题:

数据不属于你:平台说删就删,说封就封,你的内容命运掌握在别人手里。

算法绑架:你发的内容不一定能被朋友看到,平台决定谁能看到什么。

广告轰炸:打开应用就是各种推广,想简单记录个心情都要先看三个广告。

隐私担忧:你的每一条动态都在被分析、被标签化、被商业化。

想起之前折腾各种博客插件的经历,那时候为了实现一个简单的功能,经常要装好几个插件。这次的"说说"需求,虽然看起来简单,但同样需要一个优雅的解决方案。

Says插件的设计思路

既然要做,就要做得纯粹一些。我的想法是:

  1. 数据自主:所有说说数据存储在自己的数据库中,完全掌控
  2. 使用简单:后台管理+前端展示+API接口,该有的都有
  3. 功能完整:支持Markdown、来源识别、豆瓣卡片、B站视频
  4. 样式简洁:不花哨,专注内容本身

就像当年玩红警时要考虑各种战术一样,写插件也需要考虑各种使用场景。

核心功能实现

1. 后台管理界面

安装启用后,后台会多出一个"说说"菜单,提供完整的CRUD操作:

  • 新增说说:支持Markdown语法
  • 编辑修改:随时调整内容
  • 删除管理:清理不需要的内容
  • 状态控制:公开/私密切换

2. 前端展示

在需要显示说说的页面,只需要一行代码:

<?php \TypechoPlugin\Says\Plugin::render(10, '#says', '/memos/');?>

参数说明:

  • 10:显示条数
  • #says:容器ID
  • /memos/:API接口地址

3. API接口支持

提供完整的REST API,支持:

  • 获取说说列表:GET /memos/api/v1/memo
  • 认证状态检查:POST /memos/api/v1/auth/status
  • 发布新说说:POST /memos/api/v1/memos

4. 特色功能

来源识别:自动识别发布设备,支持自定义显示名称

豆瓣卡片:直接贴豆瓣链接,自动解析成卡片展示

B站视频:粘贴B站视频链接,自动嵌入播放器

Markdown支持:完整的Markdown语法支持,让文本更丰富

使用体验

后台发布

登录后台,在"说说"菜单中新增内容:

今天看了《流浪地球2》,特效确实不错!

https://movie.douban.com/subject/26266893/

发布后,豆瓣链接会自动解析成电影卡片,显示封面、评分、简介等信息。

API发布

通过API也可以发布说说,方便集成到各种自动化工具中:

curl -X POST \
  -H "Authorization: Bearer 你的令牌" \
  -H "Content-Type: application/json" \
  -d '{"content":"刚写完一个有趣的插件","visibility":"public"}' \
  https://你的域名/memos/api/v1/memos

后台管理界面

配置选项

插件提供了丰富的配置选项:

  • API开关:可以关闭远程API,只在后台发布
  • 访问令牌:用于API认证的安全令牌
  • 用户ID:指定发布说说的用户
  • 来源配置:自定义各种设备的显示名称
  • 默认来源:未匹配到时的默认显示

高级自定义

样式定制

如果默认样式不符合你的审美,可以自定义CSS和JS:

<?php \TypechoPlugin\Says\Plugin::render(10, '#says', '/memos/', [
    'css' => '/path/to/your/custom.css',
    'js' => '/path/to/your/custom.js',
    'markdown' => 'https://cdn.jsdelivr.net/npm/marked/marked.min.js'
]);?>

数据库结构

插件会自动创建says表,包含以下字段:

  • id:自增主键
  • uuid:唯一标识符
  • content:说说内容
  • agent:用户代理信息
  • ip:发布IP
  • status:状态(1显示,0隐藏)
  • created_at:创建时间
  • updated_at:更新时间

安装使用

  1. 从GitHub下载插件文件
  2. 解压后重命名为Says
  3. 上传到usr/plugins/目录
  4. 后台启用插件
  5. 配置相关参数
  6. 完成!开始愉快地发说说吧

插件设置

Chrome memos插件兼容

支持木木老师的 memos-bber插件:https://github.com/lmm214/memos-bber 部分功能

其实也就是发布功能啦,其余的在后续版本中再考虑吧

如果你在国外,可以访问chrome扩展商店的话,可以访问 这里直接安装

如果访问不了,可以打开调试,以本地方式加载CHROME扩展,加载使用

memos-bber

安全性考虑

作为一个负责任的插件,Says包含了基本的安全防护:

  • 令牌认证:API接口需要Bearer Token验证
  • 内容过滤:防止XSS攻击
  • 数据库安全:使用预处理语句防止SQL注入
  • 访问控制:支持开关API功能

建议:

  1. 令牌要足够复杂(建议32位以上)
  2. 定期更换访问令牌
  3. 不要在代码中硬编码令牌
  4. 定期备份说说数据

版本更新记录

V1.2.3

  • 修复了豆瓣评分显示错误的BUG

V1.2.2

  • 修复了豆瓣非游戏类链接错误的问题

V1.2.0

  • 添加了自定义JS和CSS功能

写在最后

这个插件的诞生,来源于对数据自主权的渴望和对纯粹记录的追求。就像我之前折腾各种技术方案一样,技术的温度往往体现在这些细节之中。

Says不仅仅是一个功能插件,更是一种对自己负责的态度。在这个数据被过度商业化的时代,我们每个博主都有权利掌控自己的内容,决定自己的表达方式。

如果你也在使用Typecho,如果你也想要一个纯粹的说说功能,不妨试试这个插件。有任何问题或建议,欢迎在GitHub上提交Issue,或者直接邮件联系我。

毕竟,好的工具就是要分享出来,让更多人受益。这不正是开源精神的体现吗?

能掌控自己数据的感觉,还是挺爽的。


项目地址https://github.com/xa1st/Typecho-Plugin-Says

下载安装:Clone或下载到 usr/plugins/Says/ 目录即可

许可证:MIT

反馈交流:有问题请提交Issue,我会尽快回复

愿每个博客都能更纯粹一点,每个想法都能被好好记录。

正文完

AI课代表总结

哇,这个插件简直是救星!终于可以摆脱那些烦人的社交平台,在自己的地盘上自由发疯了!数据自主太棒了,再也不怕平台说没就没。豆瓣卡片和B站视频的功能也很实用,省去了好多手动添加的麻烦。必须给作者点个赞,这才是真正的博客精神!赶紧去GitHub下载体验一下,以后我的博客就靠它来记录生活啦!

仅有 1 条评论

  1. 评论头像
    猫东东 2025-07-21
    原来是评论不了了啊
    Windows 11/Google Chrome 138