正式发布:VitePress 1.0 现代化静态站点生成器!

大家好,我是奇兵,今天介绍一下现代化静态站点生成器!,希望能帮到大家。

3 月 21 日, 由 Vue 团队出品的现代化静态站点生成器 VitePress 正式发布 1.0 版本!它专为构建快速、以内容为中心的网站而生,能够轻松地将使用 Markdown 格式撰写的源文件内容转化为静态 HTML 页面,支持部署到任何平台。

图片

VitePress 基于 Vite 和 Vue 构建,是 VuePress 的精神继承者和现代替代品。

使用场景

  • 文档编写:VitePress 自带专为技术文档打造的默认主题,为 Vite、Rollup、Pinia、VueUse、Vitest、D3、UnoCSS、Iconify 等项目的文档提供了支持。Vue.js 的官方文档也基于 VitePress 构建,并通过自定义主题实现多语言版本的无缝切换。

  • 博客、作品集与营销网站:VitePress支持完全自定义的主题,并具备标准Vite + Vue应用程序的开发体验。由于基于 Vite 构建,还可以轻松利用 Vite 生态中的各类插件。更值得一提的是,VitePress提供了灵活的 API,支持本地或远程数据加载,并在构建阶段动态生成路由。只要数据在构建时是确定的,几乎可以用 VitePress 来构建任何类型的网站。

开发者体验

VitePress 旨在为处理 Markdown 内容提供出色的开发者体验。

  • Vite 驱动:实现秒速启动服务器,每次编辑都能实时反映在页面上(<100ms),无需重新加载页面。

  • 内置 Markdown 扩展:前置数据、表格、语法高亮等一应俱全,满足多样化的文档编写需求。特别是针对代码块的处理,VitePress 提供了众多高级特性,使其成为技术文档编写的理想选择。

  • Vue 增强的 Markdown:借助 Vue 模板与 HTML 的完美兼容,每个 Markdown 页面都能成为 Vue 单文件组件。这意味着可以利用 Vue 的模板特性或导入的组件,为静态内容增添丰富的交互性,提升用户体验。

性能

与许多传统 SSG(静态站点生成器)不同,VitePress 生成的网站在首次访问时提供静态 HTML,但在网站内部进行后续导航时,它会变成一个单页应用程序(SPA)。这种模型为性能提供了最佳平衡:

  • 快速初始加载: 首次访问任何页面时,都会提供静态的、预渲染的 HTML,以加快加载速度和优化 SEO。然后页面会加载一个 JavaScript 包,将页面转换为 Vue SPA(即“水合作用”)。与大家对 SPA 水合作用通常的缓慢假设相反,由于 Vue 3 的原始性能和编译器优化,这一过程实际上非常快。典型的 VitePress 网站在 PageSpeed Insights 中即使在低端移动设备和慢速网络环境下也能获得接近完美的性能评分。

  • 快速加载后导航: 更重要的是,SPA 模型在初始加载后为用户提供了更好的体验。在网站内部进行后续导航时,不再需要整个页面重新加载。相反,会获取目标页面的内容并进行动态更新。VitePress 还会自动为视口内的链接预取页面块。在大多数情况下,加载后的导航会感觉非常快。

  • 无缝的交互体验: 为了能够水合静态 Markdown 中嵌入的动态 Vue 部分,每个 Markdown 页面都被视为一个 Vue 组件并编译成 JavaScript。这听起来可能效率不高,但 Vue 编译器足够智能,能够分离静态和动态部分,从而最小化水合成本和有效载荷大小。对于初始页面加载,静态部分会自动从 JavaScript 有效载荷中消除,并在水合过程中跳过。

VitePress 官网:https://vitepress.dev/

喜欢的话点点赞收藏一下谢谢

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wagtail-基于Python Django的内容管理系统CMS实现公网访问

目录 前言 1. 安装并运行Wagtail 1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具 3. 实现Wagtail公网访问 4. 固定Wagtail公网地址 前言 Wagtail是一个用Python编写的开源CMS&#xff0c;建立在Django Web框架上。Wagtail 是一个基于 Django 的开源内容管理系统&…

python知识点总结(十)

python知识点总结十 1、装饰器的理解、并实现一个计时器记录执行性能&#xff0c;并且将执行结果写入日志文件中2、队列和栈的区别&#xff0c;并且用python实现3、设计实现遍历目录与子目录4、CPU处理进程最慢的情况通常发生在以下几种情况下&#xff1a;5、CPU处理线程最慢的…

计算机网络基础——网络安全/ 网络通信介质

chapter3 网络安全与管理 1. 网络安全威胁 网络安全&#xff1a;目的就是要让网络入侵者进不了网络系统&#xff0c;及时强行攻入网络&#xff0c;也拿不走信息&#xff0c;改不了数据&#xff0c;看不懂信息。 事发后能审查追踪到破坏者&#xff0c;让破坏者跑不掉。 网络…

c++核心学习--继承2

4.6.7多继承语法 4.6.8菱形继承 利用虚继承解决菱形继承的问题&#xff1a;继承之前加上关键字virtual变为虚继承

基于随机森林与LSTM神经网络的住宅用电比较分析及预测 代码+论文 完整毕设

摘要 本文旨在探讨基于随机森林&#xff08;Random Forest&#xff09;与长短期记忆神经网络&#xff08;Long Short-Term Memory, LSTM&#xff09;的住宅用电比较分析及预测方法。随机森林是一种集成学习方法&#xff0c;通过构建多个决策树进行预测&#xff0c;具有较强的鲁…

【每日一题】2024年3月汇编(上)

3.1【2369】检查数组是否存在有效划分 2369. 检查数组是否存在有效划分https://leetcode.cn/problems/check-if-there-is-a-valid-partition-for-the-array/ 1.这样的判断可以用动态规划来解决&#xff0c;用一个长度为(n1) 的数组来记录 是否存在有效划分&#xff0c;dp[i]…

前端学习笔记 | Node.js

一、Node.js入门 1、什么是Node.js 定义&#xff1a;是跨平台JS运行环境&#xff08;可以独立执行JS的环境&#xff09;作用&#xff1a; 编写数据接口&#xff0c;提供网页资源功能等等前端工程化&#xff1a;为后续学Vue和React等框架做铺垫 2、Node.js为何能执行JS&#xff…

思维升级之路:观察思维深层,解锁认知新境界

目录 一、观察我们的思维习惯 二、人类有哪些思维方法 三、为什么要多使用归纳推理而不是演绎推理 四、转变思维的关键 - 觉察 怎么提升自身的认知水平&#xff1f;这篇文章里&#xff0c;作者尝试对思维模式这件事做出探讨&#xff0c;一起来看看&#xff0c;或许可以帮你…

JUC内容概述

复习概念 Sleep和Wait的区别 Sleep是Thread的静态方法&#xff0c;wait是Object的方法&#xff0c;任何对象实例都可以使用sleep不会释放锁&#xff0c;他也不需要占用锁&#xff0c;暂停。wait会释放锁&#xff0c;但是调用他的前提是线程占有锁他们都可以被Interrupted方法…

Gartner 公布 2024 年八大网络安全预测

近日&#xff0c;Gartner 安全与风险管理峰会在悉尼举行&#xff0c;旨在探讨网络安全的发展前景。 本次峰会&#xff0c;Gartner 公布了 2024 年及以后的八大网络安全预测。 Gartner 研究总监 Deepti Gopal 表示&#xff0c;随着 GenAI 的不断发展&#xff0c;一些长期困扰网…

力扣● 503.下一个更大元素II ● 42. 接雨水

503.下一个更大元素II 与496.下一个更大元素 I的不同是要循环地搜索元素的下一个更大的数。那么主要是对于遍历结束后&#xff0c;单调栈里面剩下的那些元素。 如果直接把两个数组拼接在一起&#xff0c;然后使用单调栈求下一个最大值就可以。 代码实现的话&#xff0c;不用直…

RHCE-3-远程登录服务

简介 概念 远程连接服务器通过文字或图形接口方式来远程登录系统&#xff0c;让你在远程终端前登录linux主机以取得可操作主机接口&#xff08;shell&#xff09;&#xff0c;而登录后的操作感觉就像是坐在系统前面一样 功能: 分享主机的运算能力 服务器类型&#xff1a;有限…

hcia datacom课程学习(4):ICMP与ping命令

1.什么是ICMP ICMP是ip协议的一部分&#xff0c;常用的ping命令就是基于icmp协议的。 在防火墙策略中也能看到ICMP&#xff0c;如果将其禁用&#xff0c;那么其他主机就ping不通该主机了 2. ICMP数据报 2.1数据报构成 ICMP协议的报文包含在IP数据报的数据部分&#xff0c; …

from_pretrained 做了啥

transformers的三个核心抽象类是Config, Tokenizer和Model&#xff0c;这些类根据模型种类的不同&#xff0c;派生出一系列的子类。构造这些派生类的对象也很简单&#xff0c;transformers为这三个类都提供了自动类型&#xff0c;即AutoConfig, AutoTokenizer和AutoModel。三个…

力扣 718. 最长重复子数组

题目来源&#xff1a;https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/ C题解&#xff08;思路来源代码随想录&#xff09;&#xff1a;动态规划 确定dp数组&#xff08;dp table&#xff09;以及下标的含义。dp[i][j] &#xff1a;以下标i - …

【数据结构与算法】判断字符串是否括号匹配

题目 一个字符串 s 可能包含 { } ( ) [ ] 三种括号判断 s 是否是括号匹配的如(a{b}c) 匹配&#xff0c;而 {a(b 或 {a(b}c) 不匹配 栈 先进后出API&#xff1a; push pop length相关的&#xff1a;队列、堆 栈和数组的关系或区别 栈是一种逻辑结构&#xff0c;理论模型&am…

c语言编译和链接

一个.c源文件是如何经过处理变成可执行的.exe文件&#xff1f; 这其中经过了编译和链接两个大过程。总的来讲&#xff0c;就是每个源文件经过编译后生成对应地目标文件&#xff0c;然后所有的目标文件和所引用的标准库链接&#xff0c;形成了.exe文件。具体是怎样&#xff0c;…

TTS 文本转语音模型综合简述

本文参考文献&#xff1a; [1] Kaur N, Singh P. Conventional and contemporary approaches used in text ot speech synthesis: A review[J]. Artificial Intelligence Review, 2023, 56(7): 5837-5880. [2] TTS | 一文了解语音合成经典论文/最新语音合成论文篇【20240111更新…

代码随想录算法训练营第二十二天|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

代码随想录算法训练营第二十二天|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点 35.二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有…

2024 ccfcsp认证打卡 2023 03 01 田地丈量

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt(); // 输入 n&#xff0c;表示矩形的数量int a in.nextInt(); // 输入 a&#xff0c;表示整个区域的长度int b in.nextInt()…