如何使用 Hexo 搭建个人博客
什么是 Hexo ?
Hexo 是一个简单快速的静态博客框架,可以通过编辑 Markdown 文档生成好看的静态博客。
搭建 Hexo
要求
安装 Hexo 十分简单,只需要 Node.js 和 Git 即可。
Node.js
最好的安装方式是使用 nvm,
cURL:
$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
安装好 nvm 之后,重启终端,然后通过
$ nvm install 0.12
来安装 Node.js
Git
Mac 用户:Homebrew
安装 Hexo
$ npm install -g hexo-cli
需要注意的是,这里的 npm 相关命令,最好都使用管理员权限操作,否则可能会报错
如何使用 Hexo
一旦安装完毕 Hexo,即可通过如下命令在指定文件夹中初始化 Hexo:
$ hexo init <folder>
$ cd <folder>
$ npm install
配置 Hexo
# Hexo Configuration
# Site
title: Hexo #博客标题
subtitle: #博客副标题
description: #博客描述
author: John Doe #作者名字
email: #邮箱地址
language: #语言 中国大陆简体中文的标准语系地区码是zh-CN 台灣是正體中文zh-TW 
# URL
url: http://yoursite.com #博客地址
root: / #博客根目录
permalink: :year/:month/:day/:title/ #博客url地址结构
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
permalink_defaults:
# Directory
source_dir: source
public_dir: public
# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
highlight:
enable: true
line_number: true
tab_replace:
# Category & Tag
default_category: uncategorized
category_map:
tag_map:
# Archives
archive: 1 #设置为1 是全部展示
category: 2
tag: 2
# Server
port: 4000 #本地服务器端口是4000
server_ip: localhost #本地服务器地址
logger: false
logger_format: dev
# Date / Time format
date_format: MMM D YYYY #日期格式
time_format: H:mm:ss #时间格式
# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page
# Disqus
disqus_shortname: #disqus的用户名称
# Extensions
theme: landscape #主题设置
exclude_generator:
# Deployment
deploy:
  type:
完善页面
hexo new page "about"
用于创建 about 页面
Hexo 常用插件
Plugins, Hexo官方插件列表地址
RSS
安装hexo-generator-feed插件即可
npm install hexo-generator-feed
阅读进度
Sitemap
给搜索引擎使用
npm install hexo-generator-sitemap
装完之后 记得在全局配置里面开启插件
plugins:
- hexo-generator-feed
- hexo-generator-sitemap
Git
用于发布
npm install hexo-deployer-git --save
baidu sitemap
npm install hexo-generator-baidu-sitemap@0.1.1 --save
sitemap
npm install hexo-generator-sitemap --save
- 重新clean发布
 - 之后访问: https://search.google.com/search-console/settings?resource_id=http%3A%2F%2Fsamwei12.com%2F&hl=zh-CN 填写生成sitemap地址即可
 
Gitalk
- 用于管理评论
 
# Gitalk
# Demo: https://gitalk.github.io
gitalk:
  enable: true
  github_id: samwei12  # Github repo owner
  repo: Gitalk # Repository name to store issues 注意这里必须要填名称,而不是链接
  client_id:  # Github Application Client ID
  client_secret:  # Github Application Client Secret
  admin_user: samwei12 # GitHub repo owner and collaborators, only these guys can initialize github issues 这里填名称即可,可以是数组
  distraction_free_mode: true # Facebook-like distraction free mode
  # Gitalk's display language depends on user's browser or system environment
  # If you want everyone visiting your site to see a uniform language, you can set a force language value
  # Available values: en, es-ES, fr, ru, zh-CN, zh-TW
  language:
GoogleAnalytics
阅读时间统计
- 参考:https://github.com/theme-next/hexo-symbols-count-time
 - 这里有个注意点,必须要在主配置文件即
_config.yml中提前开启,才能在 next 主题中进行配置,否则失效 
local_search
- 本地搜索
 
# Local search
# Dependencies: https://github.com/theme-next/hexo-generator-searchdb
local_search:
  enable: true
  # If auto, trigger search by changing input.
  # If manual, trigger search by pressing enter key or search button.
  trigger: auto
  # Show top n results per article, show all results by setting to -1
  top_n_per_article: 1
  # Unescape html strings to the readable one.
  unescape: false
发布到 Github
拥有自己的 GithubPage
- 创建一个与自己用户名相同的项目
 - 随便上传个文件,上传 master 分支
 - 新建 hexo 分支,并切换到该分支,推送到远程
 
发布
- 配置里,新增
 
deploy:
  type: git
  repo: https://github.com/samwei12/samwei12.git
  branch: master
- 然后
 
// 生成静态文件
hexo g
// 发布
hexo d
即可
绑定个人域名
购买域名
- 可以从阿里云上购买域名, 目前我购买了 
samwei12.com这个域名,几个注意事项:- 需要实名认证
 - 需要备案
 
 
域名备案
绑定域名
- 域名解析:
 - GitHub中绑定,在项目的设置界面绑定即可
 - 参考:https://help.github.com/en/articles/quick-start-setting-up-a-custom-domain
 
迁移到新电脑
- 最近又是好久没有写博客了,换了新电脑之后需要重新配置,这次记录下还原步骤,下次再遇到可以提高效率。
 
还原博客文件
- 我采用的办法是将博客相关内容专门放到 hexo 分支上,然后 git 仓库的默认分支设置为 hexo,切换电脑之后直接拉取最新代码。
 
安装依赖
- 首先先把主题和插件安装下来
- 我使用的主题是 
https://github.com/theme-next/hexo-theme-next.git, 这里推荐把主题的配置文件放到_data文件夹下,好处是即使换了电脑,配置重新拉取代码仍然同步 - 阅读进度插件: 
https://github.com/theme-next/theme-next-reading-progress - 字体插件:
https://github.com/theme-next/theme-next-han 
 - 我使用的主题是 
 - 根目录下执行 
npm install hexo g && hexo s本地测试是否部署成功
注意事项
- 需要注意本地文件名不能有特殊符号,例如空格等,title 里面有没关系,但是文件里面有会导致 Gitalk 插件失效,详见 https://github.com/gitalk/gitalk/issues/162
 
参考文档
- Hexo静态博客使用指南
 - Hexo在github上构建免费的Web应用
 - https://xian6ge.cn/posts/5b8c41e7/
 - https://zhuanlan.zhihu.com/p/44213627?utm_source=ZHShareTargetIDMore&utm_medium=social&utm_oi=28525297926144
 - https://help.github.com/en/articles/troubleshooting-custom-domains#https-errors
 
如何使用 Hexo 搭建个人博客的更多相关文章
- 利用Hexo搭建个人博客-博客发布篇
		
通过 <利用Hexo搭建个人博客-环境搭建篇> 以及 <利用Hexo搭建个人博客-博客初始化篇>,我们了解到了利用Hexo搭建个人博客需要的环境以及配置,下面这篇文章将会介绍如 ...
 - 利用Hexo搭建个人博客-博客初始化篇
		
上一篇博文 <利用Hexo搭建个人博客-环境搭建篇> 中,我们讲解了利用Hexo搭建个人博客应该要配置哪些环境.相信大家已经迫不及待的想要知道接下来应该要怎么把自己的博客搭起来了,下面,让 ...
 - 利用Hexo搭建个人博客-环境搭建篇
		
我是一个爱写博客进行总结分享的人.然而,有着热爱写博客并且深知写博客好处的我,却没有好好的把这个习惯坚持下来.如今毕业已经一年多了吧,每一次与师弟师妹们聊天,我总会意味深长的建议他们,一定要定期梳理总 ...
 - 使用Hexo搭建github博客步骤,超简便
		
categories: 工具 tags: git Windows 搭建博客 你只需要node环境和一个github账号就可以开工啦! 本教程适合于Windows环境,Mac教程也大同小异 利用hexo ...
 - 使用Hexo搭建GitHub博客(2018年Mac版)
		
关于本文 本文仅记录自己学习搭建Hexo博客之时,搭建过程中掉坑的历程总结,对零基础起步的观众朋友可能缺乏某些基础技术的指导,请优先食用下述两篇优质教程: [2018更新]小白独立搭建博客-Githu ...
 - hexo搭建个人博客
		
本文讲述如何用`hexo`搭建个人博客,并托管到`github`.不需要租赁服务器,可完成网站博客的搭建. 安装Hexo安装hexo之前,要先下载安装Node.js和Git,百度搜索找到下载即可.[G ...
 - 使用github和hexo搭建静态博客
		
获得更多资料欢迎进入我的网站或者 csdn或者博客园 终于写这篇文章了,这是我使用github和hexo搭建博客的一些心得,希望能给大家一点帮助.少走点弯路.刚接触github,只是用来存项目的版本, ...
 - gitee+hexo搭建个人博客
		
通过gitee和hexo搭建个人博客 首先准备软件: git (提供命令git) git官网 notepad++(方便编辑)notepad++官网 nodejs(hexo依赖)nodejs官网 7z( ...
 - 使用Hexo搭建个人博客并部署到GitHub或码云上全过程
		
一.前言 如上图所示:GitHub有Github Pages,而码云也有码云 Pages 1.Github Pages或Gitee Pages是什么呢? Github Pages或者Gitee Pag ...
 - Linux下使用 github+hexo 搭建个人博客07-next主题接入搜索和站点管理
		
这是搭建个人博客系统系列文章的最后一篇,如果你是从第一篇一路跟下来的,那么恭喜你,即将完成整个博客网站的搭建.OK,话不多说,开始我们的收官之战. 不知你想过没有,如果我们的文章少,一眼看完整个目录, ...
 
随机推荐
- 生成"cmd.exe"错误
			
转载请注明来源:https://www.cnblogs.com/hookjc/ 在VC2005里打开"工具"菜单,选择"选项",打开"选项" ...
 - SQL的多表查询(笛卡尔积原理)
			
感谢大佬:https://blog.csdn.net/yang5726685/article/details/53538438 MySQL的多表查询(笛卡尔积原理) 先确定数据要用到哪些表. 将多个表 ...
 - Linux如何查看端口占用情况
			
Linux如何查看端口 1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000 # lsof -i:8000 COMMAND PID USER ...
 - Protocol类型限制
			
1.protocol类型限制 设定情景: 某攻城狮A希望找一个会做饭.洗衣服的女生做女朋友,有国企工作的优先. 满足条件的女生都可以向他发送消息 从题目中我们得到要求 会做饭 会洗衣服 有份好工作 @ ...
 - 关于MPMoviePlayerController 缓存播放的一些技术准备
			
如果是视频文件,比如Mp4,avi,rmvb等可根据下面的这边文章推荐的Demo(http://code4app.com/ios/5292c381cb7e8445678b5ac2),经过测试可以进行同 ...
 - 34、python并发编程之多进程(操作篇)
			
目录: 一 multiprocessing模块介绍 二 Process类的介绍 三 Process类的使用 四 守护进程 五 进程同步(锁) 六 队列(推荐使用) 七 管道 八 共享数据 九 信号量( ...
 - Solution -「UR #2」「UOJ #32」跳蚤公路
			
\(\mathcal{Description}\) Link. 给定一个 \(n\) 个点 \(m\) 条边的带权有向图,每条边还有属性 \(s\in\{-1,0,1\}\).对于每个 \(u ...
 - JVM内存结构的组成、各部分功能作用
			
一.程序计数器 作用:是记住下一条jvm指令的执行地址 特点: 是线程私有的 不会存在內存溢出 二.虚拟机栈 每个线程运行时所需要的内存,称为虚拟机栈 每个栈由多个栈帧(Frame) 组成,对应着 ...
 - maven项目 mvn clean install 或 build,报错:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
			
解决办法 在pom文件中添加
 - k8s搭建链路监控:skywalking
			
skywalking架构及简介 官网:https://github.com/apache/skywalking 简介 Java, .NET Core, NodeJS, PHP, and Python ...