前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hexo 搭建静态博客

Hexo 搭建静态博客

作者头像
smartsi
发布于 2019-08-07 01:07:47
发布于 2019-08-07 01:07:47
79600
代码可运行
举报
文章被收录于专栏:SmartSiSmartSi
运行总次数:0
代码可运行

1.简介

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章(经常玩CSDN上的人都知道),在几秒内,即可利用靓丽的主题生成静态网页。通过Hexo我们可以快速创建自己的博客,仅需要几条命令就可以完成。发布时,Hexo可以部署在自己的Node服务器上面,也可以部署github上面。对于个人用户来说,部署在github上好处颇多,不仅可以省去服务器的成本,还可以减少各种系统运维的麻烦事(系统管理、备份、网络)。所以,在这里我是基于github搭建的个人博客站点。

2. 环境配置

安装 Hexo 相当简单。然而在安装前,您必须检查电脑中是否已安装下列应用程序:

  • Node.js
  • Git
2.1 Git

Git安装参考博文:http://blog.csdn.net/sunnyyoona/article/details/51453880

2.2 Node.js

安装 Node.js 的最佳方式是使用 nvm:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

安装完成后,重启终端并执行下列命令即可安装 Node.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nvm install 4
2.3 Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。一般情况下我们机器上没有安装npm,首先要安装npm:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install npm

下面使用npm安装Hexo,安装过程中我们可能会遇到下面的问题:

我们需要运行下面的命令,才能安装成功:

再重新安装hexo:

3. 建站

3.1 目录和文件

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hexo init blog  
cd blog
npm install

备注:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在我这我初始化的目录名称为blog

新建完成后,指定目录blog文件如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xiaosi@yoona:~/blog$ tree -L 2
.
├── _config.yml
├── package.json
├── scaffolds
│   ├── draft.md
│   ├── page.md
│   └── post.md
├── source
│   └── _posts
└── themes
    └── landscape

5 directories, 5 files

文件

说明

scaffolds

脚手架,也就是一个工具模板

source

存放博客正文内容

_posts

文件箱

themes

存放皮肤的目录 themes/landscape 默认的皮肤

_config.yml

全局的配置文件

备注:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
我们每次用到的就是_posts目录里的文件,而_config.yml文件和themes目录是第一次配置好就行了。

_posts目录:Hexo是一个静态博客框架,因此没有数据库。文章内容都是以文本文件方式进行存储的,直接存储在_posts的目录。Hexo天生集成了markdown,我们可以直接使用markdown语法格式写博客,例如:hello-world.md。新增加一篇文章,就在_posts目录,新建一个xxx.md的文件。
3.2 全局配置

_config.yml配置信息:(网站的配置信息,可以在此配置大部分的参数)

配置

说明

站点信息

定义标题,作者,语言

URL

URL访问路径

文件目录

正文的存储目录

写博客配置

文章标题,文章类型,外部链接等

目录和标签

默认分类,分类图,标签图

归档设置

归档的类型

服务器设置

IP,访问端口,日志输出

时间和日期格式

时间显示格式,日期显示格式

分页设置

每页显示数量

评论

外挂的Disqus评论系统

插件和皮肤

换皮肤,安装插件

Markdown语言

markdown的标准

CSS的stylus格式

是否允许压缩

部署配置

github发布项目地址

配置_config.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# 站点信息
title: Yoona
subtitle:
description: Stay Hungry Stay Foolish
author: sjf0115
language:
timezone:

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://sjf0115.club/
root: /
permalink: :year/:month/:day/:title/
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: false
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: landscape

# Deployment 部署配置
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type:git
  repo:git@github.com:sjf0115/hexo-blog.git

3.3 创建新文章

接下来,我们开始新博客了,创建第一博客文章。Hexo建议通过命令行操作,当然你也可以直接在_posts目录下创建文件。

下面我们创建一篇名为hexo的文章:

在_post目录下,就会生成文件:”hexo.md”:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xiaosi@yoona:~/blog/source/_posts$ ll
总用量 5
drwxrwxrwx 1 xiaosi xiaosi 256 121 10:17 ./
drwxrwxrwx 1 xiaosi xiaosi   0 121 09:59 ../
-rwxrwxrwx 1 xiaosi xiaosi 826 121 09:59 hello-wor

然后,我们编辑文件:hexo.md,以markdown语法写文章,然后保存。在命令行,启动服务器进行保存:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xiaosi@yoona:~/blog/source/posts$ hexo s
Native thread-sleep not available.
This will result in much slower performance, but it will still work.
You should re-install spawn-sync or upgrade to the lastest version of node if possible.
Check /usr/local/lib/node_modules/hexo/node_modules/hexo-util/node_modules/cross-spawn/node_modules/spawn-sync/error.log for more details
INFO  Start processing
INFO  Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

通过浏览器打开, http://localhost:4000/ ,就出现了我们新写的文章。

4. 发布项目到github

4.1 静态化处理

写完文章之后,可以发布到github上面。hexo是一个静态博客框架。静态博客,是只包含html, javascript, css文件的网站,没有动态的脚本。虽然我们是用Node进行的开发,但博客的发布后就与Node无关了。在发布之前,我们要通过一条命令,把所有的文章都做静态化处理,就是生成对应的html, javascript, css,使得所有的文章都是由静态文件组成的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xiaosi@yoona:~/blog$ hexo generate
Native thread-sleep not available.
This will result in much slower performance, but it will still work.
You should re-install spawn-sync or upgrade to the lastest version of node if possible.
Check /usr/local/lib/node_modules/hexo/node_modules/hexo-util/node_modules/cross-spawn/node_modules/spawn-sync/error.log for more details
INFO  Start processing
INFO  Files loaded in 143 ms
INFO  Generated: index.html
INFO  Generated: archives/index.html
INFO  Generated: archives/2016/index.html
INFO  Generated: categories/diary/index.html
INFO  Generated: archives/2016/05/index.html
INFO  Generated: fancybox/blank.gif
INFO  Generated: archives/2017/12/index.html
INFO  Generated: fancybox/fancybox_loading.gif
INFO  Generated: fancybox/fancybox_overlay.png
INFO  Generated: fancybox/fancybox_sprite@2x.png
INFO  Generated: archives/2017/index.html
INFO  Generated: tags/hexo/index.html
INFO  Generated: fancybox/fancybox_sprite.png
INFO  Generated: js/script.js
INFO  Generated: fancybox/jquery.fancybox.css
INFO  Generated: css/style.css
INFO  Generated: fancybox/jquery.fancybox.pack.js
INFO  Generated: fancybox/helpers/jquery.fancybox-buttons.js
INFO  Generated: fancybox/helpers/jquery.fancybox-media.js
INFO  Generated: fancybox/helpers/jquery.fancybox-thumbs.css
INFO  Generated: fancybox/helpers/jquery.fancybox-buttons.css
INFO  Generated: fancybox/helpers/jquery.fancybox-thumbs.js
INFO  Generated: css/fonts/fontawesome-webfont.woff
INFO  Generated: css/fonts/fontawesome-webfont.eot
INFO  Generated: css/fonts/FontAwesome.otf
INFO  Generated: fancybox/helpers/fancybox_buttons.png
INFO  Generated: fancybox/fancybox_loading@2x.gif
INFO  Generated: fancybox/jquery.fancybox.js
INFO  Generated: 2017/12/01/hello-world/index.html
INFO  Generated: css/fonts/fontawesome-webfont.ttf
INFO  Generated: 2016/05/17/hexo/index.html
INFO  Generated: css/fonts/fontawesome-webfont.svg
INFO  Generated: css/images/banner.jpg
INFO  33 files generated in 1.19 s

在本地目录下,会生成一个public的目录,里面包括了所有静态化的文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xiaosi@yoona:~/blog/public$ ll
总用量 24
drwxrwxrwx 1 xiaosi xiaosi 4096 121 10:26 ./
drwxrwxrwx 1 xiaosi xiaosi 4096 121 10:24 ../
drwxrwxrwx 1 xiaosi xiaosi    0 121 10:24 2017/
drwxrwxrwx 1 xiaosi xiaosi    0 121 10:24 archives/
drwxrwxrwx 1 xiaosi xiaosi    0 121 10:24 categories/
drwxrwxrwx 1 xiaosi xiaosi    0 121 10:24 css/
drwxrwxrwx 1 xiaosi xiaosi 4096 121 10:24 fancybox/
-rwxrwxrwx 1 xiaosi xiaosi 9841 121 10:24 index.html*
drwxrwxrwx 1 xiaosi xiaosi    0 121 10:24 js/
drwxrwxrwx 1 xiaosi xiaosi    0 121 10:24 tags/
4.2 发布到github

接下来,我们把这个博客发布到github。

在github中创建一个项目hexo-blog,项目地址:https://github.com/sjf0115/hexo-blog

编辑全局配置文件:_config.yml,找到deploy的部分,设置github的项目地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@github.com:sjf0115/hexo-blog.git

然后,通过如下命令进行部署:

出现上述问题,可以使用配置ssh秘钥解决。如果出现deployer找不到git: ERROR Deployer not found: git错误,使用下面方式解决:

再来一次hexo deploy:

到目前为止这个静态的web网站就被部署到了github,检查一下分支是gh-pages。gh-pages是github为了web项目特别设置的分支:

然后,点击”Settings”,找到GitHub Pages,提示“Your site is published at http://sjf0115.github.io/hexo-blog:

打开网页,就是我们刚刚发布站点:

可以看到网页样式出现问题,不用担心,我们设置域名之后就OK了。

4.3 设置域名

在dnspod控制台,设置主机记录@,类型A,到IP 23.235.37.133(github地址):

对域名判断是否生效,对域名执行ping:

在github项目中,新建一个文件CNAME,文件中写出你要绑定的域名sjf0115.club。通过浏览器,访问http://sjf0115.club , 就打开了我们建好的博客站点:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hexo搭建个人博客(三)—— Hexo博客的美化
通过前两节的学习,我们已经搭建好自己的博客,就像盖房子一样要对内部进行装修,也就是对博客进行美化。 ---- 安装Hexo博客主题 Hexo博客可以安装不同的主题,这里我们只说最火的Next主题。首先我们在自己电脑里的博客文件夹内(即username.github.io文件夹内)右键选择Git Bash here,在终端窗口内输入以下代码: $ git clone https://github.com/iissnan/hexo-theme-next themes/next 稍等片刻,安装完成后你的them
木制robot
2018/04/13
3.4K0
Hexo搭建个人博客(三)—— Hexo博客的美化
Hexo-完全免费全平台搭建个人博客(2)-域名主题设置
2017-03-1011:01:58 发表评论 913℃热度 Hexo-完全免费全平台搭建个人博客(1)-整体搭建 上一篇文章把 Hexo 博客整体搭建一遍了,能通过  xxxxx.github.io
timhbw
2018/05/03
1.5K0
Hexo-完全免费全平台搭建个人博客(2)-域名主题设置
使用Gitee+Hexo搭建个人博客
目前国内访问GitHub速度慢,还可能被墙,所以Gitee来构建个人博客。Gitee类似国内版的GitHub,访问速度有保证。
公号:咻咻ing
2019/08/06
8310
使用Gitee+Hexo搭建个人博客
hexo 搭建博客
通常我们可以使用github pages 来搭建静态博客,建立一个username.github.io的项目就可以了,如果要将其他项目也作为页面展示,可以将代码推送到gh-pages分支。
苏生不惑
2019/08/14
1.3K0
Hexo博客搭建(二)
日更前语3. 环境搭建4. 初始化Hexo:5. 本地访问6. 个性化配置7. 引用日更结语
efonfighting
2019/09/17
4340
使用hexo在GitHub上搭建个人博客
Hexo是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
没有故事的陈师傅
2019/07/27
6600
建站神器:Hexo+Kaze+Gitee Pages 搭建静态博客网站
建网站本身是一个很大的工程,涉及前端页面的搭建,网站数据的存储,还要购置服务器资源,甚至是后期的维护,过程相当繁琐。
蜗牛互联网
2021/02/26
1.4K0
建站神器:Hexo+Kaze+Gitee Pages 搭建静态博客网站
Hexo的安装及重置恢复
Hexo博客已经使用挺长时间了,其出色的静态网页渲染能力深得我的喜欢,然鹅也是因为 Hexo 基本完全依赖渲染模板的原因,如果在整博客的过程中引入了错误的代码段或者和已有代码发生了冲突,会直接影响博客的正常渲染,对于Hexo来说,不能渲染就等于完全废了;针对出现的错误,有时候我们还不一定能找得出来。经常是改一处错两处,那么到了迫不得已的时候,就有必要对博客进行重置了。
ZONGLYN
2019/08/08
2.6K0
如何使用hexo与github搭建自己的博客(2)
hexo的配置文件是_config.yml,整个hexo项目里面有两个这样的文件,一个是在根目录下面,另一个是在文件夹theme里面,根目录的主要是对整个项目的配置,而theme里面的则主要是对你当前所应用的主题的一个设置。
踏浪
2019/07/31
4970
如何在Ubuntu 14.04上使用Hexo创建博客
Hexo是一个基于Node.js的静态博客框架。使用Hexo,您可以以博客文章的形式发布Markdown文档。博客帖子和内容被处理并转换为HTML / CSS,它来自默认或自定义模板主题文件(很像其他静态博客生成器,如Jekyll和Ghost)。Hexo中的所有软件都是模块化的,因此您可以准确安装和设置所需的软件。
木纸鸢
2018/09/25
1.3K0
[还不会搭建博客吗?]centos7系统部署hexo博客新手入门-进阶,看这一篇就够了
前者适合新手,后者适合老手(方便大家查找,从而过滤掉某些步骤,节约时间成本) 所以大家按需查看哟。
秋意零
2022/04/16
1.1K0
[还不会搭建博客吗?]centos7系统部署hexo博客新手入门-进阶,看这一篇就够了
使用Hexo+Next主题搭建Blog
之前试过了很多Hexo主题,但是都不太合胃口,就又又又转回了Next这种简单简约的主题。我的博客搭建在GitHub上,使用Vercel加速,完全白嫖真的快乐。
GOOPHER
2022/03/30
7900
使用Hexo+Next主题搭建Blog
Hexo博客搭建步骤
下载地址:https://nodejs.org/zh-cn/ ,选长期支持版本进行下载安装。
砒霜拌辣椒
2023/08/23
1890
Hexo博客搭建步骤
搭建一个Hexo博客
0x00 背景 一直想搭建一个自己的博客,之前在Aliyun虚拟主机上搭了一个WordPress+MySQL的个人博客。后来维护成本太大,主机和域名都没有续费被回收了。最近再看别人在写,自己也想搞一个试试水。研究了几天,发现Hexo还真不错,所以就选了这个。 目前,博客搭建在coding.net上,使用万网的域名。 Hexo介绍 Hexo是一款基于Node.js的博客框架,可以将Markdown格式的文本渲染为HTML代码。所以,博客基本就是纯静态,维护相对方便。但是缺点也很明显——经常换编写环境使用不便,
WeaponX
2018/05/04
2.6K0
搭建一个Hexo博客
Hexo搭建博客 - nexmoe主题
因为自己对Volantis主题设置过于复杂,反而丢弃了博客的本意,就是多记录遇到的问题。所以改为用简单的noxmoe.
繁华是客
2023/03/03
5500
Linux下使用 github+hexo 搭建个人博客01-hexo搭建
原因有好几个吧,归类如下: 1、自己搭建博客系统很有成就感,可以自己选定页面风格和页面排版;
踏歌行
2020/10/15
2.4K0
Linux下使用 github+hexo 搭建个人博客01-hexo搭建
WebMaster 123 - 如何简单地搭建 Hexo 博客
因为惶心的 Wordpress 博客数据库崩掉了,但是有有些东西实在很想写下来,于是就搭建了个临时博客。然而不能重蹈覆辙,所以就选择了不依赖数据库,文章全部以 Markdown 形式存储并且可以依赖 Git 的博客系统 - Hexo。
惶心
2019/01/27
9560
【JS】基于hexo搭建个人博客并添加域名
快速搭建博客的框架有Hexo,Jekyll,Wordpress等等。下面就用Hexo来实现一下。
DevFrank
2024/07/24
2020
【JS】基于hexo搭建个人博客并添加域名
Mac/Linux/Windows如何从零开始搭建Hexo静态博客并部署到远程平台
本文同步博客图文( ´▽`):https://www.mintimate.cn/2020/03/19/hexo
Mintimate
2021/01/29
2.3K0
Mac/Linux/Windows如何从零开始搭建Hexo静态博客并部署到远程平台
【玩转腾讯云】使用Hexo在Cloudbase上搭建自己的静态博客
Mintimate's Blog:https://www.mintimate.cn
Mintimate
2021/04/13
3K0
【玩转腾讯云】使用Hexo在Cloudbase上搭建自己的静态博客
推荐阅读
相关推荐
Hexo搭建个人博客(三)—— Hexo博客的美化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验