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版

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

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

     
    来比力管理后台

    本文同步博客

  • 相关阅读:
    【Leetcode】23. Merge k Sorted Lists
    【Leetcode】109. Convert Sorted List to Binary Search Tree
    【Leetcode】142.Linked List Cycle II
    【Leetcode】143. Reorder List
    【Leetcode】147. Insertion Sort List
    【Leetcode】86. Partition List
    jenkins 配置安全邮件
    python 发送安全邮件
    phpstorm 同步远程服务器代码
    phpUnit 断言
  • 原文地址:https://www.cnblogs.com/developerdaily/p/8257014.html
Copyright © 2011-2022 走看看