MENU

在开发 typecho 主题时遇到的一些坑

March 23, 2021 • 阅读: 1923 • 笔记&折腾

在开发我的第一款 Typecho 主题时,遇到了很多坑,记录一下。

框架

可以用现成的初始化的框架,能减少一点点工作量。

Typecho 主题起步框架

文章图片

我是从 Wordpress 转过来的,有些图片是固定大小的,也一并转过来了。因为他在数据库中是以 HTML 格式保存的,所以到了 Typecho 图片大小依然是固定的,有时会超出文章区 div ,这里需要重新编辑文章,用 md 格式去手动添加图片。以及记得修改文章区图片的 max-width 属性。添加点击图片放大功能,这很重要。最简单的使用图片点击放大插件viewer.js的使用方法

代码高亮

风格可以采用开源的方案:prismjs , 不好看但也不难看。

更好的建议:使用 CodePrettify插件。插件食用方式:http://www.hyouka.club/index.php/archives/7/ 。插件开源地址:https://github.com/Xcnte/Code-Prettify-for-typecho 。关于使用该插件导致代码行号错位的问题,在主题的 css 中添加样式代码:

#post-content pre code {
    display:block;
    overflow-x:auto;
    position:relative;
    margin:0;
    padding-left:50px;
}
pre code {
    position:relative;
    display:block;
    overflow-x:auto;
    margin:4.4px 0.px .4px 1px;
    padding:0;
    max-height:500px;
    padding-left:3.5em
}

短代码

在 functions.php 中 新建函数:

function getContentTest($content) {
    $pattern = '/\[(label) color=\"blue\"\](.*?)\[\s*\/\1\s*\]/';
    $replacement = '<span class="code_label_blue">$2</span>';
    $content = preg_replace($pattern, $replacement, $content);
    return $content;
}

采用正则匹配的方式给短代码上 CSS 。

使用方式为在 post.php 给文章区套个函数:

<?php echo getContentTest($this->content); ?>

邮件回复

可以使用插件 CommentToMail

md 解析器

不要轻易修改 md 解析器,因为修改后你的短代码和图片都将无效化。除非在一开始就把md 的解析器换掉再来构造短代码。

评论者头像

评论者头像加载慢 http://meekdai.com/gravatar.html
修改评论中默认头像 https://inwao.com/Gravatar.html

固定链接

去掉固定链接里的 index.php :http://www.huanjingba.com/typechoindexphp.html

Last Modified: October 30, 2021
Leave a Comment