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。本…

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…

解决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…

day10_Structured Steaming

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

【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)

单例模式 作用&#xff1a;单例模式的核心是保证一个类只有一个实例&#xff0c;并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全&#xff0c;调用效率高 &#xff0c;但是不能延迟加载懒汉式线程安全&#xff0c;调用效率不高&#xff0c;能延迟加载双重检…

无公网IP 实现外网访问本地 Docker 部署 Navidrome

Navidrome 是一款可以在 macOS、Linux、Windows以及 Docker 等平台上运行的跨平台开源音乐服务器应用&#xff0c;它支持传输常见的 MP3、FLAC、WAV等音频格式。允许用户通过 Web 界面或 API 进行音乐库的管理和访问。本文就介绍如何快速在 Linux 系统使用 Docker 进行本地部署…

解决conda create速度过慢的问题

问题 构建了docker容器 想在容器中创建conda环境&#xff0c;但是conda create的时候速度一直很慢 解决办法 宿主机安装的是anaconda 能正常conda create,容器里安装的是miniforge conda create的时候速度一直很慢&#xff0c;因为容器和宿主机共享网络了&#xff0c;宿主机…

【Hive】新增字段(column)后,旧分区无法更新数据问题

TOC 【一】问题描述 Hive修改数据表结构的需求&#xff0c;比如&#xff1a;增加一个新字段。 如果使用如下语句新增列&#xff0c;可以成功添加列col1。但如果数据表tb已经有旧的分区&#xff08;例如&#xff1a;dt20190101&#xff09;&#xff0c;则该旧分区中的col1将为…

【Python】Selenium根据网页页面长度,模拟向下滚动鼠标,直到网页底部的操作

最近在弄selenium的爬取的过程中&#xff0c;我发现一些网站上的表格&#xff0c;是需要手动拉到底部才能加载完成的。 如果没有拉到底部&#xff0c;那么在获取网页表格的时候&#xff0c;表格就会只有显示的一部分&#xff0c;页面就不完整。 所以我就整理了一些模拟滚动鼠…

openharmony电源管理子系统

电源管理子系统 简介目录使用说明相关仓 简介 电源管理子系统提供如下功能&#xff1a; 重启服务&#xff1a;系统重启和下电。系统电源管理服务&#xff1a;系统电源状态管理和休眠运行锁管理。显示相关的能耗调节&#xff1a;包括根据环境光调节背光亮度&#xff0c;和根…

麒麟操作系统服务架构保姆级教程(十一)https配置

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 在运维工作中&#xff0c;加密和安全的作用是十分重要的&#xff0c;如果仅仅用http协议来对外展示我们的网站&#xff0c;过一段时间就会发现网站首页被人奇奇怪怪的篡改了&#xff0c;本来好好的博…

RabbitMQ---消息确认和持久化

&#xff08;一&#xff09;消息确认 1.概念 生产者发送消息后&#xff0c;到达消费端会有以下情况&#xff1a; 1.消息处理成功 2.消息处理异常 如果RabbitMQ把消息发送给消费者后就把消息删除&#xff0c;那么就可能会导致&#xff0c;消息处理异常想要再获取这条消息的时…

Linux:System V - 共享内存

1.System V共享内存的原理 通过为用户提供系统调用接口&#xff0c;让用户可以申请一块空间&#xff0c;进程A/B也可以通过系统调用接口将创建好的内存通过页表映射进进程的地址空间。完成让不同的两个进程看见同一份资源的目的。如果未来不想继续通信&#xff0c;取消进程和内…

SpringBoot错误码国际化

先看测试效果&#xff1a; 1. 设置中文 2.设置英文 文件结构 1.中文和英文的错误消息配置 package com.ldj.mybatisflex.common;import lombok.Getter;/*** User: ldj* Date: 2025/1/12* Time: 17:50* Description: 异常消息枚举*/ Getter public enum ExceptionEnum {//…