前几天捣鼓了一下博客首页,接下来再丰富一下博客页面的功能与内容。由于我所使用的Ghost博客专注于轻量简洁,因此标题中提到的功能在Ghost中默认均不支持。下面将逐个介绍一下如何为Ghost扩展这些功能。

代码高亮

代码高亮的方案很多,我在Hexo的某个主题上注意到了highlight.js这个插件。

这个插件默认支持23中主流编程语言以及100多种代码高亮主题,基本满足你的需求。还不满意?你可以在官网选择你希望支持的编程语言进行定制。

我使用官网介绍的CDN方式嵌入highlight.js。在网页head标签下插入下面两行代码:

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>

其中第一句下载的是主题样式文件,default是默认主题,我自己改成了monokai-sublime。

然后在body结束位置插入启用代码即可,插件可以自动检测代码所使用的语言。

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

更多配置可以查阅其官网,不在此赘述。

下面展示一下简单的JavaScript代码被高亮后的效果:

 
代码高亮效果

数学公式

引入数学公式支持是考虑到接下来我将可能写一些数学相关的文章。目前发现MathJax是口碑比较好的插件,其使用方法也很简单。

使用CDN方式在网页head插入MathJax的代码就完成安装工作。

<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML'></script>

使用的时候MathJax默认会识别两种标记$$ ... $$\( ... \),并把其中的内容当成数学公式处理。这两种标记的区别:前者独立成行显示,如p标签;后者作为行中的一部分,如span标签。

需要提醒使用MarkDown写博客的人,反斜杠需要转移,即\( ... \)需要写成\\( ... \\),否则会MathJax会找不到内容。

MathJax针对这种情况提供了自定义起始标签的配置功能。在引入代码的位置插入配置内容即可。我这里使用$- ... -$代替默认的\( ... \)如下:

<script type="text/javascript" async    src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$-','-$'], ['\\(','\\)']]}
});
</script>

下面举个例子:

When $- a \ne 0 -$, there are two solutions to $- ax^2 + bx + c = 0 -$ and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$

它的显示结果如下:

MathJax显示结果

页面统计

这里提到的页面统计专指在网页中显示网站的访问量,请注意区别于类似百度统计等数据分析平台。

在知乎和V2EX上看到网友推荐使用LeanCloud的比较多。这种方案相当于使用远程数据库做统计服务接口,需要额外多做一些工作。

我比较懒,希望能够找到一种简单代码注入就能实现的方案。在知乎的角落里看到别人介绍了不蒜子busuanzi.ibruce.info

看它的官网觉得更像个个人网站,目前未对外开放注册。反正这些I don't care,它号称两行代码就能显示统计内容完全满足了我的需要,因此就选择它了。

第一步:安装代码的方式:

<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>

第二步:在合适的地方显示统计信息(自己根据id选择需要的字段)

<!-- 整站统计 -->
<span id="busuanzi_container_site_uv">
本站总访问量<span id="busuanzi_value_site_pv"></span>次
本站访客数<span id="busuanzi_value_site_uv"></span>人次
</span>
<!-- 单页面统计 -->
<span id="busuanzi_container_page_pv">
本文总阅读量<span id="busuanzi_value_page_pv"></span>次
本文访客数<span id="busuanzi_value_page_uv"></span>人次
</span>

评论

前些年多说几乎遍布每个个人网站,在此之前我也用过多说。但随着多说和网易云跟帖的倒台,我才开始关注其他的替代品,如畅言(需备案)、dispus(需翻墙)、来比力等。综合考虑,我选择了来比力livere.com

进入来比力官网首页,点击导航栏上的安装,选择City版(适合个人的免费版本),点击现在安装,提示需要登录(没账号先用邮箱注册)。

 
来比力City版

然后输入网站的基本信息即可生成代码。把代码插入你的网页适当的位置即可。

下次登录来比力官网可以进入你的管理后台查看和管理评论数据,如下图:

 
来比力管理后台

本文同步博客

为Ghost博客扩展代码高亮、数学公式、页面统计、评论的更多相关文章

  1. 20141127 测试使用Word2013书写博客(代码高亮+公式支持)。

      PS :又经过几次测试,发现用于Word2010的高亮插件在Word2013上排版效果不是很好,慎用.不过公式编辑倒是挺方便的 测试使用Word2013书写博客. 大概一个月前,使用WindowL ...

  2. 新浪博客如何显示高亮代码,DIY

    新浪博客对代码的支持功能不尽完美,或者说一点都不好,可是对于一个追求完美的技术痴而言,代码不能够完美的显示,心里总有那么一些不爽,那么如何在新浪中显示那些带颜色的代码呢?经过探究,可以如下设置:   ...

  3. Ghost博客安装

    Ghost博客是一个基于Node.js 的开源博客平台,由前WordPress UI 部门主管John O'Nolan 和WordPress 高级工程师Hannah Wolfe 创立,目的是为了给用户 ...

  4. Ubuntu上部署Ghost博客

    所有文章搬运自我的个人主页:sheilasun.me 刚刚成功把自己的ghost博客部署到Linode VPS上了,在这里回顾并顺便整理一下从购买域名到部署代码到服务器的整个过程. 购买域名 万网或者 ...

  5. 读Ghost博客源码与自定义Ghost博客主题

    我使用的Ghost博客一直使用者默认的Casper主题.我向来没怎么打理过自己博客,一方面认为自己不够专业,很难写出质量比较高的文字:另一方面认为博客太耗时间,很容易影响正常的工作内容.最近公司即将搬 ...

  6. Coding上部署Ghost博客

    Ghost构建于Node.js平台之上.支持0.10.*版本号的Node.js. 在你的本地计算机上执行Ghost事实上非常easy,前提是你已经安装了Node.js. 什么是Node.js? 略过 ...

  7. 2016-2017-2 《Java程序设计》课程学生博客和代码托管链接

    2016-2017-2 <Java程序设计>课程学生博客和代码托管链接 博客 1552 20155201 李卓雯 20155202 张 旭 20155203 杜可欣 20155204 王 ...

  8. 安装 Ghost 博客和 Nginx

    Ghost 认 node 的版本,所以使用 nvm 更好. 1.安装 nvm: 可以去 github 查看 nvm 的说明,通过:wget -qO- https://raw.githubusercon ...

  9. CentOS 7.2 搭建 Ghost 博客

    因为平时记录一些文档或想法基本使用 markdown 的语法,Mac 下推荐一款 markdown 的编辑器 Haroopad:上周无意发现 Ghost 有支持 Mac 的桌面版本了,并且同样开源 h ...

随机推荐

  1. 【Java学习笔记之一】java关键字及作用

    Java关键字及其作用 一. 总览: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements ...

  2. [ZOJ3256] Tour in the Castle

    插头DP+矩阵乘法 m喜闻乐见地达到了10^9级别..而n<=7,并且没有障碍..所以列与列之间的转移时一样的..就可以上矩乘了. 感觉自己快没救了..看半天题解还是不懂.. http://ww ...

  3. HDU-5421Victor and String

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5421 因为要在前面插字符,所以维护一个前缀链和后缀链,在同一棵回文树上搞,如果有某个最长回文后缀(或前缀) ...

  4. haslib 模块

    一.模块简介 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串( ...

  5. 使用npm install报错-4048 operation not permitted解决

    刚刚使用npm install时一直报错-4048 operation not permitted,也尝试了多种方法,终于使问题得到解决,这里总结几种方法,先贴图: 一:权限问题 首先看到operat ...

  6. 学习JVM-GC收集器

    1. 前言 在上一篇文章中,介绍了JVM中垃圾回收的原理和算法.介绍了通过引用计数和对象可达性分析的算法来筛选出已经没有使用的对象,然后介绍了垃圾收集器中使用的三种收集算法:标记-清除.标记-整理.标 ...

  7. tree conflict svn 怎么解决

    如果自己和其他人修改了同一个文件,而他已经更新到SVN,你commit时就会出现冲突,如何解决呢? 方法/步骤 使用SVN时,更新一个自己修改的文件到服务器,出现冲突,因为其他同事也修改了这个文件并且 ...

  8. Struts2与Ajax数据交互

    写在前面: ajax请求在项目中常常使用,今天就平时掌握的总结一下,关于使用ajax请求到Struts2中的action时,前台页面与后台action之间的数据传递交互问题. 这里我主要记录下自己所掌 ...

  9. windows下安装redis3.2.100单机和集群详解

    下载redis 下载地址:https://github.com/MicrosoftArchive/redis/releases 我下载的是3.2.100版本的Redis-x64-3.2.100.zip ...

  10. IOS开发之纯代码界面--基本控件使用篇 ┊

    http://www.cocoachina.com/bbs/read.php?tid=131516