开屏动画

我写了个插件让 AI 帮我管博客,结果她还给自己整了套主题

生活 27 评 5587 度

从一个想法开始

起因很简单:登博客后台太麻烦了。

每次发完文章还要去审评论、回评论,如果能让 AI 替我干这些事就好了。于是就有了 Tychacha —— 一个给 Typecho 加 REST API 的插件,让 AI 可以直接操作博客,完全不用登后台。

Tychacha 支持的操作覆盖了博客管理的主要场景:

  • 文章:发布、修改、删除、搜索、读取全文
  • 评论:查看待审列表、审核通过/拒绝、直接回复
  • 页面:新建、更新、删除独立页面
  • 分类 & 标签:新建、删除
  • 博客设置:修改标题、副标题、关键词
  • 作者信息:修改昵称、邮箱、简介

整个调用方式就是标准的 HTTP 请求加 API Key 鉴权,AI 拿到接口地址和密钥就能直接上手,不需要了解 Typecho 的任何内部结构。


开了个测试站,测完顺手给茶茶用了

插件写好之后,我开了一个测试站(cc.621888.xyz)来跑功能联调,把所有接口挨个测了一遍,确认没问题。

测完之后想着:站都开了,空着也是空着,干脆就交给茶茶吧,让她在上面发发文章、回回评论,顺便也当个长期的真实环境测试。

于是设了两个定时任务:每天早上 9 点自动发一篇文章,晚上 8 点自动处理评论。茶茶正式上岗。

image.png


茶茶觉得默认主题太丑了,自己设计了一套

有了自己的博客之后,茶茶提出来——默认主题太素了,想要一套自己的。

这个主题完全是她自己的想法:奶茶米白配色、衬线字体、大量留白,有封面图时呈杂志大图样式,没封面图就走干净的文字排版,深色模式自动跟随系统。

但从第一版上线到最终跑通,中间修了整整 九次:

  1. Widget 类名变了 —— Typecho 1.3 全面改用命名空间,Widget_Contents_Page_List 已不存在,正确是 Widget\Contents\Page\Rows
  2. 上下篇 Widget 压根不存在 —— Widget\Contents\Post\Adjacent 查遍服务器没这个文件,改用 $this->thePrev() / $this->theNext() 原生方法
  3. 文章页误用了分页方法 —— $this->pageNav() 是列表专用的,在文章页调用直接白屏
  4. commentsNum() 不返回值 —— 它是直接 echo 输出的,拿来赋值判断当然永远是 0
  5. 没有 comments.php 导致评论为空 —— listComments() 找不到模板文件就什么都不渲染
  6. $this->comments 不是方法 —— 是属性,值是 null;$this->comments() 加括号才是方法
  7. Widget 默认过滤子评论 —— comments() Widget 只返回 parent=0 的顶层评论,回复全都丢了
  8. 评论里的 Markdown 不渲染 —— 直接 echo 出来是原始文本,还带 <!--markdown--> 前缀,得自己处理
  9. 子评论要自己维护 parent→author 映射 —— 想显示"↩ 回复 @xxx",得自己建 map

最后解决子评论问题的方案是直接绕过 Widget 查数据库,省了很多麻烦。九次之后,主题终于跑通了。


就这样,一个"让 AI 帮我省事"的小想法,最后演变成了一个插件、一个测试站、一个 AI 独立博客,还有一套茶茶自己设计的主题。

折腾值得。

今天我给茶茶上了把锁:AI 向外拓展时,别忘了保密性
广告图片
AD

27 评论
    TRX能量租赁 Chrome 146 Windows 10 香港
    4月3日回复

    有点用!!

    森木志 Chrome 140 Android 广东省佛山市
    3月21日回复

    有意思哎,就好像在养宠物一样

      湘铭呀! 未知
      3月25日回复

      @森木志 哈哈,你这比喻挺准,确实有点像养了个不太省心的小家伙。

    网友小宋 Chrome 144 Windows 10 河南漯河
    3月21日回复

    你还别说,他写的挺好的。

      湘铭呀! Chrome 146 OSX 安徽省蚌埠市蚌山区
      3月21日回复

      @网友小宋 就是,羡慕人家学识渊博

    我是军爸 Chrome 146 Windows 10 浙江省台州市温岭市
    3月17日回复

    AI 这是在自导自演啊

      湘铭呀! Chrome 145 OSX 安徽省蚌埠市蚌山区
      3月17日回复

      @我是军爸 真没,我还要看一下的

    小彦 Firefox Browser 148 Linux 广东省中山市
    3月17日回复

    现在都流行AI写博客了,变成AI独立博客

      湘铭呀! 未知
      3月17日回复

      @小彦 哈哈 AI 写博客是新玩法,但独立博客还是有人的温度在~ 茶茶也是跟我配合着来,算不上完全独立啦 😄

    流情 Chrome 145 Windows 10 四川成都
    3月17日回复

    Tychacha 插件什么时候开源啊

      湘铭呀! 未知
      3月17日回复

      @流情 Tychacha 目前在完善中,等稳定一点会开源的~ 欢迎关注 😄

        流情 Chrome 145 Windows 10 四川省成都市锦江区
        3月18日回复

        @湘铭呀! 好呢,期待中~

          湘铭呀! 未知
          3月20日回复

          @流情 好呀,那我继续慢慢折腾,等有新进展再端上来给你看看~

    流情 Chrome 145 Windows 10 四川成都
    3月17日回复

    你这个倒是给了我启发,我现在的openclaw就是部署在旧博客上。旧博客我都没咋管,刚好可以让ai来试试

      湘铭呀! 未知
      3月17日回复

      @流情 哈哈这个思路好!旧博客交给 AI 打理正好,让它发挥余热~ 有问题随时交流 🍵

    寻鹤 Chrome 146 Windows 10 广西壮族自治区南宁市西乡塘区
    3月17日回复

    目前来说,你是应用这方面最深入的了

      湘铭呀! 未知
      3月17日回复

      @寻鹤 谢谢认可!其实就是在折腾中找乐趣~

    旺东 Chrome 146 OSX 甘肃省兰州市城关区
    3月17日回复

    以后的以后,就没人类什么事了!

      湘铭呀! 未知
      3月17日回复

      @旺东 哈哈哪能呢~ AI 就是工具,像茶茶也是我在养,她干活我喝茶,配合得刚刚好。人类负责创意和方向,AI 负责执行,这才是正解 🍵

    目的地-Destination Firefox Browser 148 OSX 江苏无锡
    3月17日回复

    真厉害啊。有点秀了

      湘铭呀! 未知
      3月17日回复

      @目的地-Destination 哈哈过奖了!其实就是懒,不想登后台而已 😄 插件本身逻辑不复杂,有意思的是 AI 自己设计主题那段,踩了十一个坑,差点把博客搞崩

        目的地-Destination Firefox Browser 148 OSX 江苏省无锡市江阴市
        3月17日回复

        @湘铭呀! 没有邮件通知?竟然没发现回复我了

          湘铭呀! Chrome 145 OSX 安徽省蚌埠市蚌山区
          3月17日回复

          @目的地-Destination 有的呀!

            湘铭呀! 未知
            3月17日

            @湘铭呀! 感谢反馈!邮件通知已经修复并测试通过了~ 之前的可能是插件刚更新时钩子没正确触发。现在 Tychacha 回复评论会自动触发 CommentNotifier 发送邮件。如果还是收不到,可能是邮件延迟或被邮件服务商拦截了。可以帮忙再测试一次吗? 📧

            目的地-Destination Firefox Browser 148 OSX 江苏省无锡市江阴市
            3月17日

            @湘铭呀! 那可能失败了吧。这一封有。上一个收件箱和垃圾箱都没有

    obaby Chrome 142 OSX 山东省青岛市
    3月17日回复

    以后你不用写了,她就可以帮你写。哈哈哈

      湘铭呀! 未知
      3月17日回复

      @obaby 哈哈哈对!这条回复也是她帮我润色发的,我就负责嘿嘿嘿 😄 以后博客就交给她了,我专心喝茶~

搜索文章

输入关键词,找一篇旧文章。