来源:http://www.ghostchina.com/adding-syntax-highlighting-to-ghost-using-highlight-js/

-------------------------------------------------------------------------------------

如果我们的文章中包含了代码,Ghost 默认是不做处理的,也就是说:没有为代码增加语法高亮。

其实,这个问题可以从 Ghost 系统入手解决,可惜现在 Ghost 还不支持插件,如果直接修改 Ghost 系统的话,每次系统升级都会很麻烦;那么,我们只好在页面上解决这个问题了,也就是为主题(theme)增加语法高亮的支持,在这里,我们以 Ghost 的默认主题(theme)-- Casper -- 为例,语法高亮插件采用 highlight.js 。

先来看看 highlight.js 有什么能力吧:

  • 支持 71 种编程语言的语法解析;拥有 44 种样式
  • 自动检测编程语言
  • 同时为多种编程语言代码高亮
  • 可以在 node.js 平台上运行
  • 支持各种标签
  • 与任何 js 框架兼容

OK,接下来就看看怎么用 hightlight.js 吧!

引入 highlight.js 文件

我们需要在页面中同时引入一个 js 文件和一个 css 文件(在这里我们省点儿力气,直接使用 Bootstrap中文网 提供的 CDN 链接,既简单又提升加载速度):

<link href="http://cdn.bootcss.com/highlight.js/8.0/styles/monokai_sublime.min.css" rel="stylesheet">
<script src="http://cdn.bootcss.com/highlight.js/8.0/highlight.min.js"></script>

第一个文件是样式文件,我们采用 sublime 编辑器类似的样式;第二个文件是 highlight.js 的核心文件,就是它解析代码的。

在添加这两个文件的时候,我们还是按老规矩,将 CSS 文件添加到 <head> 中,将 js 文件添加到页面底部 </body> 标签前面,这样就完成了 highlight.js 的引入。

注:你可以在本页面点击右键 -> 查看源码,找到上面提到的两个文件,然后照葫芦画瓢就行。

让代码高亮吧

前面的准备工作做完了,现在还有最后一步,就是:调用 hihglight.js 解析代码,完成高亮工作。

在 <script src="http://cdn.bootcss.com/highlight.js/8.0/highlight.min.js"></script> 标签下面加入如下代码:

<script >hljs.initHighlightingOnLoad();</script>

这样,highlight.js 就会自动寻找 < pre><code></code></pre > 代码块并完成代码高亮了!

书写 markdown 时的注意事项

对于大段的代码建议采用 gfm 格式,如下:

    ```
这里放代码
```

highlight.js 可以自动识代码所用的编程语言,但是,电脑不如人脑啊!识别错误的几率很高,所以,为了安全起见,最好标识一下所用的编程语言,例如:

    ```html
<DOCTYPE html>
<html>
</html>
```

前面说过,highlight.js 支持 71 种编程语言(完整列表看这里),既包括常见的 C、java、javascript、ruby、python、html、css等,还支持 apache、nginx 这些配置文件的语法,所以,在你书写这些代码的时候,可以看看 highlight.js 是否支持所用的语法,然后标注对应的语言,让 highlight.js 完美的对其高亮显示吧。

特别提醒

本页面中的代码高亮就是上面的方式哦,直接开启浏览器的调试工具研究吧!

用 highlight.js 为文章中的代码添加语法高亮的更多相关文章

  1. LaTeX中Python代码的语法高亮

    LaTeX中Python代码的语法高亮 本文中,"{}"中的字母为LaTeX或Python的包名,只有"Pygments"是Python的包,其他都是LaTeX ...

  2. Word中的代码怎样语法高亮

    在平常我们粘贴代码到Word中的时候,经常会遇到代码粘贴到Word中后没有语法高亮,看着很乱很不友好,Word自带的样式---语法使用着也不尽人意, 网上有很多做法可以使得在插入在Word中的代码能够 ...

  3. 在 Microsoft Word 文档 中粘贴代码实现语法高亮的方法

    1.下载notepad++. 2.将代码粘贴进notepad++,或者直接用notepad++打开. 3.点击顶栏 ===> 插件 ===> NppExport ===> cope ...

  4. prism.js——让网页中的代码更好看

    粗放的代码展示 有时候,网页中会插入代码.直接把代码放入<pre></pre>标签和<code></code>标签里,也算是可以在页面中显示出来. 比如 ...

  5. MWeb 1.5 发布!增加打字机滚动模式、发布到 Evernote、印象笔记、Wordpress.com、Blogger、编辑器内代码块语法高亮

    打字机滚动模式(Typewriter Scrolling) 快捷键:CMD + Option + T,菜单:View - Typewriter Scrolling ,效果如下图: 发布到 Everno ...

  6. 使用 highlight.js 在网页中高亮显示java 代码 【原】

    <html> <head> <meta charset="UTF-8"> <script src="http://apps.bd ...

  7. 在word中使用notepad++实现代码的语法高亮

    转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...

  8. 在word中使用notepad++实现代码的语法高亮 分类: C_OHTERS 2013-09-22 10:38 2273人阅读 评论(0) 收藏

    转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...

  9. Qt中文本编辑器实现语法高亮功能(Qscitinlla)

    Scintilla是一个免费.跨平台.支持语法高亮的编辑控件.它完整支持源代码的编辑和调试,包括语法高亮.错误指示.代码完成(code completion)和调用提示(call tips).能包含标 ...

随机推荐

  1. 关于yuv与rgb的互转

    来自以下网址:http://stackoverflow.com/questions/9465815/rgb-to-yuv420-algorithm-efficiency #define CLIP(X) ...

  2. javascript - 可编辑表格控件 支持全键盘操作(无JS框架)

    项目中经常会用到表格编辑控件,网上也有不少,但是确实没有完全符合我要求的, 自己写一个吧! 1.该控件支持 数据显示列,文本编辑列,选择列,下拉列,索引列,删除列 六种列类型 2.支持全键盘操作,自定 ...

  3. android屏幕适配原则

    1.尽量使用线性布局和相对布局 2.尽量使用dip和sp,不要使用px 3.为不同的分辨率提供不同的布局文件和图片 4.在AndroidMainfest.xml中设置多分辨率支持 5.层级嵌套,合理布 ...

  4. Aspnetpage ie10下 __dopost方法未找到 不能翻页的问题

    1.问题分析: 没有__dopost 的原因是因为没有 ie10下 页面里 没有这个 方法,和 2个 input 标签,ie10 没有解析出来,所以就不能翻页了. 2.解决办法:(缺什么补什么,将这个 ...

  5. 一些Unity基础操作的性能测试

    从以前一个文章转移过来的内容,以后会进一步进行测试  内容  毫秒数(Editor)  毫秒数(Build PC) 加减内部变量 4ms  1ms new List<int>() 559m ...

  6. Golang 效率初(粗)测

    从接触 Golang 开始,断断续续已有差不多一年左右的时间了,都是业余自己学学看看,尚主要限于语法及语言特性,还没有用它写过实际的项目. 关于 Golang 的语法及语言特性,网上有很多资源可以学习 ...

  7. jQuery学习笔记(五)jQuery中的表单

    目录 单行文本框的应用 表单验证 上次我们说完jQuery中的动画之后,我们再来看一种jQuery在Web网页应用最为广泛的一种形式,这就是jQuery对表单的操作,通过jQuery对表单的操作,可以 ...

  8. 解析xml并且导入mysql

    https://www.zhihu.com/question/28139319 解析超过500G的xml 写入mysql,如何尽快写入? 解析超过500G的xml 写入mysql,如何尽快写入? 现在 ...

  9. 动态代理proxy与CGLib的区别

    什么是代理? 静态代理与动态代理 静态代理实例 JDK动态代理实例 CGLib 简介 CGLib 与JDK动态代理的区别 代理模式是Java中常见的一种模式,英文名字叫走Proxy或者Surrogat ...

  10. ViewPager onPageChangeListener

    今天在做项目的时候,由于要处理viewPager页面滑动的事件,所以对其进行了一个小小的研究: 首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageC ...