typecho的最后一次release是在2022年的4月1日,4月1日之后没有大版本更新,都是小bug的修复和提交,作者最后一次提交是在18天以前。1

image-20220902172849373
image-20220902172849373

之前试用的是1.1版本,因为喜欢的VOID2主题没有适配1.2,今天发现作者大大居然做了1.2的适配,果断进行了更新。

博客升级

Typecho博客升级很简单,删除网站下列目录文件

/admin/
/var/
/index.php
/install.php

然后,将从github上下载的网站最新包,将下列文件上传

/admin/
/var/
/index.php
/install.php

注意,不要删除usr下目录的文件,这里包含博客的主题和所有的插件,以及用到的静态文件,尤其是插件,删了就凉了。

上传完毕,进入博客首页,打不开没关系,进入网站后台,直接更新,显示更新完毕,在重新进入首页即可。

VOID主题升级

首先,下载最新的开发版代码。3

同时,也要下载主题配套的插件代码。4

使用方法

  • 主题包上传到网站根目录下/usr/themes 文件中
  • 插件包上传到网站根目录下/usr/plugins 文件中‘’
  • 后台启用主题、启用插件即可。

VOID主题有很多种方法,可以去作者大大的github主页去看看,高级配置的文件说明。

// 这是一份高级配置示例文件
// 你可以挑选其中某些设置,填写到主题后台「超高级」设置框中

// 填写的内容必须符合 JSON 格式,因此你必须 去掉 以 // 打头的所有注释!!!

{
    // 自定义左上角显示的站点名
    "name" : "A Panda.",

    // 为站点标题设置自定义字体,
    "brandFont": {
        "src": " ",  //填写字体文件链接,例如 "https://my.com/font.ttf"
        "style": "normal",  // 字体样式,例如 normal, italic...
        "weight": "normal"  // 字重,例如 normal, bold, 300, 400...
    },

    // 桌面端头图高度,数值为高度占屏幕高度的百分比
    "desktopBannerHeight" : 30,

    // 移动端头图高度,数值为高度占屏幕高度的百分比
    "mobileBannerHeight" : 30,

    // 导航栏模式,随滚动显隐(0),固定(1),不固定(2)
    "headerMode": 1,

    // 移动端导航栏模式,同上。不设置时默认与 headerMode 一致
    "headerModeMobile": 0,

    // 文章字号。当用户在前端自己设置后,该选项会被覆盖。默认为 18px。
    // 1: 14px, 2: 16px, 3: 18px, 4: 20px, 5: 22px
    "defaultFontSize": 3,

    // 对代码启用 Fira Code 字体。Fira Code 字体有漂亮的 ligature 特性
    // 由 Google Fonts 提供支持,可能延长页面加载时间
    "useFiraCodeFont": false,

    // 在图片下方显示图题
    "parseFigcaption": true,

    // 社交 ID,用于生成分享链接
    "twitterId": "AlanDecode",
    "weiboId" : "古早日剧成瘾患者",

    // 评论折叠阈值
    // 例如设置为 [5, 1.5] 表示点踩者大于 5 人,且点踩者达到点赞者 1.5 倍时折叠评论
    "commentFoldThreshold": [5, 1.5],

    "commentNotification": "请不要水评论",

    // 夜间模式时间段
    "darkModeTime" : {
        "start": 22.5,  // 晚 22 点 30 分开始
        "end": 7.0      // 直到早 6 点 59 分
    },

    // 当操作系统为深色主题时主题颜色自动切换,仅在 macOS 10.14.4 及以上版本的 Safari 中可用
    "followSystemColorScheme" : true, 

    // 大图集
    "largePhotoSet": true,

    // 模糊懒加载。通过提供小缩略图,以实现渐变加载效果。目前支持又拍云与七牛云 CDN。
    // 其中又拍云请把图片处理间隔符设置为 !
    "bluredLazyload": false,
    "CDNType": {
        "static.imalan.cn": "UPYUN" // UPYUN, QINIU
    },

    // 浏览器原生懒加载(使用img标签新增的loading="lazy"属性实现)
    // 为图片提供更好的SEO支持。只适配较新版本的浏览器,不支持的浏览器将自动加载当前页面下的所有图片
    // 浏览器具体适配情况请参考:https://caniuse.com/loading-lazy-attr
    // 注意:开启后将使得模糊懒加载功能失效
    "browserLevelLoadingLazy": false,

    // Mac 风格代码块
    "macStyleCodeBlock": true,

    // 代码块行号支持
    "lineNumbers": true,

    // 自定义添加社交链接
    "link" : [
        {
            "name": "GitHub",
            "icon": "github",
            "href": "https:\/\/github.com\/AlanDecode",
            "target": "_blank"
        },
        {
            "name": "微博",
            "icon": "weibo",
            "href": "https:\/\/weibo.com\/5245109677",
            "target": "_blank"
        },
        {
            "name": "Twitter",
            "icon": "twitter",
            "href": "https://twitter.com/AlanDecode",
            "target": "_blank"
        },
        {
            "name": "QQ",
            "icon": "qq",
            "href": "https://shang.qq.com/wpa/qunwpa?idkey=4ed2406c1d84b70c319c8ee79752d1704702b770aa0da405ca0f274e4d4db5f8",
            "target": "_blank"
        }
    ],

    // 自定义添加导航栏下拉列表
    "nav" : [
        {
            "name" : "捉迷藏",
            "items" : [
                {
                    "link" : "http:\/\/t.me\/imalanblog",
                    "title" : "Telegram 群",
                    "target" : "_self"
                },
                {
                    "link" : "https:\/\/shang.qq.com\/wpa\/qunwpa?idkey=4ed2406c1d84b70c319c8ee79752d1704702b770aa0da405ca0f274e4d4db5f8",
                    "title" : "QQ 群组",
                    "target" : "_blank"
                },
                {
                    "link" : "https:\/\/weibo.com\/5245109677",
                    "title" : "新浪微博"
                }, 
                {
                    "link" : "https:\/\/twitter.com\/AlanDecode",
                    "title" : "Twitter"
                },
                {
                    "link" : "https:\/\/github.com\/AlanDecode",
                    "title" : "GitHub"
                }
            ]
        },
        {
            "name" : "秘密花园",
            "items" : [
                {
                    "link" : "https:\/\/www.imalan.cn",
                    "title" : "引导页"
                },
                {
                    "link" : "https:\/\/api.imalan.cn",
                    "title" : "熊猫 API"
                }
            ]
        }
    ]
}

碰到的问题

VOID主题可集成[ExSearch](https://github.com/AlanDecode/Typecho-Plugin-ExSearch) ,实时搜索的插件,升级之后发现,保存文章报错。

Argument 1 passed to Typecho\Widget::__construct() must be an instance of Typecho\Widget\Request, instance of Typecho\Request given, called in /***/usr/plugins/ExSearch/Plugin.php on line 278

在Git issues中,找到了解决办法,将报错行代码修改为如下代码。5

$widget = $className::alloc();