首页 > 其他分享 >使用hexo搭建博客

使用hexo搭建博客

时间:2022-08-31 17:02:59浏览次数:75  
标签:md git hexo 创建 博客 文章 new 搭建

中文官网地址:hexo

安装hexo

前提

  1. 自有服务器
  2. 域名
  3. 安装nodejs
  4. 安装git
npm install -g cnpm --registry=https://registry.npmmirror.com # 切换源,后续操作使用cnpm安装包
$ cnpm install hexo-cil -g 
$ hexo init blog # 会在当前目录下创建blog目录
$ cd blog
$ cnpm install
$ hexo server

在浏览器中输入localhost:4000即可看到博客已经在开发模式下正常运行。

配置hexo

在根目录下的_.config.ym文件中,配置如下内容:

# Site  
title: 菜小牛的Blog  # 网站标题
subtitle: 真正的大师永远怀着一颗学徒的心  # 网站副标题
description: 菜小牛的博客  # 网站描述,主要用于SEO
keywords: 菜小牛 Cirry  # 网站的关键词。支持多个关键词
author: Cirry  # 您的名字
language: zh-CN  # 设置为中文
timezone: 'Asia/Shanghai' # 修改为国内时区

# URL  
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'  
url: http://cirry.cn # 修改为你的博客地址

...

highlight:   # 开启代码高亮
  enable: true  
  line_number: true  
  auto_detect: true

...

mathjax: true # 没有就新增这一条,开启数学公式支持,在对应的文章中也需要开启mathjax支持

其余参数无需修改,保存之后,需要重新运行一下hexo server(当然你也可以使用npm run server 来重启应用),刷新页面才能看到最新的效果。

基础命令

命令 使用方式 命令参考 说明
init hexo init [folder] hexo init blog 初始化博客项目,只有在创建的时候需要使用到
new hexo new [layout] <title> hexo new post "hello" 新建一篇博文,在source/_posts目录下新建一个文件名为hello.md
generate hexo generate hexo g 生成静态文件
publish hexo publish [layout] <filename> hexo publish post "hello" 发表草稿
deploy hexo deploy hexo deploy 部署网站
render hexo render <file1> [file2] ... 渲染文件
migrate hexo migrate <type> 从其他博客系统 迁移内容
clean hexo clean hexo clean 清除缓存文件 (db.json) 和已生成的静态文件 (public)
list hexo list <type> 列出网站资料
version hexo version hexo version 显示 Hexo 版本
hexo --draft 显示 source/_drafts 文件夹中的草稿文章

常用命令举例

hexo new post --path hexo/hexo.md "hexo" # 会在source/_posts/hexo/ 文件夹下,创建hexo.md文档,且标题为"hexo"
hexo new page test  # 会在 source/test 文件下创建一个index.md 文档

使用git管理博客文章

你可以首先在github、gitee,或者在自建的git仓库中先创建一个git仓库。

你可以根据仓库创建完成后提示的命令提交代码。

git init
git add . 
git commit -m "first commit"
git remote add origin [url] # 替换为你的仓库url地址
git push -u origin master

git 基础命令

命令 说明
git pull 更新代码
git add . 添加代码到缓存区
git commit -m "文章更新" 添加说明
git push -u origin master 提交代码到仓库

按照上述命令顺序,即可正常的提交和更新博客仓库。

安装主题

安装Maupassant

这里我找了一个不错的主题做演示Maupassant

$ git clone https://github.com/tufu9441/maupassant-hexo.git themes/maupassant    
$ cnpm install hexo-renderer-pug --save    
$ cnpm install hexo-renderer-sass-next --save

配置主题

为了方便管理,我们可以将theme/maupassant 文件夹下的_.config.yml文件,移动到根目录下,并改名为_config.maupassant.yml,后续在这里配置主题即可。具体细节可以参考官网介绍### 使用代替主题配置文件

menu:  
  - page: home  
    directory: .  
    icon: fa-home  
  - page: archive  
    directory: archives/  
    icon: fa-archive  
  - page: about  
    directory: about/  
    icon: fa-user  
  - page: guestbook  
    directory: guestbook/  
    icon: fa-comments

配置完成后,发现项目中没有关于我和留言页面,我们可以使用以下命令创建:

hexo new page guestbook # 创建留言页面
hexo new page about # 创建关于我页面

设置网站图标

若要设置网站Favicon,可以将favicon.ico放在Hexo根目录的source文件夹下,建议的大小:32px*32px。

若要为网站添加苹果设备图标,请将命名为apple-touch-icon.png的图片放在同样的位置,建议的大小:114px*114px。

可以去这个网站检查图标样式favicon-checker是否适应各个浏览器。

设置文章模板

我们已经知道创建文章的命令是hexo new post "hello",但是该如何理解post这个参数?

在官网中,将其描述为layout(布局),默认使用_.config.yml中的default_layout来代替。我更愿意将其理解为文章模板,在我们使用命令创建的文章中会发现里面已经有了一些内容,这个内容从何而来?

打开项目根目录中的scaffolds文件夹发现,他已经有了三个默认的文件:draft.mdpost.mdpage.md,仔细看看post.md中的内容和我们创建的hello.md内容其实是一样的。

所以这个文件夹放的其实就是文章模板,你可以用他来自定义你需要通用内容,比如文章的tag,category和toc等等,那么在以后创建的文章中,将自带这些内容,修改post.md如下:

---  
title: {{ title }}  
date: {{ date }}  
tags:  
category:  
- []  
mathjax: true  
toc: true  
description:  
permalink:   
---

注意:category可以使用数组,tags可以直接写tag标签,类似:tags: hexo blog,自定义链接地址permalink必须以/结尾,类似:permalink: /hexo/install/1/

文章摘要

首页默认显示文章摘要而非全文,可以在文章的front-matter中填写一项description:来设置你想显示的摘要,或者直接在文章内容中插入<!--more-->以隐藏后面的内容,若两者都未设置,则自动截取文章第一段作为摘要。

使用hexo new post hello,新建一个hello.md文档, 内容如下:

hello.md
---
title: hello
date: 2022-08-18 18:44:43
tags: hexo
toc: true
description: What about the reality
mathjax: true
---
# Hello
There's that word again. 'Heavy.' Why are things so heavy in the future? Is there a problem with the Earth's gravitational pull?
## world
Knowledge could be more valuable than gold, more deadly than a dagger.
$$ f(x)=sin(x) + 12 $$

备注:title为文章标题,toc为开启文章目录,description是文章摘要内容,mathjax是开启数学公式持支持。

保存运行后,就可以看到文章已经正常显示啦,已经可以正常流畅的写文章了。

部署

讲的部署这个地方,就需要用到大家之前准备好的服务器了,并已经安装好nginx或者caddy等其它反向代理web服务,如果觉得麻烦可以直接使用github pages部署博客,具体可以参考# 将 Hexo 部署到 GitHub Pages

hexo的部署方式有很多种,我们暂时选择一个比较简单的部署方式SFTP,如果后续有更多人需要,我可以写一些其他的部署方式,比如drone自动部署等等。

使用ssh工具连接到服务上后,先创建用户和对应的博客目录

$ useradd -m -s /bin/bash hexo # 创建用户
$ passwd hexo # 设置密码

# 退出登录,使用hexo用户重新登录
$ cd ~
$ mkdir blog # 创建blog目录,放置部署文件的位置

首先需要安装这个插件:

$ npm install hexo-deployer-sftp --save

然后在根目录下的_config.yml中的末尾部分,添加以下配置:

deploy:  
  type: sftp  
  host: 159.75.81.123  
  user: hexo  
  pass: 123456  
  remotePath: /home/hexo/blog  
  port: 22

使用命令hexo g -d,自动部署博客到服务器上。

我使用的caddy做的web的反向代理,修改一下caddy配置文件Caddyfile,重启caddy即可正确打开网页:

cirry.cn{
	root * /home/hexo/blog
	file_server
}

至此,博客的基本配置和部署功能都已经完成,后续继续讲讲怎么安装插件和添加评论功能。

标签:md,git,hexo,创建,博客,文章,new,搭建
From: https://www.cnblogs.com/cirry/p/16643677.html

相关文章

  • 在linux上搭建并测试tpm simulator
    最近有一个搭建vTPM环境的需求,在网上搜寻了很多相关的资料,但网上的资料所提供步骤比较繁琐。经过多次试验,我成功地在archlinux上运行了tpm2simulator,遂将步骤记录下来,方......
  • linux 文件服务器搭建 ftp sftp smb httpd
    服务器配置规划:sftp默认安装linux后开启,windows用户需要安装工具连接。ftp安装vsftpd服务,配置虚拟用户,制定上传下载目录samba:服务安装samba服务器,配置共享目录,设定......
  • 使用离线安装包搭建gitlab服务器
    1下载Gitlab服务器软件包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce选择自己需要的版本下载即可,我是用的是centos7,所以我下载的是gitlab-ce-15.3.2-ce.0.e......
  • MySql Replication主从环境搭建
    1、主库安装完毕之后,执行以下查询:SHOWVARIABLESLIKE'log_bin';SHOWVARIABLESLIKE'binlog_format';SHOWVARIABLESLIKE'server_id';SHOWVARIABLESLIKE'i......
  • 个人博客地址
    博客园简书掘金知乎github码云51CTO......
  • Hexo+next主题美化
    前言需要在Hexo下配置next主题Hexo配置next主题教程:更改配置以后使用素质三连:hexoclean&&hexog&&hexos即可本地看到效果。hexoclean&&hexog&&hexos注:......
  • Hexo+Gitee免费搭建静态博客
    前言这是一篇利用GittePages+hexo搭建属于自己博客的教程,也是自己这个博客搭建好以后的第一篇文章,搭建的过程中也参考了各路大佬的文章,期间遇到了一些问题,所以写这一......
  • 大规模并行处理MPP的手动搭建
    MPP集群的搭建1.端口规划服务器ip实例名PORT_NUMMAL_PORTMAL_DR_PORTGROUP主1192.168.48.129GRP1_MPP_EP01523653375253G......
  • 读写分离集群的手动搭建
    1部署规划读写分离集群适合读多写少的应用环境。Ip规划主机名服务ip数据库名实例名DM_Z192.168.48.131DMSERVERDM01DM_B192.168.48......
  • 搭建ELK及kafka日志收集环境之容器内置(filebeat)日志收集
    架构图1、构建tomcat镜像1.1、基础环境准备 1.2、build-command脚本与Dockefile准备[root@easzlab-images-02tomcat-base]#catbuild-command.sh#!/bin/bashT......