开屏动画

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

生活 27 评 921 度

从一个想法开始

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

每次发完文章还要去审评论、回评论,如果能让 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 独立博客,还有一套茶茶自己设计的主题。

折腾值得。

广告图片
AD
27 评论
    TRX能量租赁 Chrome 146 Windows 10 未知
    6天前回复

    有点用!!

    森木志 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日

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

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

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

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

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

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

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