之前一直用Evernote和Quiver作为本地笔记工具,最早使用Evernote,后来由于Evernote越来越重,目前主要结合Safari的Evernot插件收藏一些文章。现在使用Quiver,内容基本都是markdown格式。近期有想法把一些新的同步放到网上和大家分享,选择了Github Pages,对于blog框架有连个选择Jeyll和Hexo,对比尝试后选择Github+Hexo作为博客框架。
什么是Hexo
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
hexo安装配置
准备
安装Hexo前需要先安装:
- Node.js
- Git
安装
由于国外网速较慢,建议切换到国内的源,比如淘宝源
|
|
后面用cnpm替换npm
|
|
初始化
|
|
blog
为博客目录名
生产静态页面
|
|
运行本地服务
|
|
安装hexo git插件
|
|
运行如下命令部署
安装主题
NexT
https://github.com/iissnan/hexo-theme-next
注意:修改配置文件
_config.yml
中语言为zh-Hans
,默认为zh-CN
|
|
maupassant
|
|
about页
方法一:通过hexo new page
命令
方法二:在source文件夹下新建about文件夹,在about文件夹下新建index.md
tags页
执行如下命令创建标签页
编辑tags/index.md内容
categories页
执行如下命令创建标签页
编辑categories/index.md内容
rss订阅
hexo插件
hexo-generateor-feed
*.md文件写法
文件开始部分采用yaml
格式配置文章属性
文章正文采用markdown
格式书写
分类categories
|
|
标签tags
|
|
本地图片
将网站配置文件_config.yml
中post_asset_folder
的值改为true
,当用hexo new title
命令创建新的文章时,会创建同名目录,可以将资源文件(图片文件)放到该目录下
|
|
安装hexo-asset-image
插件
|
|
在md文档中用
方式插入图片
如果不安装hexo-asset-image
插件,可使用如下代码(非markdown方式)
优化加强
添加打赏
在主题配置文件中,添加如下内容:
reward_comment
为打赏提示语,可改为自己的wechatpay
和alipay
为微信收款和支付宝收款的二维码图片,可以是网络图片,也可以是本地图片。本地图片放到source\upload
目录下
添加阅读数
用不蒜子进行统计,在主题配置文件中将enable
改为true
,然后在首页底部和文章头部就可以看到访问量了
添加MTA访问统计
访问腾讯MTA,登录,创建新应用,选择h5,输入你的博客地址heneryyang.github.io
,将mta id写到主题配置文件中
由于NexT第三方服务腾讯MTA的url地址是http的,会导致在一些浏览器上有安全问题,将themes/next/layout/_third-party/analytics/tencent-mta.swig
文件中的http
改为https
分享
采用百度分享,修改主题配置文件
其中button
为按钮格式,slide
为侧边栏展开方式
由于百度分享不支持https
,在https://github.com/hrwhisper/baiduShare下载代码,将static目录放置在source
下,然后修改themes/next/layout/_partials/share/baidushare.swig
文件中//bdimg.share.baidu.com/static
改为/static
注意:需要再网站配置文件中添加如下内容,禁止hexo编译static文件夹
12 skip_render:- static/**
sitemap
|
|
在网站配置文件中加入
搜索
添加站点内容搜索
安装 hexo-generator-searchdb
修改站点配置文件,添加如下内容
编辑主题配置文件,开启本地搜索功能
jsfiddle标签
由于jsfiddle标签生成的地址为http
,请求会被会被浏览器拦截,需要访问jsfiddle对应https
地址
修改next主题目录下layout/_partials/head.swig
文件,在其中添加<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
|
|
问题: 当在本地通过hexo s
启动服务,访问http://localhost:4000
时,页面资源都访问https
下对应内容,导致页面显示错误。
找到jsfiddle.js
,将其中的http
改为https
|
|