百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

如何搭建一个免费的个人博客? 怎么搭建个人博客网站

liebian365 2024-10-18 09:29 7 浏览 0 评论

作者:咻咻ing

博客:https://xiuxiuing.gitee.io/blog

前言

上次讲了《为什么优秀的程序员都写博客?》今天要给大家带来咻咻ing的投稿,如何搭建一个个人博客。当然,除了自己搭建还有很多优秀的写作平台。(CSDN,博客园,掘金 ....)

使用Gitee+Hexo搭建个人博客

为何使用Gitee而不是GitHub。

目前国内访问GitHub速度慢,还可能被墙,所以Gitee来构建个人博客。Gitee类似国内版的GitHub,访问速度有保证。

环境要求

Git

NodeJs

默认你已经安装了Git 和 NodeJS (推荐使用cnpm)

Git安装教程:

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000

Nodejs安装教程:

https://www.runoob.com/nodejs/nodejs-install-setup.html

cnpm使用教程:

https://xiuxiuing.gitee.io/blog/2018/08/25/cnpm/

开始搭建

1.安装Hexo

打开 shell 终端,输入命令:

npm install -g hexo

$ sudo cnpm install -g hexo
Password:
Downloading hexo to /usr/local/lib/node_modules/hexo_tmp
Copying /usr/local/lib/node_modules/hexo_tmp/_hexo@3.7.1@hexo to /usr/local/lib/node_modules/hexo
Installing hexo's dependencies to /usr/local/lib/node_modules/hexo/node_modules
[1/27] abbrev@^1.0.7 installed at node_modules/_abbrev@1.1.1@abbrev
[2/27] archy@^1.0.0 installed at node_modules/_archy@1.0.0@archy
[3/27] hexo-i18n@^0.2.1 installed at node_modules/_hexo-i18n@0.2.1@hexo-i18n
[4/27] js-yaml@^3.6.1 existed at node_modules/_js-yaml@3.12.0@js-yaml
[5/27] bluebird@^3.4.0 installed at node_modules/_bluebird@3.5.1@bluebird
[6/27] chalk@^2.3.1 installed at node_modules/_chalk@2.4.1@chalk
[7/27] hexo-front-matter@^0.2.2 installed at node_modules/_hexo-front-matter@0.2.3@hexo-front-matter
[8/27] minimatch@^3.0.4 installed at node_modules/_minimatch@3.0.4@minimatch
[9/27] pretty-hrtime@^1.0.2 installed at node_modules/_pretty-hrtime@1.0.3@pretty-hrtime
[10/27] hexo-util@^0.6.3 installed at node_modules/_hexo-util@0.6.3@hexo-util
[11/27] hexo-cli@^1.1.0 installed at node_modules/_hexo-cli@1.1.0@hexo-cli
[12/27] resolve@^1.5.0 installed at node_modules/_resolve@1.8.1@resolve
[13/27] strip-indent@^2.0.0 installed at node_modules/_strip-indent@2.0.0@strip-indent
[14/27] strip-ansi@^4.0.0 installed at node_modules/_strip-ansi@4.0.0@strip-ansi
[15/27] text-table@^0.2.0 installed at node_modules/_text-table@0.2.0@text-table
[16/27] tildify@^1.2.0 existed at node_modules/_tildify@1.2.0@tildify
[17/27] titlecase@^1.1.2 installed at node_modules/_titlecase@1.1.2@titlecase
[18/27] moment@^2.19.4 installed at node_modules/_moment@2.22.2@moment
[19/27] moment-timezone@^0.5.14 installed at node_modules/_moment-timezone@0.5.21@moment-timezone
[20/27] hexo-log@^0.2.0 installed at node_modules/_hexo-log@0.2.0@hexo-log
[21/27] swig-extras@0.0.1 installed at node_modules/_swig-extras@0.0.1@swig-extras
[22/27] lodash@^4.17.5 installed at node_modules/_lodash@4.17.10@lodash
[23/27] cheerio@0.22.0 installed at node_modules/_cheerio@0.22.0@cheerio
fsevents@1.2.4 download from binary mirror: {"module_name":"fse","module_path":"./lib/binding/{configuration}/{node_abi}-{platform}-{arch}/","remote_path":"./v{version}/","package_name":"{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz","host":"https://cdn.npm.taobao.org/dist/fsevents"}
[24/27] nunjucks@^3.1.2 installed at node_modules/_nunjucks@3.1.3@nunjucks
[25/27] swig-templates@^2.0.2 installed at node_modules/_swig-templates@2.0.2@swig-templates
[26/27] hexo-fs@^0.2.0 installed at node_modules/_hexo-fs@0.2.3@hexo-fs
[27/27] warehouse@^2.2.0 installed at node_modules/_warehouse@2.2.0@warehouse
execute post install 2 scripts...
[1/2] scripts.postinstall nunjucks@^3.1.2 run "node postinstall-build.js src"
[1/2] scripts.postinstall nunjucks@^3.1.2 finished in 109ms
[2/2] scripts.install hexo-fs@0.2.3 ? chokidar@1.7.0 ? fsevents@^1.0.0 run "node install"
[fsevents] Success: "/usr/local/lib/node_modules/hexo/node_modules/_fsevents@1.2.4@fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
[2/2] scripts.install hexo-fs@0.2.3 ? chokidar@1.7.0 ? fsevents@^1.0.0 finished in 306ms
deprecate titlecase@^1.1.2 no longer maintained
Recently updated (since 2018-08-01): 1 packages (detail see file /usr/local/lib/node_modules/hexo/node_modules/.recently_updates.txt)
2018-08-06
→ resolve@1.8.1 ? path-parse@^1.0.5(1.0.6) (14:32:36)
All packages installed (280 packages installed from npm registry, used 4s, speed 1.65MB/s, json 236(1.51MB), tarball 5.8MB)
[hexo@3.7.1] link /usr/local/bin/hexo@ -> /usr/local/lib/node_modules/hexo/bin/hexo

注:如果提示权限错误,命令前加sudo,cnpm 是淘宝的开源镜像,国内访问比npm快。

2.初始化Hexo

在你的电脑上创建Hexo文件夹,在shell终端中切换到Hexo目录,输入命令 hexo init

$ cd /work/Hexo
/work/Hexo $ hexo init
INFO Cloning hexo-starter to /work/Hexo
Cloning into '/work/Hexo'...
remote: Counting objects: 65, done.
remote: Total 65 (delta 0), reused 0 (delta 0), pack-reused 65
Unpacking objects: 100% (65/65), done.
Submodule 'themes/landscape' (https://github.com/hexojs/hexo-theme-landscape.git) registered for path 'themes/landscape'
Cloning into '/work/Hexo/themes/landscape'...
^Cwarning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

INFO See you again

初始化完成后Hexo的目录结构:

3. 获取博客主题

安装样式解析:npm install hexo-renderer-scss --save

$ npm install hexo-renderer-scss --save

> node-sass@4.9.3 install /Users/wang/HexoNew/node_modules/node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.3/darwin-x64-64_binding.node
Download complete ?? ? :
Binary saved to /Users/wang/HexoNew/node_modules/node-sass/vendor/darwin-x64-64/binding.node
Caching binary to /Users/wang/.npm/node-sass/4.9.3/darwin-x64-64_binding.node

> node-sass@4.9.3 postinstall /Users/wang/HexoNew/node_modules/node-sass
> node scripts/build.js

Binary found at /Users/wang/HexoNew/node_modules/node-sass/vendor/darwin-x64-64/binding.node
Testing binary
Binary is fine
+ hexo-renderer-scss@1.2.0
added 187 packages from 167 contributors and audited 3576 packages in 24.221s
found 0 vulnerabilities

克隆主题:git clone https://gitee.com/xiuxiuing/hexo-theme-even themes/even

/work/Hexo $ git clone https://gitee.com/xiuxiuing/hexo-theme-even themes/even
Cloning into 'themes/even'...
remote: Counting objects: 136, done.
remote: Compressing objects: 100% (123/123), done.
remote: Total 136 (delta 4), reused 128 (delta 2)
Receiving objects: 100% (136/136), 264.27 KiB | 556.00 KiB/s, done.
Resolving deltas: 100% (4/4), done.

克隆完成后,在/Hexo/themes目录下,可以看到 landscape和even 两个文件夹。

我们所要使用的主题都是放在这个目录下,Hexo默认使用的是landscape主题,由于第二步Hexo初始化时主题没有clone成功,所以我们这一步克隆了even主题,接下来会使用even主题进行演示。

想获取更多主题,可在网站:https://hexo.io/themes/ 选择自己喜欢的主题,按照此步的步骤clone下来。

4. _config.yml对博客进行基础配置

_config.yml文件修改,保存

5. 本地预览博客

编译项目,输入命令:hexo g运行项目,输入命令:hexo s

$ hexo g
INFO Start processing
INFO Files loaded in 186 ms
INFO Generated: archives/2018/08/index.html
INFO Generated: archives/index.html
INFO Generated: archives/2018/index.html
INFO Generated: index.html
INFO Generated: 2018/08/08/hello-world/index.html
INFO 5 files generated in 242 ms
$ hexo s
INFO Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

在浏览器中输入http://localhost:4000/`就可以看到效果啦

部署博客到Gitee上

1. 创建Gitee账号

到码云:https://gitee.com/ 上申请注册账号,码云类似国内版的GitHub,所以操作界面跟GitHub差不多,多了一些国产化的东西,这里不做更多介绍了,自己研究下。

2. 创建项目

创建完成后,在项目中复制项目地址。

3. 在_config.yml中配置Git

deploy:
type: git
repo: https://gitee.com/xiuxiuing/blog.git
branch: master

注意:冒号后面一定要有空格,否则不能正确识别。

4. 发布到Gitee

输入命令npm install hexo-deployer-git --save 安装自动部署发布工具

输入命令hexo clean && hexo g && hexo d 发布博客,首次发布需要在shell中输入账号和密码。

5. Gitee Pages设置

在项目的服务中选择Pages选项

选择 master分支,点击 部署/更新

稍等一会儿博客就发布成功啦,访问博客地址:https://xiuxiuing.gitee.io/blog,就可预览在线博客啦!!!

如果博客的样式不对,则需要在_config.yml中配置下博客地址和路径:

url: https://xiuxiuing.gitee.io/blog/
root: /blog

再执行命令hexo clean && hexo g && hexo d 就可以啦。

至此,我们的博客就搭建完成。

在/Hexo/source/_posts目录下就可以写我们的博客。

已经成功在Gitee上搭建完成了自己的博客,但是这个博客还是比较简陋的。

接下来讲介绍 如何开始写作 和 Even主题的常用配置 。

如何开始写作

博客搭建完成,虽然功能很简单,但是已经可以开始写作。

新建文章

使用命令来新建一篇文章:

$ hexo new [layout] <title>

layout 是文章的布局,默认为post,可以先不写。

title 是文章的标题,也是文件的名字,存储在source/_posts下。

$ hexo new demo

则在source/_post目录下自动生成了demo.md文件

使用MarkDown编辑器打开文件就可以开始写作了。

Front-matter 设置

Front-matter 是文章最上方以 — 分隔的区域,用于指定文章的变量设置,举例来说:

title: demo
date: 2018-08-23 15:13:30
tags:
---

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

文章分类和标签

只有文章支持分类和标签,您可以在 Front-matter 中设置。在其他系统中,分类和标签听起来很接近,但是在 Hexo 中两者有着明显的差别:分类具有顺序性和层次性,也就是说 Foo, Bar 不等于 Bar, Foo;而标签没有顺序和层次。在demo.md增加如下设置,示例:

categories:
- Demo
tags:
- 示例

则会在博客的标签和分类下分别增加我们的配置效果:

标签配置效果:

分类配置效果:

说明:文章分类和标签的设置,会自动归档的菜单的分类和标签中。

文章截断

在文章内容中添加 <!-- more --> 即可在首页显示时只显示其之上的内容。

并且会在 <!-- more --> 添加一个 Read more 的链接。

如图:

自定义文章简述

可在文章头信息中添加 description 字段,并填写自定义的文章简述。

就可以在首页显示文章简述而不显示文章内容, 并自动添加阅读更多的跳转链接。

Even主题常用配置

我们博客搭建完成后Hexo的目录结构如下:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
├── themes
| ├── even
| └── landscape

我们Even主题的配置则主要在even目录下进行,配置文件_config.yml,目录结构如下:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── css
| └── js
├── languages
| ├── default.yml
| └── zh-cn.yml
|── layout

修改主题颜色

主题自带了 5 种可选的颜色:

修改主题配置文件中 theme 字段的 color 属性可改变主题色:

# ===========================================
# Theme Settings
# ===========================================
# theme styling
# color: Default | Mint Green | Cobalt Blue | Hot Pink | Dark Violet
theme:
color: Default

除了能够修改为主题自带的 5 种颜色之外,还可以使用自定义的其他颜色。

在 source/css/_custom/_custom.scss 中添加样式变量 $theme-color 修改主题色。

$theme-color: #xxxxxx;

同时需要修改 $deputy-color 主题副颜色,该值主要使用在代码块背景以及文章目录。

$deputy-color: #xxxxxx;

_variables.scss 中的样式变量都可以在 _custom.scss 中进行覆盖,从而自定义主题样式。

添加分类页

使用命令新建一个 categories 页面:

hexo new page categories

编辑生成的 categories/index.md 文件,设置布局为 categories:

title: categories
layout: categories

默认开启评论(如果使用了多说或 Disqus),添加 comments 字段并设置为 false 可关闭。

在主题配置文件(_config.yml)中添加链接:

# ===========================================
# Menu Settings
# ===========================================
menu:
Home: /
Archives: /archives/
Categories: /categories/

添加标签页

使用命令新建一个 tags 页面:

hexo new page tags 

则会自动生成如下目录:

编辑生成的 tags/index.md 文件,设置布局为 tags:

title: tags
layout: tags

默认开启评论,添加 comments 字段并设置为 false 可关闭。

在主题配置文件(_config.yml)中添加链接:

# ===========================================
# Menu Settings
# ===========================================
menu:
Home: /
Archives: /archives/
Tags: /tags

添加自定义页面

使用命令新建一个自定义页面(以添加关于页为例):

hexo new page about

则会自动生成如下目录:

编辑生成的 about/index.md 文件,设置布局为 page:

title: about
layout: page

关于页面的内容,个人相关介绍也是在此页面进行编辑。

# ===========================================
# Menu Settings
# ===========================================
menu:
Home: /
Archives: /archives/
About: /about

在使用的语言文件下添加对应的字段(默认为 languages/default.yml):

menu:
home: Home
archives: Archives
tags: Tags
categories: Categories
about: About

发布博客后,在首页的菜单中就可以看到我们设置的标签 分类 关于菜单啦!!!

添加文章访问量统计

文章访问量 阅读次数 统计通过 LeadCloud 支持

配置LeanCloud

打开LeanCloud官网,进入注册页面注册。完成邮箱激活后,点击头像,进入控制台页面

创建新应用

创建一个新应用,并创建名称为 Counter 的 Class(注意权限选择无限制)

配置 app_id 与 app_key

在你所创建的应用的 设置->应用Key 中查看 app_id 与 app_key

修改主题配置文件 _config.yml,填入 app_id 与 app_key:

# LeanCloud
leancloud:
app_id:
app_key:

设置 Web 安全域名

在你所创建的应用的 设置->安全中心 中设置 Web 安全域名 添加你的域名到 Web 安全域名中(若本地服务也想看到访问量,添加 http://localhost:4000/)

添加博客流量分析

博客流量统计、访客地域分布、来源等数据统计通过 百度网站统计 支持

新增网站

打开百度网站统计页面,注册相关账号信息,进入到管理页面,点击新增网站,填入相关信息:

代码获取

在代码获取页面获取到新版统计代码示例:

<script>
var _hmt = _hmt || ;
(function {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6f2041754dc216e6973762726c19d178";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
});
</script>

其中的6f2041754dc216e6973762726c19d178类似我们百度统计分析的APPID。

配置百度统计APPID

修改主题配置文件 _config.yml,填入 APPID:

# Baidu Analytics
baidu_analytics: 6f2041754dc216e6973762726c19d178

配置完成后执行hexo -g hexo -d编译发布我们的博客。

可以在百度统计分析的代码安装检查页面,点击检查,判断我们的百度分析是否添加成功。

添加成功后,差不多20分钟后就可以看到百度统计后台的数据了.

设置文章打赏

通过主题配置文件中的 reward 字段开启/关闭:

reward:
enable: true
qrCode:
wechat: /image/reward/wechat.png
alipay: /image/reward/alipay.png

支持微信以及支付宝,修改 qrCode 下对应的二维码图片链接,也可以直接设置成图片的网络链接。

当开启打赏功能时,可通过文章 Markdown 头部:

reward: false

关闭该篇文章的打赏。反之,当打赏功能关闭时,可以在文章中单独开启。

设置底部社交链接

目前支持:Email, Stack Overflow, Twitter, Facebook, Github, 微博以及知乎

修改主题配置文件中的 social 字段下的各个字段开启,为空时即为关闭:

social:
email: your@email.com
stack-overflow:
twitter:
facebook:
github:
weibo:
zhihu:

主题使用的是自定义的 iconfont 图标库。

设置文章版权

修改主题配置文件中的 copyright 字段开启/关闭:

copyright:
enable: true
# https://creativecommons.org/
license: '本文采用<a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">知识共享署名-非商业性使用 4.0 国际许可协议</a>进行许可'

默认显示作者,来源,链接以及版权说明,版权说明可通过 copyright.lincese 自定义。

copyright.license 的值可以是 HTML

当文章版权信息开启时,可通过文章 Markdown 头部:

copyright: false

进行单篇文章版权信息的关闭。

个人博客效果参考:https://xiuxiuing.gitee.io/blog/

相关推荐

快递查询教程,批量查询物流,一键管理快递

作为商家,每天需要查询许许多多的快递单号,面对不同的快递公司,有没有简单一点的物流查询方法呢?小编的回答当然是有的,下面随小编一起来试试这个新技巧。需要哪些工具?安装一个快递批量查询高手快递单号怎么快...

一键自动查询所有快递的物流信息 支持圆通、韵达等多家快递

对于各位商家来说拥有一个好的快递软件,能够有效的提高自己的工作效率,在管理快递单号的时候都需要对单号进行表格整理,那怎么样能够快速的查询所有单号信息,并自动生成表格呢?1、其实方法很简单,我们不需要一...

快递查询单号查询,怎么查物流到哪了

输入单号怎么查快递到哪里去了呢?今天小编给大家分享一个新的技巧,它支持多家快递,一次能查询多个单号物流,还可对查询到的物流进行分析、筛选以及导出,下面一起来试试。需要哪些工具?安装一个快递批量查询高手...

3分钟查询物流,教你一键批量查询全部物流信息

很多朋友在问,如何在短时间内把单号的物流信息查询出来,查询完成后筛选已签收件、筛选未签收件,今天小编就分享一款物流查询神器,感兴趣的朋友接着往下看。第一步,运行【快递批量查询高手】在主界面中点击【添...

快递单号查询,一次性查询全部物流信息

现在各种快递的查询方式,各有各的好,各有各的劣,总的来说,还是有比较方便的。今天小编就给大家分享一个新的技巧,支持多家快递,一次能查询多个单号的物流,还能对查询到的物流进行分析、筛选以及导出,下面一起...

快递查询工具,批量查询多个快递快递单号的物流状态、签收时间

最近有朋友在问,怎么快速查询单号的物流信息呢?除了官网,还有没有更简单的方法呢?小编的回答当然是有的,下面一起来看看。需要哪些工具?安装一个快递批量查询高手多个京东的快递单号怎么快速查询?进入快递批量...

快递查询软件,自动识别查询快递单号查询方法

当你拥有多个快递单号的时候,该如何快速查询物流信息?比如单号没有快递公司时,又该如何自动识别再去查询呢?不知道如何操作的宝贝们,下面随小编一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号若干...

教你怎样查询快递查询单号并保存物流信息

商家发货,快递揽收后,一般会直接手动复制到官网上一个个查询物流,那么久而久之,就会觉得查询变得特别繁琐,今天小编给大家分享一个新的技巧,下面一起来试试。教程之前,我们来预览一下用快递批量查询高手...

简单几步骤查询所有快递物流信息

在高峰期订单量大的时候,可能需要一双手当十双手去查询快递物流,但是由于逐一去查询,效率极低,追踪困难。那么今天小编给大家分享一个新的技巧,一次能查询多个快递单号的物流,下面一起来学习一下,希望能给大家...

物流单号查询,如何查询快递信息,按最后更新时间搜索需要的单号

最近有很多朋友在问,如何通过快递单号查询物流信息,并按最后更新时间搜索出需要的单号呢?下面随小编一起来试试吧。需要哪些工具?安装一个快递批量查询高手快递单号若干怎么快速查询?运行【快递批量查询高手】...

连续保存新单号功能解析,导入单号查询并自动识别批量查快递信息

快递查询已经成为我们日常生活中不可或缺的一部分。然而,面对海量的快递单号,如何高效、准确地查询每一个快递的物流信息,成为了许多人头疼的问题。幸运的是,随着科技的进步,一款名为“快递批量查询高手”的软件...

快递查询教程,快递单号查询,筛选更新量为1的单号

最近有很多朋友在问,怎么快速查询快递单号的物流,并筛选出更新量为1的单号呢?今天小编给大家分享一个新方法,一起来试试吧。需要哪些工具?安装一个快递批量查询高手多个快递单号怎么快速查询?运行【快递批量查...

掌握批量查询快递动态的技巧,一键查找无信息记录的两种方法解析

在快节奏的商业环境中,高效的物流查询是确保业务顺畅运行的关键。作为快递查询达人,我深知时间的宝贵,因此,今天我将向大家介绍一款强大的工具——快递批量查询高手软件。这款软件能够帮助你批量查询快递动态,一...

从复杂到简单的单号查询,一键清除单号中的符号并批量查快递信息

在繁忙的商务与日常生活中,快递查询已成为不可或缺的一环。然而,面对海量的单号,逐一查询不仅耗时费力,还容易出错。现在,有了快递批量查询高手软件,一切变得简单明了。只需一键,即可搞定单号查询,一键处理单...

物流单号查询,在哪里查询快递

如果在快递单号多的情况,你还在一个个复制粘贴到官网上手动查询,是一件非常麻烦的事情。于是乎今天小编给大家分享一个新的技巧,下面一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号怎么快速查询?...

取消回复欢迎 发表评论: