首页 > 其他分享 >Hexo、VitePress、Docusaurus,哪个最适合你的静态网站生成器?

Hexo、VitePress、Docusaurus,哪个最适合你的静态网站生成器?

时间:2024-03-08 11:23:03浏览次数:34  
标签:Docusaurus docusaurus VitePress hexo 主题 生成器 vitepress

在选择合适的静态网站生成器时,Hexo、VitePress、Docusaurus是三个备受关注的选项,那么到底哪一个框架更适合你呢?本文将从使用场景、社区生态、功能、性能、扩展性这五个方面,帮你全方位分析各个框架的优缺点,以便为你的技术选型提供参考。

1、应用场景

  • Hexo, 官方定位自己是 "快速、简洁且高效的博客框架" , 但是它同样适合构建简单的文档网站,它具有简单易用的特点,适合那些对技术要求不高的个人用户快速搭建和管理网站。

  • VitePress, 基于vue的SSG框架,可以快速构建个人的技术文档系统,但是官方默认是不支持构建博客网站的,但是对于专业的前端开发者来说可以自己定制主题,对于非技术人员有一定的门槛。

  • Docusaurus, 基于react的SSG框架,相比与VitePress,Docusaurus支持博客和文档系统,同时也提供了一定的定制化能力,同样对于专业的前端开发者来说也可以自己定制主题,对于非技术人员有一定的门槛。

2、功能

框架 国际化 主题切换 本地搜索 markdown语法
hexo
vitepress
docusaurus

常见的功能,这些框架都支持,所以大家可以放心使用。

3、社区生态

社区:

  • Hexo, 由众多的独立开发者和用户提供支持和贡献,其社区十分活跃,你可以在社区中找到帮助和解决方案。
  • VitePress作为Vue项目的一部分,可以享受到Vue社区的支持。Vue社区庞大活跃,有很多开发者和用户参与其中,提供支持和贡献。
  • Docusaurus由Facebook开发和维护,拥有庞大的社区和开发者基础。它的社区中有很多开发者和用户提供支持和贡献,可以获得丰富的资源和帮助。

github stars:

框架 github stars url
hexo 38.2k https://github.com/hexojs/hexo
vitepress 10.4k https://github.com/vuejs/vitepress
docusaurus 51.8k https://github.com/facebook/docusaurus

相比较来说,docusaurus的stars数最多,hexo次之,vitepress最少当然10k左右的star其实已经很高了。

通过github stars的数量从侧面反应了这些框架在开源社区中的受欢迎程度和广泛使用的程度。然而,stars数目并不是衡量一个工具好坏的唯一标准。除了stars数目外,还应考虑其他因素,例如功能特性、扩展性、性能等。每个工具都有自己的特点和优势,适用于不同的使用场景和需求。因此,在选择合适的静态网站生成器时,除了stars数目外,还应该综合考虑工具的特点和适用性,以及社区支持和生态系统的健康程度,这只是提供给大家一个参考。

theme:

  • Hexo官方提供了一些内置的主题供选择,如Next、landscape、jacman等。这些主题具有不同的风格和布局,可以根据个人喜好进行选择和定制。Hexo社区中也有许多第三方开发的主题,如Butterfly、Maupassant等。这些主题提供了更多的样式和功能定制选项,可以满足更多的需求。
  • VitePress官方提供了默认的主题,具有简洁的设计和易于导航的布局。这个主题适合构建技术文档和API文档等。VitePress使用Vue单文件组件来编写内容,因此可以根据需求自定义主题。可以通过修改默认主题的样式和布局,或者创建全新的主题来满足个性化需求。
  • Docusaurus官方提供了默认主题,具有专注于文档网站的特点。它提供了清晰的导航结构、多语言支持、版本控制等功能,适合构建开源项目的文档网站。Docusaurus支持通过React自定义布局和组件来创建定制化主题。可以根据项目需求进行样式和布局的修改,或者通过创建自定义组件来扩展功能。

主题模板是静态网站生成器中用于定义网站外观和布局的重要组成部分。Hexo、VitePress和Docusaurus都提供了丰富的主题模板供选择。

Hexo拥有官方和第三方主题,可满足不同风格和需求;VitePress提供默认主题和自定义选项,适用于简洁的开源项目文档网站;Docusaurus的官方主题同样适合构建开源项目文档网站,并支持自定义布局和组件。

在选择主题模板时,应考虑风格、功能定制和社区支持。通过选择适合的主题模板,您可以快速打造吸引人、个性化的网站,满足您的需求和品味。

4、性能

说性能之前,得先知道各个框架底层的渲染框架,

  • hexo,底层使用EJS,EJS是一款 "嵌入式 JavaScript 模板" , 因此hexo的运行时依赖很少,具有原生html的性能。
  • vitepress,底层使用了vite、vue进行构建,vitepress运行时会有一个hydrate的过程,因此需要额外依赖vue.js的运行时支持,也就是需要加载额外的js文件。

    所谓hydrate,指的是 Vue 在浏览器端接管由服务端发送的静态 HTML,使其变为由 Vue 管理的动态 DOM 的过程。简单解释来说,就是让静态的html可以通过vue.js进行交互。

  • Docusaurus,底层使用了webpack、react进行构建,同样也会有hydrate的过程,也需要加载额外的js文件。

总结来说,从页面加载速度来说,hexo > vitepress > docusaurus。从开发环境的速来来说:ejs > vite > webpack。

但是,这些框架页面的加载速度来说,其实也就是200ms以内的差异,如果使用http cache、gzip等优化手段,这些框架的渲染速度差异几乎可以忽略不计。

5、扩展性

  • hexo,由于底层使用了ejs模板引擎,因此想要更加方便的扩展,其实相对来说不是一件容易的事情。然而如果你能选择hexo,我相信你其实也不需要什么额外的扩展。
  • vitepress,底层使用了vue,因此支持你完全使用vue的语法去定制你想要的任何样式。
  • docusaurus, 底层使用了react,因此同样支持你完全使用react的语法去定制你想要的任何样式。

总结

综上所述,根据不同的使用场景和需求,可以选择适合的工具。

如果你是一个非前端开发者,那么我建议hexo,你完全可以使用hexo提供丰富的社区模板构建你想要的页面。

如果你是前端程序员,并且技术栈以vue为主,可以尝试vitepress,但是vitepress不支持博客,当然你完全可以定制化主题,但是不妨可以先看看hexo是否有满足你需求的博客主题模板。

如果你是前端程序员,并且技术栈以react为主,可以使用docusaurus,它同时支持博客和文档,同样支持定制化主题。

最后献上我的个人博客网站:https://blog.chdl.fun , 我的博客是采用了docusaurus进行构建,欢迎读者老爷前来围观。

参考:

标签:Docusaurus,docusaurus,VitePress,hexo,主题,生成器,vitepress
From: https://www.cnblogs.com/chdoc/p/18060570

相关文章

  • 6.Python3 迭代器与生成器
    Python3迭代器与生成器1.迭代器迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器迭代器的定义字面意思:更新迭代,器:工具:可更新迭代的工具。专业角度:内部含有'__iter__'方法并且含......
  • 深度学习-卷积神经网络-keras生成器训练模型-51
    目录1.模型的定义2.图片batchgenerator3.模型训练1.模型的定义fromkeras.applications.inception_v3importInceptionV3fromkeras.modelsimportModelfromkeras.layersimportDense,GlobalAvgPool2Dfromkeras.optimizersimportRMSprop"""在AlexNet及其之前......
  • 实战上,通过一段ID 生成器代码,学习如何发现,代码质量的问题(设计模式)
    ID生成器的需求背景介绍ID中文翻译为标识Identifier,这个概念在生活,工作中随处可见,比如身份证、商业条形码、二维码、车牌号、驾照号。聚焦到软件开发中,ID常用来标识一些业务信息的唯一标识,比如订单的单号或者数据库中的唯一主键,比如地址中ID字段(实际上时没有业务含义的,对用......
  • yield生成器
    在JavaScript中,yield是一个关键字,用于生成器函数(GeneratorFunction)中。生成器函数是一种特殊类型的函数,它可以在执行过程中暂停,并且可以多次从暂停的位置继续执行。yield关键字用于定义生成器函数中的一个暂停点,并返回一个生成器对象的值。每次调用生成器函数时,执行会从上次......
  • Qt 随机数生成器:QRandomGenerator
    一、描述QRandomGenerator可用于从高质量随机数生成器生成随机值。与C++随机引擎一样,QRandomGenerator可以通过构造函数使用用户提供的值作为种子。播种时,此类生成的数字序列是确定性的。也就是说,给定相同的种子数据,QRandomGenerator会生成相同的数字序列。给定不同的种......
  • Python中生成器和迭代器的概念及两者区别
    本文详细介绍Python中生成器和迭代器的概念及两者区别。并通过一个案例分析两者在实际应用中的性能差异。 生成器生成器是一种特殊类型的迭代器,它使用函数和yield关键字定义,可以像普通函数一样调用和执行。生成器在每次迭代时产生一个值,并在下一次迭代时恢复执行。 在......
  • 全能代码生成器,自动生成前后端代码、生成项目框架、生成JavaBean、生成数据库文档、自
    TableGo_20240224v8.4.0正式版发布,此次版本累计更新如下: 1、TableGo专属LOGO上线 2、生成数据库文档ER图新增备注+字段名的生成配置 3、生成自定义文件功能新增临时参数配置,用于使用临时数据生成自定义文件 4、新增基于Excel数据生成自定义文件,可导入Excel数据生成程序代码......
  • Python实例:设置生成器单次生成数量
    在Python编程中,生成器是一种强大的功能,可以帮助我们避免使用大量内存来处理大型数据集。本文将介绍如何使用Python设置生成器单次生成数量,以提高生成器的效率。一、生成器简介在Python中,生成器是一个可迭代对象,可以用于在循环中生成值,而不是将所有值存储在内存中。生成器可以通过yi......
  • 经典Prompt欣赏 - Video Script Generator 视频脚本生成器
    体验可以通过https://chat.openai.com/g/g-rxlwmrnqa-video-script-generator地址体验,它将按照你的主题要求,创建TikTok视频脚本。PromptYouareanexpertinthefieldoftopic,whowantstocreateengagingandinformativecontentforTikTok.Youraudienceconsi......
  • 经典Prompt欣赏 - Video Script Generator 视频脚本生成器
    体验可以通过https://chat.openai.com/g/g-rxlwmrnqa-video-script-generator地址体验,它将按照你的主题要求,创建TikTok视频脚本。PromptYouareanexpertinthefieldoftopic,whowantstocreateengagingandinformativecontentforTikTok.Youraudienceconsi......