wordpress添加代码高亮显示
- 2019-02-26 15:22:05
- 3,534 次阅读
- 2
在用wordpress写博客时,平常需要在内容区域添加一些代码程序,但wordpress后台编辑文档中没有能够突出代码高亮显示的功能,这使得内容区域的文本内容与程序代码颜色一致,不能够重点突出代码程序,更不能达到用户体验的要求。
最近,看到一个国外的网站https://prismjs.com/,Prism是一个轻量级的、可扩展的语法亮点,它基于现代Web标准构建。它被用于数千个网站,包括一些你每天访问的网站。
通过点击最上面的download按钮,进入下载选择页面。它包括四个部分压缩水平(compression level),核心(core),语言(languages),插件(plugins),经过四部分的操作,可以定制自己喜欢的高亮显示代码,最后的一个环节将调好的模板的js代码和css样式下载放到自己的网站中。
高亮代码显示的样式,如下图:
通过上面的图片可以看到显示的效果很漂亮,但是这种方法下面有个滚动条,隐藏的代码部分需要拖动出来。
下面介绍另一种,是我比较喜欢的一个方法,也是通css和js来实现的。
首先,在自己的模板中添加css样式,如下:
- /*淡白灰代码高亮样式*/
- pre {
- display: block;
- padding: 0 0 0 10px;
- margin: 0 0 10px;
- font-size: 14px;
- line-height: 20px;
- word-break: break-all;
- word-wrap: break-word;
- white-space: pre;
- white-space: pre-wrap;
- border: 1px solid rgba(0,0,0,.15);
- border-radius: 2px
- }
- pre.prettyprint {
- margin-bottom: 20px;
- background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
- background-size: 3em 3em;
- }
- .prettyprint.linenums, pre.prettyprint.linenums {
- -webkit-box-shadow: inset 40px 0 0 #f8f8f8, inset 42px 0 0 #358ccb;;
- -moz-box-shadow: inset 40px 0 0 #f8f8f8, inset 42px 0 0 #358ccb;;
- box-shadow: inset 40px 0 0 #f8f8f8, inset 42px 0 0 #358ccb;
- }
- .prettyprint.linenums ol, pre.prettyprint.linenums ol {
- padding-left: 1.8em;
- font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
- }
- .prettyprint.linenums ol li, pre.prettyprint.linenums ol li {
- padding-left: 6px;
- color: #bebec5;
- line-height: 21px;
- margin-left:3px;
- list-style: decimal;
- }
- .prettyprint.linenums ol li:before, pre.prettyprint.linenums ol li:before {
- content: "";
- width: 0
- }
- .prettyprint .com {
- color: #666
- }
- .prettyprint .lit {
- color: #c0c
- }
- .prettyprint .clo, .prettyprint .opn, .prettyprint .pun {
- color: #0a0
- }
- .prettyprint .fun {
- color: #dc322f
- }
- .prettyprint .atv, .prettyprint .str {
- color: #c28f5b
- }
- .prettyprint .kwd, .prettyprint .tag {
- color: #f92659
- }
- .prettyprint .atn, .prettyprint .dec, .prettyprint .typ, .prettyprint .var {
- color: #0a0
- }
- .prettyprint .pln {
- color: #00f
- }
其次,在header引用prettify.js代码
最后,在编辑器中添加高亮代码按钮,在function中加入
- function prettify_codeHighlight() {
- ?>
- <script type="text/javascript">
- QTags.addButton( 'codeHighlight', '代码高亮', '<pres class="prettyprint linenums" >\n添加代码\n</pres>', "" );//添加高亮代码
- </script>
- <?php
- }
- add_action('admin_print_footer_scripts', 'prettify_codeHighlight' );
注:将上面的pres改成pre,因为pres是不存在的标签,问了避免与代码中的pre class=”prettyprint linenums冲突,我这里发布内容时故意写成这样的。
文章评论 (0)