共计 8149 个字符,预计需要花费 21 分钟才能阅读完成。
据说每个程序员都要领有个本人的站!
小时候想 也许多年当前,当我每天冒出新的胡须,当我脑子里不再是网络游戏,当我逢人就笑,当我脸上找不出半分自豪,当我开始习惯了指间的香烟,当我足以扛起家中的天,当我厌恶的不再厌恶,抱怨的不再抱怨,回头看 过后那个少年,早已不见,愿你我不负时光,不负本人!
Hexo 简介
Hexo 是一个疾速、简洁且高效的博客框架。Hexo 应用 Markdown(或其余渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成动态网页。
如果你是一个不甘寂寞的程序员, 也想领有一个本人的网站, 可追随该篇文章搭建后进而依据本人的爱好, 让你的集体站更合乎本人的审美
效果图
Baoxing 的集体站 (bd3star.github.io)
1. Hexo 装置
本步骤须要 Git 与 Node.js 的反对。
1.1 初始化
电脑中任选盘符新建一个文件夹作为博客网站的根目录,文件名最好不要是中文。
空白处右键点击Git Bash here
1.2 装置
设置 npm 淘宝镜像站
- npm 默认的源的下载速度可能很慢,倡议应用淘宝镜像替换。
- 执行上面的命令,将 npm 的源设置成淘宝镜像站。
npm config set registry "https://registry.npm.taobao.org"
呈现的命令行窗口中输出npm install -g hexo-cli
,期待运行实现顺次输出以下命令
hexo init < 新建文件夹的名称 >
cd < 新建文件夹的名称 >
npm install
期待运行实现,此时文件夹中多了许多文件。
这里解释一下各个文件夹的作用:
config.yml
博客的配置文件,博客的名称、关键词、作者、语言、博客主题 … 设置都在外面。
package.json
应用程序信息,新增加的插件内容也会呈现在这外面,咱们能够不批改这里的内容。
scaffolds
scaffolds 就是脚手架的意思,这里放了三个模板文件,别离是新增加博客文章(posts)、新增加博客页(page)和新增加草稿(draft)的指标款式。
这部分能够批改的内容是,咱们能够在模板上增加比方 categories 等自定义内容
source
source 是搁置咱们博客内容的中央,也就是资源文件夹,外面初始只有一个文件夹,_posts(文章文件夹),之后咱们通过命令新建 tags(标签文件夹)还有 categories(分类)页后,这里会相应地减少文件夹。
themes
搁置主题文件包的中央。Hexo 会依据这个文件来生成动态页面。
留神 : 后续的命令均须要在站点目录下(即 bd3starblog 文件夹内)应用 Git Bash 运行。
此时 Hexo 框架的本地搭建曾经实现了。咱们来运行一下看看:
命令行顺次输出以下命令
1.3 运行
# 编译文件(生成动态页面) 是 hexo generate 的简写模式
hexo g
# 运行文件 start
hexo s
浏览器中关上 http://locakhost:4000 或者 http://127.0.0.1:4000
能够看到一个网页,阐明 Hexo 博客曾经胜利在本地运行。
1.4 扩大
新建文章或页面。
hexo new <layout> "title"
这里的 <layout>
对应咱们要增加的内容,如果是 posts
就是增加新的文章,如果是 page
就是增加新的页面。
默认是增加posts
。
而后咱们就能够在对应的 posts 或 drafts 文件夹里找到咱们新建的文件,而后在文件里用 Markdown 的格局来写作了。
hexo
生成博文插入图片问题
- 批改站点配置文件
_config.yml
里的post_asset_folder:
这个选项设置为true
-
再运行
hexo n "xxxx"
来生成 md 博文时,/source/_posts
文件夹内除了xxxx.md
文件还有一个 同名的文件夹- 比方我生成的
hexo n '看完此文 - 别说你不懂 IoC 是什么'
生成的目录构造如下:
_posts 看完此文 - 别说你不懂 IoC 是什么 看完此文 - 别说你不懂 IoC 是什么.md
- 比方我生成的
-
最初在
看完此文 - 别说你不懂 IoC 是什么.md
中想引入图片时,先把图片复制到看完此文 - 别说你不懂 IoC 是什么
这个文件夹中,而后只须要在看完此文 - 别说你不懂 IoC 是什么.md
中依照如下语法引入图片:{% asset_img 图片名.jpg 你想输出的代替文字 %}
PS: 这里啰嗦一嘴 如果想用 ![你想输出的代替文字](图片名.jpg)
这种语法来插入图片
可装置插件 hexo-renderer-marked 解决
能够只用 npm install hexo-renderer-marked
命令间接装置,之后在 _config.yaml
中更改配置如下:
post_asset_folder: true
marked:
prependRoot: true
postAsset: true
之后就能够在应用 ![](image.jpg)
的形式欢快的插入图片了。
2 本地博客公布到 Github Pages
2.1,在 Github 上创立好 Github Pages 仓库。
(ps: 要自行搜寻下(可参考) Github Pages 仓库 大略步骤就是 建设 bd3star.github.io 这个仓库 而后空着就能够 最初咱们编辑好的 html 页面及 css、js 文件都会放到这个仓库里 而后浏览器拜访 http://bd3star.github.io 就能够关上该仓库的 index.html 页面)
2.2,装置公布插件。
在 站点目录 中运行命令行输出 npm install hexo-deployer-git --save
后续博客的批改等等各种性能 都须要装置各种 插件 。这个对博客的帮忙是十分大的。
期待插件装置实现。
2.3,将本地目录与 Github 关联起来。
命令行输出 ssh-keygen -t rsa -C "邮箱地址"
,这里要输出之前注册 Github 时的邮箱,例如我之前注册用的是 example@163.com,那命令行就输出ssh-keygen -t rsa -C "example@163.com"
输出后始终回车。
关上 C:\Users\ 用户名
,文件夹内寻找.ssh
文件夹
关上 Github 点击右上角的头像 Settings 抉择 SSH and GPG keys
点击 New SSH key 将之前复制的内容粘帖到 Key 的框中。下面的 title 能够随便 点击 add 实现增加。
此时回到命令行。试一下是否跟 Github 连贯胜利。命令行输出 ssh -T git@github.com
,弹出的内容输出yes
,看到呈现Hi <account name>! You've successfully authenticated, but GitHub doesnot provide shell access.
阐明链接胜利。此处这个<account name>
应该是你 Github 的用户名。
2.4 批改 Hexo 站点的配置文件。
进入博客文件夹,找到 _config.yml
文件。这个是 博客配置文件 ,前面的批改会屡次用到它
批改一下 title 跟 url 等,url 批改为https://< 用户名 >.github.io
,例如我的用户名是 example 的话,就应该输出https://example.github.io
拉到文件最底部,在 deploy 上面增加一个 repo 项 一个 branch 项。填入如下代码:
type: git
repo: git@github.com:<Github 用户名 >/<github 用户名 >.github.io.git
branch: master
图中也是以用户名为 example 为例。填写实现后保留即可。
2.5 生成页面上传至 Github
命令行输出 hexo g
,此时 Hexo 会依据配置文件渲染出一套动态页面。
实现后输出hexo d
,此时会将之前渲染出的一系列文件上传至 Github。
如果报如下谬误
执行如下两行代码. 邮箱和名字可本人定义
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
# 生成动态页面
hexo g
# 将内容部署到网站 是 hexo deploy 的简写 也能够简写成 hexo -d
hexo d
# 启动服务器 是 hexo server 的缩写
hexo s
Tips:也能够间接输出 hexo g -d
间接实现渲染和上传。
上传实现后,关上 https://< 用户名 >.github.io 查看上传的网页。如果页面变成了之前本地调试时的样子,阐明上传以及实现了。没变的话查看一下上传时命令行窗口的信息有没有错误信息,没有的话革除一下浏览器缓存试试。
# 本地运行 能够用 debug 形式运行 不便调试报错信息
hexo s --debug
依据我的教训,除了第一次部署的时候,咱们会重点用到
hexo init
这个命令外,在平时写博客和公布过程中最罕用的就是:
hexo n <filename>
新建文章hexo s
启动服务器,在本地查看内容hexo g
生成动态页面hexo deploy
部署到网站以上四个步骤。
其实以上命令我感觉就足够了,文档里还有很多性能,但我在理论应用的过程中都还没有遇到。
3. 丑化篇 – 应用 Next 主题
当初咱们的博客网站是灰常的不美观的 能够应用增加一些官网提供的主题 这里举荐应用 Next 主题
3.1 下载主题
参考地址
3.1.1) 如果你相熟 Git,倡议你应用 克隆最新版本 的形式,之后的更新能够通过 git pull
来疾速更新,而不必再次下载压缩包替换。
在终端窗口下,定位到 Hexo 站点目录下(咱们的站点目录是 d://blog/bd3star)。应用 Git
checkout 代码:
$ cd bd3star
# 留神上面命令的前面 themes/next 指的是将代码 clone 下来放到 themes/next 目录下 以便于咱们配置
# 切记不要间接放在站点目录下
$ git clone https://github.com/theme-next/hexo-theme-next.git themes/next
3.1.2) 不相熟 Git 下载 能够从官网点击 releases-> 下载最新的 zip 包
将重命名后的文件夹搁置在 站点目录下的 themes 文件夹下
此时的目录构造如下:
3.2 启用主题
与所有 Hexo 主题启用的模式一样。当 克隆 / 下载 实现后,关上 站点配置文件 (即站点目录下的_config.yml
文件),找到 theme
字段,并将其值更改为 next
。
theme: next
到此,NexT 主题装置实现。下一步咱们将验证主题是否正确启用。在切换主题之后、验证之前,咱们最好应用 hexo clean
来革除 Hexo 的缓存。
3.3 验证主题
首先启动 Hexo 本地站点,并开启调试模式(即加上 --debug
),整个命令是 hexo s --debug
。在服务启动的过程,留神察看命令行输入是否有任何异样信息
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
此时即可应用浏览器拜访 http://localhost:4000
,查看站点是否正确运行。
当你看到站点的外观与下图所示相似时即阐明你已胜利装置 NexT 主题。这是 NexT 默认的 Scheme —— Muse
当初,你曾经胜利装置并启用了 NexT 主题。下一步咱们将要更改一些主题的设定,包含个性化以及集成第三方服务。
3.4 主题设定
抉择 Scheme
Scheme 是 NexT 提供的一种个性,借助于 Scheme,NexT 为你提供多种不同的外观。同时,简直所有的配置都能够 在 Scheme 之间共用。目前 NexT 反对三种 Scheme,他们是:
- Muse – 默认 Scheme,这是 NexT 最后的版本,黑白主调,大量留白
- Mist – Muse 的紧凑版本,整洁有序的单栏外观
- Pisces – 双栏 Scheme,小家碧玉似的清爽
Scheme 的切换通过更改 主题配置文件(主题配置文件是 站点目录 /themes/next/_config.yml),搜寻 scheme 关键字。你会看到有三行 scheme 的配置,将你需用启用的 scheme 后面正文 #
去除即可。
这里自行试一下 将第一个正文掉 删除第二个正文 应用下前面的几个外观 而后重启下 看下都啥样的
3.5 设置 语言
编辑 站点配置文件及主题的配置文件,将 language
设置成你所须要的语言。倡议明确设置你所须要的语言,例如选用简体中文,配置如下:
PS: 这里阐明下几个重要的门路 前面将不再重申
站点根门路: `D:\blog\bd3starblog`
站点配置文件门路 ` 站点根门路 \_config.yml`
主题配置文件门路 ` 站点根门路 \themes\next\_config.yml`
# 这里具体是 zh-Hans 还是 zh-CN 要看一下 themes/next/languages 外面有哪个文件
# 另一个须要留神的是 站点配置文件和主题配置文件都有这个 language
language: zh-Hans
hexo s --debug
重启服务 查看是否失效
这里都变成中文 配置语言实现
3.6 设置头像
头像显示在右侧区域的
编辑 主题配置文件,批改字段 avatar
,值设置成头像的链接地址。其中,头像的链接地址能够是:
地址 | 值 |
---|---|
残缺的互联网 URI | http://example.com/avatar.png |
站点内的地址 | 将头像搁置主题目录下的 source/uploads/ (新建 uploads 目录若不存在)配置为:avatar: /uploads/avatar.png 或者 搁置在 source/images/ 目录下 配置为:avatar: /images/avatar.png |
头像设置示例
avatar: http://example.com/avatar.png
3.7 增加分类
批改主题配置文件下的 menu 分支
能够看到增加胜利了 然而 咱们新增加的还不能点击关上 (点开报错 Cannot GET /tags/
) 不要慌,不能获取 tags,创立一个就 OK!
hexo new page 'name' # name 别离为 tags、categories
这样就创立了 pages。
在控制台输出以下命令:
hexo new page 'tags' #创立 tags 子目录
hexo new page 'categories' #创立 categories 子目录
在你的网站根目录上面的 source 文件夹会别离生成 tags、categories 以及 about 文件夹。
别离批改这 tags 和 categories 文件夹中的 index.md 文件,新增 type 属性,如下:
---
title: 标签
date: 2019-01-14 20:56:48
type: "tags" #新增加的内容
---
categories 的批改相似。
---
title: 文章分类
date: 2019-01-14 20:53:04
type: "categories" #这部分是新增加的
---
给模板增加分类属性 – 这样在咱们下次创立文章的时候hexo n test.md
会主动有分类和标签 咱们填写内容即可
当初咱们关上 scarffolds 文件夹里的 post.md 文件,给它的头部加上categories:
,这样咱们创立的所有新的文章都会自带这个属性,咱们只须要往里填分类,就能够主动在网站上造成分类了。
title: {{title}}
date: {{date}}
categories:
tags:
当你新建一篇博文的时候(咱们写的博文到创立到站点目录 /source/_posts 上面),减少上 tags 和 categories 属性值,就能在 tags 和 categories 界面检索到你的文章了。
留神: 给文章增加标签又两种写法:
- 第一种是相似数组的写法,把标签放在中括号
[]
里,用英文逗号隔开 - 第二种写法是用
-
短划线列出来
source/_posts/vim-node.md
---
layout: posts
title: vim-node.md
date: 2019-01-14 22:23:43
categories: 学习笔记
tags: [vi, vim]
---
# vim 笔记
## 01 学习 vi 的目标
此处省略一堆
这是 很多 很多 很多 内容
source/_posts/Hello World.md
---
layout: posts
title: Hello World.md
date: 2019-01-14 22:23:43
categories: helloworld
tags: [hello, world]
---
这是 helloworld 文件的内容 前面省略一大堆内容
重启后能够看到如下成果 标签和分类能够点击 也能够统计了 并且左侧也产生了一点变动
3.8 个性化定制
增加 fork me on github 在博客的左上角或者右上角
在 http://tholman.com/github-cor…://github.com/blog/273-github-ribbons 抉择适合的款式复制代码到
themes/next/layout/_layout.swig
,在<div class="headband"></div>
上面:
留神:须手动输出 style 搁置本人想要的地位
<!-- GitHub-start -->
<a href="https://github.com/bd3star" target="_blank">
<img style="position: absolute; top: 0; right: 0; border: 0;"
src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png" alt="Fork me on GitHub">
</a>
<!-- GitHub-end -->
3.9 动静背景
目前 NexT 主题最新的是 V6+ 版本,这个版本中能够有 4 种动静背景:
- canvas-nest
- three_waves
- canvas_lines
- canvas_sphere
这里仅演示 canvas-nest 动静背景
# 切换到主题门路下
$ cd themes/next
# 留神 前面 下载到 主题 next 门路下的 source/lib/canvas-nest 文件夹外面
$ git clone https://github.com/theme-next/theme-next-canvas-nest source/lib/canvas-nest
创立 footer.swig
文件 在 /source/_data
目录下
编辑文件footer.swig
<script type="text/javascript" color="0,0,255" opacity='0.7' zIndex="-2" count="99" src="dist/canvas-nest.js"></script>
在 NexT 中 _config.yml
,勾销正文footer
此custom_file_path
局部。
custom_file_path:
footer: source/_data/footer.swig
# 清理缓存
$ hexo clean
# 编译
$ hexo g
# 启动
$ hexo s
# 部署到 github 上
# $ hexo d
3.10 侧边栏社交小图标设置
关上主题配置文件 _config.yml
,搜寻social:
, ||
之后是在图标库中对应的图标。留神空格就行。
图标库链接:http://fontawesome.io/icons/
3.11 设置网站图标
默认的网站图标是一个 N,当然是须要制订一个图了,在网上找到图后,将其放在 /themes/next/source/images
外面,而后在主题配置文件中批改下图所示图片地位
实现成果
更多功能
前面还有各种优化 小伙伴们自行各种折腾吧 这里简略说下其余的方向大略都有哪些吧
- 设置首页不显示全文(只显示预览或者只显示概述)
- 首页在预览文章显示图片
- 暗藏页脚 Hexo 及 Next 显示
- 增加 RSS
- 实现点击呈现桃心成果
- 修改文章内链接文本款式
- 修改文章底部的那个带 #号的标签
- 在每篇文章开端对立增加“本文完结”标记
- 批改作者头像并旋转
- 博文压缩
- 批改 “ 代码块自定义款式
- 主页文章增加暗影成果
- 在网站底部加上访问量
- 增加热度
- 网站底部字数统计
- 增加 README.md 文件
- 设置网站的图标 Favicon
- 实现统计性能
- 增加顶部加载条
- 在文章底部减少版权信息
- 批改网页底部的桃心
- 文章加密拜访
- 增加 jiathis 分享 / 自定义图标按钮
- 博文置顶
- 批改字体大小
- 批改打赏字体不闪动
- 自定义鼠标款式
- 为博客加上萌萌的宠物
- DaoVoice 在线分割
- 点击爆炸成果
- ……