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

简单介绍下 VitePress 中的 vp-doc 和 vp-raw

VitePress 是一个轻量级的静态网站生成器,专为快速构建文档网站而设计。它是基于 ViteVue 3 构建的,旨在提供快速的开发体验和高效的构建过程。

存在两个需要注意的点:vp-doc 和 vp-raw,它们代表了不同的 CSS 样式类和用途,涉及页面内容的呈现方式。

1. vp-doc 的含义与用法

1.1 含义

vp-doc 是 VitePress 用来构建文档页面时,应用于整个页面布局的一种 CSS 样式类。它是 VitePress 内部定义的一个类,作为页面的根容器元素,包含了文档的结构样式,确保文档内容的排版、间距、背景色等统一性。

1.2 用法

vp-doc 作为文档页面的根容器,包含了所有文档内容。它通常用于包裹整个文档站点的 HTML 结构。

通过对 vp-doc 类样式进行修改,可以自定义整个文档站点的布局和样式。

在 VitePress 中,vp-doc 是自动添加的,无需手动去创建这个类。它作为 VitePress 渲染文档的一个基础,控制页面的整体布局。

因此,当遇到自定义样式不生效时,需要考虑是否优先使用了 vp-doc 样式。

举个 🌰

当编写一个 table 组件时,展示为:

代码为:

import { defineComponent } from "vue";
import { ElButton, ElTable, ElTableColumn } from "element-plus";
import "./index.less";

export default defineComponent({
  setup() {
    const tableData = [
      { name: 'Sophia', age: 18, country: '美国' },
      { name: 'William', age: 20, country: '新加坡' },
      { name: 'Alice', age: 25, country: '中国' },
      { name: 'Evelyn', age: 30, country: '法国' },
      { name: 'Emma', age: 10, country: '俄罗斯' },
    ];

    return () => (
      <div class="table-container">
        <ElTable data={tableData} style={{ width: '100%' }} border stripe>
          <ElTableColumn prop="name" label="姓名" />
          <ElTableColumn prop="age" label="年龄" />
          <ElTableColumn prop="country" label="国家" />
          <ElTableColumn min-width="120" label="操作">
            {{
              default: () => (
                <div class="operation">
                  <ElButton link type="primary" size="default">查看</ElButton>
                  <ElButton link type="primary" size="default">编辑</ElButton>
                  <ElButton link type="primary" size="default">删除</ElButton>
                </div>
              )
            }}
          </ElTableColumn>
        </ElTable>
      </div>
    );
  }
});

问题来了:为什么表格展示有问题呢?

翻看一下元素就明白了,vp-doc 样式起作用,全部注释掉之后,就恢复为正常表格。

也就是给属性默认值:

.vp-doc table:not(:where(.vp-raw, .vp-raw *)) {
  border-collapse: initial;
  margin: 0 auto;
  display: table;
}

注意📢:这个样式的位置要考虑全面,避免影响到全局。 

正常展示为:

遇到其余类似情况,也是一样的处理。 

1.3 注意事项

vp-doc 是 VitePress 内部使用的一个类,通常不需要直接去修改它,除非需要全局定制样式。它是页面的主要结构,包含了 VitePress 的默认布局,除非有特殊的需求,通常不建议直接去删除或修改这个类的结构。

2. vp-raw 的含义与用法

2.1 含义

vp-raw 是 VitePress 中用于处理原始 HTML 或未经过解析的内容的一个特殊类。它允许用户在文档中插入原始 HTML 或其他不会被 VitePress 处理的内容。

2.2 用法

vp-raw 通常与 VitePress 渲染过程中需要“原生”呈现的内容结合使用。

举个 🌰

在 VitePress 中,使用普通 class 类名和 vp-raw 类名直接插入 HTML 代码块的区别。

普通 class

<div class="custom-html">
  <p>This content is implemented using a regular class name.</p>
</div>

vp-raw 类

<div class="vp-raw">
  <p>This content is implemented using the vp-raw class name.</p>
</div>

区别:二者的 p 元素样式是不同的。

2.3 意义

vp-raw 类的关键在于,它可以防止内容在渲染过程中被 VitePress 进一步解析,保留其原始形式。这样可以让开发者插入非 Markdown 或非 VitePress 处理的内容。

注意:尽量避免过度使用 vp-raw,因为直接插入 HTML 可能会破坏 VitePress 的一致性和文档结构。只有在必要时,才建议使用该类。

2.4 特别使用

当项目中不想使用额外的 vp-doc 的样式,也就是 VitePress 本身的样式文件,可以在目录:vitepress/vp-demo/index.vue 内部代码的最外层设置:

<div class="vp-raw">
  ...
</div>

即可实现页面应用的都是自定义样式。

3. 额外补充一点「::: demo」

在 VitePress 中,::: demo 是一个非常有用的语法,它是 VitePress 中的一个自定义容器,用于创建一个可交互的代码演示区域。通过包裹代码块的方式,使得代码示例可以在页面上呈现出来。

也就是上述表格的展示方式。


http://www.kler.cn/a/420450.html

相关文章:

  • 威联通-001 手机相册备份
  • idea 自动导包,并且禁止自动导 *(java.io.*)
  • 《以 C++为笔,绘就手势识别人机交互新画卷》
  • 基于大数据python 电商数据分析及推荐可视化系统(源码+LW+部署讲解+数据库+ppt)
  • linux系统中常用文件日常使用命令记录
  • LCD与lvgl
  • Git:分支管理
  • 面试小札:JVM虚拟机
  • LeetCode Hot100 21~30
  • 数仓3.0与大模型(如大型语言模型和其他深度学习模型)之间的关系
  • 机器学习(3)朴素贝叶斯算法
  • 数据库日志
  • HTML前端开发-- Flex布局详解及实战
  • 4k4d 学习安装笔记
  • CS144(七)
  • Linux - selinux
  • 屏幕触控支持指纹
  • 小程序 - 比较数字大小
  • Git 快速入门:全面了解与安装步骤
  • Leetcode:3195
  • RabbitMQ的工作模式
  • MySQL1.0
  • SQL面试题——抖音SQL面试题 股票波峰波谷
  • ubuntu 安装微信,记录
  • Docker 进阶指南:常用命令、最佳实践与资源管理
  • GPDB EXPLAIN ANALYZ比直接执行SQL慢?