简介

# 简介

该项目由赞助 位 VuePress 由两部分组成:具有 Vue 驱动的主题系统的简约静态站点生成器,以及为编写技术文档而优化的默认主题。它的创建是为了支持 Vue 自己的子项目的文档需求。

VuePress 生成的每个页面都有自己的预渲染静态 HTML,提供了很好的加载性能,并且对 SEO 很友好。但是,一旦加载了页面,Vue 就会接管静态内容并将其转换为完整的单页面应用程序(SPA)。当用户在站点周围导航时,将根据需要提取其他页面。

# 工作原理

VuePress 站点实际上是由 Vue,Vue Router 和 webpack 提供支持的 SPA 。如果您之前使用过 Vue,那么在编写或开发自定义主题时您会注意到熟悉的开发体验(您甚至可以使用 Vue DevTools 调试自定义主题!)。

在构建期间,我们创建应用程序的服务器呈现版本,并通过虚拟访问每个路径来呈现相应的 HTML。这种方法的灵感来自于 Nuxt 的 nuxt generate 命令以及 Gatsby 等其他项目。

每个 markdown 文件都使用 markdown-it 编译为 HTML,然后作为 Vue 组件的模板进行处理。这允许您在 markdown 文件中直接使用 Vue,并且在需要嵌入动态内容时非常棒。

# 为什么不......?

Nuxt Nuxt 能够执行 VuePress 的功能,但它专为构建应用程序而设计。VuePress 专注于以内容为中心的静态站点,并提供为开箱即用的技术文档量身定制的功能。

Docsify / Docute 两者都是伟大的项目,也是 Vue 驱动的。除了它们都是完全由运行时驱动的,因此不是 SEO 友好的。如果您不关心 SEO 并且不想干扰安装依赖项,那么这些仍然是很好的选择。 HEXO Hexo 一直很好地服务于 Vue 文档 - 事实上,我们可能还有很长的路要走,因为我们的主站点已经远离它。最大的问题是它的主题系统非常静态且基于字符串 - 我们真的希望利用 Vue 来实现布局和交互性。此外,Hexo 的降价渲染不是最灵活的配置。

GitBook 我们一直在为大多数子项目文档使用 GitBook。GitBook 的主要问题是它的开发重载性能无法容忍大量文件。默认主题也具有非常有限的导航结构,并且主题系统同样不是基于 Vue 的。GitBook 背后的团队也更专注于将其转变为商业产品,而不是开源工具。