为何要搭建 Node.js 环境? – 由于 Hexo 博客系统是基于 Node.js 编写的html
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,能够在非浏览器环境下,解释运行 JS 代码。node
在 Node.js 官网:https://nodejs.org/en/下载最新安装包LTS版git
保持默认设置便可,一路Next,安装很快就结束了。github
而后打开命令提示符,输入shell
node -v npm -v
出现版本号则说明 Node.js 环境配置成功,第一步完成!!!npm
为何要搭建 Git 环境? – 由于须要把本地的网页和文章等提交到 GitHub 上。json
Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。浏览器
在 Git 官网:https://git-scm.com/下载适合本身系统的安装包bash
保持默认设置便可,一路Next,安装很快就结束了。服务器
开始菜单Git Bash
git --version
出现版本号则说明 Git 环境配置成功,第二步完成!
GitHub 是一个代码托管平台,由于只支持 Git 做为惟一的版本库格式进行托管,故名 GitHub。
Github注册:https://github.com/
建立仓库:Repository name 使用本身的用户名,仓库名规则:
注意:yourname必须是你的用户名。
yourname/yourname.github.io
例如个人是:mdd1991.github.io
访问 yourname.github.io,若是能够正常访问,那么 Github 的配置已经结束了。
到此搭建 Hexo 博客的相关环境配置已经完成,下面开始讲解 Hexo 的相关操做。
Hexo 是一个快速、简洁且高效的博客框架,使用 Markdown(或其余渲染引擎)解析文章,在几秒内,便可利用靓丽的主题生成静态网页。
强烈建议你花20分钟区读一读 Hexo 的官方文档:https://hexo.io/zh-cn/
在命令行中输入:
npm install hexo-cli -g
一般会卡住一会,耐心等待,而后你将会看到下图,可能你会看到一个WARN,可是不用担忧,这不会影响你的正常使用。
查看Hexo的版本
hexo version
安装 Hexo 完成后,请执行下列命令来初始化 Hexo,用户名改为你的,Hexo 将会在指定文件夹中新建所须要的文件。
hexo init mdd1991.github.io
cd mdd1991.github.io npm install
出现警告,在网上搜索忽略警告便可:
新建完成后,指定文件夹的目录以下:
├── .deploy #须要部署的文件
├── node_modules #Hexo插件
├── public #生成的静态网页文件
├── scaffolds #模板
├── source #博客正文和其余源文件,40四、favicon、CNAME 都应该放在这里
| ├── _drafts #草稿
| └── _posts #文章
├── themes #主题
├── _config.yml #全局配置文件
└── package.json #npm 依赖等
hexo server
或者
hexo s
若出现防火墙点击肯定。
您的网站会在http://localhost:4000下启动。若是http://localhost:4000可以正常访问,则说明 Hexo 本地博客已经搭建起来了,只是本地哦,别人看不到的。下面,咱们要部署到Github。
在浏览器中访问一直打不开怎么办?缘由是端口被另外一个程序占用,也没提示,换个端口好比:4001就能够了。
hexo server --port=<other port>
注意1:执行hexo server提示找不到该指令
解决办法:在Hexo 3.0 后server被单独出来了,须要安装server,安装的命令以下:
sudo npm install hexo-server
或者
npm install hexo -server --save
咱们如何让本地git项目与远程的github创建联系呢?用 SSH keys
输入你本身的邮箱地址
ssh-keygen -t rsa -C "donnymoving@gmail.com"
在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,若是为空的话提交项目时则不用输入,咱们按回车不设置密码。
打开上面提示的路径C:\Users\User\.ssh\id_rsa.pub,此文件里面内容为刚才生成的密钥,准确的复制这个文件的内容,粘贴到https://github.com/settings/ssh的new SSH key中
能够输入下面的命令,看看设置是否成功,git@github.com的部分不要修改:
ssh -T git@github.com
若是是下面的反馈:
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
没关系张,输入yes就好,而后会看到:
Hi mdd1991! You’ve successfully authenticated, but GitHub does not provide shell access.
如今你已经能够经过 SSH 连接到 GitHub 了,还有一些我的信息须要完善的。
Git 会根据用户的名字和邮箱来记录提交。GitHub 也是用这些信息来作权限的处理,输入下面的代码进行我的信息的设置,把名称和邮箱替换成你本身的。
git config --global user.name "Donny" git config --global user.email "donnymoving@gmail.com"
复制mdd1991.github.io路径
在_config.yml文件中,找到Deployment,而后按照以下修改,用户名改为你的:
须要注意的是:冒号后面记得空一格!
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:mdd1991/mdd1991.github.io.git
branch: master
// 删除旧的 public 文件
hexo clean
// 生成新的 public 文件
hexo generate
或者
hexo g
// 开始部署
hexo deploy
或者
hexo d
npm install hexo-deployer-git --save
而后再部署便可解决。须要注意的是yaml语法要求严格,注意空格。若一直不行,建议把github地址那条语句从新手写一遍,每一个冒号后面要有一个半角的空格。
若最后显示INFO Deploy done: git,表示部署已经成功了,而后在浏览器中输入https://mdd1991.github.io(用户名改为你的)看到了 Hexo 与 GitHub Pages 已经成功关联了,哇哇哇哇哇哇,开心死你了,不要忘了回来给我点赞哟 ~
注意2:若是在执行hexo d后,出现error deployer not found:github的错误(以下),则是由于没有设置好 public key 所致,从新详细设置便可。
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
注意3:怎么避免 .md 文件被解析?
Hexo原理就是hexo在执行hexo generate时会在本地先把博客生成的一套静态站点放到public文件夹中,在执行hexo deploy时将其复制到.deploy_git文件夹中。Github的版本库一般建议同时附上README.md说明文件,可是hexo默认状况下会把全部md文件解析成html文件,因此即便你在线生成了 README. md,它也会在你下一次部署时被删去。怎么解决呢?
将README.md放在source文件夹,而后修改_config.yml,设置 skip_render: README.md选项就好了,将不须要渲染的文件名称加入的其选项下就好了。
Github Pages 是面向用户、组织和项目开放的公共静态页面搭建托管服 务,站点能够被免费托管在 Github 上,你能够选择使用 Github Pages 默 认提供的域名 github.io 或者自定义域名来发布站点。
看着博客的域名是二级域名,总有一种寄人篱下的感受,为了让这个小窝看起来更加正式,我在阿里云上买了一个域名,打算将博客绑定本身的域名。进行该绑定过程,其实就是一个重定向的过程。
在 GitHub 仓库的根目录下创建一个CNAME的文本文件(注意:没有扩展名),文件里面只能输入一个你的域名,不能加http://
www.aboysblog.com
注意:CNAME 必定是在你 Github 项目的 master 根目录下
进入阿里云域名解析地址,添加解析:
记录类型选择CNAME
主机记录填www
解析线路选择默认
记录值填yourname.github.io
TTL值为10分钟
再添加一个解析,记录类型A
主机记录填www
解析线路选择默认
记录值填你GitHub 的ip地址(在cmd中ping:)
点击保存,等 1 分钟,访问下你本身的域名,一切就ok了。
域名绑定成功,域名解析成功,所以你在浏览中输入www.aboysblog.com,或 aboysblog.com 就能够访问到博客了,输入 mdd1991.github.io 会重定向到www.aboysblog.com。过程:www 的方式,会先解析成http://xxxx.github.io,而后根据 CNAME 再变成 www
注意:CNAME文件在下次hexo deploy的时候就消失了,须要从新建立,这样就很繁琐
方法一:在hexo g以后,hexo d以前,把CNAME文件复制到 “\public” 目录下面,里面写入你要绑定的域名。
方法二:将须要上传至github的内容放在source文件夹,例如README.md、CNAME、favicon.ico、images等,这样在 hexo d 以后就不会被删除了。
注意1:每次生成的 CNAME 都是 yoursite.com 怎么解决?
修改 _config.yml
url: http://www.aboysblog.com
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:
hexo new "文章标题"
在本地博客文件夹source\_posts文件夹下看到咱们新建的 markdown 文件。
固然,咱们也能够手动添加Markdown文件在source->_posts文件夹下,其效果一样能够媲美hexo new
文章编辑好以后,运行生成、部署命令:
hexo clean hexo g hexo d
固然你也能够执行下面的命令,至关于上面两条命令的效果
hexo clean hexo d -g
hexo new page folder
有两种多标签格式
tags: [a, b, c]
或
tags:
– a
– b
– c
若是在博客文章列表中,不想全文显示,能够增长 <!-- more -->
, 后面的内容就不会显示在列表。
官方主题库:https://hexo.io/themes/
Hexo主题很是,推荐使用Next为主题,请阅读 Next 的官方文档(http://theme-next.iissnan.com/),5 分钟快速安装。
再提示一点,你们能够hexo主题修改一步就hexo s看下变化,初次接触对参数不清楚。只有hexo s后在能够在本地浏览到效果,Ctrl+C 中止服务器。