Hexo | (一)使用Hexo+Pages搭建个人博客-程序员宅基地

技术标签: git  运维  人工智能  

本篇主要介绍使用Hexo+Pages搭建个人博客的流程。使用 Hexo 博客框架搭建,解析markdown文章,生成静态页面,将页面托管到 github / coding 服务器上。github / coding 都有pages 服务,提供免费的静态网页托管和演示服务。

搭建步骤:

  1. 安装git,nodejs
  2. 安装hexo
  3. 本地搭建站点(线下访问)
  4. 部署到github/coding(线上访问)
  5. 站点配置

1. 安装hexo

1.安装Git 。安装完毕后,在任意文件夹下鼠标右击即可打开 Git Bash,输入命令,进行Git操作。

$ git version  # 查看Git版本,验证是否安装成功

2.安装Node.js。Hexo是基于nodejs的博客框架,而且nodejs还集成了npm包管理工具。

$ node -v    # 查看nodejs版本,验证是否安装成功

3.安装hexo:

$ npm install hexo --save   # 安装hexo
$ npm install hexo-cli -g   # 安装hexo命令行模式
$ hexo -v  # 查看hexo版本,验证是否安装成功

2. hexo建站

1.新建一个blog文件夹,打开blog文件夹,Git Bash。

2.hexo初始化:hexo init

3.安装依赖包:npm install

4.初始化完成,在blog下就会生成以下文件目录:

.
├── node_modules # 依赖模块
├── scaffolds    # 文章模板
├── source       # 用户源文件:页面,文章markdown文件
|   └── _posts   # 创建的文章
└── themes       # 主题
├── .gitignore   # git忽略文件信息
├── _config.yml  # 站点配置文件
├── package.json # 已安装插件映射表,下次只需npm install即直接安装表插件

5.hexo本地生成静态页面

$ hexo clean     # 清理本地静态文件;
$ hexo generate  # 生成静态页面,即public文件夹;
$ hexo server    # 启用hexo本地服务器;
# 注:Hexo 3.0 把服务器独立成了个别模块,您必须先安装 hexo-server 才能使用。
# hexo-server安装命令:npm install hexo-server --save

这时,打开浏览器在地址栏输入http://localhost:4000即可本地访问静态博客页面。

3. 配置github/coding pages

github和coding可以双线配置,也可以选择其中一个配置。推荐双线配置,coding用于国内访问速度较快,github用于境外访问。

1.登录github,New repository:yourname.github.io。其中yourname是你的github用户名,github强制后缀为github.io才能启用github pages服务。

2.登录coding,新建仓库:yourname.coding.me,打开静态pages服务。其中yourname是你的coding用户名,coding不强制后缀为coding.me。
 其中yourname是你的coding用户名,coding不强制后缀为coding.me

3.Git Bash配置git用户信息:

$ git config --global user.name "YourName"
$ git config --global user.email "YourEmail"

4.配置网络传输协议

在管理Git项目时,一般使用ssh或https作为安全传输协议,任选其一即可。

(1) SSH协议

①SSH秘钥:

$ ssh-keygen -t rsa -C "[email protected]"  # 生成rsa秘钥
$ cd ~/.ssh         # 进入虚拟目录ssh文件中
$ cat id_rsa.pub    # 显示id_rsa.pub文件内容

②复制秘钥至github/coding->用户setting->SSH keys,New SSH Key;

③验证是否添加成功

$ ssh -T [email protected]  # 验证github是否添加成功
$ ssh -T [email protected]  # 验证coding是否添加成功

④编辑站点配置文件_config.yml

deploy:
    type: git
    repo: 
        github: [email protected]:yourname/yourname.github.io.git 
        coding: [email protected]:yourname/yourname.coding.me.git 
    branch: master

(2) HTTPS协议

①直接编辑站点配置文件_config.yml

deploy:
    type: git
    repo: 
        github: https://github.com/liziczh/liziczh.github.io.git
        coding: https://git.coding.net/liziczh/liziczh.coding.me.git
    branch: master

②验证github/coding用户名和密码。

4. 部署到github/coding

1.安装Git部署插件:

$ npm install hexo-deployer-git --save

2.部署:

$ hexo clean     # 清理本地静态文件;
$ hexo generate  # 生成静态页面,即public文件夹;
$ hexo deploy    # 部署到github/coding;

3.部署完毕,站点文件目录如下:

.
├── .deploy_git  # (新增)hexo deploy 生成的git部署文件
├── public       # (新增)hexo generate 生成的静态文件
├── db.json      # (新增)hexo generate 生成的数据
├── node_modules # 依赖模块
├── scaffolds    # 文章模板
├── source       # 用户源文件:页面&文章的markdown文件
|   └── _posts   # 文章
└── themes       # 主题
├── .gitignore   # git时需忽略文件
├── _config.yml  # 站点配置文件
├── package.json # 已安装插件映射表,下次只需npm install即直接安装表插件

站点搭建完毕,打开浏览器在地址栏输入以下链接可随时访问自己的博客了。

5. 站点配置

区分配置文件:

配置文件 路径
站点配置文件 D:/blog/_config.yml
主题配置文件 D:/blog/themes/你的主题/_config.yml

打开站点配置文件blog/_config.yml,自行发挥,配置完毕,重新部署 hexo g -d

# 注意:yaml语言使用缩进表示层级关系。
# 注意:键值对中的冒号(:)后面有一个半角空格。

# 网站
title: #网站标题
subtitle: #网站副标题
description: #网站描述
keywords: #关键字
author: #你的名字,文档作者
language: #网站的语言
timezone: #时区,中国:Asia/Shanghai
# 网址
url: https://yoursite.com  #你的网址url
root: /
permalink: :year/:month/:day/:title.html #文章永久链接
permalink_defaults:
# 主题
theme: landscape  # 主题文件的名称
# 部署
deploy:
  type: git
  repo: 
    github: [email protected]:yourname/yourname.github.io.git  
    coding: [email protected]:yourname/yourname.coding.me.git 
  branch: master

详细配置请参考hexo配置,此处不再赘述。

6. 主题变更

1.hexo默认主题为landscape,可以到Themes|Hexo选择自己喜欢的主题,复制主题在github仓库的url。
clone theme
2.在themes文件夹下,打开GitBash,克隆主题至themes文件夹中。

$ git clone https://github.com/theme-next/hexo-theme-next.git

克隆之后,记住删除themes\你的主题名中的.git.github.gitignore等Git仓库文件。

3.更改站点配置文件_config.yml

theme: 主题文件名

4.编辑结束,重新部署:

$ hexo clean  # 清理缓存文件;(不清理也可以部署,推荐先清理)
$ hexo g -d   # 生成静态页面后直接部署;

部署完毕之后,进入以下链接刷新就可以看到你的新主题了。

7. 写作

1.新建:在blog文件夹下,打开Git Bash,新建文章:

$ hexo new post "title"

2.编辑:在source/_post下可以编辑你新建的文章。

3.编辑完毕,重新部署:

$ hexo clean  # 清理缓存文件;(不清理也可以部署,推荐先清理)
$ hexo g -d   # 生成静态页面后直接部署;

8. 文档的Front-matter

Front-matter 是文档最上方以 --- 分隔的区域,用于指定文档一些的参数。

---
title: 文章标题
date: yyyy-MM-dd hh:mm:ss
tags: 
categories: 
comments: true
---
# 注意:键值对中的冒号(:)后面有一个半角空格。
参数 描述
layout post
page
draft
false
文章【默认值】
页面
草稿
不处理
title 文本 标题
date yyyy-MM-dd hh:mm:ss 文件建立日期
update yyyy-MM-dd hh:mm:ss 文件更新日期
comments true
false
开启文章评论功能,默认true
tags 标签(只适用于post)
categories 分类(只适用于post)
permalink url 永久链接

不要处理我的文章:将文章Front-Matter中的layout: false

9. 文章的[标签]与[分类]

只有文章(post)支持[标签]和[分类]。

1.添加[tags]、[categoies]、[about]页面:

$ hexo new page "tags"
$ hexo new page "categories"
$ hexo new page "about"

2.在source文件夹中找到新建页面:
①编辑tags.md:添加layout:"tags"
②编辑categories.md:添加layout:"categories"
③编辑about.md,自行发挥。

3.匹配站点配置文件

# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories

4.匹配主题配置文件menu

menu:
  home: /
  tags: /tags
  categories: /categories
  archives: /archives
  about: /about

5.Front-matter中的[tags]写法:

tags:
- tag_1
- tag_2
# 标签之间相互独立

6.Front-matter中的[categories]写法:

categories: 
- 运动
- [运动, 球类运动]
- [运动, 球类运动, 网球]
# 类别存在层级关系

重新部署之后,个人博客的基本功能,写作,标签,分类,归档就全部实现了。

10. 绑定自己的域名

若不喜欢域名后缀为github.io或coding.me,可以自己注册一个域名进行绑定。

1.域名注册:在阿里云/腾讯云等注册一个域名。

2.添加CNAME文件:在blog\source下,添加一个CNAME文件 (无文件后缀),内容为你的域名example.com

3.Github Pages域名解析:
①添加四个A记录:主机记录为@,记录值为185.199.108.153185.199.109.153185.199.110.153185.199.111.153
②添加一个CNAME记录:主机记录为www,记录值为yourname.github.io

4.Coding Pages域名解析:
①打开控制台ping pages.coding.me,获取IP。
②添加一个A记录:主机记录为@,记录值为ping得的IP。
③添加一个CNAME记录:主机记录为www,记录值为pages.coding.me

dns

由于国内访问Github Pages速度较慢,所以我将Coding Pages解析线路设为默认,供国内访问;将Github Pages解析线路设为境外,供国外访问。

Chrome无法访问链接问题

问题描述:部署页面之后,Chrome无法访问链接,提示你的连接不是私密连接......
解决方案:前往chrome://net-internals/#hsts,在Delete domain中输入无法访问的网页地址。

附:hexo常用命令

命令 描述
hexo version 显示 Hexo 版本
hexo init [folder] 新建一个网站
若未设置folder,默认为当前文件夹;
hexo new [layout] "title" 新建一篇文档,文档布局由layout决定
hexo clean 清理缓存文件
hexo generate
hexo g
生成静态页面
hexo server
hexo s
启用服务器,http://localhost:4000
hexo deploy
hexo d
部署文件
hexo g -d
hexo d -g
生成静态文件后直接部署
部署之前先生成静态文件

若想了解更多关于hexo命令的介绍,请参考指令 | hexo

转载于:https://www.cnblogs.com/liziczh/p/9318652.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30460489/article/details/98582177

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签