vitepress组件库文档项目 markdown语法大全(修正版)
#上次总结的 有些语法是用在markdown文档中的 使用到vitepress项目中有些语法可能有出入 于是我再总结一版 vitepress项目中的markdown语法大全
在阅读本章节之前,请确保你已经对 Markdown 有所了解。如果你还不了解 Markdown ,请先学习一些Markdown 教程#
VitePress组件库文档项目中的Markdown语法十分丰富,它允许在Markdown文档中嵌入Vue语法,使得文档更加动态和交互。以下是一个关于VitePress中Markdown语法的大全,结合了Vue语法的使用
一、基础Markdown语法
-
标题:使用
#
号表示不同级别的标题,如# 一级标题
、## 二级标题
等。
# 一级标题
## 二级标题
### 三级标题
-
列表:使用
-
或*
表示无序列表,使用数字加.
表示有序列表。
#无序列表
- 列表项一
- 列表项二
- 列表项三#有序列表
1. 列表项一
2. 列表项二
3. 列表项三
-
链接:使用
[文本](链接)
表示超链接。
[这是一个链接](https://www.baidu.com)
-
图片:使用

表示图片。

-
代码块:使用三个反引号```包围代码,并可以指定语言进行高亮显示,如```javascript```。
```javascript
// 这是一个代码块
console.log('Hello, Vitepress!');```
-
表格:使用| 表头1 | 表头2 | 表头3 |表示表格。
| 表头1 | 表头2 | 表头3 |
|-------|-------|-------|
| 单元格1 | 单元格2 | 单元格3 |
| 单元格4 | 单元格5 | 单元格6 |
-
加粗和斜体。
**这是加粗文本**
*这是斜体文本*
-
分割线。
---
-
引用。
> 这是一个引用。
二、Markdown在vitepress使用扩展
-
内部链接。
内部链接将会转化成路由链接用于SPA导航。同时,每一个文件夹下的
index.md
文件都会被自动编译为index.html
,对应的链接将被视为 /。以下列目录结构为例:
.
├─ index.md
├─ foo
│ ├─ index.md
│ ├─ one.md
│ └─ two.md
└─ bar├─ index.md├─ three.md└─ four.md
假设你在foo/one.md
中:
[Home](/) <!-- 跳转到根目录的index.md -->
[foo](/foo/) <!-- 跳转到 foo 文件夹的 index.html-->
[foo heading](./#heading) <!-- 跳转到 foo/index.html 的特定标题位置 -->
[bar - three](../bar/three) <!-- 你可以忽略扩展名 -->
[bar - three](../bar/three.md) <!-- 具体文件可以使用 .md 结尾(推荐)-->
[bar - four](../bar/four.html) <!-- 也可以用 .html-->
页面后缀
页面和内部链接默认生成
.html
后缀。
-
外部链接
出站链接自动添加
target="_blank" rel="noopener noreferrer"
。
-
表情符号
输入:
:tada: :100:
输出:
🎉 💯
A list of all emojis is available.
-
自定义容器
自定义容器可通过他们的类型、标题和内容来定义。
输入:
::: tip
This is a tip
:::::: warning
This is a warning
:::::: danger
This is a dangerous warning
:::
输出:
-
自定义标题
输入:
::: danger STOP
Danger zone, do not proceed
:::
输出:
- 在语法块中的语法高亮
VitePress 通过 Prism来实现Markdown中语法块的语法高亮,使用了有色文本。 Prism 支持大量的编程语言,你需要做的只是在代码块的开始反引号后附加一个有效的语言别名
输入:
```js
export default {name: 'MyComponent',// ...
}
```
输出:
输入:
```html
<ul><li v-for="todo in todos" :key="todo.id">{{ todo.text }}</li>
</ul>
```
输出:
- 代码块中的行高亮
输入:
```js{4}
export default {data () {return {msg: 'Highlighted!'}}
}
```
输出:
除了指定单号以外,你也可以指定多个单行、区间或两者皆有:
- 行区间: 例如
{5-8}
,{3-10}
,{10-17}
- 多个单行: 例如
{4,7,9}
- 行区间与多个单行:例如
{4,7-13,16,23-27,40}
输入:
```js{1,4,6-7}
export default { // Highlighteddata () {return {msg: `Highlighted!This line isn't highlighted,but this and the next 2 are.`,motd: 'VitePress is awesome',lorem: 'ipsum',}}
}
```
输出:
-
行号
你可以通过全局配置 config中增加启用行号
module.exports = {markdown: {lineNumbers: true}
}
局部标记(推荐使用)
语法 :
直接在代码块类型的后面添加 :line-numbers 即表示开启行号
直接在代码块类型的后面添加 :no-line-numbers 即表示关闭行号展示
# 代码块-配置启用行号
```java:line-numberspublic class HelloWorld{public static void main(String[] args){System.out.println("hello world");}}
```
# 代码块-配置【不】启用行号
```java:no-line-numberspublic class HelloWorld{public static void main(String[] args){System.out.println("这是没有行号的代码块");}}
```
补充 : 指定行号的起始值
说明 : 行号默认是从
1
开始的,如果想改变这个值,可以通过:line-numbers=n
的方式,直接指定行号从n开始
-
代码聚焦
代码聚焦
的效果是 :凸显指定的内容,并模糊其他的部分,从而使重点突出。基本语法 :
// [!code focus]
用法 : 在需要聚焦的行后添加上述标注即可。
补充 :// [!code focus:xxx]
: xxx 是一个数字,代表要聚焦的行数
# 代码块-聚焦-单行
```javapublic class HelloWorld{public static void main(String[] args){System.out.println("hello world"); // [!code focus]}}
```# 代码块-聚焦-连续多行
```javapublic class HelloWorld{public static void main(String[] args){ // [!code focus:3]System.out.println("hello world");}}
```
-
删除/新增标记。
这个功能就类似于 git 中的代码的删除与新增的展示效果。
基本语法 :
删除标注
:// [!code --]
新增标注
:// [!code ++]
# 代码块-删除/新增标记
```javapublic class HelloWorld{public static void main(String[] args){System.out.println("hello world"); // [!code --]System.out.println("hello new world"); // [!code ++]}}
```
-
代码错误/警告标记。
可以提示读者哪些代码有错误。这个功能的效果也是通过行的颜色来表示的。
基本语法 :
错误标注
:// [!code warning]
警告标注
:// [!code error]
# 代码块-错误/警告标记
```javapublic class HelloWorld{public static void main(String[] args){System.out.println("hello world"); // [!code warning]System.out.println("hello new world"); // [!code error]}}
```
-
高级配置
VitePress 使用 markdown-it 作为Markdown的渲染器。上述许多扩展是通过自定义插件实现。你可以通过
.vitepress/config.js
中的markdown
进一步定制markdown-it
module.exports = {markdown: {// options for markdown-it-anchoranchor: { permalink: false },// options for markdown-it-toctoc: { includeLevel: [1, 2] },config: (md) => {// use more markdown-it plugins!md.use(require('markdown-it-xxx'))}}
}
三、在Markdown中使用vue
-
浏览器 API 访问限制
因为 VitePress 应用在生成静态构建时是通过 Node.js 服务端渲染的,因此所有 Vue 的使用必须符合编写通用代码的要求。简而言之,要确保只在
beforeMount
或mounted
时访问浏览器/DOM 的接口。
如果你在使用或展示非 SSR 友好(比如包含自定义指令)的组件,你就可以使用ClientOnly
将其包裹。
<ClientOnly><NonSSRFriendlyComponent/>
</ClientOnly>
注意,这并不能解决一些组件或库在导入时就试图访问浏览器 API 的问题。 如果需要使用这样的组件或库,你需要在合适的生命周期钩子中动态导入:
<script>
export default {mounted() {import('./lib-that-access-window-on-import').then((module) => {// use code})}
}
</script>
如果你的模块
export default
一个 Vue 组件,那么你可以动态注册。
<template><component v-if="dynamicComponent" :is="dynamicComponent"></component>
</template><script>
export default {data() {return {dynamicComponent: null}},mounted() {import('./lib-that-access-window-on-import').then((module) => {this.dynamicComponent = module.default})}
}
</script>
-
插值表达式
你可以在Markdown文件中直接使用Vue的插值表达式来显示数据
<script setup>
import { ref } from 'vue'
const message = ref('Hello, VitePress with Vue 3!')
</script># 标题这里是插值表达式:{{ message }}
-
指令
Vue的指令也可以在Markdown文件中使用,比如
v-if
、v-for
等
<script setup>
import { ref } from 'vue'
const isVisible = ref(true)
const items = ref(['Item 1', 'Item 2', 'Item 3'])
</script># 标题<div v-if="isVisible">这个div是可见的</div><ul><li v-for="item in items" :key="item">{{ item }}</li>
</ul>
-
组件
你可以在Markdown文件中导入并使用Vue组件
<script setup>
import MyComponent from './MyComponent.vue'
</script># 标题<MyComponent />
在这里,MyComponent.vue
是一个你定义好的Vue 3组件,它可以直接在Markdown文件中被引用和渲染。
-
事件处理
你也可以在Markdown文件中为Vue组件添加事件处理
<script setup>
import { ref } from 'vue'
const count = ref(0)
function increment() {count.value++
}
</script># 标题<button @click="increment">点击次数:{{ count }}</button>
-
使用
<script setup>
Vue 3引入了
<script setup>
语法糖,它允许你更简洁地编写组件逻辑。在VitePress的Markdown文件中,你也可以使用这种语法
<script setup>
// 在这里编写你的Vue 3逻辑
</script># 你的标题和内容// 在这里使用你的Vue 3组件和指令
注意事项
确保你的VitePress配置支持Vue 3和Markdown的结合。通常,VitePress默认支持这个功能,但你可能需要检查并配置一些选项。
在Markdown文件中使用Vue语法时,确保你的Vue代码被正确地包裹在<script>标签内,并且遵循Vue 3的语法规则。
如果你使用的是自定义的Vue组件,请确保它们已经被正确地导入,并且可以在Markdown文件中被识别和使用。
-
访问站点及页面数据
编译后的组件可以访问 站点元数据和计算属性。
输入:
{{ $page }}
输出:
-
Escaping
默认情况下,代码块(三个反引号包裹)将会被自动包裹在
v-pre
中。如果你想要在内联 (inline) 的代码块或者普通文本中显示原始的大括号或一些 Vue 特定的语法,你需要使用自定义容器v-pre
来包裹:
输入:
::: v-pre
`{{ This will be displayed as-is }}`
:::
输出:
{{ This will be displayed as-is }}
相关文章:

vitepress组件库文档项目 markdown语法大全(修正版)
#上次总结的 有些语法是用在markdown文档中的 使用到vitepress项目中有些语法可能有出入 于是我再总结一版 vitepress项目中的markdown语法大全 在阅读本章节之前,请确保你已经对 Markdown 有所了解。如果你还不了解 Markdown ,请先学习一些Markdown 教…...

Vue3技术开发,使用纯CSS3动手制作一个3D环绕的相册展示效果,支持传入任意图片.3D轮播相册的组件
主要讲述封装一个3D轮播相册的组件,效果图如下,仅仅传入一个图片的数组即可,效果如下: 使用Vue3技术开发,支持传入任意张数的图片。 使用方法 <template><Swiper :list"list" /> </templat…...

LeetCode 力扣 热题 100道(十五)搜索插入位置(C++)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 代码如下所示: class Solution { public:int searchIns…...

【035】基于51单片机俄罗斯方块游戏机【Proteus仿真+Keil程序+报告+原理图】
☆、设计硬件组成:51单片机最小系统LCD12864液晶显示按键控制。 1、设计采用STC89C52、AT89C52、AT89S52作为主控芯片,采用LCD12864液晶作为显示,大屏显示就是刺激; 2、游戏设置十个关卡,每个关卡累计99分即可进入下…...

NAT traversal 原理 | TCP / UDP/ P2P
注:本文为 “NAT traversal ”相关的几篇文章合辑。 未整理去重。 NAT 穿越技术原理 Li_yy123 于 2020-12-08 18:54:26 发布 一、NAT 由来 为了解决全球公有 IPv4 的稀缺,提出了 NAT 技术。NAT 是 Network Address Translation 网络地址转换的缩写。 …...

如何成长为一名工程技术经理
https://medium.com/srivatsan-sridharan/how-to-grow-as-an-engineering-manager-687cad0bcac7 作为一名工程技术经理,你可能已经积累了丰富的团队管理经验,并展示了出色的项目管理、优先级管理和员工指导能力。然而,尽管如此,你…...

GEE开发之下载海拔、坡度、坡向数据
GEE开发之加载海拔、坡度、坡向数据 方法一:加载elevation、slope、aspect和hillshade数据方法二:加载elevation、slope、aspect数据 前言:根据矢量图加载海拔、坡度、坡向和山体阴影。 方法一:加载elevation、slope、aspect和hil…...

gozero项目迁移与新服务器环境配置,包含服务器安装包括go版本,Nginx,项目配置包括Mysql,redis,rabbit,域名
迁移 **GoZero** 项目到新服务器并配置相关环境涉及多个步骤。以下是一个系统化的指南,涵盖服务器环境安装、数据库和缓存配置、项目部署以及域名绑定。 ### 步骤概述 1. **服务器环境配置** - 安装 Go 语言环境 - 安装 Nginx - 安装 MySQL 和 Redis -…...

Scala正则表达式全面教程
一、正则表达式概述 正则表达式(Regular Expression,简称RegEx)是一种用于字符串搜索和操作的强大工具,它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在Scala中,正则表达式通过scala.util.matching.…...

伺服电机为什么会变慢?
在现代工业自动化和控制系统中,伺服电机因其高效性和精确的控制能力而被广泛应用于各类机器和设备。然而,在实际使用中,有时用户会发现伺服电机的运行速度出现了下降的现象。这一变化不仅会影响生产效率,还可能对设备的安全性和可…...

61 基于单片机的小车雷达避障及阈值可调
所有仿真详情导航: PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于51单片机,采用超声波传感器检测距离,通过LCD1602显示屏显示,三个按键,第一个按键是…...

微信小程序之手机归属地查询
微信小程序之手机归属地查询 需求描述 API申请和小程序设置 API申请 第一步:完整账号注册 我们需要来到如下网站,注册账号:万维易源 第二步:账号注册完成以后,点击右上角的控制台信息。 第三步:在控制…...

ElementUI 问题清单
1、form 下面只有一个 input 时回车键刷新页面 原因是触发了表单默认的提交行为,给el-form 加上submit.native.prevent就行了。 <el-form inline submit.native.prevent><el-form-item label"订单号"><el-inputv-model"query.order…...

DVWA靶场——XSS(Stored)
一,Stored XSS 漏洞详解 存储型跨站脚本攻击(Stored XSS,或称为 Persistent XSS) 是一种常见的跨站脚本攻击(XSS)类型,它通过将恶意脚本(通常是 JavaScript 代码)直接存储…...

Spring框架中的Bean是线程安全的吗?
概述 在Java开发中,Spring框架是一个广泛使用的轻量级控制反转(IoC)和面向切面(AOP)容器框架。它简化了企业级应用的开发,提供了丰富的功能,如依赖注入、事务管理、消息传递等。在Spring框架中…...

uniapp远程摄像头流界面上显示
用到的插件:dplayer、hls dplayer官网:dplayer dplayer官网npm安装的是最新版本(1.27.1),真机运行异常了,可以安装历史版本 dplayer历史版本 远程摄像头视频流格式:m3u8 可以用来测试的视频流&a…...

elasticSearch(一):elasticSearch介绍
一、搜索引擎 搜索引擎的核心目的是帮助用户以最小的成本才海量数据中找到最想要的结果。糟糕的搜索引擎往往会所问非所答,用户查了半天也得不到自己想要的,好的搜索引擎往往第一页就是用户最想要的结果。而目前判断搜索引擎好坏一般是从召回率、精确率…...

基于 RWKV 的视觉语言模型 VisualRWKV 被 COLING 2025 接收!
基于 RWKV 的视觉语言模型 VisualRWKV 被 COLING 2025 接收! COLING,国际计算语言学会议(International Conference on Computational Linguistics),是自然语言处理和计算语言学领域的顶级国际会议(CCF 推…...

输出九九乘法表:JAVA
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 输出九九乘法表。 具体的输出格式见样例,其中每一项乘法的结果需要占据2个字符宽度,不同的乘法结果之间用1个空格间隔。 举例: 1*4_4_2*4_8_3*412_4*416 上…...

kube-proxy的iptables工作模式分析
系列文章目录 iptables基础知识 文章目录 系列文章目录前言一、kube-proxy介绍1、kube-proxy三种工作模式2、iptables中k8s相关的链 二、kube-proxy的iptables模式剖析1.集群内部通过clusterIP访问到pod的流程1.1.流程分析 2.从外部访问内部service clusterIP后端pod的流程2.1…...

xiaolin coding 图解 MySQL笔记——锁篇
1. 全局锁是怎么用的? flush tables with read lock 执行以后,整个数据库就处于只读状态了,这时其他线程执行对数据的增删改操作(insert、delete、update);对表结构的更改操作(alter table、dr…...

11-SpringCloud Alibaba-Seata处理分布式事务
一、Seata基本介绍 官网:https://seata.apache.org/zh-cn/ Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 我…...

更换 Git 项目的远程仓库地址(五种方法)
更换 Git 项目的远程仓库地址有几种不同的方法,下面是详细的步骤和一些额外的方法来完成这个任务。 方法1:使用 git remote set-url 这是最直接的方法。假设你想要更改名为 origin 的远程仓库地址到新的 URL。 查看当前的远程仓库配置: git…...

3大模块助力学生会视频自动评审系统升级
一、项目背景 传统的学生会视频作品或电子申请材料评审由老师线下逐一面审完成。面对大量学生提交的作品,评审效率低、耗时长,且主观性较强。为此,客户希望开发一个基于AI的线上自动面审系统,从语法正确性、演讲流利度和发音准确…...

鸿蒙开发——使用ArkTs处理XML文本
1、概 述 XML(可扩展标记语言)是一种用于描述数据的标记语言,旨在提供一种通用的方式来传输和存储数据,特别是Web应用程序中经常使用的数据。XML并不预定义标记。因此,XML更加灵活,并且可以适用于广泛的应…...

【Linux】文件查找 find grep
文章目录 1. 引言简介Linux文件系统的基本概念为什么文件查找命令在日常使用中非常重要 2. find 命令基本用法常见选项和参数高级用法和技巧实际示例 3. locate 命令如何工作与find命令的区别安装和使用locate实际示例 4. grep 结合文件查找使用grep进行内容查找结合find命令使…...

Go学习笔记之运算符号
算数运算符 运算符描述相加-相减*相乘/相除%求余自增–自减 代码示例: package mainimport "fmt"func main() {// 算数运算符a : 1b : 2fmt.Println(a b) // 加 3fmt.Println(a - b) // 减 -1fmt.Println(a * b) // 乘 2fmt.Println(a / b) // 除 0fm…...

npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本
要以管理员身份打开PowerShell,请按照以下步骤操作: 在Windows搜索框中查找PowerShell: 在任务栏上,点击左下角的Windows徽标(或按Win S键)以打开搜索框。输入“PowerShell”以查找PowerShell应用程序。右…...

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-torch_utils.py
torch_utils.py ultralytics\utils\torch_utils.py 目录 torch_utils.py 1.所需的库和模块 2.def torch_distributed_zero_first(local_rank: int): 3.def smart_inference_mode(): 4.def autocast(enabled: bool, device: str "cuda"): 5.def get_cpu_i…...

Java中的数据存储结构解析与应用
一、引言 在Java编程中,数据存储结构是程序设计的基础。合理选择和使用数据结构可以提高程序的性能和可维护性。本文将带您了解Java中的各种数据存储结构,并探讨其优缺点及适用场景。 二、基本数据类型 Java提供了8种基本数据类型,分别是b…...