Skip to content

文档直接生成网页,所见即所得

🍊果冻橙橙君

概述

当产品完成后,想写个文档,本来打算用vitepress+vscode写的。

我突发奇想,既然我开发了文档软件,能不能直接通过文档生成网页呢?

这样就可以所见即所得编辑文档,然后快速发布网页了。

显然是可以这样实现的,只是稍微麻烦些,我整理了下思路,最终花了2天时间给实现了。

接下来,讲讲文档生成网页的优缺点,及其实现方案。

优缺点

优点:

  • 通过软件编辑文档,所见即所得

  • 快速修改,快速部署

缺点:

  • 可定制性较低,无法自定义网页内容

显然优点更多,开干!

实现方案

如果想要实现文档生成网站,或者说发布文档到网站,有以下2种方式:

1.搭建博客系统,通过后台接口发布文档

2.使用开源静态文档系统,通过markdown发表博客

为了快速完成这个功能,我采用了第2种方式,即通过开源静态文档系统来发布markdown的方式发布博客内容。

了解到有以下几种方式可以通过markdown生成网页:

  • hexo

  • VuePress

  • VitePress

我选择了较新的VitePress,因为看起来效果不错,而且生成的是静态网站内容,打开速度很快。

如果想要实现这个功能,就需要收集相关资料,通过关键字搜索收集即可:

  • VitePress

  • Markdown

最终确定下来的方案如下:

1.使用 VitePress 封装一个模板项目

2.通过文档生成 Markdown 的功能将 Markdown 文件写到 VitePress 相关文件夹

3.设计一个标签编辑器,绑定文档标签和网页默认标签

使用 VitePress 封装一个模板项目

这一点可以参考VitePress部署过程,阅读里面的文档即可,主要是导航栏还有侧边栏的配置,如下图所示:

期间发现了一个问题,VitePress默认采用public文件夹作为附件存储文件夹,这点和我采用的asstes存储附件存在冲突,找了半天,发现可以配置。

最终我对配置文件做了修改,创建vite.config.ts, 修改里面的publicDir, 如下图所示:

生成Markdown文件

这一点我早就实现了,只需扫描项目的文档文件,将内容格式化成markdown文件即可,主要是图片附件的生成存在问题,我之前的附件保存在assets,而VitePress要求public,不过还好支持自定义修改。

绑定文档标签和网页默认标签

接下就是将文档标签和VitePress标签绑定,首先设计一个界面来配置标签,如下图所示:

标签需要支持调节顺序,以及支持添加自定义链接。

所以在添加界面做了文章,支持添加本地文档和自定义链接,添加界面如下:

具体实现就是将文档树扫描出来,然后生成nav和siderbar配置了,最终还是实现了

具体使用

1.写完文档后,通过git同步下面的VitePress菜单,打开生成网页界面

2.配置要生成的标签,生成VitePress相关文件

3.通过Git同步功能提交到Git服务

4.通过服务器拉取Git仓库,部署文档网页

总结

实现这个功能其实不怎么复杂,但挺耗时的,花了2天时间,希望对大家有所帮助!