基于Hexo搭建静态博客
关于静态博客
通常来讲,建立个人博客有2种方式:
第一,直接在第三方博客平台注册博客空间,如:博客园,简书,CSDN等,这种方式建立的博客,所有数据都存放在博客平台。
第二,自建博客系统,这种方式就是自己实现与博客平台相同的功能,需要涉及多个部分,如:购买云主机,注册域名,CDN,图床等。
自建博客系统也分为2种方式:
其一,使用传统方式建立博客系统,整个系统包含多个组件,如:数据库,管理后台,前台博客展示,有诸多非常优秀的开源方案可以选择,如:Wordpress,Halo等等。由于前端博客页面是动态从数据库查询数据来渲染展示的,可以把这种传统的博客称之为动态博客。即:所有博客相关的数据都保存在数据库中,对数据库是强依赖。
其二,采用静态博客框架将静态文件(如:Markdown语法格式的文件)转换为HTML文件,这样可以直接将这些动态生成的HTML文件布署到Web服务器即可,不需要依赖数据库,当然也不需要管理后台,所有博客文章都是静态文件。目前已经有许多优秀的静态博客框架,如:Hugo,Hexo等等。把这种无需依赖数据库系统,也不需要管理后台建立的博客称为静态博客。
当然,所谓“动态博客”和“静态博客”,他们各有利弊。相比较而演,动态博客的使用门槛低,只需要关注写博客本身即可。而静态博客的搭建需要一定的编程技能基础,但是定制非常灵活,数据管理和备份也非常方便。
环境准备
先安装好Node.js,并配置使用淘宝镜像源。
npm config set registry https://registry.npm.taobao.org
安装Hexo
执行如下命令安装Hexo:
npm install -g hexo-cli
初始化
执行如下命令初始化博客:
# 初始化一个名称为iblog的博客目录,将来所有关于博客的参数设置,以及写博客文章都在该目录下进行
hexo init iblog
cd iblog
npm install
完成上述操作后,在博客文件夹下将会看到如下目录结构:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
themes
目录保存主题相关的文件,所有安装的主题都保存在该目录下。
source
目录保存博客文章静态文件,其中 _drafts
保存草稿,_posts
保存正式文章,这可以在新建资源时指定类型。
_config.yml
是博客的全局配置文件(注:通常主题也会有一个名为 _config.yml
的配置文件)。
至此,一个静态博客的基本基本雏形已经完成了,接下来则需要对博客进行主题配置,并开始写博客文章了。
配置主题
主题决定了博客的展示样式和支持的功能。
安装hexo-theme-3-hexo主题。
主题详细配置:3-hexo使用说明 。
写博客
在博客根目录下执行如下命令新建一篇博客:
hexo new post "这是第一篇静态博客文章"
生成静态页面
写好文章后,在博客根目录下执行如下命令生成静态页面:
hexo generate
执行完上述命令之后,将会在博客根目录下生成一个名为 public
的目录,该目录保存着动态生成的HTML文件,将 public
目录下的内容托管到nginx即可访问。
在本地写博客时,可以在博客根目录下执行 hexo server
命令,启动本地Web服务进行查看。
一些常用的插件
- hexo-deployer-rsync :通过rsync将本地生成的静态文件上传到服务器指定目录,执行命令
hexo deploy
时调用该插件 - hexo-deployer-git:将本地生成的静态文件上传到指定git仓库,执行命令
hexo deploy
时调用该插件
如何搭建博客编辑环境
静态博客本质上只是一个文本文件,所以理论上只需要一个文本编辑器即可。但是为了方便调试,最好还是在新的主机上安装如下环境,会给写博客带来比较好的体验。
- 安装Node.js并配置使用国内镜像源(本站点使用的Node版本为
v16.15.1
) - 安装Hexo框架
- 安装一个顺手的Markdown编辑器
- 安装Git客户端(将本地写的博客文章保存到远程Git仓库)
每次写新的博客文章时,从git仓库拉取最新的博客数据,在博客根目录下执行如下命令安装依赖:
npm install
在博客根目录下执行如下命令创建一篇新的博客文章:
hexo new post "博客文章标题"
编辑博客文章并保存
在博客根目录下执行命令:
# 简写:hexo s
hexo server
在本地启动Hexo框架服务器进行调试预览。
将新写的博客文章提交到git仓库。
最后在博客根目录下执行如下命令将最新的博客文章发布到Web服务器(本质:重新生成静态文件,并上传到Web服务器目录)。
# 简写:hexo d
hexo deploy
Hexo常用命令
# 初始化博客目录
hexo init 博客名称
# 新建博客文章:执行该命令后将会在博客根目录/source/_posts路径下新建一个markdown文件
# 编辑该markdown文件即可
hexo new post '文章标题'
# 将markdown文件转换为html页面(保存到博客根目录/public路径),将来布署到web服务器的是这些转换后的html页面
hexo generate
或
hexo g
# 启动本地Web服务器,默认启动在4000端口,打开浏览器即可看到整个博客站点的所有文章
hexo server
或
hexo s
# 将博客根目录/public路径下转换生成的html页面上传到指定主机
# 这个功能需要先在博客根目录/_config.yml文件配置布署参数,如下示例将通过rsync将文件上传到指定服务器目录
# deploy:
# type: rsync
# host: 192.168.10.122
# user: zhangsan
# root: /data/www/html
hexo deploy
或
hexo d
# 清空博客根目录/public路径下的所有数据
hexo clean
可以将上述命令写一个脚本中,方便调用。
如下脚本示例可用于一键布署最新博客站点(deploy.sh):
#!/bin/bash
hexo clean
hexo g
hexo d
基于Hexo搭建静态博客的更多相关文章
- 使用github和hexo搭建静态博客
获得更多资料欢迎进入我的网站或者 csdn或者博客园 终于写这篇文章了,这是我使用github和hexo搭建博客的一些心得,希望能给大家一点帮助.少走点弯路.刚接触github,只是用来存项目的版本, ...
- Hexo搭建静态博客踩坑日记(二)
前言 Hexo搭建静态博客踩坑日记(一), 我们说到利用Hexo快速搭建静态博客. 这节我们就来说一下主题的问题与主题的基本修改操作. 起步 chrome github hexo git node.j ...
- Hexo搭建静态博客踩坑日记(一)
前言 博客折腾一次就好, 找一个适合自己的博客平台, 专注于内容进行提升. 方式一: 自己买服务器, 域名, 写前端, 后端(前后分离最折腾, 不分离还好一点)... 方式二: 利用Hexo, Hug ...
- 在GitHub上使用Hexo搭建静态博客
搭建静态博客须要一个前提是电脑上有安装git而且有github帐号,这个不懂能够看廖雪峰先生的git教程 1.下载nodejs.在官网上能够下载 2.使用git进入你新建的一个目录,输入命令 npm ...
- hexo搭建静态博客
1. 环境环境 1.1 安装Git 请参考[1] 1.2 安装node.js 下载:http://nodejs.org/download/ 可以下载 node-v0.10.33-x64.msi 安装时 ...
- 基于Hexo搭建个人博客网站
## 准备工作 首先下载[nodejs](https://nodejs.org/en/download/),一路next安装即可.验证是否安装成功: ```bash node -v # 输出 v1 ...
- Hexo搭建静态博客站点
什么是Hexo? Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. 本文将介绍如何在没有域名和云主机的 ...
- hexo 搭建静态博客 + Next 主题配置
参考手册 HEXO:https://hexo.io/zh-cn/ NEXT:http://theme-next.iissnan.com/ 安装hexo npm install hexo-cli -g ...
- Github+Hexo搭建静态博客
开始 在安装hexo之前,必须确认你已经安装了Node.js和Git,并且注册了一个Github账号. 1.创建Github仓库 1) 仓库名为xxx.github.io 创建一个以"用户名 ...
- 使用 Hexo 搭建静态博客
目录 Hexo 简介 什么是 Hexo? Hexo 安装 Hexo 建站 Hexo 配置 Hexo 自定义主题 Hexo 写作 Hexo 服务器 Hexo 生成与发布 一键部署 Hexo 站点到 gi ...
随机推荐
- [CG从零开始] 6. 加载一个柴犬模型学习UV贴图
在第 5 篇文章中,我们成功加载了 fbx 模型,并且做了 MVP 变换,将立方体按照透视投影渲染了出来.但是当时只是随机给顶点颜色,并且默认 fbx 文件里只有一个 mesh,这次我们来加载一个柴犬 ...
- Java学习之路:快捷键
常用的快捷键 Ctrl+Shift:切换输入法 Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+X:剪切 Ctrl+A:全选 Ctrl+Z:撤销 Ctrl+Y:返回撤销 Ctrl+S:保存 Shif ...
- 代码块及final关键字的使用
1.代码块的作用:用来初始化类.对象 2.代码块如果有修饰的话,只能使用static. 3.分类:静态代码块 vs 非静态代码块 4.静态代码块 内部可以有输出语句 随着类的加载而执行,而且只执行一次 ...
- 后端框架的学习----mybatis框架(7、使用注解开发)
7.使用注解开发 1.注解在接口上实现 /** * 查询用户 */ @Select("select * from user") public List<User> ge ...
- 学生管理系统(C语言简单实现)
仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1 .实训名称 2.实训目的及要求 3. 源码 4.实验小结 1 .实训名称 实训12:文件 2. ...
- 知识图谱-生物信息学-医学论文(Chip-2022)-BCKG-基于临床指南的中国乳腺癌知识图谱的构建与应用
16.(2022)Chip-BCKG-基于临床指南的中国乳腺癌知识图谱的构建与应用 论文标题: Construction and Application of Chinese Breast Cance ...
- Linxu常用命令
一.Linux权限的概念 Linux下有两种用户:普通用户和超级用户: 普通用户:在linux下做有限的事情: 超级用户:可以在linux系统下做任何事情,不受限制. 普通用户的提示符是"$ ...
- java中的垃圾回收算法与垃圾回收器
常用的垃圾回收算法 标记-清除 标记清除算法是一种非移动式的回收算法,分为标记 清除 2个阶段,简而言之就是先标记出需要回收的对象,标记完成后再回收掉所有标记的内存对象,如下图 可见回收后图中被标记的 ...
- SQL中事务以及全局变量的使用
事务的定义 简单的说,事务处理可以用来维护数据库的完整性,保证一批SQL语句要么全执行,要么全部不执行 事务的特性 原子性 一致性 持久性 隔离性 注:一元九个 事务的使用 sel ...
- 19_Vue如何监测到对象类型数据发生改变的?
数据更新 关于监视 我们之前讲过,我们在data当中配置的属性,最终会挂载在vue实例身上,而data这个配置项,最终也会在vue身上成为一个新的属性 == _data 当我们在页面DOM当中,去使用 ...