hexo 搭建个人博客网站

hexo搭建个人博客

文章目录

  • hexo搭建个人博客
    • 摘要
    • 搭建网站的前置工具
      • WebStorm
      • Hexo
    • Hexo配置
      • 初始化
      • 本地运行
    • 主题更改
      • 安装butterfly主题
    • 正式上线
      • GitHub Pages配置
        • 新建仓库
        • SSH密钥配置
      • 将hexo部署到GitHub
    • 个性化设置
    • 后续网站更新内容
      • 分类和标签设置
        • 分类(categories)
        • 标签(tags)
        • 发布文章
      • 利用giscus配置评论
      • markdown中数学公式以及emoji显示

摘要

主要记录一下搭建网站的步骤,以及搭建好之后该怎么修改yml文件,使自己的网站看起来好看些,后期发布文章等等。。。此搭建全程免费,非常的不错(除了更改域名之外)
有什么附加功能大家可以一块在留言区讨论。
🔑 注释:我的内容从许多博客,帖子中汲取

接下来咱们开始进入正题

搭建网站的前置工具

部分内容参考搭建网站

WebStorm

使用WebStorm进行编写代码
在这里插入图片描述
VSCODE也可以。

Hexo

下载完之后,我们用Hexo框架来搭建网站,这个网站中有许多已经搭建好的网站模板主题。

在本文中我们使用butterfly主题。
在这里插入图片描述
在搭建此框架之前,咱们需要下载好Nodejs和Git
可以参考Nodejs和Git这两个博客进行下载。

好的,这些东西配置好之后开始搭建网站。

Hexo配置

桌面右击,打开git bash here输入命令安装(默认位置即可,方面后续配置,不建议修改)

npm install -g hexo-cli

接下来我们在电脑里自己想要放置博客配置和内容的地方新建一个文件夹:
比如说我在E盘建立了一个penny_blog文件夹,以后所有关于博客网站的内容都放在这个文件夹中。

初始化

接下来在新建立的文件夹下打开 git bash here 输入命令:

hexo init

初始化之后,该文件下面会出现以下内容:

这里借用了其他博主的图片。
简单介绍下hexo的文件结构:
public 最终所见网页的所有内容
node_modules 插件以及hexo所需node.js模块
_config.yml 站点配置文件,设定一些公开信息等
package.json 应用程序信息,配置hexo运行所需js包
scaffolds 模板文件夹,新建文章,会默认包含对应模板内容
themes 存放主题文件,hexo根据主题生成静态网页(速度贼快)
source 用于存放用户资源(除 posts 文件夹,其余命名方式为 “ + 文件名”的文件被忽略)
我们日常写文的操作都在 source/_post下。

本地运行

接下来我们用WebStorm打开根目录文件夹(比如说:penny_blog这个根目录文件夹)
然后在终端输入:

hexo s

这个s指的是server(本地服务器)

运行之后,会显示
在这里插入图片描述
点击链接 http://localhost:4000(图中黄色下划线位置)进行本地预览,默认是hexo内置的landscape 主题
在这里插入图片描述
在终端按Ctrl+C退出运行。

这个主题挺丑的,接下来我们更换主题,在Hexo themes可以找到许多主题,可以选择你自己喜欢的就行。我觉得butterfly这个主题特别好看,很可爱哈哈,而且功能很多。

好的接下来我们来讲一下更改主题

主题更改

以下内容参考博文butterfly主题配置

安装butterfly主题

  1. 在hexo项目根目录下(penny_blog)下载主题。
    在这里插入图片描述
    在命令端输入:
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
  1. 安装pug 和 stylus 渲染器。
npm install hexo-renderer-pug hexo-renderer-stylus --save
  1. 修改项目根目录下的_config.yml文件(称为站点配置文件)

在这里插入图片描述
输入以下命令开启主题

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: butterfly

在这里插入图片描述
4. 升级建议
为了減少升级主题带来的不便,我们可以把主题文件夹中的 _config.yml 重命名为 _config.butterfly.yml,复制到 Hexo 根目录下与_config.yml同级。(本人觉得非常好,要不容易报错)
Hexo会自动合并主题中的_config.yml和 _config.butterfly.yml ,如果存在同名配置,会使用_config.butterfly.yml的配置,其优先度较高。所以像和博客网址相关联的固定资料可以设置在_config.yml中,比在这里插入图片描述
如博客的标题、作者信息和邮箱等等资料,而和主题样式相关的配置放在 _config.butterfly.yml 中,那么在将来你想换一个主题是很方便的。
更改好主题之后,
在终端依次输入:

hexo clean
hexo g
hexo s

可以在本地看看更改好的的主题样式,长这个样子
在这里插入图片描述
这张图是本人已经修改了一下yml的配置内容,详细修改内容还是可以看看
butterfly主题配置这个博主写的内容,很详细。

正式上线

接下来我们需要发布自己做的网站,这里要借助github平台

GitHub Pages配置

可以通过github创建网页,而且免费,更新速度极快,刷新github仓库页面,网站也就自动更新了

新建仓库

填写内容如下,特别注意红框位置
在这里插入图片描述
一定要是自己的github的用户名,要不然就用不了哈!!!!
保证仓库public,名称填写正确用户名.github.io,系统自动变更为Pages

在仓库设置中找到Pages

在这里插入图片描述
记住仓库地址,我们会将本地的文件上传到仓库
在这里插入图片描述

SSH密钥配置

如果你是在电脑上第一次使用git,请先配置SSH公钥(一种安全协议,你可以理解为登陆某网站需要的验证码)
可以参考:GitHub SSH配置
配置好ssh之后我们就可以把本地的hexo和github仓库联系起来了

将hexo部署到GitHub

打开站点配置文件 _config.yml,翻到最后有个Deployment,修改内容如下,type和branch按照图片的内容修改就好,然后repository修改成你自己的仓库链接就行,一定要注意每个名称和值之间都有个空格
在这里插入图片描述
如果害怕出错,直接复制我的,然后把repository链接修改成你就行:

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:type: gitrepository: https://github.com/pennyzhao1507288/pennyzhao1507288.github.io.gitbranch: master

这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub。

npm install hexo-deployer-git --save

然后在本地根目录下(penny_blog)打开 git bash here 依次执行以下命令:

hexo clean //执行此命令后继续下一条
hexo g //生成博客目录
hexo s //本地预览
hexo d //部署项目

注意deploy时可能要你输入username和password。
执行完毕后,所有人就能通过你的用户名+github.io这个域名访问你的网站了。到这儿,我们就成功上线了自己的网站。

个性化设置

想要更改自己网站的一些配置 ,可以看刚刚上文的那个butterfly博文,也可以看butterfly官网的教程:

butterfly教程官网

后续网站更新内容

分类和标签设置

分类(categories)

1、创建“分类”选项

hexo new page categories

成功后会提示:

INFO  Created: ~/Documents/blog/source/categories/index.md
  1. 根据上面的路径,找到index.md这个文件,打开后默认内容是这样的:
---
title: categories
date: 2024-11-09 08:18:17
---

这个时间date是系统自动生成的,是你输入命令生成index.md的时间

  1. 添加type: "categories"到内容中,添加后是这样的:
---
title: categories
date: 2024-11-09 08:18:17
type: "categories"
---
标签(tags)

然后tag标签的创建方法也是如此:

  1. 创建tags选项
 hexo new page tags
  1. 找到tags一下的index.md
    在这里插入图片描述
    初始内容为:
---
title: categories
date: 2024-11-09 08:18:17
---
  1. 添加type
---
title: categories
date: 2024-11-09 08:18:17
type: "categories"
---
发布文章

接下来为你要发表的博客添加分类和标签
比如说我要发表AI的文章
那么输入命令:

hexo n "introduction to AI(1)"

这样子在根目录的source下的_posts下面会生成introduction to AI(1).md
在这里插入图片描述
然后你就可以按照typora的格式进行写文档。
对了,在这个文档中插入图片视频这些的,得用相对路径,你要把这些资源图片视频放在hexo(比如说:penny_blog)根目录的source下的新建文件夹中(我这边是创建了一个AI新文件夹)
在这里插入图片描述
我是现在是在本地其他地方保存了这些图片和视频,然后再复制到hexo根目录的source中,然后生成相对路径内容。
这个转换的脚本可以用以下python代码:

import os
import sys
import shutil
import subprocessdef hexoimg(img_path):# 获取文件名和扩展名fname = os.path.basename(img_path)# 目标目录dest_dir = r"E:\web\penny_blog\source\AI"  # 修改为你实际的目录# 确保目标目录存在os.makedirs(dest_dir, exist_ok=True)# 复制文件到目标目录dest_path = os.path.join(dest_dir, fname)shutil.copy(img_path, dest_path)# 生成 Markdown 格式的链接markdown_link = f"![Image](/AI/{fname})"# 将链接复制到剪贴板(适用于 Windows)subprocess.run("echo " + markdown_link.strip() + "| clip", shell=True)# 输出提示信息print(f"{markdown_link} Copied to Clipboard :)")if __name__ == "__main__":if len(sys.argv) < 2:print("Usage: python hexoimg.py path/to/your/image.jpg")else:hexoimg(sys.argv[1])

举个例子,在终端输入:

python hexoimg.py E:\学习\uni\year3\ai\img\week7_14.png

输出:

![Image](/AI/week7_14.png) Copied to Clipboard :)

然后直接粘贴到typora中就可以了
在这里插入图片描述
写好之后在git命令行中依次输入

hexo clean
hexo g
hexo d

就可以在github中更新,然后刷新网站就可以看到了。

搭建网站还有许多需要的知识,后续我再更新网站的时候,会继续分享心得的。


马上更新哈哈

利用giscus配置评论

我们使用Giscus来配置这个评论。
这是一个基于 GitHub Discussions 的评论
这是配置文件giscus
选择 giscus 连接到的仓库。请确保:

  • 该仓库是公开的,否则访客将无法查看 discussion。
  • giscus app 已安装,否则访客将无法评论和回应。
  • Disscussion 功能已在你的仓库中启用。

在这里插入图片描述
以上三个条件满足之后就可以了,然后网页往下翻有生成好的配置:
在这里插入图片描述
然后在_configure_butterfly.yml 文档中找到Comments,use内容改成Giscus

comments:# Up to two comments system, the first will be shown as default# Leave it empty if you don't need comments# Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/Artalk# Format of two comments system : Disqus,Walineuse: Giscus# Display the comment name next to the buttontext: true# Lazyload: The comment system will be load when comment element enters the browser's viewport.# If you set it to true, the comment count will be invalidlazyload: true# Display comment count in post's top_imgcount: true# Display comment count in Home Pagecard_post_count: true

然后在下方giscus的部分添加以下配置,用你自己在giscus生成的参数,这里是我的
在这里插入图片描述

giscus:repo: pennyzhao1507288/pennyzhao1507288.github.iorepo_id: R_kgDONMjCuQcategory_id: DIC_kwDONMjCuc4CkIEblight_theme: lightdark_theme: darkjs: https://giscus.app/client.jsoption:

配置好之后,我们在博文md最后添加刚刚giscus网页中生成的配置复制到md中(比如说这个AI markdown文件中添加评论):
在这里插入图片描述

完成之后
继续用

hexo clean
hexo g
hexo d

更新内容到github,然后刷新网页就行了,效果如下:
在这里插入图片描述

markdown中数学公式以及emoji显示

使用以下插件math plugin
在命令行输入

npm un hexo-renderer-marked --save
npm i hexo-renderer-markdown-it-plus --save

在根目录的 _config.yml 中添加以下内容

markdown_it_plus:highlight: truehtml: truexhtmlOut: truebreaks: truelangPrefix:linkify: truetypographer:quotes: “”‘’plugins:- plugin:name: markdown-it-markenable: falsemarkdown-it-emojimarkdown-it-submarkdown-it-supmarkdown-it-deflistmarkdown-it-abbrmarkdown-it-footnotemarkdown-it-insmarkdown-it-mark@iktakahiro/markdown-it-katexmarkdown-it-toc-and-anchor

然后在_config_butterfly.yml 中的math处修改一下代码
在这里插入图片描述
use处添加为katex
然后在katex里的copy_tex改成true

math:# Choose: mathjax, katex# Leave it empty if you don't need mathuse: katexper_page: truehide_scrollbar: falsemathjax:# Enable the contextual menuenableMenu: false# Choose: all / ams / none, This controls whether equations are numbered and howtags: nonekatex:# Enable the copy KaTeX formula
#    enable: truecopy_tex: true

更多好看的markdown语法可以参考markdown语法
在hexo中的markdown语法和typora有点不同。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

BLDC基础知识复习【二】

如果采用20毫欧的电流采样电阻&#xff0c;10A的电流计算出来时0.2V&#xff0c;这个显然还是太小了&#xff0c;需要运放放大并且加上偏置&#xff1a; 6组换向程序&#xff1a; 最核心的控制逻辑在这里&#xff1a;在main.c里面对PWM占空比进行设置&#xff0c;通过一个指针在…

1130 - Host ‘10.0.0.1‘ is not allowed to connect to this MySQL server

1130 - Host 10.0.0.1 is not allowed to connect to this MySQL server 一、1130 - Host 10.0.0.1 is not allowed to connect to this MySQL server二、1130 - Host 10.0.0.1 is not allowed to connect to this MariaDB serverendl 一、1130 - Host ‘10.0.0.1’ is not all…

构建智慧城市:数字孪生技术的发展之路

基于数字孪生的智慧城市发展是一种革命性的城市转型模式&#xff0c;旨在将物理世界与数字世界融合&#xff0c;在数字平台上建立城市的虚拟映像&#xff0c;从而实现对城市运行状态、资源利用、环境影响等方面的综合管理和优化。这种发展模式将数字技术深度融入城市规划、建设…

金融行业信息流投放方法论及金融客户投放案例

失血2024&#xff0c;金融行业进入“极寒”&#xff0c;广告投放也不例外。 受金融政策管控&#xff0c;在渠道投放受限也颇多&#xff0c;创意文案及素材上审核异常严格&#xff0c;整体投放成本高…… 金融理财信息流广告投放&#xff0c;如带着“镣铐”跳舞&#xff0c;束…

Unity-Yaml-Dot-Net诗歌篇-如何像雷总学习写代码像诗歌-MVC 框架,+注入Inject +状态机生命周期

我们是否可以像雷总一样 大家都说他的代码&#xff0c;像诗一样优雅 一个MVC 框架&#xff0c;加注入 &#xff08;以下内容其实和雷总没什么关系&#xff0c;也和雷总当年代码毫无关系&#xff0c;不过先“阅读理解”一下&#xff09; 雷总-写的代码像似一个优雅??!!^^ R…

安卓好软-----电脑端查看apk全部信息的工具 查看包名 名称以及权限等等

有时候从网络下载的应用很多是英文。时间久了会忘记到底是什么apk应用。这款工具可以方便的查看apk应用的名称 包名以及各种权限 图标 大小版本号等等。方便用户随时查看 APK Helper能够详细地获得安装包名、软件名称、APK证书、真实版本号、要求的手机版本、系统权限、以及证书…

分布式唯一ID生成(四):tinyid

文章目录 本系列前言号段模式多DB支持tinyid-client 本系列 漫谈分布式唯一ID分布式唯一ID生成&#xff08;二&#xff09;&#xff1a;leaf分布式唯一ID生成&#xff08;三&#xff09;&#xff1a;uid-generator分布式唯一ID生成&#xff08;四&#xff09;&#xff1a;tiny…

JavaWeb:文件上传2

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

April tag坐标定义

朝右的方向为x轴正向&#xff0c; 朝下的方向为y轴正方向&#xff0c; z 轴垂直纸面向里。 4个角点的坐标定义如下图所示。

江行智能×图扑软件:输煤皮带数字孪生管控系统

在现代矿业和电力行业中&#xff0c;输煤皮带系统是运输环节的核心。然后&#xff0c;随着智能化生产的高要求&#xff0c;智慧矿山输煤皮带系统的传统管理模式已显得力不从心。产业引入的三维可视化和数字孪生技术&#xff0c;一改传统输煤皮带系统由于设备老化、管理不善等原…

【Python】从入门开始抓取你想要的电影,一周可掌握基础,附完整源码

Python学习很简单&#xff0c;只是你走进了误区。 为什么你一定要先掌握枯燥的基础点后&#xff0c;再去做实际操作呢&#xff1f; 其实&#xff0c;你根本坚持不了那么长时间&#xff0c;但实际上你可以直接去做python项目。 不信&#xff1f;看看我做这个项目的思路&#x…

【C++】map和set的介绍及使用

前言&#xff1a; map和 set 是 C STL&#xff08;标准模板库&#xff09;中的两种非常重要的容器&#xff0c;它们基于一种叫做平衡二叉搜索树&#xff08;通常是红黑树&#xff09;的数据结构来实现。在 C 中&#xff0c;map 是一个键值对容器&#xff0c;set 只存储唯一的键…

NumPy 数组属性

1.NumPy 数组的基本属性 NumPy 数组的维数称为秩&#xff08;rank&#xff09;&#xff0c;秩就是轴的数量&#xff0c;即数组的维度&#xff0c;一维数组的秩为 1&#xff0c;二维数组的秩为 2&#xff0c;以此类推。NumPy中&#xff0c;每个线性的数组称为轴&#xff08;axis…

Spring源码(十二):Spring MVC之Spring Boot

本篇将详细讨论Spring Boot 的启动/加载、处理请求的具体流程。我们先从一个简单的Spring Boot项目日志开始分析&#xff08;这里假设读者已经仔细阅读完了前面的文章&#xff0c;且对Spring源码有一定深度的了解&#xff0c;否则会看得一脸懵逼&#xff09;。 本文为2024重置…

游戏引擎学习第四天

视频参考:https://www.bilibili.com/video/BV1aDmqYnEnc/ BitBlt 是 Windows GDI&#xff08;图形设备接口&#xff09;中的一个函数&#xff0c;用于在设备上下文&#xff08;device context, DC&#xff09;之间复制位图数据。BitBlt 的主要用途是将一个图像区域从一个地方复…

双指针算法的妙用:提高代码效率的秘密(2)

双指针算法的妙用&#xff1a;提高代码效率的秘密&#xff08;2&#xff09; 前言&#xff1a; 小编在前几日讲述了有关双指针算法两道题目的讲解&#xff0c;今天小编继续进行有关双指针算法习题的讲解&#xff0c;老规矩&#xff0c;今天还是两道题目的讲解&#xff0c;希望…

[CKS] K8S NetworkPolicy Set Up

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于不安全项目修复的题目。 What’s the NetworkPolicy 关于network policy的介绍可以查看&#xff1a; https://kubernetes.io/docs/concepts/services-networking/network-policies/ Question 1 …

python全栈开发《62.获取两个集合的并集》

目录 1.什么是并集2.union的功能3.union的用法4.代码 1.什么是并集 集合a&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4 集合b&#xff1a;3&#xff0c;4&#xff0c;5&#xff0c;6 a和b一共拥有的不重复的元素有1&#xff0c;2&#xff0c;3&#xff0c;4&#xff…

DICOM图像知识:DICOM图像排序与坐标系解析

目录 引言 1. 概述 2. DICOM图像排序规则 2.1 Patient的Study按Study Date排序 2.2 Study的Series按Series Number排序 2.3 Series的SOP按Instance Number或Slice Location排序 2.3.1 Instance Number排序 2.3.2 Slice Location排序 2.3.3 使用Image Position (Patien…

B-Spline(B样条)插值

B-Spline&#xff08;B样条&#xff09;详细介绍 B-Spline&#xff08;B样条&#xff09;是一种常用于计算机图形学和数据拟合的数学方法。它由一系列控制点和节点&#xff08;Knots&#xff09;以及一组基函数&#xff08;Basis Functions&#xff09;组成。B-Spline 能够通过…