Hexo + NexT + Github搭建个人博客

文章目录

  • 一、 安装
  • 二、配置相关项
    • NexT config
    • 更新主题
    • 主题样式
    • 本地实时预览
    • 常用命令
  • 三、主题设置
    • 1.侧边栏
    • 2.页脚
    • 3.帖子
      • 发布字数统计
    • 4.自定义
      • 自定义页面
      • Hexo 的默认页面
      • 自定义 404 页
      • 自定义样式
    • 5.杂项
      • 搜索服务
  • 四、第三方插件
    • NexT 自带插件
    • 评论系统
      • 阅读和访问人数统计
  • 五、部署到GitHub Pages
  • 六、小技巧
        • 在 PowerShell 上通过自定义命令来简化目录导航
  • 参考文档


零成本搭建博客,下面就介绍一下我的搭建过程以及一些踩过的坑。参考样式:点击访问

零成本搭建博客,国内访问也没问题,下面就介绍一下我的搭建过程以及一些踩过的坑。参考样式:点击访问

一、 安装

  1. 安装 Hexo在这里插入图片描述

  2. 安装 NexT 主题

    npm install hexo-theme-next
    
  3. 在 Hexo config 中把主题改为 NexT

    theme: next

二、配置相关项

NexT config

因为我是用 npm 安装的主题,所以需要将他的配置文件单独拉取出来,这也是官方推荐的,可以根据下面这篇文章去配置

#config-next-yml

现在我们得到了 NexT 主题的配置文件 _config.next.yml

更新主题

npm install hexo-theme-next@latest

主题样式

#scheme: Muse
#scheme: Mist
#scheme: Pisces
scheme: Gemini
drakmode # 深色模式

现在可以看我们的站点了 hexo clean && hexo s

本地实时预览

hexo g -w
hexo generate --watch

常用命令

hexo new <title>  # 新建文章
hexo new page <"page name">   # 建立新页面
hexo clean # 清除缓存文件
hexo list <type>  # 列出所有路由
hexo s  # 启动
hexo clean && hexo d  # 部署

三、主题设置

下面我仅用相关参数表示对应功能,大家在 NexT 配置文件中 Ctrl + F 即可找到它们。

1.侧边栏

toc - 侧边栏目录

favicon - 站点 icon,放 \source 目录下即可,因为我想要把 \source\images 用于存放帖子的图片

custom_logo - 头像, \source

creative_commons - CC 许可证,中文为 zh-hans

menu - 配置菜单项,就是主页、归档那些什么的显示

avatar - 更换侧边栏头像

social - 侧边栏社交链接

links - 友链

2.页脚

powered - 由 Hexo & NexT.Gemini 强力驱动

reward - 打赏

follow_me - 文章底部社交链接

3.帖子

tag_icon - 将正文底部的标签左边的#替换为icon

<!-- more --> - 手动断开文章,使得首页不显示文章全文

发布字数统计

  1. 安装

    npm install hexo-word-counter
    hexo clean
    
  2. Hexo config: symbols_count_time

  3. NexT config:

    symbols_count_time:symbols: true  # 帖子字数time: true  # 阅读时间total_symbols: true  # 站点总字数total_time: true  # 站点总阅读时长awl: 4  # 平均字长(以单词为单位的字符数)wpm: 275  # 每分钟的平均字数
    

4.自定义

自定义页面

  1. 先创建一个页面

    cd [your-site]  # 进到站点中
    hexo new page [page-name]  # 创建页面
    
  2. 在文件开头的 YAML 块(用于写入配置)中添加配置

  3. 通过主题的配置文件将你所创建的页面路由写入菜单menu,图标在 font awesome 中找

    # 标签
    ---
    title: Tags
    date: 2014-12-22 12:39:04
    type: tags
    ---
    

Hexo 的默认页面

  • 《标签》页:记得加type: tags,它的配置项在 tagcloud
  • 《分类》页:加上 type: categories 即可

自定义 404 页

  1. 确保禁用 relative_link

  2. 新建 404 页

    cd hexo-site
    hexo new page 404
    

    用户是否可以重定向到 404 页面取决于网站托管服务或 Web 服务器的设置,而不是 Hexo。例如,如果使用 Nginx 作为服务器,则还需要在 nginx.conf 文件中配置 404 页面。

自定义样式

自定义文件
与数据文件一样,您可以将所有自定义布局或样式放置存放在 source/_data 中,并在NexT config 中把 custom_file_path 中的注释打开相应的注释打开。

动态背景的配置,由于感觉有点占内存后面我给取消掉了

5.杂项

reading_progress - 顶部阅读进度加载条

back2top - 返回顶部按钮

bookmark - 书签(保存用户阅读进度)

github_banner - 右上角的 GitHub 标签

font - 更换字体

pace - 页面加载期间顶部的进度条

codeblock - 代码块相关设置

搜索服务

  1. npm install hexo-generator-searchdb安装

  2. Hexo config:

    search:path: search.xmlfield: postcontent: trueformat: html
    
  3. Next cofig:

    local_search:enable: true
    

四、第三方插件

官方插件库

NexT 自带插件

pajx - 加速访问网页

fancybox - 查看图片(更多自定义)

mediumzoom - 查看图片(仅查看,这两个不能同时开)

lazyload - 延迟图片加载

pangu - 在中文和英文数字间加个空格

quicklink - 加快访问速度

pace - 进度条

评论系统

我选择 Waline非常好用 ,不用登录也可以评论,注意一个就是那边的 serverURL 记得填成 Domains 旁的网址,也有 NexT 主题的插件,可以点击进去配置。

Waline官方文档

Waline用 Vercel 部署非常方便,但是奈何被墙国内无法访问😭(白嫖党泪目)最终还是改用了utterances,屈服了,Waline等以后有自己服务器再配置吧(可能)

  1. 安装在这里插入图片描述

  2. 在 NexT config 中找到并启用 utterances

阅读和访问人数统计

参考这篇博客

五、部署到GitHub Pages

可以看 Hexo 官方文档配合食用

  1. 建立名为 <username>.github.io的储存库

  2. 在项目目录底下安装插件用于一键部署

    npm install hexo-deployer-git --save
    
  3. 在 Hexo config 下添加以下配置

    deploy:type: gitrepo: https://github.com/<username>/<project>branch: gh-pages
    
  4. 执行 hexo clean && hexo d,即可配置成功

六、小技巧

在 PowerShell 上通过自定义命令来简化目录导航

效果:在这里插入图片描述

  1. notepad.exe $PROFILE 打开 pwsh 的配置文件

  2. 添加以下内容

    function order {Set-Location -Path "your path"
    }
    
  3. 上面的 order 可以改成自己想要的指令,路径根据自己的工作区来设置

  4. 完成后保存并关闭文件,使用 . $PROFILE 应用一下配置

最后来说一下正常写文章的流程:

  1. cmd + r 打开 PowerShell(我习惯是这样)
  2. cd 到项目目录
  3. hexo new "文章名称"
  4. typora .\source\_posts\title.md 打开我们的文章
  5. hexo clean && hexo d (也可以先 hexo g && hexo s 本地预览下)

参考文档

NexT 主题官方文档

Hexo 官方文档

utterances配置参考博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/67533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发神器之cursor

文章目录 cursor简介主要特点 下载cursor页面的简单介绍切换大模型指定ai学习的文件指定特定的代码喂给ai创建项目框架文件 cursor简介 Cursor 是一款专为开发者设计的智能代码编辑器&#xff0c;集成了先进的 AI 技术&#xff0c;旨在提升编程效率。以下是其主要特点和功能&a…

当前目录不是一个git仓库/远程仓库已经有了一些你本地没有的更改

目录 问题1&#xff1a;问题2&#xff1a;解决1解决2 问题1&#xff1a; fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). # 初始化 Git 仓库 git init需要到本地目录下先添加…

差异基因富集分析(R语言——GOKEGGGSEA)

接着上次的内容&#xff0c;上篇内容给大家分享了基因表达量怎么做分组差异分析&#xff0c;从而获得差异基因集&#xff0c;想了解的可以去看一下&#xff0c;这篇主要给大家分享一下得到显著差异基因集后怎么做一下通路富集。 1.准备差异基因集 我就直接把上次分享的拿到这…

BGP边界网关协议(Border Gateway Protocol)路由引入、路由反射器

一、路由引入背景 BGP协议本身不发现路由&#xff0c;因此需要将其他协议路由&#xff08;如IGP路由等&#xff09;引入到BGP路由表中&#xff0c;从而将这些路由在AS之内和AS之间传播。 BGP协议支持通过以下两种方式引入路由&#xff1a; Import方式&#xff1a;按协议类型将…

使用FFmpeg和Python将短视频转换为GIF的使用指南

使用FFmpeg和Python将短视频转换为GIF的使用指南 在数字时代&#xff0c;GIF动图已成为表达情感和分享幽默的重要媒介。无论是社交媒体上的搞笑片段还是创意项目中的视觉效果&#xff0c;GIF都能迅速抓住观众的注意力。然而&#xff0c;很多人不知道如何将短视频转换为GIF。本…

正则表达式基础知识及grep、sed、awk常用命令

文章目录 前言一、正则表达式元字符和特性1. 字符匹配2. 量词3. 字符类4. 边界匹配5. 分词和捕获6. 特殊字符7. 位置锚定 二、grep常用参数1. -n额外输出行号2. -v 排除匹配的行3. -E 支持扩展正则匹配4. -e进行多规则匹配搜索5. -R 递归匹配目录中的文件内容6. -r递归地搜索目…

工作中redis常用的5种场景

在日常开发工作中&#xff0c;Redis作为一款高性能的内存数据库&#xff0c;凭借其强大的功能特性和卓越的性能表现&#xff0c;已经成为了许多项目中不可或缺的组件。本文将详细介绍Redis在实际工作中最常见的5种应用场景&#xff0c;并附上具体的代码实现。 1. 缓存热点数据…

LLM - 大模型 ScallingLaws 的迁移学习与混合训练(PLM) 教程(3)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145212097 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…

深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化

深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化 背景介绍 Go语言作为一种高效的并发编程语言,其标准库中提供了丰富的并发工具,如sync.WaitGroup、sync.Mutex等。然而,在实际开发中,我们经常需要在多个goroutine之间共享数据,这就涉及到并发安全的问题。传统的…

解决leetcode第3418题机器人可以获得的最大金币数

3418.机器人可以获得的最大金币数 难度&#xff1a;中等 问题描述&#xff1a; 给你一个mxn的网格。一个机器人从网格的左上角(0,0)出发&#xff0c;目标是到达网格的右下角(m-1,n-1)。在任意时刻&#xff0c;机器人只能向右或向下移动。 网格中的每个单元格包含一个值coin…

蓝桥杯 Python 组知识点容斥原理

容斥原理 这张图初中或者高中数学课应该画过 也就是通过这个简单的例子引出容斥原理的公式 这张图的面积&#xff1a;s1 s3 s7 - 2 * s2 - 2 * s4 - 2 * s6 3 * s5 通过此引导出容斥原理公式 那么下面来一起看看题目 题目描述 给定 n,m 请求出所有 n 位十进制整数中有多…

GitLab:添加SSH密钥之前,您不能通过SSH来拉取或推送项目代码

1、查看服务器是否配置过 [rootkingbal-ecs-7612 ~]# cd .ssh/ [rootkingbal-ecs-7612 .ssh]# ls authorized_keys id_ed25519 id_ed25519.pub id_rsa id_rsa.pub2、创建密钥 $ ssh-keygen -t rsa -C kingbalkingbal.com # -C 后写你的邮箱 一路回车 3、复制密钥 [rootk…

Rust:指针 `*T` 和引用 `T`的区别

在 Rust 编程语言中&#xff0c;*T 和 &T 是两种不同类型的指针&#xff0c;它们各自代表了不同的内存访问方式和所有权模型。 *T&#xff08;原始指针或裸指针&#xff09;&#xff1a; *T 是一个原始指针&#xff08;也称为裸指针或裸引用&#xff09;&#xff0c;它可以…

day10_Structured Steaming

文章目录 Structured Steaming一、结构化流介绍&#xff08;了解&#xff09;1、有界和无界数据2、基本介绍3、使用三大步骤(掌握)4.回顾sparkSQL的词频统计案例 二、结构化流的编程模型&#xff08;掌握&#xff09;1、数据结构2、读取数据源2.1 File Source2.2 Socket Source…

华为OD机试E卷 ---最大值

一、题目描述 给定一组整数(非负)&#xff0c;重排顺序后输出一个最大的整数。 二、示例1 用例1 输入 10 9输出 910说明:输出结果可能非常大&#xff0c;所以你需要返回一个 字符串只而不是整数。 三、输入描述 数字组合 四、输出描述 最大的整数 五、解题思路 字符…

Elasticsearch容器启动报错:AccessDeniedException[/usr/share/elasticsearch/data/nodes];

AccessDeniedException 表明 Elasticsearch 容器无法访问或写入数据目录 /usr/share/elasticsearch/data/nodes。这是一个权限问题。 问题原因&#xff1a; 1、宿主机目录权限不足&#xff1a;映射到容器的数据目录 /data/es/data 在宿主机上可能没有足够的权限供容器访问。 …

设计模式-结构型-装饰器模式

装饰器模式&#xff08;Decorator Pattern&#xff09;是结构型设计模式中的一种&#xff0c;它允许你通过将对象封装在一个新的对象中&#xff0c;来动态地添加新的功能&#xff0c;而无需改变原对象的结构。装饰器模式的核心思想是“将功能附加到对象上”&#xff0c;它是一种…

第8篇:从入门到精通:掌握Python异常处理

第8篇&#xff1a;异常处理 内容简介 本篇文章将深入探讨Python中的异常处理机制。您将学习异常的基本概念与类型&#xff0c;掌握使用try-except块处理异常的方法&#xff0c;了解finally语句的作用&#xff0c;以及如何抛出和定义自定义异常。通过丰富的代码示例&#xff0…

Ubuntu20.4和docker终端指令、安装Go环境、安装搜狗输入法、安装WPS2019:保姆级图文详解

目录 前言1、docker、node、curl版本查看终端命令1.1、查看docker版本1.2、查看node.js版本1.3、查看curl版本1.4、Ubuntu安装curl1.5、Ubuntu终端保存命令 2、安装docker-compose、Go语言2.1、安装docker-compose2.2、go语言安装步骤2.3、git版本查看 3、Ubuntu20.4安装搜狗输…

【PHP】双方接口通信校验服务

请求方 使用 ApiAuthService::buildUrl($domain, [terminal > 1, ts > time()]); //http://域名/adminapi/login/platformLogin?signF7FE8A150DEC18BE8A71C5059742C81A&terminal1&ts1736904841接收方 $getParams $this->request->get();$validate ApiA…