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

代码高亮

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

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

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

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

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

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

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

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

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

 
代码高亮效果

数学公式

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

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

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

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

下面举个例子:

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

它的显示结果如下:

MathJax显示结果

页面统计

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

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

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

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

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

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

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

  1. <!-- 整站统计 -->
  2. <span id="busuanzi_container_site_uv">
  3. 本站总访问量<span id="busuanzi_value_site_pv"></span>
  4. 本站访客数<span id="busuanzi_value_site_uv"></span>人次
  5. </span>
  6. <!-- 单页面统计 -->
  7. <span id="busuanzi_container_page_pv">
  8. 本文总阅读量<span id="busuanzi_value_page_pv"></span>
  9. 本文访客数<span id="busuanzi_value_page_uv"></span>人次
  10. </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. C++课程设计类作业3

    #include <bits/stdc++.h> using namespace std; class A { public: A() { a=b=; cout<<" ...

  2. c++(八皇后)

    八皇后是一道很具典型性的题目.它的基本要求是这样的:在一个8*8的矩阵上面放置8个物体,一个矩阵点只允许放置一个物体,任意两个点不能在一行上,也不能在一列上,不能在一条左斜线上,当然也不能在一条右斜线 ...

  3. Kubernetes v1.6开始支持RBAC

    Kubernetes v1.6的一个亮点就是RBAC认证特性成为了beta版本.RBAC,基于角色的访问控制(Role-Based Access Control),是用于管理Kubernetes资源访 ...

  4. vue-cli脚手架的环境搭建

    vue-cli (1)检查node版本 在安装vue的环境之前,安装NodeJS环境是必须的.可以使用node -v指令检查,需要保证安装了4.0版本以上的nodeJS环境. 当然,没有安装的话,去N ...

  5. C++ 默认参数(转载)

    函数的默认参数值,即在定义参数的时候同时给它一个初始值.在调用函数的时候,我们可以省略含有默认值的参数.也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值. void Func( ...

  6. c++---天梯赛---N个数求和

    ★题目: ★难点:要求只能以有理数和分数去输出结果. ★分析:可以对输入的数据进行通分处理,随后把结果按格式输出. ★代码: #include<iostream> #include< ...

  7. 使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分.而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍 ...

  8. php中使用head进行二进制流输出,让用户下载PDF等附件的方法

    http://blog.csdn.net/jallin2001/article/details/6872951 在PHP的手册中,有如下的方法,可以让用户方便的下载pdf或者其他类似的附件形式,不过这 ...

  9. phpstorm ctrl+shift+F键不管用,不弹出搜索弹框

    般热键冲突搜狗默认简繁切换组合键位ctrl+shift+F故outlook2011按三建且失效应该能看搜狗输入状态简繁变搜狗设置按键-取消选简繁切换热键即在任务栏的语言地方点击一下再点击语言首选项.进 ...

  10. Idea Maven创建Web项目

    1.创建Maven项目 1.1File->New->Project 1.2填写GroupId和ArtifactId 1.3直接Finish,然后等一会,等Maven加载完 完成以后的项目结 ...