今天在自定义自己github首页的时候,翻看自己GitHub项目,忽然发现了那会刚开始做前端的时候搭建的博客,好几年前了,都差不多忘记了,回想起那会搭建的时候也是费了挺大劲,最近一年也会偶尔在CSDN写博客记录点东西,那便记录一下怎么利用GitHub和hexo来搭建一个属于自己的博客网站,顺便把曾经搭建的博客网站捡起来再玩一玩。
用Hexo + GitHub 搭建自己的博客网站
什么是hexo
官方给我们的描述是快速、简洁且高效的博客框架。Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,支持 Markdown 的所有功能,一键部署,只需要一个指令就可以部署到github pages
或者其他平台,支持多种模板引擎和工具。
要用GitHub 和 hexo 搭建个人的博客网站,首先必须有自己的github账号没什么问题吧,其次需要提前准备的环境:下载安装git
, nodeJs
,这个怎么去安装我想应该不用说了吧(真不知道的话分别百度nodejs, git去官网点击下载安装即可)。准备好环境后我们还要安装 hexo
:
npm install hexo-cli -g
前面安装了nodejs
,现在就i可以直接用 npm
安装 hexo
,同时按下 window + R
键,输入 cmd
打开终端,执行上面的命令,等待安装完成,完成以后可用
hexo -v
查看版本,同时也是验证是否安装完成。
如上图说明我们已经安装完成了,然后我们来初始化我们的hexo项目:
hexo init blog
然后进入你的项目中,安装依赖:
cd blog // 进入项目中
npm install // 安装依赖包
完成后你的项目目录应该包含:
- node_modules:依赖包
- scaffolds:生成文章的模板
- source:存放你写的文章
- themes:主题
- _config.yml:博客的配置文件
hexo server
打开hexo的服务,在浏览器输入http://localhost:4000/就可以打开你的博客了。
GitHub创建个人仓库
前面说过你要有自己的 github
账号,如果你还没有,去注册一个吧,注册完成后登录到GitHub页面,你会看到一个 New repository
, 创建一个和你用户名同名的仓库,后面加上.github.io
, 只有这样将来部署到 Github Page 的时候, 才会被识别, 也就是 用户名.github.io, 我已经创建过了,再次创建会提示 The repository **xxx.github.io** already exists on this account.
,表示我这个账户已经创建过这个仓库。
如果你已经创建完成了和你注册GitHub同名的仓库,下面我们来生成ssh密钥:
在你项目文件夹点击鼠标右键,点击 git base hero
, 打开你的 git base 后,在base中分别输入:
git config --global user.name "yourname" // yourname输入你的github用户名
git config --global user.email "youremail" // youremail输入你GitHub的邮箱
可以检查一下你有没有输对
git config user.name
git config user.email
配置GitHub ssh密钥
创建ssh密钥,一路回车,可以不设置密码
ssh -keygen -t rsa -C "youremail"
生成完成后,进入你的用户名文件夹下,找到.ssh
文件夹,里面有两个文件。这个就是密钥,其中 id_rsa
是你电脑的私人密钥,id_rsa.pub
是公共密钥。我们要做的就是把公钥配置到GitHub中,这样当你访问链接自己的GitHub账号时,它就会根据公钥配到你的私钥,当能达到匹配的时候,你就能通过git上传你的项目到GitHub中了。
下面我们来配置自己的ssh密钥,进入你的GitHub页面,点击右上角你的账号头像,在下拉菜单中找到 settings
菜单,点击进入设置页面,然后在设置页面左边的菜单分类中找到 Access
下面的 SSH and GPG keys
菜单,然后点击 New SSH key
按钮,把你本地创建的公钥复制后粘贴到key
的输入框中, title
随便输都行,然后保存。在gitbase中查看是否成功
ssh -T git@github.com
将hexo部署到GitHub
如何将hexo和github关联起来呢,那就要把hexo生成文章部署到GitHub上,打开站点配置文件_config.yml
, 翻到最后,修改配置:xxx为你的github账户
deploy:type: gitrepo: https://github.com/xxx/xxx.github.io.gitbranch: master
要完成部署操作,你还需要安装 deploy-git
:
npm install hexo-deployer-git --save
然后我们需要了解一下hexo的常用命令:
hexo init [flolder]
hexo new [layout] <title>
hexo generate
hexo publish [layout] <filename>
hexo server
hexo deploy
hexo clean
hexo generate
顾名思义&#xff0c;生成静态文章&#xff0c;可以用 hexo g
缩写
hexo deploy
部署文章&#xff0c;可以用hexo d
缩写
当然你也可以用 hexo g -d
一步完成部署。
如果在执行部署网站的时候出现下列错误: ”Software caused connection abort fatal: Could not read from remote repository.”, 很可能是dns解析问题&#xff0c;用 ssh -T git&#64;github.com
在gitbase中检测是否正常&#xff0c;打开cmd输入ping github.com
是否能连接&#xff0c;配置本地的hosts
文件&#xff0c; 文件路径 c:\windows\system32\drivers\etc\hosts
,在末尾添加上&#xff1a;
140.82.112.4 github.com git
140.31.16.184 github.global.ssl.fastly.net
gitbase 再次ssh -T git&#64;github.com
成功。
hexo的基本配置
网站 (# site)
参数 | 描述 |
---|
title | 网站标题 |
subtitle | 网站的副标题 |
description | 网站描述 |
keywords | 网站的关键词。支持多个关键词。 |
author | 作者名字 |
language | 网站使用的语言。对于简体中文用户来说&#xff0c;使用不同的主题可能需要设置成不同的值&#xff0c;请参考你的主题的文档自行设置&#xff0c;常见的有 zh-Hans 和 zh-CN 。 |
timezone | 网站时区。Hexo 默认使用您电脑的时区。般的&#xff0c;对于中国大陆地区可以使用 Asia/Shanghai 。 |
网址(#URL)
参数 | 描述 | 默认值 |
---|
url | 网址, 必须以 http:// 或 https:// 开头 | |
root | 网站根目录 | / |
permalink | 文章的 永久链接 格式 | :year/:month/:day/:title/ |
permalink_defaults | 永久链接中各部分的默认值 | |
pretty_urls | 改写 permalink 的值来美化 URL | |
pretty_urls.trailing_index | 是否在永久链接中保留尾部的 index.html &#xff0c;设置为 false 时去除 | true |
pretty_urls.trailing_html | 是否在永久链接中保留尾部的 .html , 设置为 false 时去除 (对尾部的 index.html 无效&#xff09; | true |
我们在配置文件中将url改成自己的网站域名&#xff0c;permalink是我们生成文章时候的那个链接格式。链接的变量很多&#xff0c;可以点击上面的永久链接去官方文档查找配置。
目录#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:
如果您刚刚开始接触 Hexo&#xff0c;通常没有必要修改这一部分的值。
文章#Writing
new_post_name: :title.md
default_layout: post
titlecase: false
auto_spacing: false
external_link:enable: true field: site exclude: &#39;&#39;
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight: enable: trueline_number: trueauto_detect: falsetab_replace: &#39;&#39;wrap: truehljs: false
prismjs: enable: falsepreprocess: trueline_number: truetab_replace: &#39;&#39;
分类 & 标签
default_category: uncategorized
category_map:
tag_map:
分页
per_page: 10
pagination_dir: page
主题
通常情况下&#xff0c;Hexo 主题是一个独立的项目&#xff0c;并拥有一个独立的 _config.yml
配置文件。
除了自行维护独立的主题配置文件&#xff0c;你也可以在其它地方对主题进行配置。
hexo官网有300多个主题&#xff0c;在这里下载你喜欢的主题进行修改就可以了。直接在github链接上下载下来&#xff0c;然后放到theme
文件夹下就行了&#xff0c;然后再在刚才说的配置文件中把theme
换成那个主题文件夹的名字&#xff0c;它就会自动在theme
文件夹中搜索你配置的主题。
我们也可以自定义自己的主题&#xff0c;或者修改已经安装的主题的样式。
跳转 我的博客 查看&#xff01;