博客搭建基础

整个配置下来后最大的感触是,一定要看文档,文档里基本就把所有的坑填了。别人的教程,包括我这个教程,都是有很多错误的,我在配置里踩了很多坑,最后都是看教程才解决的。

hexo文档
next文档
github域名pages
Coding域名Pages

这些其实已足够,后面的阅读全文根本不用打开。

环境配置

此处建议参考hexo官方文档,准确省事儿。

  1. 安装node.js。
    • 通过在命令行中输入npm -v,观察有无版本号来检测安装是否成功。
  2. git相关环境配置。
    • 注册一个github账号
    • 在github上创建一个仓库,注意仓库名是你自己的用户名.github.io
    • 官网上下载git安装。通过在命令行中输入git 来检测安装是否成功
    • 在桌面空白处鼠标右键选择Git Bash Here,打开的命令行中输入
      git config --global user.name "你的GitHub用户名"
      git config --global user.email "你的GitHub注册邮箱"
    • 生成ssh秘钥文件,ssh-keygen -t rsa -C "你的GitHub注册邮箱"直接按三个回车。找到生成的id_rsa.pub文件,该文件一般在C:\Users\你的电脑名.ssh文件夹中。记事本打开该文件,复制全部内容。
    • 打开github的“settings-SSH and GPG keys”,右上角New SSH Key,title随意,内容为刚复制的内容,点击 add SHH Key结束。
    • 回到git bash命令行,输入ssh git@qithub.com,若出现You have successfully之类的字眼就代表成功,其他信息不用去管。

博客配置

此处依然是建议从hexo官方文档

博客安装&预览
  • 安装hexo。新建一个文件夹hexo,在文件夹空白处鼠标右键选择Git Bash Here,输入
    npm install hexo-cli -g
  • 初始化博客。输入hexo init blog
  • 安装必备依赖。npm install
  • 新建博文,生成博文,打开预览。hexo n "文章标题",hexo g,hexo s -p 5000

    操作完成后,在浏览器打开localhost:5000,就可以看到自己的博客。

推送网站
  • 在刚初始化的blog目录下面,找到_config.yml文件,用自己的编辑器(sublimetext)打开,首先在最后面deploy下面加入 github: git@github.com:你的GitHub用户名 你的GitHub用户名.github.io.git 注意.第一个冒号之后必须添加半角空格,这是yml文件格式;第一个冒号后面的不能用其他教程上的https格式的链接,那是旧的版本。
  • 安装部署插件.npm install hexo-deployer-git --save
  • 进行部署,输入三条命令。hexo clean,hexo g,hexo d
  • 打开网站”你的用户名.github.io”就可以看到自己的博客内容了。
绑定域名

域名的作用是帮助更好的记忆网站,它的工作过程是由DNS服务器域名解析到提供页面的github解析页上。绑定域名过程如下。

  • 去域名供应商上注册域名,阿里云、腾讯云、Godday都可以。
  • 打开实名认证后的域名,添加一条A记录,一条CNAME记录。A记录建议主机记录为@,解析线路选择境外,记录值为185.199.111.153,注意这里是最新的github的ip地址,其他的都是错误的。CNAME记录的主机记录设置为www,解析线路选择在境外,记录值为你的GitHub用户名.github.io
  • 在安装目录下(对于本例,就是hexo文件夹),用notepad++、SublimeText等建立一个All files类型文件,文件名为CNAME,文件内容为你的域名,例如iamwxy.com,不建议带www.
  • hexo g,hexo d进行部署.
  • 打开github中自己建立的仓库的Settings页面,找到GitHub Pages,在custom domin中填入自己的域名,点击Enforce,HTTPS。大功告成。
主题类型

建议使用next,确实有很多优势,了解具体的next功能配置,以及学习如何使用,请参考next官网,遇到任何问题,可通过下方评论与我交流。

自己的_config文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Site
title: 吴旭阳的博客
subtitle: 博观而约取 厚积而薄发
description: 生活随笔 高效学习 自动驾驶 数据分析 交叉领域 读书笔记
signature: 生活随笔 高效学习 自动驾驶 数据分析 交叉领域 读书笔记
keywords:
author: 老肥羊
language: zh-Hans
timezone:

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://iamwxy.com
root: /
permalink: :title.html
permalink_defaults:

# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: lang
skip_render:

# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
filename_case: 0
render_drafts: false
post_asset_folder: true
relative_link: false
future: true
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace:

# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
path: ''
per_page: 10
order_by: -date

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss

# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next

#local_search
search:
path: search.xml
field: post
format: html
limit: 10000

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
repository:
github: git@github.com:sheepwxy/sheepwxy.github.io.git
coding: git@git.coding.net:yanziiz/yanziiz.coding.me.git
branch: master
- type: baidu_url_submitter

#SEO
sitemap:
path: sitemap.xml

baidusitemap:
path: baidusitemap.xml
0%