当前位置: 首页 > news >正文

基础教程 | 用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) : 翻译为 消息队列,别名为 消息中间件,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收&#xff0c…...

实际开发中,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 的基本概念入手&#xff…...

前端数据加载慢的解决方法

都是和前端性能优化非常类似的做法。 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)...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...