zoukankan      html  css  js  c++  java
  • 为Ghost博客扩展代码高亮、数学公式、页面统计、评论

    前几天捣鼓了一下博客首页,接下来再丰富一下博客页面的功能与内容。由于我所使用的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 
    e 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版

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

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

     
    来比力管理后台

    本文同步博客

  • 相关阅读:
    Premiere Pro 2020 教程(二)
    程序员的10个好习惯(转自四猿外)
    HtmlAgilityPack 抓取页面的乱码处理
    【Python爬虫】 学习笔记 ajax下爬取豆瓣请求第一页
    【Python爬虫】 学习笔记 get请求的方法
    【Python爬虫】 学习笔记 post请求的方法
    【Python爬虫】 学习笔记 post请求的方法(Cookie反爬)
    jQuery选择器实例手册
    弹出模态窗口并传递数值
    java synchronized详解
  • 原文地址:https://www.cnblogs.com/developerdaily/p/8257014.html
Copyright © 2011-2022 走看看