Vitepress(一):基础教程

news2025/2/26 2:32:21

什么是Vitepress

Vitepress是使用Vue3+Vite来快速搭建一个个人网站的工具,网站搭建者不需要掌握Vue3,Vite等的具体内容,只需要简单的配置就可以生成Vue风格的个人网站

官方地址:https://vitejs.cn/vitepress/

本教程希望教会大家快速搭建一个基于Vitepress的个人博客,并且实现git page的自动部署,项目的预览地址如下:

个人博客:https://aiai0603.github.io

快速开始

首先安装vitepress的依赖,没前端基础的请先安装node和yarn

yarn init
# 然后全部敲回车就行了
yarn add --dev vitepress

进入package.json文件夹,将如下的内容写入在"devDependencies"的下方

"scripts": {
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:serve": "vitepress serve docs"
}

输入

yarn docs:dev

启动项目,可以看到项目已经运行起来了
在这里插入图片描述

配置网站

在目录下新建docs文件夹,在其中新建.vitepress文件夹和config.js文件,config.js文件就是我们的配置文件,新建一个index.html作为我们的主页,在新建一个public文件夹用于静态资源的引用,目录结构如下:

├─ docs
│  ├─ .vitepress
│  │  └─ config.js
│  ├─ public 
│  └─ index.md
└─ package.json

在config.js中可以开始我们的配置,先写上如下内容,这是网站的标题和描述,标题会在浏览器标签上展示

module.exports = {
  title: "blog",
  description: "Front end project and tips sharing",
}

之后配置我们的顶部,属性分别如下:

themeConfig: {
    siteTitle: "摸鱼老萌新",  //左上角的
    logo: "/logo.jpg",      //左上角的logo,注意:它的路径是从public文件夹开始的,所以这里引用的是public/logo.jpg这张图
    nav: [                  //右上角的导航栏
      {
        text: "前端",             //导航标签的名字
        items: [                  //这种格式是有下拉菜单的版本
          { text: "基础", link: "/articles/basic/index" },      //text代表每一项的名字,link是连接的位置
          { text: "Vue", link: "/articles/vue/index" },
          { text: "React", link: "/articles/react/index" },
          { text: "小程序", link: "/articles/mini/index" },
          { text: "Electron", link: "/articles/electron/index" },
          { text: "Web3D", link: "/articles/web3d/index" },
          { text: "其他", link: "/articles/other/vitepress/index" },
        ],
      },
      { text: "算法", link: "/leetcode/LEET_CODE题解/47. 全排列 II" },   //这种是没有下拉菜单的版本
      { text: "项目", link: "/intent/" },
    ],  
    socialLinks: [{ icon: "github", link: "https://github.com/aiai0603" }],       //右上角的社交标签,支持多种icon,具体可以查询官网,反正没有QQ和微信,放个git差不多意思意思就行了
},

配置完毕以后保存启动,可以看到效果是这样的:

在这里插入图片描述

此时我们已经创建了连接但是还没有把具体连接对应的内容创建好,下面来提一下路径和对应文件夹的关系:

Vitepress的根目录是从docs开始算的,比如你在docs下创建一个articles文件夹,那么它的路径就是/articles,再在里面创建一个other文件夹,那么路径就是/articles/other,然后你在other下面创建一个index.md,此时它的路径就是/articles/other/index(注意没有md),所以如果我们想让我们的导航栏链接到 /articles/other/vitepress/index 这个位置的文件,我们的文件结构是这样的:

├─ docs
│  ├─ articles
│  │  ├─ other
│  │  │  ├─ vitepress
│  │  │  │  ├─ index.html

在index.md里写点东西我们就可以看到效果了,请注意,所有链接的地址必须指向一个md文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZFu7EEnq-1673077967178)(/image-20221104172050148.png)]

侧边栏的配置和顶部导航差不多,唯一的区别的,你可以用key:value的方式为指定路径配置侧边栏,如下配置,可以看到 “/articles/other” 下的所有的内容所在的页面都有侧边栏

themeConfig: {
    //...省略前面的内容
    //侧边栏
    sidebar: {
      "/articles/other": [
      {
        text: "vitepress",    //标签名字
        collapsible: true,    //是不是可以动态展开
        collapsed: true,      //默认是不是展开
        items: [              //孩子
          {
            text: "index",        //标签名字
            link: "/articles/other/vitepress/index",         //链接
          },
        ],
      },
    ],
}

这个是预览效果:

在这里插入图片描述

至此你已经有了一个炫酷的网站

首页的优化

vitepress支持用户使用yaml配置页面的内容,在docs/index.html写下如下内容,更多配置请查看

官网 https://vitepress.docschina.org/guide/frontmatter.html

这里偷一张别人的说明帮助大家理解:

---
title: 摸鱼老萌新的博客
layout: home
hero:
  name: 摸鱼老萌新的博客
  text: 失业前端一枚
  tagline: 懒癌晚期,学习并分享各类前端的项目和知识
  image:
    src: /logo.jpg
    alt: logo
  actions:
    - theme: brand
      text: 开始学习 →
      link: /articles/basic/index
    - theme: alt
      text: 获取项目
      link: /intent/index

features:
  - icon: ⚡️
    title: 知识点分享
    details: 前端八股,踩坑小贴士
  - icon: 🖖
    title: 算法分享
    details: 用JS攻克leetode题库
  - icon: 🛠️
    title: 项目分享
    details: 开源简单的前端技术DEMO
---

请添加图片描述

至此我们已经有了一个有首页有内容有导航的网站了

现在他运行在本地,我可以自己查看它,但是我怎么样让更多人看到我的博客呢?别急,下面的教程中我将会带你部署项目到github pages上

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

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

相关文章

SD Nand 与 SD卡 SDIO模式应用流程

SD Nand/SD卡 SDIO模式应用流程 文章目录SD Nand/SD卡 SDIO模式应用流程1. 前言1.1 参考文档1.2 概述2. Response响应类型及格式3. 各步骤流程3.1 卡识别流程3.2 通讯速率及总线宽度修改流程3.3 擦除流程3.4 单块读流程3.5 单块写流程3.6 多块读流程3.7 多块写流程4. 结束语SD …

Java初识泛型 | 如何通过泛型类/泛型方法实现求数组元素最大值?

目录 一、引言 二、编程分析 1、泛型类实现 思路 代码 2、泛型方法实现 思路 代码 三、拓展:数组排序(以冒泡排序为例) 1、int类型 原代码 2、泛型类 3、泛型方法 一、引言 给定一个整型数组,求数组中所有元素的最大…

JVM知识体系学习三:class文件初始化过程、硬件层数据一致性(硬件层)、缓存行、指令乱序执行问题、如何保证不乱序(volatile等)

文章目录前言一、class文件初始化过程1、概述2、初始化过程-案例1a、代码T001_ClassLoadingProcedure 类加载过程b、解析3、初始化过程-案例2a、代码b、解析二、单例模式-双重检查三、硬件层数据一致性1、硬件层的并发优化基础知识b、Intel 的缓存一致性协议:MESI四…

Vivado综合设置之-keep_equivalent_registers

-keep_equivalent_registers即保留等效寄存器,所谓等效寄存器是指共享输入端口(输入时钟端口clk和输入数据端口rst)的寄存器。 勾选它时,意味着Vivado不会对等效寄存器进行优化; 不勾选它时(默认情况&…

eclipse安装UML插件

安装AmaterasUML AmaterasUML 是一个用于 Eclipse 的轻量级 UML 和 ER 图编辑器。 将AmaterasUML的3个jar包拷到Eclpise的plugins文件下: 重启eclipse 在新建菜单中可以发现已经出现了UML文件选项 安装GEF插件(Eclipse2018-12 以后无需安装&#xf…

②电子产品拆解分析-电动牙刷

②电子产品拆解分析-电动牙刷一、功能介绍二、电路分析以及器件作用1、振动电机开关控制电路2、锂电池供电与充电电路三、本产品的优缺点1、优点:2、缺点:一、功能介绍 ①5档工作模式;②2分钟倒计时停止工作;③工作续航一个星期以…

【MySQL】详解索引操作

索引什么是索引?索引的优势和劣势索引类型按数据结构分类按物理存储分类按字段特性分类主键索引唯一索引普通索引全文索引前缀索引按字段个数分类索引操作创建索引创建主键索引唯一索引的创建普通索引的创建全文索引的创建explain工具查询索引删除索引索引最好设置为…

SQL 注入学习路线

学习路线(大致) HTML > SQL > Python > SQL 注入(使用 sqli-labs 靶场来学习 SQL 注入) HTML 视频 【前端开发入门教程,web前端零基础html5 css3前端项目视频教程】 要求 使用该视频进行 HTML 基础部分…

Python之字符串的特点

1.布尔值 Python2中没有布尔值,直接用数字0表示Flase,用数字1表示True。Python3中,把True和False定义成了关键字,但他们的本质还是1和0,甚至可以和数字相加。 >>> a True >>> b 3 >>> …

[多图,秒懂]如何训练一个“万亿大模型”?

1. 背景近几年,随着“大模型”概念的提出,深度学习模型越来越大,如何训练这些大模型成为一个亟待解决的工程问题。最初的视觉模型只有几百兆的参数量,而现在的语言模型中,动则百亿,千亿的参数量&#xff0c…

[golang工作日记] for range 踩坑

1、for range指针赋值 Ops的数据保存在两个表中,一个是ops_tab,另一个是staff_tab,其中ops_tab的staff_id是staff_tab的外键,两个表都有staff_id字段。 type OpsDetail struct {OpsId stringStaffId stringOps *model.Ops…

Node.js安装配置

目录1. 下载node2. 安装3. 检查是否安装成功4. 配置缓存路径5. 实现一个demo1. 下载node 官方地址https://nodejs.org/en/下载长期支持版本 2. 安装 一路next node一起安装npm 这个地方不要勾选 安装成功 3. 检查是否安装成功 cmd运行下面命令 # 查看node的版本 node -v # …

【博客571】“时序敏感应用“ 如何prometheus自定义上报时间戳

“时序敏感应用” 如何prometheus自定义上报时间戳 1、场景 在物理网络监控中,对于流量趋势是极其敏感的,物理网络监控流量的点通常是秒级别甚至毫秒级别,此时这些时许点通过各种上报上传到监控系统中,由于网络波动,可…

Kubernetes v1.24.2高可用部署

sskubeasz 1、Kubeasy简介 kubeasz 致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。 kubeasz 从每…

【lc刷题 day12】堆/栈/队列

BM42 用两个栈实现队列 easy import java.util.Stack;public class Solution {Stack<Integer> stack1 new Stack<Integer>();Stack<Integer> stack2 new Stack<Integer>();public void push(int node) {stack1.push(node);}public int pop() {if(st…

随便聊聊浪潮开务数据库

今天这个话题挺随意&#xff0c;我们来聊聊浪潮开务数据库&#xff0c;原因主要是我的微信朋友圈被这个数据库刷屏了。当然我对这款号称多模数据库的非开源数据库也很感兴趣&#xff0c;也有很多疑问&#xff0c;希望各位专家能帮忙答疑解惑&#xff0c;揭开这款即将发布的 Kai…

机器学习--多层感知机、卷积神经网络、循环神经网络

目录 一、多层感知机 二、卷积神经网络 三、循环神经网络 总结 一、多层感知机 手工提取特征&#xff08;用人的知识进行&#xff09; --> 神经网络来提取特征。 神经网络&#xff08;可能更懂机器学习&#xff09;来提取 可能对后面的线性或softmax回归可能会更好一…

【UE4 第一人称射击游戏】23-添加子弹伤害

上一篇&#xff1a;https://blog.csdn.net/ChaoChao66666/article/details/128589063?spm1001.2014.3001.5501本篇效果&#xff1a;步骤&#xff1a;创建一个蓝图类&#xff08;父类为Character&#xff09;&#xff0c;命名为“SimpleAI”双击打开“SimpleAI”&#xff0c;点…

非对称加密实战(一):JDK生成keystore获取公钥私钥及代码验证【附源码】

目录使用说明非对称加密生成keystore文件公钥私钥互相解密获取fd-alias.keystore中的公钥私钥使用生成公钥私钥进行解密源码地址使用说明 非对称加密 非对称加密算法主要有&#xff1a;RSA、Elgamal、背包算法、Rabin、D-H、ECC&#xff08;椭圆曲线加密算法&#xff09;。下…

TensorRT学习笔记--基于FCN-ResNet101推理引擎实现语义分割

目录 前言 1--Pytorch模型转换为Onnx模型 2--Onnx模型可视化及测试 2-1--可视化Onnx模型 2-2--测试Onnx模型 3--Onnx模型转换为Tensor RT推理模型 4--基于Tensor RT使用推理引擎实现语义分割 前言 基于Tensor RT的模型转换流程&#xff1a;Pytorch → Onnx → Tensor RT…