无冲突的为您的WP网站引入代码高亮-多风格、多功能、多语言支持


本文原文链接:无冲突的为您的WP网站引入代码高亮-多风格、多功能、多语言支持

大部分技术型博客都有使用代码高亮,以便于访客能过更好的看清所写的代码,但往往很多时候,所使用的代码高亮插件总是与主题、插件冲突,本站之前也使用过代码高亮插件,发现其在前端的编辑器上不兼容,会报错。因此,寻觅之下,发现了prism.js这个代码高亮的实现方法。

本期将在WordPress实现该操作,需要实现的功能为:在需要代码高亮的时候,它亮,不需要的时候不加载。

/prism.js本身支持多平台,并不局限与WordPress,理论上,它支持所有程序。

Prism.js简介

Prism实现的原理是通过css实现样式的修正以及通过JS来实现功能,因此任何支持js,css的平台都可以使用prism来实现代码高亮。

同时需要注意的是,prism所使用的js和css都是根据自己需要定制的,不会产生多余的代码,这使得其文件大小大多只有几KB,完全不会对网络造成影响。

操作方法

Prism的操作很简单,总结来说就是:下载所需的js,css文件,然后将其引入wordpress即可。

第一步 选择所需的功能和样式

前往:https://prismjs.com/download.html

选择你要的样式和功能

选择你要的样式和功能

如图,你可以在右侧点选你想要的代码高亮颜色,总共有8种可以选,点击选中之后,你可以滑动屏幕到最下面,看到你所选择的外观样式。

查看你选中的代码高亮样式

查看你选中的代码高亮样式

通常来说,代码高亮最受欢迎的是黑色,看个人喜欢选择:

黑色风格代码高亮

黑色风格代码高亮

第二步 所需要支持的语言选择

在这里,prism默认为你选中的只有:

默认支持的语言

默认支持的语言

但你可以勾选更多,需要什么勾选什么即可。比如php,Java,Go等等,如果觉得没有你需要的语言,你可以滑动到最开始地方,找到这个选项:

选择开发版本

选择开发版本

将会出现所有prism支持的语言类型。

大部分情况下,我们都是选择Minified version【缩小版】,功能上并无差异。

第三步 选择功能插件

这里有许许多多的各种功能可以添加进你显示的代码上,比如,一键复制黏贴你的代码、高亮你代码中的关键词、显示行号、显示下划线等等。

所有功能

所有功能

注意:平台是英文的,浏览器自动翻译也许不准确,下图做了一些所使用多的功能注释。

通常我们只需要这些

通常我们只需要这些

第四步 下载js和css文件

选择完我们需要的功能和样式后,我们就可以将这些样式文件下载了。准备进行引入。

下载Js和CSS

下载Js和CSS

第五步 WP引入prism代码高亮

1、将下载好的js和css文件传到主题目录下

使用了子主题的,上传到子主题目录即可。没有使用子主题的,上传到使用的主题目录下即可

上传到子主题目录

上传到子主题目录

上传完成后,我们还需要在子主题/主题的function.php中写上引入代码,这里有两种方式。

2、function.php写入代码

两种显示效果,一种是全站都加载代码高亮,一种是只对有固定标签包括的代码进行代码高亮渲染。

方式1 在网站的每个页面都加载代码高亮:

<?php

// 添加代码高亮到WordPress上
function add_prism() {
    
    // 注册 prism.css 文件
    wp_register_style(
        'prismCSS', // handle name for the style 
        get_stylesheet_directory_uri() . '/prism.css' // location of the prism.css file
    );

    //注册 prism.js 文件
    wp_register_script(
        'prismJS', // handle name for the script 
        get_stylesheet_directory_uri() . '/prism.js' // location of the prism.js file
    );

    // 将注册的样式和脚本文件编入查询
    wp_enqueue_style('prismCSS');
    wp_enqueue_script('prismJS');
}
add_action('wp_enqueue_scripts', 'add_prism');

方式2 仅在具有“代码”标签的文章上有条件地加载代码高亮

<?php
/**
 * 这部分通常情况下不需要,仅在你子主题是空的的时候,需要该标签。
 */

// 添加代码高亮到WordPress上
function add_prism() {

        //下面的“code”为你代码的包裹标签
    if ( is_single() && has_tag( 'code' ) ) {
        
        // 注册css样式
        wp_register_style(
            'prismCSS', // handle name for the style 
            get_stylesheet_directory_uri() . '/prism.css' // location of the prism.css file
        );

        // 注册js
        wp_register_script(
            'prismJS', // handle name for the script 
            get_stylesheet_directory_uri() . '/prism.js' // location of the prism.js file
        );

        // 编入查询
        wp_enqueue_style('prismCSS');
        wp_enqueue_script('prismJS');

    }
}
add_action('wp_enqueue_scripts', 'add_prism');

在WordPress编辑器上的使用

在完成上述步骤之后,我们已经引入了代码高亮,那么如何使用它?、

WordPress 古腾堡编辑器

如果你也是使用的古登堡编辑器,那么,步骤将会变得简单。

操作方法

操作方法

你只需要将你的css类添加到这里即可,注意需要使用固定的格式:language-你的代码语言

如果是 HTML 代码,您应该输入language-markup,如果是 JavaScript,您应该输入language-javascript,如果是 PHP,您应该输入language-php,依此类推。

WordPress 经典编辑器

使用经典编辑器需要手动写入相关代码,当你需要使用代码高亮时,你得切换到文本编辑模式:

然后手动输入标签及类名,以下是一个例子:

<pre><code class="language-javascript">
var myObject = {
    property1: "something",
    property2: 5,
    property3: true
}; 
</code></pre>

可以看到,并不是很方便。所以我们可以使用某种方法将它做成快捷键。如下:

function lerm_add_quicktags() {
	if ( wp_script_is( 'quicktags' ) ) {
		?>
		<script type = 'text/javascript'>
			QTags.addButton('language_php','php代码高亮','<pre><code class="language-php">','</code></pre>');
		</script>
		<?php
	}
}
add_action( 'admin_print_footer_scripts', 'lerm_add_quicktags' );
// 上述代码中,其中,四个参数中第一个表示标签的ID,第二个表示显示的名称,第三个表示点击一下输入标签,第四个表示,点击第二下关闭标签。按着这种格式,可以根据需要增加更多标签。

《完》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
写在前面 用WordPress以来,本站一直是用CodeColorer来实现代码高亮,但原版的汉化不够完全,且与不少主题都冲突,因此本人将原版修改过后使用,并加入了可视化代码插入功能,之前也想发布出来,但因为懒,一直推迟到现在,既然大家希望我提供下载,因此我把它打包出来提供给大家。 CodeColorer CodeColorer是一款基于GeSHi库的WordPress代码语法高亮插件。功能简单,使用方便,是一款比较轻量的插件。CodeColorer支持[cc lang="lang"]code[/cc]和code两种语法。 属性说明 属性列表如下,括号内是参数类型.string是字符串;integer是整数;boolean是布尔型(开关),可接受“true” “false”, “on” “off”, 整数 1 or 0. lang (string) – 代码使用的语言。 tab_size (integer) – 用以替换制表符的空格数,可在设置界面更改。 line_numbers (boolean) – 是否显示行号,可在设置界面更改。 first_line (integer) – 指定代码块第一行的行号 highlight (string) – 用于指定整行高亮代码行行数,参数是用半角逗号分隔的数字串(如 1,5,8,9)。 no_links (boolean) – 当值为false时,关键字将会添加一个到官方文档的链接,可在设置界面更改。 lines (integer) –指定代码块显示的行数,当值设置为-1时,不出现纵向滚动条,可在设置界面更改。 width (integer or string) – 代码块宽度,可在设置界面更改。 height (integer or string) – 代码块高度,当这个高度可显示的行数比lines指定的值大才会生效,可在设置界面更改。 rss_width (integer or string) – 代码块在RSS输出时的宽度,可在设置界面更改。 theme (string) – 代码块颜色风格 (default, blackboard, dawn, mac-classic, twitlight, vibrant),可在设置界面更改。 inline (boolean) – 内嵌模式开关,用于将一行代码插入到文本中。 strict (boolean) – 严格模式的开关。 nowrap (boolean) – 当值指定为false时,过长的行将会被自动换行,以避免出现横向滚动条。 noborder (boolean) – 是否显示边框的开关。 no_cc (boolean) – 当值为true时,code标签将会被解析,但代码块不会有格式。 class (string) – 添加一个新的CSS。 escaped (string) – 当值为false,代码块里的html转义字符不会被转义,如<不会转义为<,默认为false。 What's New? 添加可视化代码插入按钮并汉化界面; 可视化代码插入界面添加Java,CSS两种语言; 兼容官方主题及各种自定义主题; 修复不自动换行时行号显示不正确的问题; 优化高亮代码显示方式,放弃Table布局,改用Div+CSS,兼容多种浏览器乃至IE6; 添加代码工具栏,实现一键复制等功能,同样兼容多种浏览器。 等待你们去发现…… 我的博客: http://lanfei.sinaapp.com/ http://blog.csdn.net/CooLanfei 欢迎访问交流。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值