Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可以在非浏览器环境下,解释运行 JS 代码。
在 Node.js 官网: 下载安装包 v6.10.3 LTS
保持默认设置即可,一路Next,安装很快就结束了。
然后打开命令提示符,输入 node -v、npm -v,出现版本号则说明 Node.js 环境配置成功,第一步完成!!!
搭建 Git 环境为什么要搭建 Git 环境? - 因为需要把本地的网页和文章等提交到 GitHub 上。
Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
在 Git 官网: 下载安装包 Git-2.13.0-64-bit.exe
桌面右键,打开 Git Bush Here,输入 git --version,出现版本号则说明 Git 环境配置成功,第二步完成!!!
GitHub 注册和配置GitHub 是一个代码托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
Github注册:
创建仓库:Repository name 使用自己的用户名,仓库名规则:
注意:yourname 必须是你的用户名。
yourname/yourname.github.io访问 yourname.github.io,如果可以正常访问,那么 Github 的配置已经结束了。
到此搭建 Hexo 博客的相关环境配置已经完成,下面开始讲解 Hexo 的相关操作
安装配置 HexoHexo 是一个快速、简洁且高效的博客框架,使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
强烈建议你花20分钟区读一读 Hexo 的官方文档:https://hexo.io/zh-cn/
使用 npm 安装 Hexo:在命令行中输入
npm install hexo-cli -g然后你将会看到下图,可能你会看到一个WARN,但是不用担心,这不会影响你的正常使用。
查看Hexo的版本
hexo version安装 Hexo 完成后,请执行下列命令来初始化 Hexo,用户名改成你的,Hexo 将会在指定文件夹中新建所需要的文件。
hexo init bxm0927.github.iocd bxm0927.github.ionpm install新建完成后,指定文件夹的目录如下:
.├── .deploy #需要部署的文件├── node_modules #Hexo插件├── public #生成的静态网页文件├── scaffolds #模板├── source #博客正文和其他源文件,404、favicon、CNAME 都应该放在这里| ├── _drafts #草稿| └── _posts #文章├── themes #主题├── _config.yml #全局配置文件└── package.json #npm 依赖等运行本地 Hexo 服务
hexo server或者hexo s您的网站会在 http://localhost:4000 下启动。如果 http://localhost:4000 能够正常访问,则说明 Hexo 本地博客已经搭建起来了,只是本地哦,别人看不到的。下面,我们要部署到Github。
注意1:执行hexo server提示找不到该指令
解决办法:在Hexo 3.0 后server被单独出来了,需要安装server,安装的命令如下:
sudo npm install hexo-server或者npm install hexo -server --save关联 Hexo 与 GitHub Pages我们如何让本地git项目与远程的github建立联系呢?用 SSH keys
生成SSH keys
输入你自己的邮箱地址
ssh-keygen -t rsa -C "80583600@qq.com"在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入,我们按回车不设置密码。
添加 SSH Key 到 GitHub
打开 C:Usersxm09.sshid_rsa.pub,此文件里面内容为刚才生成的密钥,准确的复制这个文件的内容,粘贴到 的 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 aierui! You've successfully authenticated, but GitHub does not provide shell access.配置Git个人信息
现在你已经可以通过 SSH 链接到 GitHub 了,还有一些个人信息需要完善的。Git 会根据用户的名字和邮箱来记录提交。GitHub 也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成你自己的。
git config --global user.name "bxm0927"git config --global user.email "80583600@qq.com"配置 Deployment
在_config.yml文件中,找到Deployment,然后按照如下修改,用户名改成你的:
需要注意的是:冒号后面记得空一格!
# Deployment## Docs: https://hexo.io/docs/deployment.htmldeploy: type: git repo: git@github.com:bxm0927/bxm0927.github.io.git branch: master本地文件提交到 GitHub Pages
// 删除旧的 public 文件hexo clean// 生成新的 public 文件hexo generate或者hexo g// 开始部署hexo deploye或者hexo d在浏览器中输入 https://bxm0927.github.io (用户名改成你的)看到了 Hexo 与 GitHub Pages 已经成功关联了,哇哇哇哇哇哇,开心死你了,不要忘了回来给我点赞哟 ~
注意1:若上面操作失败,则需要提前安装一个扩展:
npm install hexo-deployer-git --save注意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 rightsand the repository exists.
注意3:怎么避免 .md 文件被解析?
Hexo原理就是hexo在执行hexo generate时会在本地先把博客生成的一套静态站点放到public文件夹中,在执行hexo deploy时将其复制到.deploy文件夹中。Github的版本库通常建议同时附上README.md说明文件,但是hexo默认情况下会把所有md文件解析成html文件,所以即使你在线生成了 README. md,它也会在你下一次部署时被删去。怎么解决呢?
在执行hexo deploy前把在本地写好的README.md文件复制到.deploy文件夹中,再去执行hexo deploy。
GitHub Pages 地址解析到个人域名Github Pages 是面向用户、组织和项目开放的公共静态页面搭建托管服 务,站点可以被免费托管在 Github 上,你可以选择使用 Github Pages 默 认提供的域名 github.io 或者自定义域名来发布站点。
看着博客的域名是二级域名,总有一种寄人篱下的感觉,为了让这个小窝看起来更加正式,我在阿里云上买了一个域名,打算将博客绑定自己的域名。
进行该绑定过程,其实就是一个重定向的过程。
在 GitHub 仓库的根目录下建立一个 CNAME 的文本文件(注意:没有扩展名),文件里面只能输入一个你的域名,不能加http://
www.lovebxm.com注意:CNAME 一定是在你 Github 项目的 master 根目录下
进入阿里云域名解析地址,添加解析:
记录类型选择CNAME
主机记录填www
解析线路选择默认
记录值填yourname.github.io
TTL值为10分钟
再添加一个解析,记录类型A
主机记录填www
解析线路选择默认
记录值填你GitHub 的ip地址(在cmd中ping:)
ping bxm0927.github.com点击保存,等 1 分钟,访问下你自己的域名,一切就ok了。
域名绑定成功,域名解析成功,因此你在浏览中输入 www.lovebxm.com,或 lovebxm.com 就可以访问到博客了,输入 bxm0927.github.io 会重定向到 www.lovebxm.com。过程:www 的方式,会先解析成 http://xxxx.github.io,然后根据 CNAME 再变成 www
注意:CNAME文件在下次 hexo deploy的时候就消失了,需要重新创建,这样就很繁琐
方法一:每次 hexo d 之后,就去 GitHub 仓库根目录新建 CNAME文件
方法二:在 hexo g 之后, hexo d 之前,把CNAME文件复制到 “public" 目录下面,里面写入你要绑定的域名。
方法三(推荐):将需要上传至github的内容放在source文件夹,例如CNAME、favicon.ico、images等,这样在 hexo d 之后就不会被删除了。
方法四:通过安装插件实现永久保留
$ npm install hexo-generator-cname --save之后在_config.yml中添加一条
plugins:- hexo-generator-cname需要注意的是:如果是在github上建立的CNAME文件,需要先clone到本地,然后安装插件,在deploy上去即可。CNAME只允许一个域名地址。
注意1:每次生成的 CNAME 都是 yoursite.com 怎么解决?
修改 _config.yml
url: root: /permalink: :year/:month/:day/:title/permalink_defaults:Hexo 的常用操作发表一篇文章hexo new "文章标题"D:GitHubHexoest>hexo new "文章标题"INFO Created: D:GitHubHexoestsource\_posts文章标题.md在本地博客文件夹 source\_posts 文件夹下看到我们新建的 markdown 文件。
当然,我们也可以手动添加Markdown文件在source->_deploy文件夹下,其效果同样可以媲美hexo new
文章编辑好之后,运行生成、部署命令:
hexo cleanhexo ghexo d当然你也可以执行下面的命令,相当于上面两条命令的效果
hexo cleanhexo d -g新建一个自定义页面hexo new page folder文章如何添加多个标签有两种多标签格式
tags: [a, b, c]或tags: - a - b - c显示部分文章内容如果在博客文章列表中,不想全文显示,可以增加 , 后面的内容就不会显示在列表。
更改主题官方主题库:https://hexo.io/themes/
Hexo主题非常,推荐使用 Next 为主题,请阅读 Next 的官方文档( ),5 分钟快速安装。
再提示一点,大家可以hexo主题修改一步就hexo s看下变化,初次接触对参数不清楚。只有hexo s后在可以在本地浏览到效果,Ctrl+C 停止服务器。
添加插件添加 sitemap 和 feed 插件
切换到你本地的 hexo 目 CIA ,在命令行窗口,输入以下命令
npm install hexo-generator-feed -savenpm install hexo-generator-sitemap -save修改 _config.yml,增加以下内容
# ExtensionsPlugins:- hexo-generator-feed- hexo-generator-sitemap#Feed Atomfeed: type: atom path: atom.xml limit: 20#sitemapsitemap: path: sitemap.xml再执行以下命令,部署服务端
hexo d -g配完之后,就可以访问 https://bxm0927.github.io/atom.xml 和 https://bxm0927.github.io/sitemap.xml ,发现这两个文件已经成功生成了。
添加 404 页面GitHub Pages 自定义404页面非常容易,直接在根目录下创建自己的404.html就可以。但是自定义404页面仅对绑定顶级域名的项目才起作用,GitHub默认分配的二级域名是不起作用的,使用hexo server在本机调试也是不起作用的。
其实,404页面可以做更多有意义的事,来做个404公益项目吧。
推荐使用腾讯公益404 :
复制上面代码,贴粘到目录下新建的404.html即可!
多PC同步管理博客很多人可能家里一台笔记本,公司一个台式机,想两个同时管理博客,同时达到备份的博客主题、文章、配置的目的。下面就介绍一下用github来备份博客并同步博客。
A电脑备份博客内容到github
配置.gitignore文件。进入博客目录文件夹下,找到此文件,用sublime text 打开,在最后增加两行内容/.deploy_git和/public
初始化仓库。
在博客根目录下,在git bash下依次执行git init和git remote add origin 为远程仓库地址。
同步到远程仓库。
gitbash下依次执行以下命令
git add . #添加目录下所有文件git commit -m "更新说明" #提交并添加更新说明git push -u origin master #推送更新到远程仓库B电脑拉下远程仓库文件
在B电脑上同样先安装好node、git、ssh、hexo,然后建好hexo文件夹,安装好插件,(然后选做:将备份到远程仓库的文件及文件夹删除),然后执行以下命令:
git initgit remote add origin发布博客后同步
在B电脑发布完博客之后,记得将博客备份同步到远程仓库执行以下命令:
git add .#可以用git master 查看更改内容git commit -m "更新信息"git push -u origin master #以后每次提交可以直接git push平时同步管理每次想写博客时,先执行:git pull进行同步更新。发布完文章后同样按照上面的 发布博客后同步 同步到远程仓库。
中文乱码在 md 文件中写中文内容,发布出来后为乱码,原因是 md 的编码不对,将 md 文件另存为UTF-8编码的文件即可解决问题。
结束语建站的系统有很多,如:- Hexo + GitHub Pages- Jekyll + GitHub Pages- WordPress + 服务器 + 域名- DeDeCMS + 服务器 + 域名- …
使用 Hexo + GitHub Pages 建站,有优点也有缺点:- GitHub Pages 不支持数据库管理,所以你只能做静态页面的博客,不能像其他博客(如 WordPress)那样通过数据库管理自己的博客内容。- 但是,GitHub Pages 无需购置服务器,免服务器费的同时还能做负载均衡,github pages有300M免费空间。- 个人博客真的有必要用数据库吗?答案是否定的。博客静态化,评论记录使用第三方的 网易云跟帖就可以了。静态的博客更有利于搜索引擎蜘蛛爬取,轻量化的感觉真的很好。- 通过 Hexo 你可以轻松地使用 Markdown 编写文章,非常符合我的口味。Markdown 真的是专门针对程序员开发的语言啊,现在感觉没有 Markdown什么都不想写。什么富文本编辑器,什么word,太麻烦了!而且样式都好丑!效率太低!
推荐几个很好用的在线 Markdown 编辑器:- 作业部落:- 马克飞象:https://maxiang.io
推荐图床:- 极简图床 + chrome 插件 + 七牛空间,七牛云储存提供10G的免费空间,以及每月10G的流量,存放个人博客外链图片最好不过了,七牛云储存还有各种图形处理功能、缩略图、视频存放速度也给力。
Hexo搭建Github静态博客 1. 环境环境 1.1 安装Git 请参考【1】 1.2 安装node.js 下载:http://nodejs.org/download/ 可以下载 node-v0.10.33-x64.msi 安装时直接保持默认配置即可。 2. 配置Github 1.1 建立Repository 建立与你用户名对应的仓库,仓库名必须为【your_user_name.github.io】 1.2 配置SSH-Key 参考【1】 3. 安装Hexo 关于Hexo的安装配置过程,请以官方Hexo【2】给出的步骤为准。 3.1 Installation 打开Git命令行,执行如下命令 $ npm install -g hexo 3.2 Quick Start 1. Setup your blog 在电脑中建立一个名字叫「Hexo」的文件夹(比如我建在了D:\Hexo),然后在此文件夹中右键打开Git Bash。执行下面的命令 $ hexo init [info] Copying data [info] You are almost done! Don't forget to run `npm install` before you start b logging with Hexo! Hexo随后会自动在目标文件夹建立网站所需要的文件。然后按照提示,运行 npm install(在 /D/Hexo下) npm install 会在D:\Hexo目录中安装 node_moles。 2. Start the server 运行下面的命令(在 /D/Hexo下) $ hexo server [info] Hexo is running at http://localhost:4000/. Press Ctrl+C to stop. 表明Hexo Server已经启动了,在浏览器中打开 http://localhost:4000/,这时可以看到Hexo已为你生成了一篇blog。 你可以按Ctrl+C 停止Server。 3. Create a new post 新打开一个git bash命令行窗口,cd到/D/Hexo下,执行下面的命令 $ hexo new "My New Post" [info] File created at d:\Hexo\source\_posts\My-New-Post.md 刷新http://localhost:4000/,可以发现已生成了一篇新文章 "My New Post"。 NOTE: 有一个问题,发现 "My New Post" 被发了2遍,在Hexo server所在的git bash窗口也能看到create了2次。 $ hexo server [info] Hexo is running at http://localhost:4000/. Press Ctrl+C to stop. [create] d:\Hexo\source\_posts\My-New-Post.md [create] d:\Hexo\source\_posts\My-New-Post.md 经验证,在hexo new "My New Post" 时,如果按Ctrl+C将hexo server停掉,就不会出现发2次的问题了。 所以,在hexo new文章时,需要stop server。 4. Generate static files 执行下面的命令,将markdown文件生成静态网页。 $ hexo generate 该命令执行完后,会在 D:\Hexo\public\ 目录下生成一系列html,css等文件。 5. 编辑文章 hexo new "My New Post"会在D:\Hexo\source\_posts目录下生成一个markdown文件:My-New-Post.md 可以使用一个支持markdown语法的编辑器(比如 Sublime Text 2)来编辑该文件。 6. 部署到Github 部署到Github前需要配置_config.yml文件,首先找到下面的内容 # Deployment ## Docs: http://hexo.io/docs/deployment.html deploy: type: 然后将它们修改为 # Deployment ## Docs: http://hexo.io/docs/deployment.html deploy: type: github repository: git@github.com:zhchnchn/zhchnchn.github.io.git branch: master NOTE1: Repository:必须是SSH形式的url(git@github.com:zhchnchn/zhchnchn.github.io.git),而不能是HTTPS形式的url(https://github.com/zhchnchn/zhchnchn.github.io.git),否则会出现错误: $ hexo deploy [info] Start deploying: github [error] https://github.com/zhchnchn/zhchnchn.github.io is not a valid repositor URL! 使用SSH url,如果电脑没有开放SSH 端口,会致部署失败。 fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. NOTE2: 如果你是为一个项目制作网站,那么需要把branch设置为gh-pages。 7. 测试 当部署完成后,在浏览器中打开http://zhchnchn.github.io/(https://zhchnchn.github.io/) ,正常显示网页,表明部署成功。 8. 总结:部署步骤 每次部署的步骤,可按以下三步来进行。 hexo clean hexo generate hexo deploy 9. 总结:本地调试 1. 在执行下面的命令后, $ hexo g #生成 $ hexo s #启动本地服务,进行文章预览调试 浏览器输入http://localhost:4000,查看搭建效果。此后的每次变更_config.yml 文件或者新建文件都可以先用此命令调试,尤其是当你想调试新添加的主题时。 2. 可以用简化的一条命令 hexo s -g 3.3 命令总结 3.3.1 常用命令 复制代码 hexo new "postName" #新建文章 hexo new page "pageName" #新建页面 hexo generate #生成静态页面至public目录 hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server) hexo deploy #将.deploy目录部署到GitHub hexo help # 查看帮助 hexo version #查看Hexo的版本 复制代码 3.3.2 复合命令 hexo deploy -g #生成加部署 hexo server -g #生成加预览 命令的简写为: hexo n == hexo new hexo g == hexo generate hexo s == hexo server hexo d == hexo deploy 4 配置Hexo 4.1 配置文件介绍 下面的各个部分的介绍,请直接参考【3】。 1. 默认目录结构介绍 2. _config.yml配置文件介绍 NOTE:在修改_config.yml配置文件时,按照【3】的介绍进行修改后,重新 hexo clean 或者hexo deploy时,可能会出现如下错误: 复制代码 $ hexo clean [error] { name: 'HexoError', reason: 'can not read a block mapping entry; a multiline key may not be an imp licit key', mark: { name: null, buffer: '# Hexo Configuration\n## Docs: http://hexo.io/docs/configuration.h tml\n## Source: https://github.com/hexojs/hexo/\n\n# Site\ntitle: Zhchnchn\nsubt itle: Coding on the way\ndescription: Zhchnchn\'s blog\nauthor: Zhchnchn\nemail: 115063497@qq.com\nlanguage:zh-CN\n\n# URL\n## If your site is put in a subdirect ...... , position: 249, line: 12, column: 0 }, message: 'Config file load failed', domain: { domain: null, _events: { error: [Function] }, _maxListeners: 10, members: [ [Object] ] }, domainThrown: true, stack: undefined } 复制代码 我的_config.yml配置文件是一个空行,所以错误肯定在前面,经过对比发现,我前面修改了一下 # Site的各项设置,在冒号:后面没留空格导致了该问题,请对比一下下面的区别: 错误的设置: author:Zhchnchn email:XXX@qq.com language:zh-CN 正确的设置: author: Zhchnchn email: XXX@qq.com language: zh-CN 3. 各个主题下的目录介绍(hexo\themes\下的modernist主题为例) 4.2 安装主题 Hexo提供了很多主题,具体可参见Hexo Themes【4】。这里我选择使用Pacman主题。具体设置方法如下【5】 4.2.1 安装 1. 将Git Shell 切到/D/Hexo目录下,然后执行下面的命令,将pacman下载到 themes/pacman 目录下。 $ git clone https://github.com/A-limon/pacman.git themes/pacman 2. 修改你的博客根目录/D/Hexo下的config.yml配置文件中的theme属性,将其设置为pacman。 3. 更新pacman主题 cd themes/pacman git pull NOTE:先备份_config.yml 文件后再升级 4.2.2 配置 如果pacman的默认设置不能满足需要的话,你可以修改 /themes/pacman/下的配置文件_config.yml来定制。 各个config的含义,请参考【5】中的介绍。 4.2.3 评论框 静态博客要使用第三方评论系统,pacman配置了多说评论系统(/themes/pacman/_config.yml),默认关闭,只要将其打开即可:false->true。直接用你的微博/豆瓣/人人/百度/开心网帐号登录多说,即可发表平评论。 #### Comment oshuo: enable: true ## oshuo.com short_name: ## oshuo short name. 4.2.3 统计 1. pacman配置了google analysis系统(/themes/pacman/_config.yml),默认关闭,将其打开。 2. 需要注册google analysis服务,以获得 跟踪 ID。 如果已有google账户的话,可以直接注册。注册时,需要正确填写 网站的URL。注册成功后,会得到一个跟踪ID,以及一段跟踪代码。 3. pacman配置了google analysis系统,将其打开 #### Analytics google_analytics: enable: true id: UA-57032437-1 ## e.g. UA-1766729-8 your google analytics ID. site: auto ## e.g. yangjian.me your google analytics site or set the value as auto. 4. 在themes\pacman\layout\_partial\google_analytics.ejs 中,已经将google的跟踪代码添加进来了【3】。 复制代码 <% if (theme.google_analytics.enable){ %> <% } %> 复制代码 而且会将/themes/pacman/_config.yml中的id和site值读取进来。 5. 如果设置不起作用,请试试在\themes\pacman\layout\_partial\head.ejs文件中最后,之前,添加上下面的语句试试。 <%- partial('google_analytics') %> 4.3 Custom 404页面 1. 网上大多数教程都将其说的极其简单:“直接在根目录下创建自己的 404.html 就可以”。但我却在这儿废了不少时间,究其原因是大家觉得太简单而说的不够明白。“根目录下”指的不是Hexo目录下,而是Hexo/source目录下。 2. 404.html的内容可以设置为下面的内容【6】(NOTE: _config.yml中的permalink_defaults属性不需要修改)。 复制代码 --- layout: default ---
之前即可。 6 其他 6.1 中文乱码 在md 文件中写中文内容,发布出来后为乱码,原因是md的编码不对,将md文件另存为“UTF-8”编码的文件即可解决问题。 References 【1】Windows下Git安装指南(http://www.cnblogs.com/zhcncn/p/3787849.html) 【2】Hexo (https://github.com/hexojs/hexo) 【3】hexo你的博客(http://ibruce.info/2013/11/22/hexo-your-blog/) 【4】Hexo All Themes(https://github.com/hexojs/hexo/wiki/Themes) 【5】Pacman主题介绍(http://yangjian.me/pacman/hello/introcing-pacman-theme/) 【6】hexo添加404页面(http://ruocaiwu.github.io/2014/08/14/hexo%E6%B7%BB%E5%8A%A0404%E9%A1%B5%E9%9D%A2/) 【7】如何搭建一个独立博客——简明Github Pages与Hexo教程(http://cnfeat.com/2014/05/10/2014-05-11-how-to-build-a-blog/) 【8】如何向google提交sitemap(详细)(http://fionat.github.io/blog/2013/10/23/sitemap/) 【9】GitHub Ribbons(https://github.com/blog/273-github-ribbons)