使用Hexo模板

按以下指导进行本地预览和上传到你的github。

环境安装

  • 安装node.js

    node.js官方下载地址https://nodejs.org/en/

    设置npm淘宝镜像站(npm默认的源的下载速度可能很慢,建议使用淘宝镜像替换)

    执行下面的命令,将npm的源设置成淘宝镜像站。

  1. npm config set registry "https://registry.npm.taobao.org"
  • 安装hexo执行以下命令安装hexo。

    /Gitspace/next/下右键打开Git Bash Here
  1. npm install -g hexo-cli #安装hexo
  2. hexo version #并查看版本号

建立博客站点

  1. # 初始化博客文件夹
  2. hexo init
  3. #注意这将生成两个_config.yml文件,根目录的叫做**站点配置文件**,/themes/landscape/下的叫做主题配置文件
  4. # 安装依赖扩展插件
  5. npm install
  6. # 安装其它插件
  7. npm install hexo-server --save
  8. npm install hexo-deployer-git --save
  9. npm install hexo-admin --save
  10. npm install hexo-generator-archive --save
  11. npm install hexo-generator-feed --save
  12. npm install hexo-generator-search --save
  13. npm install hexo-generator-tag --save
  14. npm install hexo-generator-sitemap --save

本地预览hexo

第一次使用hexo,在本地创建服务器使用。

  1. # 生成静态页面
  2. hexo generate
  3. # 开启本地服务器
  4. hexo clean
  5. hexo s

打开浏览器,地址栏中输入:http://localhost:4000/

如果访问不了,使用hexo s -p 5000替换hexo s

部署到github

  • 修改站点配置文件_config.yml

    修改deploy项的内容,如下所示:
  1. deploy:
  2. type:git
  3. repository: git@github.com/yourname/yourname.github.io.git
  4. branch: master

注意:type: git中的冒号后面有空格。

  • 部署hexo

    输入下面的命令将hexo博客部署到github中:
  1. # 清空静态页面
  2. hexo clean
  3. # 生成静态页面
  4. hexo generate
  5. # 部署
  6. hexo deploy

使用经典的Next主题:

安装主题

  • 在站点的根目录下Git Bash Here:

    git clone https://github.com/theme-next/hexo-theme-next themes/next

  • 修改站点配置文件_config.yml:

  • 启用主题theme: next

配置主题

主题配置文件_config.yml中推荐更改的部分:

  • 选择Scheme:Muse
  • 设置 语言language: zh-CN
  • 设置 菜单menu,增加tagscategoriesabout项,archivescommonweal等项
  • social功能,||后的单词对应图标库中的图标,图标库的链接为http://fontawesome.io/icons/
  • 文章热度:next主题集成leanCloud,打开/themes/next/layout/_macro/post.swig

    <span class="leancloud-visitors-count"></span>下添加一句:

    <span>℃</span>

    然后打开/languages/zh-CN.yml

    views:阅读次数改为views:热度
  • 网站logo:放在/themes/next/source/assets里面,修改favicon
  • 设置leancloud_visitors(需要提前配置好leancloud的相关信息)
  1. leancloud_visitors:
  2. enable: true
  3. app_id:
  4. app_key:

并执行以下命令:

  1. hexo new page 'tags' #创建tags子目录
  2. hexo new page 'categories' #创建categories子目录
  3. hexo new page 'about' #创建about子目录
  4. hexo new page 404 #创建404页面

在你的网站根目录下面的source文件夹会分别生成tags、categories以及about文件夹。

分别修改这tags和categories文件夹中的index.md文件,新增type属性,如下:

  1. ---
  2. title: tags
  3. date: 2018-01-04 11:45:41
  4. type: tags
  5. ---

其他可选功能:

  • 动态背景:可以选择:canvas_nest,three_waves,canvas_lines,canvas_sphere,canvas_ribbon

打开 /theme/next/layout/_layout.swig,在 </body>之前添加代码:

  1. {% if theme.canvas_nest %}
  2. <script type="text/javascript"
  3. color="0,0,255" opacity='0.7' zIndex="-2" count="99" src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script>
  4. {% endif %}
  • 桃心效果:浏览器输入http://7u2ss1.com1.z0.glb.clouddn.com/love.js

    拷贝所有代码,在/themes/next/source/js/src里面新建love.js,然后在\themes\next\layout\_layout.swig文件末尾添加以下代码:

    <!-- 页面点击小红心 --> <script type="text/javascript" src="/js/src/love.js"></script>

  • 文章底部带#号的标签:修改模板/themes/next/layout/_macro/post.swig,搜索 rel="tag">#,将#换成<i class="fa fa-tag"></i>

  • 文章末尾统一添加“本文结束”标记:在路径 \themes\next\layout_macro 中新建 passage-end-tag.swig 文件,并添加以下内容:

  1. <div>
  2. {% if not is_index %}
  3. <div style="text-align:center;color: #ccc;font-size:14px;">-------------本文结束<i class="fa fa-paw"></i>感谢您的阅读-------------</div>
  4. {% endif %}
  5. </div>

接着打开\themes\next\layout\_macro\post.swig文件,在post-body 之后(如下图), 添加以下代码:

  1. {#####################}
  2. {### END POST BODY ###}
  3. {#####################}
  1. <div>
  2. {% if not is_index %}
  3. {% include 'passage-end-tag.swig' %}
  4. {% endif %}
  5. </div>

然后打开主题配置文件(_config.yml),在末尾添加:

  1. # 文章末尾添加“本文结束”标记
  2. passage_end_tag:
  3. enabled: true
  • 开启页面下方访客功能(使用不蒜子):

    找到next主题的配置文件themes/next/_config.yml,footer字段,加入一个配置,这里我们叫它counter吧,即
  1. footer:
  2. # -------------------------------------------------------------
  3. # visitors count
  4. counter: true

修改next主题的模板文件:

由于是把访问量统计放在网页的footer,所以我们需要修改的模板文件是theme/next/layout/_partials/footer.swig。

我们在合适的位置加入:

  1. {% if theme.footer.counter %}
  2. <script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
  3. <span id="busuanzi_container_site_pv">总访问量<span id="busuanzi_value_site_pv"></span>次</span>
  4. <span class="post-meta-divider">|</span>
  5. <span id="busuanzi_container_site_uv">总访客<span id="busuanzi_value_site_uv"></span>人</span>
  6. <span class="post-meta-divider">|</span>
  7. {% endif %}

其他问题

  • LeanCloud访问统计提示’Counter not initialized! See more at console err msg.‘

    解决办法

  • hexo generate命令执行时出错

将你的post文章中的所有大括号{}加上'进行行内代码即可。

将你的post文章中的所有连续的大括号{{}}中间加空格,即改为{ {} }

注意:很有可能出现无法统计阅读量的情况:页面LeanCloud访问统计提示’Counter not initialized! See more at console err msg.’

解决方案,按此解决方案:

  1. deploy:
  2. - type: git
  3. repository: git@github.com:charleechan/charleechan.github.io.git
  4. branch: master
  5. - type: leancloud_counter_security_sync

配置数学公式渲染器

更换Hexo的markdown渲染引擎,hexo-renderer-kramed引擎是在默认的渲染引擎hexo-renderer-marked的基础上修改了一些bug,两者比较接近,也比较轻量级。

  1. npm uninstall hexo-renderer-marked --save
  2. npm install hexo-renderer-kramed --save

执行上面的命令即可,先卸载原来的渲染引擎,再安装新的。

然后,跟换引擎后行间公式可以正确渲染了,但是这样还没有完全解决问题,行内公式的渲染还是有问题,

因为hexo-renderer-kramed引擎也有语义冲突的问题。接下来到博客根目录下,找到node_modules\kramed\lib\rules\inline.js,把第11行的escape变量的值做相应的修改:

  1. // escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
  2. escape: /^\\([`*\[\]()#$+\-.!_>])/

这一步是在原基础上取消了对,{,}的转义(escape)。

同时把第20行的em变量也要做相应的修改。

  1. // em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
  2. em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/

重新启动hexo(先clean再generate),问题完美解决。哦,如果不幸还没解决的话,看看是不是还需要在使用的主题中配置mathjax开关。

在主题中开启mathjax开关

如何使用了主题了,别忘了在主题(Theme)中开启mathjax开关,下面以next主题为例,介绍下如何打开mathjax开关。

进入到主题目录,找到_config.yml配置问题,把mathjax默认的false修改为true,具体如下:

  1. # MathJax Support
  2. mathjax:
  3. enable: true
  4. per_page: true

别着急,这样还不够,还需要在文章的Front-matter里打开mathjax开关,如下:

  1. ---
  2. title: index.html
  3. date: 2016-12-28 21:01:30
  4. tags:
  5. mathjax: true
  6. ---

不要嫌麻烦,之所以要在文章头里设置开关,是因为考虑只有在用到公式的页面才加载 Mathjax,这样不需要渲染数学公式的页面的访问速度就不会受到影响了。


更多资讯请参考

使用HEXO建站的更多相关文章

  1. Githun&HEXO建站小记

    title: 建站小记 date: 2018-03-04 11:10:54 updated: 2018-03-06 12:00:00 tags: [hexo,next,建站,学习,前端技术,折腾,博客 ...

  2. hexo 建站参考

    1. hexo 官网 2. 主题 AD:https://godbmw.com/ 前期尝试了两天都是看主题,还有编辑主题,最终选择这个主题是因为两点 主题layout是 ejs 学习node时候了解过  ...

  3. Hexo建站过程总结

    Hexo 是一个基于 Node.js 快速.简洁且高效的博客框架,可以将 Markdown 文件快速的生成静态网页,托管在 GitHub Pages 上. 由于原来博客的主机费用问题,我没有办法再在那 ...

  4. hexo建站报错解决记录

    安装某主题依赖 nodejieba 库,该库又依赖 windows-build-tools 和 node-gyp git bash shell 下 cnpm install -g windows-bu ...

  5. 个人建站&mac下安装hexo

    title: 个人建站&mac下安装hexo date: 2018-04-18 16:34:02 tags: [mac,blog,个人建站,markdown] --- 这两天使用了markdo ...

  6. 开发小白也毫无压力的hexo静态博客建站全攻略 - 躺坑后亲诉心路历程

    目录 基本原理 方法1 - 本机Windows下建站 (力荐) 下载安装node.js 用管理员权限打开命令行,安装hexo-cli和hexo 下载安装git 初始化hexo 使用hexo gener ...

  7. 一文详解Hexo+Github小白建站

    作者:玩世不恭的Coder时间:2020-03-08说明:本文为原创文章,未经允许不可转载,转载前请联系作者 一文详解Hexo+Github小白建站 前言 GitHub是一个面向开源及私有软件项目的托 ...

  8. Hexo建博小结

    本来只写在自己的github pages中的,想一想万一有人看呢,虽然同类的文章有不少了,但有些新坑他们没填啊,姑且放出来啦... 拥有自己的博客是一个很酷的事情,但自己建站总是太麻烦了,步骤繁多,管 ...

  9. nodejs建站+github page 建站问题总结

    本文介绍 昨天吃晚饭的时候,在B站偶然看到一个关于搭建自己博客的视频,过程讲的很详细,于是就有了自己想尝试一下的冲动,所以,在晚上的时候,尝试了下,但是,过程并没有视频中说的那么顺利,看了网上很多帖子 ...

随机推荐

  1. 7、purge_haplogs 基因组去冗余

    1.下载安装 https://bitbucket.org/mroachawri/purge_haplotigs/wiki/Install 1.Dependencies (in no particula ...

  2. CentOS 7系统安装nginx+php

    安装介绍1.系统环境CentOS7 2.nginx版本1.12 3.PHP版本7.2 下载地址 4.MySQL版本5.7 安装nginx添加centos7的 nginx yum源 然后执行安装 sud ...

  3. amqp 抓包 不要在同一台机器

  4. AIX系统软件安装问题

    一.安装软件时一定要cd到介质目录中 二.选择accept new licence 三.更新系统时避免使用updata_all,要手动选择出要更新的软件 四.oracle11G的rac还要用到open ...

  5. 触发写Redo&nbsp;Log的条件

    参见:http://www.ixora.com.au/notes/redo_write_triggers.htm http://www.eygle.com/archives/2005/02/redoa ...

  6. Flink 实战:如何解决生产环境中的技术难题?

    大数据作为未来技术的基石已成为国家基础性战略资源,挖掘数据无穷潜力,将算力推至极致是整个社会面临的挑战与难题. Apache Flink 作为业界公认为最好的流计算引擎,不仅仅局限于做流处理,而是一套 ...

  7. Springboot ,1开启配置与2.扫描包(控制层,service层)二个注解@EnableAutoConfiguration,@ComponentScan 合并成一个注解@SpringBootApplication

    //@EnableAutoConfiguration//@ComponentScan(value= {"com.foen.cloud.controller.*","com ...

  8. 【HDOJ6662】Acesrc and Travel(树形DP,换根)

    题意:有一棵n个点的树,每个点上有两个值a[i],b[i] A和B在树上行动,A到达i能得到a[i]的偷税值,B能得到b[i],每次行动只能选择相邻的点作为目标 两个人都想最大化自己的偷税值和对方的差 ...

  9. 【HDOJ6667】Roundgod and Milk Tea(模拟)

    题意:有n个班级,每个班级有a[i]个人,b[i]杯奶茶 每个人至多喝一杯奶茶,且不能喝自己班的 问能喝到奶茶的最多总人数 n<=1e6,a[i],b[i]<=1e9 思路: 做法一: # ...

  10. shp文件导入数据库

    数据库服务器(引擎) sql server oracle nosql sql语句... 从数据库端导入:新建数据库,导入shp文件 发布地图服务 jdbc.sdk