基础教程 | 用VuePress搭建一个简单的个人博客(附源码)
先附上自己个人博客页面:https://illusionno.github.io/
源码也在这里:https://github.com/illusionno/my-blog (如果觉得有帮助,可以点颗star✨)
使用的主题是vuepress-theme-reco@2.x,并在上面进行了一些调整。
💬注:美化版博客在blog目录下,基础版博客在simple-blog目录下!!




这里先介绍VuePress的基础使用,也就是目前大多数文档的那种简约风主题。
1. 基础版博客
使用VuePress简单搭建,原生主题:


1.1 VuePress初步搭建
1.创建并进入一个新目录
mkdir my-blogs
cd my-blogs
2.使用你喜欢的包管理器进行初始化
npm init -y
3.将 VuePress 安装为本地依赖
npm install -D vuepress
4.创建文档,并先随便写些内容
mkdir docs
echo '# Hello VuePress' > docs/README.md
注意:使用命令行写入内容时,README.md的编码格式如下,不然页面会乱码显示

5.在 package.json 中添加一些 scripts指令
"scripts": {"docs:dev": "vuepress dev docs","docs:build": "vuepress build docs"}
6.启动本地服务器
npm run docs:dev
1.2 基本配置
先在docs目录下创建一个 .vuepress 目录,所有 VuePress 相关的文件都将会被放在这里。
再在 .vuepress 文件夹下添加 config.js文件,它用于配置网站的标题和描述。
现在的项目结构如下:

在config.js中添加顶部导航栏和侧边栏配置:
module.exports = {// 添加标题和描述title: "MY BLOG",description: "description of my blog",themeConfig: {// 顶部导航栏nav: [{ text: "首页", link: "/" },{ text: "CSDN", link: "" },{ text: "Github", link: "" },],// 侧边栏sidebar: [{title: '分类1', // 必要的path: '/categroy1/', // 可选的, 标题的跳转链接,应为绝对路径且必须存在collapsable: false,// 是否可折叠,默认为truesidebarDepth: 1, // 可选的, 默认值是 1children: [{title: '分类1-1', // 必要的path: '/categroy1/one', // 可选的, 标题的跳转链接,应为绝对路径且必须存在},{title: '分类1-2', // 必要的path: '/categroy1/two', // 可选的, 标题的跳转链接,应为绝对路径且必须存在}]},{title: '分类2', path: '/categroy2/', collapsable: true, children: [{title: '分类2-1', path: '/categroy2/one', },{title: '分类2-2', path: '/categroy2/two', }]}]},
};
文档结构如下:


1.3 主页配置

VuePress 遵循 “约定优于配置” 的原则,静态资源图片存放在 .vuepress 文件夹下的 public 文件夹中。

主页README,md配置如下:
---
home: true
heroImage: /avatar.jpg
heroText: Hero 标题
tagline: Hero 副标题
actionText: 快速上手 →
actionLink: /category1/
features:
- title: 简洁至上 details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。
- title: Vue驱动details: 享受 Vue + webpack 的开发体验,在 Markdown 中使用 Vue 组件,同时可以使用 Vue 来开发自定义主题。
- title: 高性能details: VuePress 为每个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将作为 SPA 运行。
footer: Copyright © 2018-present baitao
---
1.4 favicon图标自定义

将图片先转成favicon.ico格式:🔍在线制作ico图标
将图片放在 public 目录下:

在 config.js中添加以下配置,设置favicon.ico的路径。
head: [['link',{ rel: 'icon', href: '/favicon.ico' }]],
更多其他设置,可以查看VuePress官网:https://vuepress.vuejs.org/zh/
2. 美化版博客
目前VuePress的热门主题有如下几个:

可以选择一个自己喜欢的风格:https://ecosystem.vuejs.press/zh/
我这里使用的是 vuepress-theme-reco@2.x 主题风格,
🔍vuepress-theme-reco@2.x文档
在使用该主题时,需要注意不可参照方默认主题文档来配置,必须按照该文档进行配置。

使用 vuepress-reco模板快速开始:
npx @vuepress-reco/theme-cli init
根据提示进行选择,哪一个模板其实都可以,不过主页会有些区别。可以直接选择2.x,风格会好看些。


运行:npm run dev

再在上面进行魔改一顿:



(光标可以悬浮在头像上看看👀)
相关文章:
基础教程 | 用VuePress搭建一个简单的个人博客(附源码)
先附上自己个人博客页面:https://illusionno.github.io/ 源码也在这里:https://github.com/illusionno/my-blog (如果觉得有帮助,可以点颗star✨) 使用的主题是vuepress-theme-reco2.x,并在上面进行了一些调…...
Ubuntu20.04,编译安装BCC
https://github.com/iovisor/bcc/blob/master/INSTALL.md 一、内核配置 In general, to use these features, a Linux kernel version 4.1 or newer is required. In addition, the kernel should have been compiled with the following flags set: CONFIG_BPFy CONFIG_BP…...
# 显卡算力参数对比
显卡算力参数对比 文章目录 显卡算力参数对比A 显卡参数查询B 显卡性能对比: 综合看:T4最具性价比 A 显卡参数查询 查询网址:https://www.techpowerup.com/gpu-specs/ ,以下列出部分: Product NameGPU ChipReleasedB…...
掌握RocketMQ4.X消息中间件(一)-RocketMQ基本概念与系统架构
1 MQ介绍 MQ(Message Quene) : 翻译为 消息队列,别名为 消息中间件,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,…...
实际开发中,java开发的准备工作
实际开发中,java开发的准备工作 一、IDEA工具环境设置 1、编码设置...
SQL进阶技巧:Order by 中 NULLS LAST特性使用?
目录 1 需求描述 2 数据准备 3 问题分析 4 小结 如果觉得本文对你有帮助,想进一步学习SQL语言这门艺术的,那么不妨也可以选择去看看我的博客专栏 ,部分内容如下: 数字化建设通关指南 专栏 原价99,现在活动价59…...
Redis:cpp.redis++类型操作
Redis:cpp.redis类型操作 stringsetmsetmgetgetrangesetrangeincrbydecrby listlpushrpushlrangellenlpoprpopblpopbrpop setsaddsmemeberssismemberscardspopsintersinterstore hashhsethgethexistshdelhkeyshvalshmsethmget zsetzaddzrangezcardzremzscorezrank 总…...
感冒用药记录
问题描述:国庆感冒了,头昏喉咙不舒服 用药过程: – 前3天:未用药,不好也不坏 – 中间2天:开始喉痛,使用复方氨酚烷胺胶囊【含对乙酰氨基酚】,基本没有效果 – 后面1天:开…...
JMeter性能测试时,如何做CSV参数化
在现代软件开发中,性能测试是保证应用程序在高负载条件下稳定运行的重要环节。为了实现真实场景的测试,参数化技术应运而生。其中,CSV参数化是一种高效且灵活的方法,可以让测试人员通过外部数据文件驱动测试脚本,从而模…...
爬虫获取不同数据类型(如JSON,HTML)的处理方法以及图片相对URL地址的转换
当我们爬取图片的URL地址时,我们要确保它们都是有效的绝对URL,这样就可以直接用这些URL来下载图片了。但是很多时候,它们都不是绝对URL地址,因此我们需要它进行URL转换。 if img_url.startswith(//): 这个条件检查URL是否以//开头…...
Elasticsearch 实战应用
Elasticsearch 实战应用 引言 Elasticsearch 是一个分布式、RESTful 风格的搜索和分析引擎,能够快速、实时地处理大规模数据,广泛应用于全文搜索、日志分析、推荐系统等领域。在这篇博客中,我们将从 Elasticsearch 的基本概念入手ÿ…...
前端数据加载慢的解决方法
都是和前端性能优化非常类似的做法。 1. 懒加载 (Lazy Loading) 对于图片、视频等资源,或者某些组件,在用户滚动到相关区域时再加载,而不是页面一开始就加载所有内容。使用 IntersectionObserver 实现懒加载,或者一些 UI 框架&am…...
探索MultiApp:一款强大的多应用管理工具
探索MultiApp:一款强大的多应用管理工具 在这个数字化时代,多任务并行已经成为我们日常生活的一部分。无论是工作还是娱乐,我们都需要频繁地在多个应用之间切换。今天,我要向大家介绍一款能够帮助你在同一设备上无缝切换和管理多…...
qt QGraphicsItem详解
一、概述 QGraphicsItem是Qt框架中图形视图框架(Graphics View Framework)的一个核心组件,它是用于表示2D图形元素的基类。 它支持的功能包括: 设置和获取图形项的位置和尺寸。控制图形项的外观,如颜色、笔刷、边框…...
LVS搭建负载均衡
LVS搭建负载均衡 引言 在现代互联网应用中,用户对服务的可用性和响应速度要求越来越高。为了应对高并发请求,保证系统的稳定性和容错能力,负载均衡技术应运而生。LVS(Linux Virtual Server)是一种高性能、高可用性的…...
Unity MVC框架演示 1-1 理论分析
本文仅作学习笔记分享与交流,不做任何商业用途,该课程资源来源于唐老狮 1.一般的图解MVC 什么是MVC我就不说了,老生常谈,网上有大量的介绍,想看看这三层都起到什么职责?那就直接上图吧 2.我举一个栗子 我有…...
基于springboot+vue人脸识别的考勤管理系统(源码+定制+开发)
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
【api连接ChatGPT的最简单方式】
通过api连接ChatGPT的最简单方式 建立client 其中base_url为代理,若连接官网可省略;配置环境变量 from openai import OpenAI client OpenAI(base_url"https://api.chatanywhere.tech/v1" )或给出api和base_url client OpenAI(api_key&…...
技术成神之路:设计模式(二十)装饰模式
介绍 装饰模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变对象自身的情况下,动态地为对象添加额外的职责。这个模式通常用于增强或改变对象的功能。 1.定义 装饰模式通过创建一个装饰类,将功能动态地添加…...
利用特征点采样一致性改进icp算法点云配准方法
1、index、vector 2、kdtree和kdtreeflann 3、if kdtree.radiusSearch(。。。) > 0)...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
Git 命令全流程总结
以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结,按操作场景分类整理: 一、初始化与基础操作 操作命令初始化仓库git init添加所有文件到暂存区git add .提交到本地仓库git commit -m "提交描述"首次提交需配置身份git c…...
