未来的文章 - 添加插件和高级功能
这篇文章介绍如何添加一些常见的插件和功能扩展。
功能插件
1. 回到首页
对于习惯发长文的朋友来说,这个功能十分方便。已经包括在主页中,无需任何配置。如果你想改变按钮的样式,请参考 这里 , 修改本项目中 _include/back-to-top.html
文件。
2. 社交分享
社交网络的分享按钮能帮助你快速增长自己的受众,不过很多第三方社交分享按钮,例如 shareaholic, addthis 等都有跟踪代码,可能泄漏读者的隐私。 因此鼓励采用非第三方 javascript 的社交分享按钮。 目前包括了两种
2.1 jquery social share buttons
你只需要在_config.yml
文件中的改成这样
sharebuttons:
jquery: true
nojavascript: false
2.2 无 javascript 的分享按钮 (推荐)
来自 https://sharingbuttons.io, 只需要将_config.yml
文件中的以下部分改为
sharebuttons:
jquery: false
nojavascript: true
你可以看到默认开启的是无 javascript 的分享按钮。
3. 安全的流量统计
3.1 基于 FreeCounterStat 的非 javascript 计数器
页脚包含一个 uBlock Origin 认证安全的网页点击计数器,博客每获得一次点击就会累加 1,这对博主而言可以大概的知道自己网站的访问量。配置方法如下:
首先,到 FreeCounterStat 申请一个新的计数器。第三步完成后,将产生的非 javascript 代码中的图片编号复制,例如
<a href="https://www.freecounterstat.com" title="free hit counters">
<img src="https://counter1.wheredoyoucomefrom.ovh/private/freecounterstat.php?c=ghfqhne7z87531aunzg4cqds8kfcekpa" border="0" title="free hit counters" alt="free hit counters">
</a>
将上述代码中的字符串 ghfqhne7z87531aunzg4cqds8kfcekpa
复制到 _config.yml
中的 webcounterimg: ghfqhne7z87531aunzg4cqds8kfcekpa
即可.
这种方法只能获得大致的点击率,并不能提供较详细的流量分析,例如每日流量、各个页面的访问量、交叉来源等。
3.2 基于 javascript 但不使用 cookies 的流量分析 Ticksel
我们主要利用这两个浏览器插件来检测第三方跟踪代码:NoScript 和 uBlockOrigin。前者可以禁止网页上的 javascripts, 后者则封锁包括 javascript、图片等任何可能侵犯隐私的插件。
Ticksel 实现流量分析靠 javascript,当 javascript 被禁止时则靠图片。根据 Ticksel 的官方网站描述,其 javascript 元素不使用 cookies、保持对网页访问者的隐私友好、并尊重浏览器的 Do Not Track 标识。同时 Ticksel 的分析数据也是通过非对称密钥加密存放在其服务器上,也就是说你的数据除了你自己,即便是 Ticksel 的后台也无法访问。
使用方法:第一步先注册 Ticksel 会员,第二步产生 Tags,第三步配置跟踪代码(主要是选择加什么 Tag)这样通过不同的 Tag,你可以在一个地方对自己的多个网站进行流量分析,第四步将跟踪代码复制到你的网页。对于 Jekyll Kiko-now 来说,可已将跟踪代码放到 _include/footer.html
中进而布置到所有页面。
注意:一般来说,为保护自己的隐私,请仅在 Tor 环境下打开未知或实验性链接。
如果你安装了 uBlock Origin 的话,可以看到 uBlock Origin 并没有封锁 Ticksel,说明 uBlock 认为 Ticksel 是安全的。事实上因为 Ticksel 对隐私的保护的注重,很多 ad blocker 都不封锁 Ticksel 的流量分析脚本。
评论区
推荐使用 gitalk 模块将 Github Issue 作为评论区,具体设置请参考这里。注意,申请好的 clientID 等参数放到_config.yml
中,如下:
gitalk:
clientID: ac14c26bcf8a16e03567
clientSecret: 443574e2aa0e8bccf03adac267a82fdaa0a346c2
repo: blog
owner: diymysite
admin:
- DamoresClub
- TerminusBot
- chinatimeline
- diymysite
另外,要开启评论区的页面的 YAML 参数区设置 comments: ture
, 参考本页
---
layout: post
title: 未来的文章-添加插件和高级功能
date: 2020-01-14
categories: Archive
tags: 示例
comments: true
description: 未来的文章-添加插件和高级功能-创建于2020-01-12-但会直到2020-01-14再发布
---
计划发布
有时候你可能提前写好博文,想等到某一天再发布,jekyll 也支持这个功能,但 Github Page 默认不支持,要开启该功能,要在_config.yml
中添加一行 future: false
,否则未来日期的博文会被直接发布。
计划发布需要利用 Github Action,这里我们用以下代码 CI 代码实现除每次 push 作为触发之外,还会每日自动 build 两次,这样就可以把设定在‘未来’的 post 定期发布了。
name: Jekyll Deploy
on:
push:
branches:
- master
schedule:
- cron: '1,30 6 * * *'
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build & Deploy to GitHub Pages
env:
GITHUB_TOKEN: ${ secrets.ACCESS_TOKEN }
GITHUB_REPOSITORY: ${ secrets.GITHUB_REPOSITORY }
GITHUB_ACTOR: ${ secrets.GITHUB_ACTOR }
uses: BryanSchuetz/jekyll-deploy-gh-pages@master
注意:
- 你需要先申请一个 Personal Access Token, 在项目的 settings–>secret 中添加一个新的 secret, 名字叫 ACCESS_TOKEN 数值是生成的 Token.
- 这个发布脚本会将 build 好的站点发布到 gh-pages 分支中,所以需要你在项目的 settings–>General–>Github Pages 里面设置发布分支为 gh-pages.
- 在
_config.yml
中加上destination: build
避免编译出错 - 因为 Github Action 自身的局限,这种计划发布功能仅适用于 repo page (类似 https://username.github.io/blog/) 而 无法用于 User Page (类似 https://username.github.io/) .
Gitalk 加载中 ...