Typecho安装和使用踩坑经验

Programming · 2023-11-28

设置Typecho正常显示公式

原理是使用MathJax脚本进行渲染,这是一个js脚本,可以用script嵌入到网页中,嵌入的方式有两种,一是直接使用链接远程访问这个脚本的内容,嵌入到自己的网页里(因为官方将这个脚本部署到了网站上便于在线访问,提高可移植性),另一种是将这个js脚本下载到本地,再上传到服务器上去实现本地访问。

找了网上很多的教程,踩了很多坑,于是写下这一片笔记,以免后续更换主题又使得公式加载失效。对于上面提到的两种方法,亲测第二种方法的稳定性更高,第一种方法按网上的流程做完后仍会没有反应或是大大降低网页的加载速度。第二种方法的流程为:

  1. 从github上下载MathJax的js脚本,网址:https://github.com/mathjax/MathJax,位置为该repository的es5文件夹下的tex_chtml.js文件
  2. 在我们当前使用主题的header.php文件中写入以下代码:

    <script src="xxx/xxx/MathJax/es5/tex-chtml.js" id="MathJax-script" async></script>
    <script>
    MathJax = {
            tex: 
            {
                inlineMath: [['$', '$'],['[latex]', '[/latex]']],
                displayMath: [['$$', '$$'],['[Latex]', '[/Latex]']]
            }
    };
    </script>

在网站里加载图标

Jasmine这个主题内置了iconify这个npm包,可以实现方便快速的图标获取。插入图标的步骤主要分为以下两步:

  1. 在网站https://tabler-icons.io/上检索图标,得到对应图标的key(或者有一些常用图标的key我们可以直接用其英文单词,如wechat, qq, mail等,能够映射到相应的图标)
  2. 在内容编辑中插入代码<iconify-icon icon="tabler:[key]" class="text-gray-800 dark:text-gray-300"></iconify-icon>,将第一步中检索到的key替换其中的[key],同时可以修改后面的参数来改变图标的颜色、灰度值等参数

网站伪静态处理

参考:https://juejin.cn/post/6969113070346403853

未经过伪静态处理的网址很冗长,包含了index.php/1.html,而我们希望网址简洁一些,只需要1.html,这时就需要设置伪静态,操作方法如下:

  1. 进入宝塔Linux面板,点击网站,修改我们的网址配置参数,点击“伪静态”,加入如下代码后保存;

        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php$1 last;
        }

  2. 进入typecho后台管理界面,点击设置-永久链接,启用地址重写功能,然后保存设置即可

开启typecho的debug模式

在网站根目录下的config.inc.php文件中加入一行define("__TYPECHO_DEBUG__",true); 即可开启debug模式,若遇到错误,则会在网页中输出报错信息。

为图片加入点击放大功能

使用灯箱插件Swipebox,从仓库https://github.com/wuxiaocong/Swipebox/tree/master下载,将文件放到typecho的plugins文件夹中,回到管理界面,启用插件,进入插件设置,将jQuery选项设置为自动加载,保存即可。

Links插件使用报错

Links最新下载网址:https://2dph.com/archives/typecho-links.html,维护者为懵仙兔兔,写下这篇笔记的时候版本已经更新到了1.2.6,修复了很多陈年bug,也对Typecho 1.2.1版本进行了一定的优化,在网页上提供了插件的完整安装步骤和使用教程。但根据官方流程下载安装完插件后,尽管启用后提示插件已启用成功,但访问管理-友情链接或是打开友链页面时,仍会报错500 Database Query Error,开启Typecho的debug模式后返回报错信息发现,MySQL中没有成功建立插件所需要的数据表,也就意味着插件根目录下的SQLite.sql文件并没有被成功执行(查看这个文件的代码可以看出这个我文件就是创建对应数据表的脚本)。

解决方案:进入到MySQL后台(从宝塔界面进入数据库管理后台,是一个phpMyAdmin界面),找到我们的网站所在的数据库,将SQLite.sql文件中的SQL指令复制到后台的SQL窗口中执行,创建所需要的数据表。创建成功后重启插件(禁用再启用),发现问题解决,插件能够正常运行,能够正常增删友链,友链页面也能够正常显示了。