资讯详情

Hexo+Github博客搭建教程

Hexo Github建立博客教程

请注意,本文篇幅较长,主要针对新手,每一步都非常详细,所以可能看起来更冗长,所以建议基础更好的朋友根据目录选择他们感兴趣的部分跳跃,不要看文章,先喷!*[Math Processing Error]⊙o⊙*。 随意复制教程内容,请添加参考链接,谢谢!

??前言

??前置想法

去年,我在博客园注册了我的第一个博客。当时,我的初衷是把它作为我的在线笔记本,做学习记录,并分享它

事实上,使用第三方提供的博客服务非常方便。现在市场上有很多博客网站提供类似的服务,比如

CSDN,博客园、简书等平台可以直接在上面发布,用户互动做得很好,百度也可以搜索写的文章。

这一点相对不自由,会受到平台的各种限制和恶心广告,缺乏个性化。购买域名和服务器博客

成本太高了,不仅说这些购买成本,只是努力建立这样一个网站,而且定期维护,因为

我们大多数人没有这样的精力和时间。那么,我们能定制一个我们喜欢的个性化博客吗?

不用花太多钱?

??后置选择

这导致了基于开源框架构建博客的第三种选择,然后直接在那里github page在平台上托管我们的博客。

可以安心写作,不需要定期维护。基于这个想法,我开始在今年8月初暑假在家建立第一个属于自己的

我的独立博客已经断断续续了近一个星期,现在看起来有点像了。我想很多朋友也应该想过建立自己

己的博客,当然,网上也有一堆详细教程。写这篇博客的目的大概有两个,第一个是当做自己的搭建记录,方

以后可以随时查看提示进行修改。二是总结具体的施工步骤和一些支持个性化定制的博客源代码修改

更改教程,分享这些修改经验,当然,更个性化的操作需要你在未来的基础上慢慢触摸

索,有些地方写太好的地方也希望看到小伙伴多多包容。

:爱笑的Gao欢迎个人博客支持访问。

本博客基于Hexo,所以首先要了解我们建立博客的框架。Hexo基于高效的静态网站生成框架Node.js,快速、简单、强大的功能是建立博客的首选框架。你可以进入hexo官网详细查看,因为Hexo创始人是台湾人,对中文很友好,可以选择中文查看。Hexo,可直接使用Markdown语法写博客。相信很多朋友都写过项目。README.md文件,是的,就是这个格式!写完之后,上传生成的网页只需两三个命令即可。github或者coding等待代码管理托管平台,然后其他人可以浏览您的博客网页。这很简单吗?您不需要关心网页源代码的具体生成细节,只需要仔细写您的博客文章内容。

简单总结: Hexo ,产品成熟,使用简单,功能强大,插件资源丰富,如发布背景 ,支持搜索系统、评论系统Markdown嵌入语法、相册功能等类似诉求,但也需要自己折腾,后续我们一步一步介绍。

  • 第一部分:hexo初级建筑和部署github page以及个人域名的绑定。
  • 第二部分:hexo基本配置,更换主题,实现多终端工作coding page部署实现国内外分流
  • 第三部分:hexo添加包括搜索在内的各种功能SEO,阅读统计、访问统计和评论系统等。

??第一部分 搭建


hexo初级建筑和部署github page以及个人域名的绑定。

Hexo搭建步骤

  • 1.安装Git
  • 2.安装Node.js
  • 3.安装Hexo
  • 4.GitHub创建个人仓库
  • 5.生成SSH添加到GitHub
  • 6.将hexo部署到GitHub
  • 7.设置个人域名
  • 8.发布文章

1. 安装Git


上传上传本地网页文件到github上面,需要使用工具———Git[下载地址]。Git它是世界上最先进的分布式版本控制系统,从小到大都能有效、高速地处理项目版本管理。Git非常强大,建议大家了解一下。廖雪峰先生Git教程写得很好,你可以看看。Git教程

**windows:**到git官网上下载.exe文件,Download git,安装选项仍然默认,但在添加路径时选择最后一步Use Git from the Windows Command Prompt,这样我们就可以直接在命令提示符里打开git了。

顺便说一句,windowsgit安装后可直接使用git bash敲命令,不用自带。cmdcmd有点难用。

**linux:**对linux太简单了,因为最早的git就是在linux上编写的,只需要一行代码

sudo apt-get install git 

安装完成后,输入命令提示符git --version检查版本验证是否安装成功。

2. 安装nodejs


Hexo是基于node.js编写,需要安装node.js和里面的npm工具。

**windows:**可以下载稳定版或者最新版Node.js,安装选项全部默认,一路点击Next。 最后,安装后按压Win R打开命令提示符,输入node -vnpm -v,若出现版本号,则安装成功。

**linux:**命令行安装:

sudo apt-get install nodejs sudo apt-get install npm 

但是,不建议安装命令有时有问题,建议直接安装nodejs官网下载,如下所示:

在这里插入图片描述

然后解压到您指定的文件夹,例如,我解压到我的系统 C:\Program Files\nodejs\New Folder如图所示:

注意压缩包是.tar.xz格式需要两次解压

配置环境变量

sudo vim /etc/profile

Bash

复制下面两行到刚打开的profile文件最底部(注意node的安装地址/home/shw/MySoftwares/node-v12.8.0-linux-x64换成自己的):

export NODE_HOME=/home/shw/MySoftwares/node-v12.8.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin

Bash

保存后退出,再执行下面命令将环境变量生效:

source /etc/profile

Bash

将目录软链接到全局环境下(命令后面的/usr/local/bin/node是固定的)

sudo ln -s /home/shw/MySoftwares/node-v12.8.0-linux-x64/node /usr/local/bin/node
sudo ln -s /home/shw/MySoftwares/node-v12.8.0-linux-x64/npm /usr/local/bin/npm

这样安装好了以后使用npm安装的包(比如:ionic serve),使用包的命令时可能会提示找不到命令,没关系,在用户目录下终端执行下面命令*[Math Processing Error]固定写法*:

echo -e "export PATH=$(npm prefix -g)/bin:$PATH" >> ~/.bashrc && source ~/.bashrc

这样我们在所有用户下,都可以使用npm,也可以使用npm安装的包的命令。成功的将nodejs安装并配置到全局环境下。

安装完后,打开命令行终端,输入:

node -v
npm -v

检查一下有没有安装成功

如果没有梯子的话,可以使用阿里的国内镜像进行加速。

npm config set registry https://registry.npm.taobao.org

3. 安装Hexo


前面gitnodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹MyBlog,用来存放自己的博客文件,然后cd到这个文件夹下(或者在这个文件夹下直接右键git bash打开)。

比如我的博客文件都存放在D:\Study\MyBlog目录下。

在该目录下右键点击Git Bash Here,打开git的控制台窗口,以后我们所有的操作都在git控制台进行,就不用Windows自带的cmd了。

定位到该目录下,输入npm install -g hexo-cli安装Hexo。可能会有几个报错,无视它就行。

npm install -g hexo-cli

安装完后输入hexo -v验证是否安装成功。

至此hexo就安装完了。

接下来初始化一下hexo,即初始化我们的网站,进入我们主题根目录Hexo,输入hexo init初始化文件夹

hexo init 

这个Hexo可以自己取什么名字都行,然后,接着输入npm install安装必备的组件。

新建完成后,指定文件夹Hexo目录下有:

  • node_modules: 依赖包
  • public:存放生成的页面
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章
  • themes:主题**
  • _config.yml: 博客的配置文件**

这样本地的网站配置也弄好啦,输入hexo g生成静态网页,然后输入hexo s打开本地服务器,

hexo g
hexo server(或者简写:hexo s))

ctrl+c关闭本地服务器。

4. 注册Github账号创建个人仓库


接下来就去注册一个github账号,用来存放我们的网站。大多数小伙伴应该都有了吧,作为一个合格的程序猿(媛)还是要有一个的。

打开https://github.com/,新建一个项目仓库New repository,如下所示:

要创建一个和你用户名相同的仓库,后面加.[http://github.io,只有这样,将来要部署到GitHub page的时候,才会被识别,也就是http://xxxx.github.io,其中xxx就是你注册GitHub的用户名。例如我的:http://gaoziman.github.io

5. 生成SSH添加到GitHub


生成SSH添加到GitHub,连接Github与本地。 右键打开git bash,然后输入下面命令:

git config --global user.name "yourname"
git config --global user.email "youremail"

注意:第一次使用git后需要将用户名和邮箱进行初始化

这里的yourname输入你的GitHub用户名,youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户。例如我的:

git config --global user.name "gaiolan"
git config --global user.email "2942892675@qq.com"

可以用以下两条,检查一下你有没有输对

git config user.name
git config user.email

然后创建SSH,一路回车

ssh,简单来讲,就是一个秘钥,其中,id_rsa是你这台电脑的私人秘钥,不能给别人看的,id_rsa.pub是公共秘钥,可以随便给别人看。把这个公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。

ssh-keygen -t rsa -C "youremail"

这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹。或者git bash中输入

cat ~/.ssh/id_rsa.pub

将输出的内容复制到框中,点击确定保存。

打开github,在头像下面点击settings,再点击SSH and GPG keys,新建一个SSH,名字随便取一个都可以,把你的id_rsa.pub里面的信息复制进去。如图:

git bash输入ssh -T git@github.com,如果如下图所示,出现你的用户名,那就成功了。

6. 将hexo部署到GitHub


这一步,我们就可以将hexoGitHub关联起来,也就是将hexo生成的文章部署到GitHub上,打开博客根目录下的_config.yml文件,这是博客的配置文件,在这里你可以修改与博客配置相关的各种信息。

修改最后一行的配置:

deploy:
  type: git
  repository: https://github.com/gaoziman/gaoziman.github.io.git
  branch: master

repository修改为你自己的github项目地址即可就是部署时,告诉工具,将生成网页通过git方式上传到你对应的链接仓库中。

这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub

npm install hexo-deployer-git --save

然后

hexo clean
hexo generate
hexo deploy

其中 hexo clean清除了你之前生成的东西,也可以不加。 hexo generate顾名思义,生成静态文章,可以用 hexo g缩写 ,hexo deploy部署文章,可以用hexo d缩写

注意deploy时可能要你输入usernamepassword

得到下图就说明部署成功了,过一会儿就可以在http://yourname.github.io 这个网站看到你的博客了!!

7. 设置个人域名


现在你的个人网站的地址是yourname.github.io,如果觉得这个网址逼格不太够,这就需要你设置个人域名了。但是需要花钱。

首先你得购买一个专属域名,xx云都能买,看你个人喜好了。

这篇以腾讯云为例,阿里云官网购买:

然后实名认证后进入腾讯云控制台,点云解析进去,找到你刚买的域名,点进去添加两条解析记录,如下图所示:

然后打开你的github博客项目,点击settings,拉到下面Custom domain处,填上你自己的域名,保存:

这时候你的项目根目录应该会出现一个名为CNAME的文件了。如果没有的话,打开你本地博客/source目录,我的是D:\Study\MyBlog\source,新建CNAME文件,注意没有后缀。然后在里面写上你的域名,保存。最后运行hexo ghexo d上传到github

过不了多久,再打开你的浏览器,输入你自己的专属域名,就可以看到搭建的网站啦!

8. 写文章、发布文章


首先在博客根目录下右键打开git bash,安装一个扩展npm i hexo-deployer-git

然后输入hexo new post "我的第一篇博客",新建一篇文章。

然后打开D:\Hexo\source\_posts的目录,可以发现下面多了一个文件夹和一个.md文件,一个用来存放你的图片等数据,另一个就是你的文章文件啦。 你可以会直接在vscode里面编写markdown文件,可以实时预览,也可以用用其他编辑md文件的软件的工具编写。 编写完markdown文件后,根目录下输入hexo g生成静态网页,然后输入hexo s可以本地预览效果,最后输入hexo d上传到github上。这时打开你的github.io主页就能看到发布的文章啦。

到这儿基本第一部分就完成了,已经完整搭建起一个比较简陋的个人博客了,接下来我们就可以对我们的博客进行个性化定制了。

🌈第二部 定制主题

我们要定制自己的博客的话,首先就要来了解一下Hexo博客的一些目录和文件的作用,以及如何平滑更换漂亮的主题模板并加入自己的定制源代码实现个性化定制

1. Hexo相关目录文件

1.1 博客目录构成介绍


我们博客的目录结构如下:

- node_modules
- public
- scaffolds
- source
    - _data
    - _posts
    - about
    - archives
    - categories
    - friends
    - tags
- themes

node_modulesnode.js各种库的目录,public是生成的网页文件目录,scaffolds里面就三个文件,存储着新文章和新页面的初始设置,source是我们最常用到的一个目录,里面存放着文章、各类页面、图像等文件,themes存放着主题文件,一般也用不到。

我们平时写文章只需要关注source/_posts这个文件夹就行了。

1.2 hexo基本配置


在文件根目录下的_config.yml,就是整个hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。

1.2.1 网站

参数描述title网站标题subtitle网站副标题description网站描述author您的名字language网站使用的语言timezone网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说:America/New_York, Japan, 和 UTC

其中,description主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author参数用于主题显示文章的作者。

1.2.2 网址

参数描述url网址root网站根目录 permalink文章的永久链接格式permalink_defaults永久链接中各部分的默认值

在这里,你需要把url改成你的

permalink,也就是你生成某个文章时的那个链接格式。

比如我新建一个文章叫temp.md,那么这个时候他自动生成的地址就是http://yoursite.com/2022/05/08/temp

以下是官方给出的示例,关于链接的变量还有很多,需要的可以去官网上查找 永久链接 。

参数结果:year/:month/:day/:title/2019/08/10/hello-world :year-:month-:day-:title.html 2019-08-10-hello-world.html :category/:titlefoo/bar/hello-world

再往下翻,中间这些都默认就好了。

theme: landscap

theme就是选择什么主题,也就是在themes这个文件夹下,在官网上有很多个主题,默认给你安装的是lanscape这个主题。当你需要更换主题时,在官网上下载,把主题的文件放在themes文件夹下,再修改这个主题参数就可以了。

1.2.3 Front-matter

Front-mattermd文件最上方以 ---分隔的区域,用于指定个别文件的变量,举例来说:

title: Hexo+Github博客搭建记录
date: 2022-05-08 15:15:44

下是预先定义的参数,您可在模板中使用这些参数值并加以利用。

参数描述layout布局title标题date建立日期updated更新日期comments开启文章的评论功能tags标签(不适用于分页)categories分类(不适用于分页)permalink覆盖文章网址

其中,分类和标签需要区别一下,分类具有顺序性和层次性,也就是说FooBar不等于BarFoo;而标签没有顺序和层次。

---
title: Hexo+Github博客搭建记录
date: 2022-05-08 15:15:44
author: 爱笑的Gao
img: /medias/banner/7.jpg
coverImg: /medias/banner/7.jpg
top: true
cover: true
toc: true
password: 5f15b28ffe43f8be4f239bdd9b69af9d80dbafcb20a5f0df5d1677a120ae9110
mathjax: true
summary: 这是你自定义的文章摘要内容,如果这个属性有值,文章卡片摘要就显示这段文字,否则程序会自动截取文章的部分内容作为摘要
tags:
- Hexo
- Github
- 博客
categories:
- 软件安装与配置
---

1.2.4 layout(布局)


当你每一次使用代码

hexo new XXX

它其实默认使用的是post这个布局,也就是在source文件夹下的_post里面。

Hexo有三种默认布局:postpagedraft,它们分别对应不同的路径,而您自定义的其他布局和post相同,都将储存到source/_posts文件夹。

而new这个命令其实是:

hexo new [layout] <title>

只不过这个layout默认是post罢了。

如果你想另起一页,那么可以使用

hexo new page newpage

系统会自动给你在source文件夹下创建一个newpage文件夹,以及newpage文件夹中的index.md,这样你访问的newpage对应的链接就是http://xxx.xxx/newpage

draft是草稿的意思,也就是你如果想写文章,又不希望被看到,那么可以

hexo new draft newdraft

这样会在source/_draft中新建一个newdraft.md文件,如果你的草稿文件写的过程中,想要预览一下,那么可以使用

hexo server --draft

在本地端口中开启服务预览。

如果你的草稿文件写完了,想要发表到post中,

hexo publish draft newdraft

就会自动把newdraft.md发送到post中。

2. 更换主题


我们在了解Hexo博客文件基础之后,知道主题文件就放在themes文件下,那么我们就可以去Hexo官网下载喜欢的主题,复制进去然后修改参数即可。 网上大多数主题都是github排名第一的Next主题,但是我个人不是很喜欢,我在网上看到一个主题感觉还不错:hexo-theme-matery,地址在传送门。这个主题看着比较漂亮,并且响应式比较友好,点起来很舒服,功能也比较很多。

当然,人各有异,这个主题风格也不一定是你喜欢,那么你也可以跟着这教程类似的方法替换成你喜欢的就行了。

特性:

  • 简单漂亮,文章内容美观易读
  • butterfly 设计
  • 响应式设计,博客在桌面端、平板、手机等设备上均能很好的展现
  • 首页轮播文章及每天动态切换 Banner 图片
  • 瀑布流式的博客文章列表(文章无特色图片时会有 24 张漂亮的图片代替)
  • 时间轴式的归档页
  • 的标签页和的分类页
  • 丰富的关于我页面(包括关于我、文章统计图、我的项目、我的技能、相册等)
  • 可自定义的数据的友情链接页面
  • 支持文章置顶和文章打赏
  • 支持 MathJax
  • TOC 目录
  • 可设置复制文章内容时追加版权信息
  • 可设置阅读文章时做密码验证
  • Gitalk、Gitment、Valine 和 Disqus 评论模块(推荐使用 Gitalk
  • 集成了不蒜子统计、谷歌分析(Google Analytics)和文章字数统计等功能
  • 支持在首页的音乐播放和视频播放功能

他的介绍文档写得非常的详细,还有中英文两个版本。效果图如下:

首先先按照文档教程安装一遍主题,然后是可以正常打开的,如果你是一般使用的话,基本没啥问题了。不过有些地方有些地方可以根据你自己的习惯和喜好修改一下, 下面记录一下我这个博客修改了的一些地方。

2.1 新建文章模板修改


首先为了新建文章方便,我们可以修改一下文章模板,建议将/scaffolds/post.md修改为如下代码:

---
title: { 
        { 
         title }}
date: { 
        { 
         date }}
author: 
img: 
coverImg: 
top: false
cover: false
toc: true
mathjax: false
password:
summary:
tags:
categories:
---

这样新建文章后 一些Front-matter参数不用你自己补充了,修改对应信息就可以了。

2.2 添加404页面


原来的主题没有404页面,我们加一个。首先在/source/目录下新建一个404.md,内容如下:

title: 404
date: 2019-08-5 16:41:10
type: "404"
layout: "404"
description: "Oops~,我崩溃了!找不到你想要的页面 :("

然后在/themes/butterfly/layout/目录下新建一个404.ejs文件,内容如下:

<style type="text/css"> /* don't remove. */ .about-cover { 
           height: 75vh; } </style>

<div class="bg-cover pd-header about-cover">
    <div class="container">
        <div class="row">
            <div class="col s10 offset-s1 m8 offset-m2 l8 offset-l2">
                <div class="brand">
                    <div class="title center-align">
                        404
                    </div>
                    <div class="description center-align">
                        <%= page.description %>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script> // 每天切换 banner 图. Switch banner image every day. $('.bg-cover').css('background-image', 'url(/medias/banner/' + new Date().getDay() + '.jpg)'); </script>

2.3“关于”页面增加简历(可选)


修改/themes/matery/butterfly/about.ejs,找到<div class="card">标签,然后找到它对应的</div>标签,接在后面新增一个card,语句如下:

<div class="card">
    <div class="card-content">
        <div class="card-content article-card-content">
                <div class="title center-align" data-aos="zoom-in-up">
                    <i class="fa fa-address-book"></i>&nbsp;&nbsp;<%- __('myCV') %>
                </div>
                <div id="articleContent" data-aos="fade-up">
                    <%- page.content %>
                </div>
        </div>
    </div>
</div>

Html

这样就会多出一张card,然后可以在/source/about/index.md下面写上你的简历了,当然这里的位置随你自己设置,你也可以把简历作为第一个card

2.4 数学公式渲染和代码高亮


如果你按照教程安装了代码高亮插件hexo-prism-plugin,单独使用是没有问题的,但如果你又使用了mathjax,并且按照网上教程,安装kramed插件并修改了js文件里的正则表达式(为了解决markdownmathjax的语法冲突),那你的代码就无法高亮了。解决方法很简单,别用kramed插件了,还用原来自带的marked插件,直接改它的正则表达式就行了。

打开/themes/matery/layout中的post.ejs文件,在最下方粘贴如下代码:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

Javascript

由于markdown语法与mathjax语法存在冲突,所以还需要修改源文件。

打开/node_modules/marked/lib中的marked.js文件,第539行的escape:处替换成:

escape: /^$[`*\[\]()#$+\-.!_>])/

第553行的em:处替换成:

em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/

这时在文章里写数学公式基本没有问题了,但是要注意:

举个例子: 行内公式:[Math Processing Error]y=f(x) 代码:

$y = f(x)$

行间公式: [Math Processing Error]y=fg1(x) 代码:

\\[y = {f_{ {g_1}}}(x)\\]

注意上面花括号之间有空格!

2.5 增加建站时间


:

  • 编辑 themes\Butterfly\layout\includes\footer.pug 文件,插入以下代码:

    注意与 if 同级

#running-time
  • 编辑 _config.butterfly.yml 文件

    inject->bottom 下面添加如下内容:

- <script>setInterval(()=>{ 
          let create_time=Math.round(new Date("2020-3-21-20:14:00").getTime()/1000);let timestamp=Math.round((new Date().getTime()+8*60*60*1000)/1000);let second=timestamp-create_time;let time=new Array(0,0,0,0,0);if(second>=365*24*3600){ 
          time[0]=parseInt(second/(365*24*3600));second%=365*24*3600}if(second>=24*3600){ 
          time[1]=parseInt(second/(24*3600));second%=24*3600}if(second>=3600){ 
          time[2]=parseInt(second/3600);second%=3600}if(second>=60){ 
          time[3]=parseInt(second/60);second%=60}if(second>0){ 
          time[4]=second}currentTimeHtml='小破站已经安全运行 '+time[0]+' 年 '+time[1]+' 天 '+time[2]+' 时 '+time[3]+' 分 '+time[4]+' 秒';var elementById=document.getElementById('running-time');if(elementById){ 
          elementById.innerHTML=currentTimeHtml}},1000);</script>

2.6 修改不蒜子初始化计数


因为不蒜子至今未开放注册,所以没办法在官网修改初始化,只能自己动手了。和上一条一样,我们在/themes/butterfly/layout/_partial里的footer.ejs文件最后加上:

<script>
    $(document).ready(function () { 
        

        var int = setInterval(fixCount, 50);  // 50ms周期检测函数
        var pvcountOffset = 80000;  // 初始化首次数据
        var uvcountOffset = 20000;

        function fixCount() { 
        
            if (document.getElementById("busuanzi_container_site_pv")
        标签: shw铝电解电容器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司