基于prismjs的代码语法高亮typecho插件(包含Mac风格)

此文章发布于39个月前,部分信息可能已经过时,请自行斟酌确认

介绍

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

最新更新时间:2020-2-25

起始

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

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

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

下载

插件最新更新时间:2020/2/25

handsome.min.css更新时间:2020/2/25

激活

以Handsome主题为例:

点击开合查看

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

第 2 步:文件夹名改为 CodePrettify;

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

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

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

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

Handsome 5.3.1 版本:

提取码:h7ah

Handsome 6.0.0 版本:

如果事先有对handsome.min.css进行过魔改的同学,按照以下步骤修改

点击开合查看

handsome.min.css下新增以下代码

.page 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
}

.page .code-toolbar 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
}

.page pre {
    padding: 0;
    border-radius: 0;
    overflow: hidden
}

post-content pre code#改成

#post-content 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
}

删除#post-content button
删除#post-content pre:before
删除code::-webkit-scrollbar-track-piece
删除code::-webkit-scrollbar

用法

\```php
\//(上面的语言类型选填,php,css,javascript都可)
<?php echo 'hello jrotty!'; ?>
\```
删除上边代码中所有的 \

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. 选择高亮主题风格 (官方提供的 8 种风格切换,本人自己新增了三种(Mac风格))
  • coy.css
  • dark.css
  • BlackMac.css(黑色Mac风格)
  • GrayMac.css (默认选中:Mac风格(灰色))
  • WhiteMac.css(白色Mac风格)
  • twilight.css
  • tomorrow-night.css
  1. 是否在代码左侧显示行号 (默认开启)

后记

插件的兼容性应该不存在什么问题,博主在Handsome主题上使用一切正常

如果你在其他主题使用过程中出现了问题可以随时联系我

若有任何意见或发现任何BUG欢迎访问到我的博客www.xcnte.com留言


版权属于:Xcnte' s Blog(除特别注明外)

原文链接:https://www.xcnte.com/archives/523/

本站文章采用 知识共享署名4.0 国际许可协议 进行许可,请在转载时注明出处及本声明!
最后修改:2020 年 02 月 25 日 06 : 51 AM
如果觉得我的文章对你有用,请随意赞赏

4 条评论

  1. Sacenpai

    博主你好 6.0的css文件失效了 您可以发到我的邮箱

    1. 晴栀
      @Sacenpai

      邮箱呢???

  2. 九月

    请问博主为什么我使用这个插件有显示两个行号呢?

    1. 晴栀
      @九月

      需要修改handsome.min.css文件

发表评论