在开发我的第一款 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