准备
开始
- 创建仓库
- 创建一个名为’你的用户名.github.io’的仓库,将来你的网站访问地址就是 http://你的用户名.github.io 了
- ps: 仓库名字必须是:username.github.io,其中username是你的用户名
- 绑定域名(自愿)
- 配置SSHkey
- cd 用户地址()/.ssh #检查本机已存在的ssh密钥
- ssh-keygen -t rsa -C “邮件地址” 生成sshkey
- .ssh\id_rsa.pub 将文件内容复制到个人设置 -> SSH and GPG keys -> New SSH key
- ssh -T git@github.com 测试是否成功
- 如果提示Are you sure you want to continue connecting (yes/no)?,输入yes,然后会看到:
1
Hi liuxianan! You've successfully authenticated, but GitHub does not provide shell access.
- 如果提示Are you sure you want to continue connecting (yes/no)?,输入yes,然后会看到:
Hexo
安装
- npm install -g hexo
- 如果没有npm还需要先安装node
初始化
- 创建一个hexo文件夹 这个是你的博客代码等的存放文件夹
- hexo init 在你的文件夹下执行这个命令
执行完成之后会自动下载文件到这个目录
1
2hexo g # 生成
hexo s # 启动服务执行以上命令之后,hexo就会在public文件夹生成相关html文件,这些文件将来都是要提交到github去的
- hexo s # 本地预览服务
- 执行完成之后 打开http://localhost:4000 即可 如果不能打开可能是端口被占用了, 解决可参考
修改主题
- 官方主题
- 举个例子hexo-theme-yilia
在hexo文件夹下执行
1
git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia
修改_config.yml中的theme: landscape改为theme: yilia,然后重新执行hexo g来重新生成。如果出现一些莫名其妙的问题,可以先执行hexo clean来清理一下public的内容,然后再来重新生成和发布。
上传
配置_config.yml
1
2
3
4deploy:
type: git
repository: git@github.com:liuxianan/liuxianan.github.io.git
branch: master执行 hexo d
- 如果报 Deployer not found: github 或者 Deployer not found: git 错误则执行npm install hexo-deployer-git –save
如果报
1
warning: LF will be replaced by CRLF in XXXXXXXXXXXXXX.
解决
1
git config --global core.autocrlf false
上传源文件
- hexo d上传部署到github的其实是hexo编译后的文件,是用来生成网页的,不包含源文件, 也就是只上传了.deploy_git里的文件, 而要上传我们的source, 配置文件, 主题等可以使用分支来完成
- github新建分支
在输入框中填写需要的分支名, 如果没有这个分支会提示创建 - 设置默认分支
在设置里将创建的分支改为默认分支, 这样clone的时候就会默认clone hexo分支下的数据 - clone之后将.git文件夹之外的文件全部删除, 然后将你本地hexo文件夹下的内容复制过来除了.deploy_git
.gitignore 内容如下
1
2
3
4
5
6
7.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/没有创建一个, 有则保证内容一致, 当前文件在hexo根目录下
- 如果clone过主题文件需要删除主题文件夹下的.git否则不能上传
- 上传
1
2
3git add .
git commit –m "add branch"
git push
常用命令
常用命令
1
2
3
4
5
6
7hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #部署到GitHub
hexo help # 查看帮助
hexo version #查看Hexo的版本简写
1
2
3
4hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy组合命令
1
2hexo s -g #生成并本地预览
hexo d -g #生成并上传
写作
- md语法
语法不在此详细介绍可以参考下面的地址
MD语法入门
Markdown基本语法
官网教程 hexo特性
Front-matter
hexo 创建的md文件会在最上方默认有一个用---
分隔的区域这个区域就是 Front-matter
默认有三个参数1
2
3title: 标题
date: 2019-05-08 10:41:08
tags:这个区域预定义的参数有 (不清楚原因不支持md的表格语法, 所以 换成了
<table>
标签)参数 描述 layout 布局 title 标题 date 建立日期 updated 更新日期 comments 开启文章的评论功能 tags 标签(不适用于分页) categories 分类(不适用于分页) permalink 覆盖文章网址
如果需要修改或新增默认参数可以在scaffolds文件夹下的post.md中修改(hexo new “” 创建默认使用post模板)
其中,分类和标签需要区别一下,分类具有顺序性和层次性,也就是说 Foo, Bar 不等于 Bar, Foo;而标签没有顺序和层次.1
2
3
4
5categories:
- Diary
tags:
- PS3
- Gameslayout
hexo new ""
默认使用post
布局, 生成的文件在/source/_post
中
hexo 有三种默认布局:post
,page
,draft
生成的文件路径不同, 自定义布局的路径和post路径相同布局 路径 post
source/_posts
page
source
draft
source/_drafts
所以new命令应该是hexo new [layout] <title>
默认layout是postpage
hexo new page "newPage"
用于另起一页, 会在source下创建一个名为newPage的文件夹和index.md的文件, newPage的路径就是http://xxx.xxx/board
- draft
hexo new draft newpage
draft文件是草稿文件, 并不会直接展示在首页列表, 要预览草稿文件需要hexo server --draft
, 发表草稿文件则为hexo publish draft newpage
图片
- 少量图片可以在source文件夹下新建images文件夹然后将图片复制到文件夹下, 引用方式为

- 大量图片时需要在根目录的_config文件中将
post_asset_folder
置为true, 这样在hexo new ""
时会随之生成一个同名文件夹, 可以将图片复制到文件夹下, 引用方式
这种方式并不会将图片展示在首页列表中.
需要在首页列表中展示图片则引用方式如下:1
{% asset_img a.jpeg This is an example image %}
当在主题中设置首页列表不显示文章全部信息时大概率上面的方式也不会在首页列表中显示图片
搭建暂时就只有这些内容, 我会在另一篇文章中详细介绍我的hexo和主题是如何配置的- 少量图片可以在source文件夹下新建images文件夹然后将图片复制到文件夹下, 引用方式为