alc-beijing / alc-site

The web site of the ALC Beijing (Apache Local Community Beijing)
https://alc-beijing.github.io/alc-site/
Apache License 2.0
82 stars 35 forks source link

[官网] 关于alc-beijing官网技术栈更换的讨论 #171

Open wolfboys opened 1 year ago

wolfboys commented 1 year ago

大家好,这是关于alc-beijing的新官网技术栈更换的讨论, alc-beijing官网目前采用的技术栈是hugo, 初步计划新官网使用docusaurus.

这里将从Docusaurus的优点,以及我们为什么要更换,迁移成本几个方面说:

Docusaurus的优点:

1. Markdown 驱动

节约时间并专注于文档本身。只需要以 Markdown/MDX 格式撰写文档/博客,Docusaurus 就能自动构建生成静态 HTML 文件。通过 MDX,甚至可以在 Markdown 中嵌入 React 组件。

2. 支持 React

通过编写 React 组件来扩展和自定义你的网页布局。利用插件架构,你可以在设计自己的网站的同时,复用 Docusaurus 插件所创建的数据。

3. theme 丰富

网站是否美观是非常重要的一部分,Docusaurus 有非常多开源的 user case, 开箱即用, 美观大气, 二开定制也非常方便

4. 插件丰富

Docusaurus 有大量的插件可供使用, 如 google-analytics, algolia 等

5. 极大的灵活性

由于自身是 Markdown驱动 ,支持 React, 用户可以自定义很多内容, 结合 Docusaurus 已有的能力, 带来极大的灵活性

6. 非常适合开源项目建站

Docusaurus 适合于开源项目的官方网站这类的需求,有很多开源项目都使用Docusaurus, 如: apisix, seatunnel, streampark 等.


我们为什么要更换:

1. 老的技术栈提供的能力有限

老的技术栈采用的是hugo ,不可否认 hugo有着非常大的使用人群, 但我实际调查发现. hugo 主打速度快,易用,可配置, 但是本身提供的能力有限, 主题模板,插件等也都相对简单一些, 相比之下 Docusaurus 是一个更加专业的建站工具.

2. 对 Docusaurus 比较了解

由于我之前的对 Docusaurus 就有了解,并实际使用过,主导过 seatunnel, streampark 官网的初版建设, 所以有一些经验. 能减少很多时间在踩坑上, 相反我对 hugo 并不了解

3. 可以很快二开

如果使用Docusaurus, 我们可以基于 Docusaurus 已有的模板, 很快定制化二开一个网站出来, 不失专业又美观

4. 学习成本低

我也考虑过大家之前已经熟悉hugo的方式,更换Docusaurus之后是否有学习成本的问题, 这里从两个视角说:

1) 文章投递

对于文章的投递,和之前完全一样,就是一个标准的Markdown文件, 放到指定的文章目录下即可, 没有任何学习成本

2) 网站维护 & 改版

官网的维护和改版,需要稍微看一下Docusaurus的文档, 都是模块化的, 支持标准的html,css和react, 对于开发者来说,学习成本也不大


技术栈更换成本:

我初步评估了下,技术栈从hugo更换为Docusaurus大致有以下几点:

1) 文章迁移成本

老的官网主要内容就是博客文章. 所以大头基本上在文章迁移这一块, 这部分如果文章里没有使用hugo的特有标签和指令,迁移起来应该比较简单

2) 一些动态化能力

这个方面属于迁移到新的官网(基于Docusaurus)之后需要面对的问题, 具体: 需要在首页放一些最新的文章,活动等, 这些应该是根据文章活动投递的时间排序取前N生成的, 这部分能力和相关api在 Docusaurus 中是否支持,还需要进一步调研.


欢迎大家讨论.

WillemJiang commented 1 year ago

目前网站的技术栈选择需要考虑两方面的因素:

  1. 网站内容迁移的成本, 因为Hugo也是采用的markdown的形式, markdown绝大部的内容不需要修改。 接下来需要调研的内容:
  2. 后续演进的考虑, 我们建设官网网站的目的还是为了聚集人气, 后续会考虑加入一些和大家互动的内容,希望新的技术栈能提供相关的支持。

至于最新文章,活动的展示,这块Hugo是提供了模版语言可以做相关的排序操作, 不知道 Docusaurus是否提供相关的功能?

imbajin commented 1 year ago

感谢分享, 看了下 streampark 的官网的确是比 hugo+docsy (裸) 的效果好不少, HugeGraph 也计划迁移过去, 欢迎指导

有机会的话也可以来一篇官网从 hugo -> Docusaurus 的文档, 对其他不熟悉 Docus* 的同学也有帮助, 包括迁移前后具体多出哪些比较好用的功能, 以及注意的事项

例如: hugo+docsy 的组合里对多语言的支持是把每个语言都单独 copy 一份目录, 更新文档的时候就挺繁琐, 不知是否有更简洁的方式(比如在一个文件/目录中直接更新)