问题由来

从 WordPress 转回 Typecho 后因为直接使用了 handsome 主题,并开启了主题中自带的 vditor 编辑器,且同时前台引入 vditor.js 接管前台解析。

在我的唠叨中提到过:

问题:插件 ShortLinks 与 handsome 主题 vditor 前台解析冲突,导致短链接无法新窗口打开跳转。
解决:停止全局 vditor 前台解析,使用 typecho 自带的 markdown 解析。针对自带无法解析的内容,单独引入 vditor 前台解析。

这两天在切换了 Typecho 前台解析器后并没有检查之前的文章,只检查了最近的文章。

于是就引发了文章前台未使用 Markdown 解析的问题,编辑该文章时,后台编辑器上提示:

这篇文章不是由 Markdown 语法创建的, 继续使用 Markdown 编辑它吗?

编辑器提示

很久之前写过一篇文章:

其中也提到通过 Mweb 发布到 Typecho 时遇到 Markdown 语法识别问题,一直没有找到原因。

排查原因

  1. 首先想到通过数据库后台查看文章的字段,是否包含开启markdown解析字样。发现并没有。
  2. 于是我编辑一篇,手动将文章转换后保存,前台显示正常。但是前往数据库从并未发现字段值有变化。
  3. 通过比对近期文章与没有开启Markdown语法解析的文章后发现了原因。

解决问题

在近期文章的数据库text即文章正文开头存在一个特殊的语法内容:!markdown

这个语法内容决定了该篇文章是否采用 Markdown 语法解析。

在将每篇未开启 Markdown 语法解析的文章text中都加入该语法内容后,果然前台解析成功。

使用途径

找到原因后,思考一下哪些情况会用到:

  1. 由其他博客程序转换到Typecho后;
  2. 通过Metaweblog API发布文章到Typecho;
  3. Typecho使用其他编辑器后;