hexo个人博客搭建(theme next)

以前使用docsify管理文档,如果个人使用,功能基本满足要求,但docify的显示theme不能令我满意。
最近发现了Hexo搭建博客的介绍,并且相关开发人员比较活跃,决定尝试一下。
开始阅读hexo的文档有些迷糊,后来看过其它文章,才渐渐明白hexo的使用,与相关主题的使用密不可分,可能用到最后,都是自己开发适合自己的theme……
我选择了一个比较喜欢的主题maupassant,试用后,感觉作者的活跃度不够,很多地方不是很理想,最后还是使用用户比较多的NexT主题。

文档项目创建

初始化hexo目录

主要步骤Hexo 首页上列出:

npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server

Hexo init生成的目录文件说明参考Hexo doc 建站

添加git管理

考虑到备份,修改等需要,将hexo文档目录添加git管理

git init

网上有几种git管理theme的方式:

git submodule add https://github.com/tufu9441/maupassant-hexo.git themes/maupassant
npm install hexo-theme-next
# _config.yml
# theme: next

添加 NexT theme

https://hexo.io/themes/查找主题next,获取github路径:

The upstream repository of theme NexT has been changed.
2014-2017   https://github.com/iissnan/hexo-theme-next
2018-2019   https://github.com/theme-next/hexo-theme-next
2020    https://github.com/next-theme/hexo-theme-next
In order to get the latest update, please backup files of the legacy theme NexT, and execute the following command

            
                git clone https://github.com/next-theme/hexo-theme-next themes/next
            
        
For Hexo 5.0 or later
            
                npm install hexo-theme-next
            
        
Documentation

下载最后发布版本源码zip,解压缩到themes/next目录

参考:Hexo-Theme-NexT主题自定义设置:论theme_config与next.yml方法的差异及取舍

几种使用theme的方式,最后还是采用源码方式(有时可能需要直接修改源码比较方便)

修改NexT主题配置

NexT doc Made by IIssNan

Hexo的配置修改,包括_config.yml中的站点配置,还有_config.next.yml中的主题配置

站点配置

diff --git a/_config.yml b/_config.yml
index 98bf35f..0b7181e 100644
--- a/_config.yml
+++ b/_config.yml
@@ -3,17 +3,17 @@
 ## Source: https://github.com/hexojs/hexo/

 # Site
-title: Hexo
-subtitle: ''
+title: iticd
+subtitle: '一年又一年…… 知而不行,是为不知;行而不知,可以致知'
 description: ''
 keywords:
-author: John Doe
-language: en
-timezone: ''
+author: iticd
+language: zh-CN
+timezone: 'Asia/Shanghai'

 # URL
 ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
-url: http://yoursite.com
+url: http://iticd.github.io
 root: /
 permalink: :year/:month/:day/:title/
 permalink_defaults:
@@ -28,7 +28,7 @@ tag_dir: tags
 archive_dir: archives
 category_dir: categories
 code_dir: downloads/code
-i18n_dir: :lang
+i18n_dir: :languages
 skip_render:

 # Writing
@@ -52,7 +52,7 @@ highlight:
   wrap: true
   hljs: false
 prismjs:
-  enable: false
+  enable: true
   preprocess: true
   line_number: true
   tab_replace: ''

主题配置

添加「标签」页面

添加「分类」页面

代码块

通过预览NexT Highlight Theme Preview,选择代码高亮样式:

站点配置修改:

highlight:
  enable: false
  ...
prismjs:
  enable: true
  ...

主题配置修改:

codeblock:
# Code Highlight theme
# All available themes: https://theme-next.js.org/highlight/
  ...
  prism:
    light: prism-tomorrow
    dark: prism-tomorrow
  ...

字体

Hexo Next 主题字体相关配置

Fonts-Customization

修改字体,字号:


# Define custom file paths.
# Create your custom files in site directory `source/_data` and uncomment needed files below.
custom_file_path:
  #head: source/_data/head.njk
  #header: source/_data/header.njk
  #sidebar: source/_data/sidebar.njk
  #postMeta: source/_data/post-meta.njk
  #postBodyEnd: source/_data/post-body-end.njk
  #footer: source/_data/footer.njk
  #bodyEnd: source/_data/body-end.njk
  variable: source/_data/variables.styl
  #mixin: source/_data/mixins.styl
  #style: source/_data/styles.styl

在source/_data/variables.styl中配置字体属性,避免修改next源码:

// Title Font, set it to font family you want.
$font-family-headings = Georgia, sans

// Set it to font family you want.
$font-family-base = "Microsoft YaHei", Verdana, sans-serif

// Code Font.
$code-font-family = "Input Mono", "PT Mono", Consolas, Monaco, Menlo, monospace

// Font size of articles.
$font-size-base = 14px

// Font size of table and code.
$table-font-size = 12px

Next 能加载用户自定义的样式,同样也能加载用户自定义样式使用的变量。然而同样比较可惜的是,自定义样式使用的变量里的定义(source/_data/variables.styl),不能覆盖变量默认定义的值(hexo-next-theme/source/css/_variables/)。但是你可以在默认定义里注释掉变量后,在自定义变量里重新定义并赋值。

写博客

修改文档模板

根据需要,修改Hexo目录下生成的文档模板,scaffolds/draft.md,scaffolds/post.md

---
title: {{ title }}
date: {{date}}
update: {{date}}
tags:
categories:
---

添加文章

添加博客文章,执行:

hexo new  post <title>

在source/_posts目录生成title.md文件,文章内容直接在md文件中修改,例:

---
title: hexo个人博客搭建(theme next)
date: 2020-08-25 11:13:27
updated: {{date}}
tags:
- Hexo
- 个人博客
categories:
- 个人博客系统
- Hexo
---

这里填写文章摘要……

<!--more-->

这里填写文章正文……

参考 Hexo doc front-matter

标签,分类

文档里的图片路径

使用固定的图片资源目录

资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等。比方说,如果你的Hexo项目中只有少量图片,那最简单的方法就是将它们放在 source/images 文件夹中。然后通过类似于[图片上传失败...(image-fa1c2a-1598453205685)] 的方法访问它们。

使用文章资源文件夹

对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组织化的方式来管理资源。这个稍微有些复杂但是管理资源非常方便的功能可以通过将 config.yml 文件中的 post_asset_folder 选项设为 true 来打开。

注:使用vscode进行md文件编辑时,由于路径原因,预览插件显示图片异常。

github 部署

修改_config.yml

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: 
    github: https://github.com/iticd/iticd.github.io.git
    gitee: https://gitee.com/iticd/iticd.git
  branch: 

注:可以同时部署多个站点

本地安装插件,部署

npm install hexo-deployer-git --save

hexo d

添加gitalk评论

  • 在github创建一个新仓库
  • 创建OAuth Apps (成功后记录client_id,client_secret)
OAuth Apps
  • 修改主题配置文件中gitalk配置
主题配置_config->gitalk
  • 重新部署
hexo clean && hexo d -g

参考

Hexo
Heox theme NexT
easy hexo
打造个性超赞博客 Hexo + NexT + GitHub Pages 的超深度优化
Hexo-Theme-NexT主题自定义设置:论theme_config与next.yml方法的差异及取舍
git submodule 使用小结
Markdown - 简单的世界

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349