手把手教从零开始在GitHub上使用Hexo搭建博客教程
Opened this issue · 1 comments
推荐理由:
免费:github提供gh-pages服务是免费的,有300MB空间;
开源:由于github开源的原因,有很多人参与其中,自然技术支持很好。
便捷:博客完全托管在github上,基本上不需要花时间去管理,博客使用Markdown语法,上手很容易。
需要了解的内容(能掌握更好):
html+css+javascript
git基本语法
markdown语法
nodejs
目前,在github上搭建博客系统使用最多就是Hexo和Jekyll。
Hexo是基于Nodejs开发的,Jekyll是基于Ruby开发的。
通过两个系统使用的比较,个人习惯喜欢Hexo,所以本文介绍的是Hexo搭建博客,如果你对Jekyll也有兴趣,可自行学习。
说明:
文中出现的命令,Windows用户注意,命令前面有 $ 的表示在Git Bash中执行,没有的在CMD命令窗口执行。
Linux和MAC系统在终端下不区分。
安装Git客户端
已安装过的用户略过
下载Git客户端:下载地址
Git客户端安装
安装Git客户端:Windows用户直接Next就可以了。Mac和Linxu系统的用户可通过命令方式安装,这里不详细介绍了。
注册GitHub
老手和已注册过的用户略过
打开GitHub官网:https://github.com/
填写注册信息进行注册操作:没有登录的用户打开网站首页就会显示注册的操作(如图所示),或者是点击Sign up按钮进入注册详情页。
GitHub注册
填写好注册信息,点击Sign up for GitHub(注册)按钮后,接下来是选择协议部分。根据自己的情况选择相关的协议,一般人选的都是免费的那一项。
创建仓库
登录github账号:在github首页点击Sign in按钮进入登录页面。填写用户名或邮箱和密码,点击Sign in按钮登录。
登录GitHub
点击创建仓库:点击在登录的用户图像左边的+号和下三角符号按钮。
点击创建仓库
填写创建仓库信息:
仓库名称必须是用户名.github.io(别问我为什么,人家就是这样规定的),比如我的用户名是SeayXu,就是SeayXu.github.io。
填写创建仓库信息
填写好相关信息,点击Create repository(创建仓库)按钮。
配置SSH
老手和已配置过的用户略过
打开Git Bash终端:在桌面右键,会出现”Git Bash here”的选项,点击即可。
设置user name和email:
$ git config –global user.name “你的GitHub用户名”
$ git config –global user.email “你的GitHub注册邮箱”
生成ssh密钥:输入下面命令
$ ssh-keygen -t rsa -C “你的GitHub注册邮箱”
一般情况下是不需要密码的,所以,接下来直接回车就好。
此时,在用户文件夹下就会有一个新的文件夹.ssh,里面有刚刚创建的ssh密钥文件id_rsa和id_rsa.pub。
注:id_rsa文件是私钥,要妥善保管,id_rsa.pub是公钥文件。
添加公钥到github:
点击用户头像,然后点击显示的Settings(设置)选项;
Settings
在用户设置栏,点击SSH and GPG keys选项,然后点击New SSH key(新建SSH)按钮;
SSH and GPG keys
将id_rsa.pub中的内容复制到Key文本框中,然后点击Add SSH key(添加SSH)按钮;
Add SSH keys
测试SSH:
$ ssh -T git@github.com
接下来会出来下面的确认信息:
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 17:24:ac:a5:76:28:24:36:62:1b:36:4d:eb:df:a6:45.
Are you sure you want to continue connecting (yes/no)?
输入yes后回车。
然后显示如下信息则OK(其中的SeayXu是用户名)。
Hi SeayXu! You’ve successfully authenticated,
but GitHub does not provide shell access.
以上是准备工作。
创建博客文件夹
新建博客文件夹:这里就取名为blog。
mkdir blog
进入到blog文件夹:
cd blog # 切换到blog目录
初探Hexo
如果没有安装Nodejs,请先安装Nodejs,Nodejs官网;
以下操作是在blog文件夹中。
安装Hexo
npm install hexo-cli -g
hexo全局安装一次就够了,后面可以直接使用hexo相关的操作。
初始化Hexo
hexo init
安装依赖
npm install
启动Hexo
hexo server
启动之后,打开浏览器,在地址栏输入:http://localhost:4000,你会看到Hexo的示例页面。
注:此时可以初始化git本地仓库了,或者是等本地博客搭建好之后也可以。
再探Hexo
新建文章:
hexo new
编辑配置文件,关联远程仓库:
在编辑器中打开Hexo配置文件_config.yml,找到下面内容:
Deployment
Docs: https://hexo.io/docs/deployment.html
deploy:
type:
添加github仓库信息:
Deployment
Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:SeayXu/seayxu.github.io.git #github仓库地址
branch: master # github分支
注意:type、repo、branch的前面有两个空格,后面的:后面有一个空格
安装git插件
npm install hexo-deployer-git –save
如果没有安装git插件,会有错误提示,安装后重新部署就可以了。
部署
hexo deploy
如果没有意外,部署就成功了,可以打开 http://<用户名>.github.io 查看。
hexo命令缩写
hexo g:hexo generate
hexo c:hexo clean
hexo s:hexo server
hexo d:hexo deploy
hexo命令组合
hexo clean && hexo g -s,就是清除、生成、启动
hexo clean && hexo g -d,就是清除、生成、部署
本文简单介绍Hexo的部署,接下来的文章会介绍Hexo的相关配置。
报错总结
ERROR Deployer not found: git 或者 ERROR Deployer not found: github
解决方法: npm install hexo-deployer-git –save
如发生报错: ERROR Process failed: layout/.DS_Store , 那么进入主题里面layout和_partial目录下,使用删除命令:
rm-rf.DS_Store
ERROR Plugin load failed: hexo-server
原因:
Besides,utilities are separated into a standalone module.hexo.util is not reachable anymore.
解决方法,执行命令:
sudo npm install hexo-server
执行命令hexo server,提示:Usage: hexo ….
原因:
我认为是没有生成本地服务
解决方法,执行命令:
npm install hexo-server –save
提示:hexo-server@0.1.2 node_modules/hexo-server
….
表示成功了参考
这个时候再执行:
hexo-server
得到:
INFOHexois running at http://0.0.0.0:4000/.PressCtrl+C to stop.
这个时候再点击http://0.0.0.0:4000,正常情况下应该是最原始的画面,但是我看到的是:
白板和Cannot GET / 几个字
原因:
由于2.6以后就更新了,我们需要手动配置些东西,我们需要输入下面三行命令:
npm install hexo-renderer-ejs –save
npm install hexo-renderer-stylus –save
npm install hexo-renderer-marked –save
这个时候再重新生成静态文件,命令:
hexo generate(或hexo g)
启动本地服务器:
hexo server(或hexo s)
主题推荐
这里有大量的主题列表使用方法里面
都有详细的介绍,我就不多说了。
我这里有几款个人认为不错的主题,免去你们,一个一个的选了,欢迎吐槽我的审美,??
Cover- A chic theme with facebook-like cover photo
Oishi- A white theme based on Landscape plus and Writing.
Sidebar- Another theme based on Light with a simple sidebar
TKL- A responsive design theme for Hexo. 一个设计优雅的响应式主题
Tinnypp- A clean, simple theme based on Tinny
Writing- A small and simple hexo theme based on Light
Yilia- Responsive and simple style 优雅简洁响应式主题,我用得就是这个。
Pacman voidy- A theme with dynamic tagcloud and dynamic snow
一些基本路径
文章在source/_posts, 文章支持Markdown语法,可以使用一些MarkDown渲染工具。如果想修改头像可以直接在主题的_config.yml文件里面修改,友情链接,之类的都在这里。开始打理你的博客吧,有什么问题或者建议,都可以提出来,我会继续完善的。
修改头像
我当前的路径/Users/leopard/blog/themes/yilia,ls 你可以看到
Gruntfile.js _config.yml package.json
README.md layout source
vim _config.yml 进去,找到 #你的头像url avatar: 后接一个URL就行了,头像就修改成功了
修改主题和作者名字
我当前的路径/Users/leopard/blog,ls 你可以看到
_config.yml node_modules public source themes
db.json package.json scaffolds ssh-keygen
vim _config.yml 进去,找到 author: 潘柏信,修改成你自己的名字就行了
修改主题,然后继续往下找到
Extensions
Plugins: http://hexo.io/plugins/
Themes: http://hexo.io/themes/
theme:yilia
改成theme: yilia,theme:后面接你自己的主题名字就行了,然后分别执行
部署 hexo g
提交 hexo d
你的主题,和名字就修改成功了
hexo博客更换主题
第一步:选择主题
主题从哪里找呢?官方就有提供了一些 主题 ,可以从中选择。
官方提供的主题不少,可是并不一定有自己喜欢的或者又很难选择,这是个头疼的问题。
之前我的博客主题就是随便选了一个还算看的过去的。
但是再使用的过程中发现了一些问题:
不会自动生成目录
不能自动获取摘要
有很多配置不太方便
虽然有些问题,但并不影响整体使用,所以也没想去换主题了。
前端时间逛知乎,发现这样一个问题: 有哪些好看的 Hexo 主题?
查看第一名的答案,有个主题排行,发现排第一名的主题 next 。
然后点开主题看了一下,发现主题简约,配置详细,能够解决我之前存在的问题,于是就决定选择这个主题了。
第二步:安装主题
Hexo 有两份主要的配置文件(_config.yml),一份位于站点根目录下,另一份位于主题目录下。为了描述方便,在以下说明中,将前者称为 站点配置文件,后者称为 主题配置文件。
Hexo 安装主题的方式非常简单,只需要将主题文件放置于站点目录的 themes 目录下,然后修改下配置文件即可。具体到 NexT 来说,安装步骤如下。
下载 NexT 主题
下载NexT主题稳定版:
前往 NexT 版本 发布页面
选择你所需要的版本,下载 Download 下的 Source Code (zip) 到本地。 例如,下载 v0.4.0 版本:
解压所下载的压缩包至站点的 themes 目录下,并将 解压后的文件夹名称( hexo-theme-next-0.4.0 )更改为 next
启用NexT主题
克隆/下载 完成后,打开 站点配置文件,找到 theme 字段,并将其值更改为 next 。
验证主题是否启用
运行 hexo s –debug ,并访问 http://localhost:4000 ,确保站点正确运行。
第三步:配置
选择 Scheme
NexT 通过 Scheme 提供主题中的主题。 Mist 是 NexT 的第一款 Scheme。启用 Mist 仅需在 主题配置文件 中将 #scheme: Mist 前面的 # 注释去掉即可。
语言设置
编辑 站点配置文件,将 language 设置成你所需要的语言。
例如选用正体中文,则配置为:
language: zh-Hans
可用的语言如以下表格所示:
语言 代码 设定值
English en language: en
简体中文 zh-Hans language: zh-Hans
French fr-FR language: fr-FR
正体中文 zh-hk/zh-tw language: zh-hk
Russian ru language: ru
German de language: de
菜单设置
菜单配置在 主题配置文件的 menu 。 若你的站点运行在子目录中,请将链接前缀的 / 去掉。默认支持的菜单项有:
键值 设定值 comment
home home: / 主页
archives archives: /archives 归档页
categories categories: /categories 分类页(需手动创建)
tags tags: /tags 标签页(需手动创建)
about about: /about 关于页面 (需手动创建)
commonweal commonweal: /404.html 公益 404 (需手动创建)
菜单示例配置:
menu:
home: /
archives: /archives
#about: /about
#categories: /categories
tags: /tags
#commonweal: /404.html
侧栏设置
默认情况下,侧栏仅在文章页面(拥有目录列表)时才显示。可以通过修改 主题配置文件 中的 sidebar 字段来控制侧栏的行为。
支持的选项有:
post - 默认行为,在文章页面(拥有目录列表)时显示
always - 在所有页面中都显示
hide - 在所有页面中都隐藏(可以手动展开)
侧栏示例配置:
sidebar: post
头像设置
编辑 站点配置文件,新增字段 avatar , 值设置成头像的链接地址。
其中,头像的链接地址可以是:
地址 值
完整的互联网 URL https://avatars1.githubusercontent.com/u/32269?v=3&s=460
站点内的地址 /uploads/avatar.jpg - 需要将你的头像图片放置在 站点的 source/uploads/ (可能需要新建uploads目录)
/images/avatar.jpg - 需要将你的头像图片放置在 主题的 source/images/ 目录下
头像设置示例:
编辑 站点配置文件,设置 author 为你的昵称。
站点描述设置
编辑 站点配置文件,设置 description 字段为你的站点描述。站点描述可以是你喜欢的一句签名:)
总结
到这里整个主题更换和配置就已经完成,现在可以看到博客已经成为预期的样子了。如果更换其它的主题,也大同小异,都是这三步,只是涉及到具体的配置就有些区别而已。
hexo是一个基于Node.js的静态博客程序,可以方便的生成静态网页托管在github和Heroku上…
前言
hexo是一个基于Node.js的静态博客程序,可以方便的生成静态网页托管在github和Heroku上。作者是来自**的@tommy351。
我们可以用hexo创建自己的博客,托管到github或Heroku上,绑定自己的域名,用markdown写文章。
本博客即使用hexo创建并托管在github上。
网上有很多hexo大的搭建教程,这里就不多说了,这里主要介绍hexo的使用方法,同时也是为了方便自己记忆。
hexo命令
npm install hexo -g #安装
npm update hexo -g #升级
hexo init #初始化
简写
hexo n “我的博客” == hexo new “我的博客” #新建文章
hexo p == hexo publish
hexo g == hexo generate#生成
hexo s == hexo server #启动服务预览
hexo d == hexo deploy#部署
服务器
hexo server #Hexo 会监视文件变动并自动更新,您无须重启服务器。
hexo server -s #静态模式
hexo server -p 5000 #更改端口
hexo server -i 192.168.1.1 #自定义 IP
hexo clean #清除缓存 网页正常情况下可以忽略此条命令
hexo g #生成静态网页
hexo d #开始部署
监视文件变动
hexo generate #使用 Hexo 生成静态文件快速而且简单
hexo generate –watch #监视文件变动
完成后部署
两个命令的作用是相同的
hexo generate –deploy
hexo deploy –generate
hexo deploy -g
hexo server -g
草稿
1
hexo publish [layout]
hexo new “postName” #新建文章
hexo new page “pageName” #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,’ctrl + c’关闭server)
hexo deploy #将.deploy目录部署到GitHub
hexo new [layout]
title: 使用Hexo搭建个人博客
layout: post
date: 2014-03-03 19:07:43
comments: true
categories: Blog
tags: [Hexo]
keywords: Hexo, Blog
description: 生命在于折腾,又把博客折腾到Hexo了。给Hexo点赞。
模版(Scaffold)
hexo new photo “My Gallery”
变量 描述
layout 布局
title 标题
date 文件建立日期
设置文章摘要
1
以上是文章摘要 以下是余下全文
创建一篇新文章
1
$ hexo new “my new post”
然后在~\hexo\source\ _posts中打开这个文件(我用的是subline text3打开的),配置开头。
title: my new post #文章标题,可以改为中文。
date: 2016-01-14 20:37:51 #发表日期,自动生成,不改。
categories: * #文章分类
tags:
- hexo #文章标签,多于一项是使用这种格式。
#这里是正文,用markdown写,所有的书写切记需要在 “ : “ 后面留空格。
#在之前的内容会显示在首页,之后的内容会被隐藏,当游客点击Read more才能看到。
推送到服务器上
hexo n #写文章
hexo g #生成
hexo d #部署 #可与hexo g合并为 hexo d -g
markdown语法
markdown语法,这里不做太多描述,有需要可以参考markdown 简明语法.我在这里记录一下我自己使用过程中经常用到的。
换行:
回车键或连续3个—表示分割线。
———
强调:
星号(*)与下划线(_)都可以,单是斜体,双是粗体,符号可跨行,符号可加空格。
有序列表:
数字 + . + 空格 ,数字不能省略但可无序,点号之后的空格不能少。
超链接:
文字:
文字
图片:
图片名称 #我是放在本地文件夹下的,所以路径是:/img/Share project on github.png
插入代码:
新起一行,按2次Tab键或者8次空格。插入代码也可以加入有序列表。
或者
防止github中的READ.me文件被渲染的方法:
在~\Hexo\source文件夹下建立READ.md文件。
在~\Hexo\ _config.yml文件中skip_render:后面加上README.md即skip_render: README.md。
一些转义符:
Markdown中的转义字符为\,转义的有:
\ 反斜杠
` 反引号
- 星号
_ 下划线
{} 大括号
[] 中括号
() 小括号
井号
- 加号
- 减号
. 英文句号
! 感叹号
welcome