hexo博客搭建过程

软件安装

1.nodejs
2.git

创建git pages

在github新建一个仓库,Github Pages 的仓库名必须为your_user_name.github.io
获取git的ssh

1
$ ssh-keygen -c "youremail@163.com" #连点三次

找到C:\Users\Administrator.ssh\id_rsa.pub 文件打开,复制里面内容添加到自己的github的sshkeys 中(新建一个add sshkey)

Hexo

安装Hexo

1
2
npm install -g hexo
npm install -g hexo-cli

查看Hexo版本

1
hexo v

创建Hexo项目

1
hexo init myHexo

进入项目初始化

1
2
cd myHexo
hexo init

安装依赖包

1
npm install

启动服务

1
2
3
hexo server

hexo s

用浏览器打开http://localhost:4000/或者http://127.0.0.1:4000/就能看到网页了

目录结构

1
2
3
4
5
6
7
8
9
10
├── .deploy       #需要部署的文件
├── node_modules #Hexo插件
├── public #生成的静态网页文件
├── scaffolds #模板
├── source #博客正文和其他源文件,404、favicon、CNAME 都应该放在这里
| ├── _drafts #草稿
| └── _posts #文章
├── themes #主题
├── _config.yml #全局配置文件
└── package.json

全局的_config.yml文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Hexo Configuration
## Docs: http://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: pangyalin的博客
subtitle: pangyalin的博客
description: pangyalin的博客 #站点描述
author: pyl #作者
language: zh-Hans #语音
timezone: #时区

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://iwooto.com
root: /
permalink: :year/:month/:day/:title/ #文章的链接格式
permalink_defaults:

# Directory 目录
source_dir: source #源文件目录
public_dir: public #生成文件目录
tag_dir: tags #tag标签目录
archive_dir: archives #文章目录
category_dir: categories #分类目录
code_dir: downloads/code #code目录
i18n_dir: :lang
skip_render:

# Writing 写作
new_post_name: :title.md # File name of new posts 新建文章
default_layout: post #默认的模板,包括 post、page、photo、draft(文章、页面、照片、草稿)
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
future: true
highlight: #语法高亮
enable: true #是否启用
line_number: true #是否显示行号
auto_detect: true #自动检测
tab_replace: #tab替换

# Category & Tag 分类与标签
default_category: uncategorized
category_map:
tag_map:

# Date / Time format 日期格式
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss

# Pagination 分页
## Set per_page to 0 to disable pagination 设置0时不进行分页
per_page: 10 每页显示文章条数
pagination_dir: page

# Extensions 拓展
## Plugins: http://hexo.io/plugins/ 插件设置
plugins:
hexo-generator-feed
hexo-generator-sitemap
## Themes: http://hexo.io/themes/ 主题设置
theme: yilia

# Deployment 部署到服务器
## Docs: http://hexo.io/docs/deployment.html
deploy:
type: git #hexo 3.1 以后改github 为 git
repository: git@github.com:WhyNotRunning/WhyNotRunning.github.io.git
branch: master

hexo命令使用

1
2
3
4
5
6
7
8
9
10
11
12
13
hexo  clean        #Removed generated files and cache.删除自动生成的文件和清除缓存。
hexo config #Get or set configurations.获取和设置hexo配置
hexo deploy #Deploy your website. 发布到你的站点
hexo generate #Generate static files.自动生成静态文件
hexo help #Get help on a command.获取hexo帮助
hexo init #Create a new Hexo folder.初始化生成一个hexo目录
hexo list #List the information of the site显示站点的信息
hexo migrate #Migrate your site from other system to Hexo.从其他hexo系统复制
hexo new #Create a new post.新建一篇文章
hexo publish #Moves a draft post from _drafts to _posts folder.发布草稿文章
hexo render #Render files with renderer plugins.
hexo server #Start the server.启动本地服务
hexo version #Display version information.查看版本

hexo命令简写hexo + 命令首字母

1
hexo c ==> hexo clean

新建一篇博客

1
hexo new "博客名称"

找到source/_post/博客名称.md进行编辑

安装插件

生成rss

1
npm install hexo-generator-feed --save-dev

生成网站地图

1
npm install hexo-generator-sitemap --save-dev

-save和save-dev可以省掉你手动修改package.json文件的步骤。

1
2
3
npm install module-name -save 自动把模块和版本号添加到dependencies部分
npm install module-name -save-dve 自动把模块和版本号添加到devdependencies部分
npm ls -g --depth=1 2>/dev/null | grep module-name

hexo发布报错

执行 hexo d 报错

1
2
3
4
5
Error: spawn git ENOENT
at exports._errnoException (util.js:746:11)
at Process.ChildProcess._handle.onexit (child_process.js:1053:32)
at child_process.js:1144:20
at process._tickCallback (node.js:355:11)

hexo提交必须通过git bash上才可以提交

npm淘宝镜像使用

你可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

1
$ npm install -g cnpm --registry=https://registry.npm.taobao.org

淘宝 NPM 镜像