解决博客更新后的各种问题

Typecho 升级 1.1 之后出现了部分 HTML 标签失效的问题

查了一下开发日志,原来是因为 1.1 版本更换了 Markdown 解析引擎...

超级HTML模式

http://typecho.org/blog/
按照官方的提示,在 HTML 标签的前后加上 "!!!" 即可使用“超级HTML模式”:

!!!
<b>233</b>
!!!

这里用了中文感叹号所以不生效。

让 Typecho 支持 Emoji

Typecho 默认使用 UTF-8,但在 MySQL 中,UTF-8 只支持最多 3 个字节,而 Emoji 是 4 个字节,所以会导致 Emoji显示不正常,这里只需要简单修改下编码就可以了。

修改数据库 charset 为 utf8mb4_unicode_ci :

alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character set utf8mb4 collateutf8mb4_unicode_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;

注意:部分插件的表需要手动更改,这里仅列举 Typecho 默认生成的表。

修改 Typecho 配置文件中数据库定义参数中的 charset 为 utf8mb4 :

/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  'host' => 'nekosc.com',
  'user' => 'rbq',
  'password' => '23333',
  'charset' => 'utf8mb4', //修改这一处
  'port' => '12450',
  'database' => 'bilibili',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

现在可以在 文章/评论 中使用 Emoji 了😋

播放器测试

折腾告一段落,博客域名也启用了 DNSSEC 以确保解析安全,如果还有什么异常的地方欢迎留言指出~

标签: Typecho 折腾


已有 16 条评论
  1. 查看零件本子
    1. a标签好像不可用呢

      1. 🌚乱插链接可不行,只允许 blockquote、del、br、b、code

  2. 超级HTML模式是啥呀

    1. 就是直接使用原生 HTML,不经过 Markdown 处理

  3. 日后升级数据库编码不会变的吧也许

    1. emoji居然是4个字节的,我等等也去修改下

  4. Leo Leo

    喵喵

  5. 删掉咱是因为咱多余嘛.....(虽然咱也不想闲的没事找存在感)

    1. 搬数据库的时候回档了吧

  6. 求视频地址(

  7. 嵌入播放器厉害,在学咋把这DPplayer搞进去

    1. 其实是现成的插件:https://github.com/MoePlayer/DPlayer-Typecho

  8. 好厉害,我迁移到了WordPress。

添加新评论