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

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 utf8mb4mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character SET utf8mb4mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character SET utf8mb4mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character SET utf8mb4mb4 collateutf8mb4_unicode_ci;
alter table typecho_options convert to character SET utf8mb4mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character SET utf8mb4mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character SET utf8mb4mb4 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 折腾


已有 17 条评论
  1. guibu guibu

    网站用的什么主题这么好看

  2. 查看零件本子
    1. a标签好像不可用呢

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

  3. 超级HTML模式是啥呀

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

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

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

  5. Leo Leo

    喵喵

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

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

  7. 求视频地址(

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

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

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

添加新评论