基于prismjs的代码语法高亮typecho插件,支持众多常见的代码语言高亮显示,共提供11种代码高亮风格自由切换,支持显示代码语言类型、行号,以及支持复制代码到剪切板功能

起始

最初基于 Highlight 插件,开发一款名为 ColorHighlight插件

但因为插件本身存在不少BUG,自己又不想重写结构,于是便重新基于 CodeHighlighter开发了一款

在原有的代码高亮样式上新增了Mac风格代码,修改了部分代码

下载

插件最新更新时间:2020/08/20(新增Objective-c语言高亮

handsome.min.css更新时间:2020/08/30(更新至handsome主题7.31


激活

以Handsome主题为例,其它主题可能出现样式错误

点击开合查看

第 1 步:下载本插件,解压,放到 usr/plugins/ 目录中;

第 2 步:文件夹名改为 CodePrettify

第 3 步:登录管理后台,激活插件
(请勿与其它同类插件同时启用,以免互相影响)

第 4 步:设置:选择主题风格,是否显示行号等。

第 5 步:修改(替换)/usr/themes/handsome/assets/css/下的handsome.min.css文件

由于handsome主题最新加入授权,旧版本必须更新至最新版,所以这里就不提供旧版 css文件,从5.3.1版本开始

Handsome 7.3.1 版本(7.x版本通用:
提取码:1122

Handsome 6.0.0 版本:
提取码:1122

Handsome 5.3.1 版本:
提取码:a0d8

如果事先有对handsome.min.css进行魔改的话,可以按照以下手动修改

删除handsome.min.css里的

pre {
    padding:0
}
pre code {
    display:block;
    overflow-x:auto;
    position:relative;
    margin:0;
    padding:15px
}

后添加以下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
}

用法

\```php(语言类型必填)
<?php echo 'hello jrotty!'; ?>
\```
删除上边代码中的\

若不填写语言类型,则无效果


Pjax

如果你的网站有开启Pjax(handsome主题默认开启)

请把以下代码添加到回调函数的地方,在你使用的主题设置里看看

Handsome主题为例:

  1. 主题 --> 设置外观 --> Pjax --> PJAX回调函数
if (typeof Prism !== 'undefined') {
var pres = document.getElementsByTagName('pre');
                for (var i = 0; i < pres.length; i++){
                    if (pres[i].getElementsByTagName('code').length > 0)
                        pres[i].className  = 'line-numbers';}
Prism.highlightAll(true,null);}

若插件里设置不显示行号,PJAX函数要改为

if (typeof Prism !== 'undefined') {
Prism.highlightAll(true,null);}

重要说明

可设置项

1. 选择高亮主题风格 (官方提供的 6 种风格切换,本人自己新增了三种(Mac风格))

  • coy.css
  • dark.css
  • BlackMac.css(黑色Mac风格)
  • GrayMac.css (默认选中:Mac风格(灰色))
  • WhiteMac.css(白色Mac风格)
  • twilight.css
  • tomorrow-night.css

2. 是否在代码左侧显示行号 (默认开启)


后记

很多人反馈插件在其它主题上没有效果或是样式不正常

由于有些主题是自带代码高亮

所以无法对每个主题都完美兼容

精力有限,只能尽量做好handsome主题完美兼容

若真的很喜欢这款插件可以在本文留言,博主有时间会帮忙解决

有任何意见也欢迎留言

反馈问题,请给出演示地址

注:C#代码与 C++代码使用 csharpcpp进行标记声明

由于最新版本handsome主题内置的高亮与该插件冲突,请进入后台 --> 设置外观 --> 主题增强功能里关闭主题内置高亮

Last modification:August 30th, 2020 at 01:39 pm
如果觉得我的文章对你有所帮助,请随意赞赏