如何使用Docsify编写好的文档

如何使用Docsify撰写高质量文档

文档对于一个成功的产品至关重要。没有文档,人们使用你的产品会更加困难,如果你正在运行一个开源项目,文档同样重要。

创建一个文档站点可能会具有挑战性,尤其是如果你对前端开发不熟悉。

我过去8年一直是一名前端开发者。在那段时间里,我使用过许多框架来构建文档,比如Next.js、nextra、content layer、Ghost CMS、lume(deno)、docusaurus和Mark doc。

但是,要使用其中的许多工具,你需要对JavaScript、Next.js和React有基本的了解。你可能会遇到一些挑战,比如:

  1. 缺乏JavaScript、React或其他必要工具的知识
  2. 文档版本管理
  3. 配置
  4. 部署

在本指南中,我将介绍一个功能强大的工具,它可以帮助你撰写文档,而不需要太多技术知识。

什么是Docsify?

为了帮助你解决这个问题,我推荐一个名为docsify的工具。Docsify是一个简单而轻量的文档生成器。你可以在不了解JavaScript或React的情况下开始使用它。

Docsify提供了零配置、没有静态HTML文件、多主题支持、内置插件API以及带有插件的全文搜索支持。它还可以部署在GitHub pages、GitLab Pages、Firebase Netlify、Vercel等多个平台上。

我创建了一个演示项目来展示如何使用它 – 在GitHub上可以找到源代码。你还可以查看演示网站

如何设置和使用Docsify

你可以使用docsify-cli创建一个新项目。如果你尚未安装Node和NPM,请先安装它们。

npm install -g docsify-cli# 或者yarn add -g docsify-cli# 或者pnpm add -g docsify-cli
全局安装docsify

命令输出如下:

❯ pnpm add -g docsify-cli
Packages: +198+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 199, reused 114, downloaded 84, added 198, done.
pnpm/[email protected]/node_modules/docsify: Running postinstall script, done in 196ms
/home/rajdeepsingh/.local/share/pnpm/global/5:
+ docsify-cli 4.4.4
+ pnpm 8.7.0
Done in 13.9s
命令输出

使用docsify-cli init选项创建新项目。

➜ docsify init docs
初始化成功!请运行docsify serve ./docs

你还可以指定--theme--plugins

➜ docsify init docs --theme buble --plugins

你可以在文档页面上了解更多关于docsify-cli的信息。

使用docsify init选项安装插件
使用docsify init选项安装插件

接下来,使用docsify-cli启动本地开发服务器。运行以下命令:

docsify serve docs# 或者docsify serve .
启动本地开发服务器

本地服务器运行在3000端口上。

来自2023-09-20-22-37-52的屏幕截图
运行docsify serve

当您在浏览器中打开网站时,应该如下所示:

Demo docsify
演示 Doctify

Docsify 文件夹结构

Docsify 有一个简单直观的文件夹结构。默认情况下,当您使用 docsify-cli 创建一个新项目时,有三个主要文件:

├── index.html // 这是一个 HTML 入口文件。├── .nojekyll  // 当您在 GitHub 页面上部署项目时很有帮助。└── README.md  // 这是主页或 / 路由器
文件夹结构

如何自定义 Docsify

Docsify 提供了许多自定义选项,您不需要额外的知识来配置它 – 它非常直观,就像复制和粘贴代码一样。

在这个指南中,我们将探索一些最常见的自定义选项。要进行高级配置,可以查阅 Docsify 文档。

  1. 基本配置
  2. 加载屏幕
  3. 侧边栏
  4. 页眉
  5. 封面页
  6. 插件
  7. 主题
  8. 部署

基本配置

在基本配置中,您可以更改或添加标志、名称、添加 GitHub 仓库链接、主题颜色等。

以下是完成这些操作的代码 – 您可以填入自己的详细信息。

 <!-- index.html --> <script>      window.$docsify = {        logo: '/_media/icon.svg',  <!-- 添加标志 -->        name: "文档",  <!-- 网站名称,显示在侧边栏中。 -->        nameLink: '/',  <!-- 名称的 URL -->        repo: "officialrajdeepsingh/docsifyjs", <!--github 仓库-->        maxLevel: 2,  <!-- 最大目录层级 -->        themeColor: '#3F51B5', <!-- 自定义主题颜色 -->      };</script>
Doctify 中的配置

加载屏幕

在典型的 JavaScript 和 React.js 生态系统中,启用加载屏幕或对话框通常非常棘手。

Loading screen in Docsify
Docsify 中的加载屏幕

在 Docsify 中,您可以轻松地启用加载屏幕,不需要任何配置。您只需简单地在应用程序 ID 内书写一些文本和一个 HTML 元素,这将显示为加载屏幕。如下所示:

<!-- index.html --><div id="app">请稍候...</div><!-- 或 --><div id="app"><h1> 请稍候... </h1></div>
在 Doctify 中添加加载屏幕

侧边栏

默认情况下,侧边栏显示目录。但您可以非常轻松地自定义它。首先,您需要启用侧边栏

<!-- index.html --><script>   window.$docsify = {               loadSidebar: true, <!-- 启用侧边栏 -->     };</script>
在 Doctify 中配置侧边栏

然后,在根目录下创建一个新的 _sidebar.md 文件,并粘贴以下代码:

- [首页](README.md)- [草稿文章](draft-article.md)- [指南](guide.md)- [第一](page-first.md)- [第二](page-second.md)- [第三](page-third.md)- [第四](page-four.md)
将以下代码粘贴到_sidebar.md文件中

您的侧边栏现在应该如下所示:

侧边栏样式如下
您的侧边栏样式如下

标题

默认情况下,您在Docsify网站上看不到导航栏:

导航栏
没有导航栏

但不用担心,您可以更改这个设置。要显示导航栏,您首先需要启用它,可以像这样进行设置:

<!-- index.html -->    <script>      window.$docsify = {                       loadNavbar: true,     <!-- enable navbar -->             };    </script>  </body></html>

然后,在根目录下创建一个新的_navbar.md文件,并将以下代码粘贴进去:

* 入门指南  * [快速入门](quickstart.md)  * [编写更多页面](more-pages.md)  * [自定义导航栏](custom-navbar.md)  * [封面页面](cover.md)* 设置  * [配置指南](configuration.md)  * [主题](themes.md)  * [使用插件](plugins.md)  * [Markdown配置](markdown.md)  * [语言高亮](language-highlight.md)
将以下代码粘贴到_navbar.md文件

您的导航栏现在应该如下所示:

自定义导航栏
在Docsify中自定义导航栏

封面页面

首先,启用封面页面,使用以下代码:

<!-- index.html --><script>      window.$docsify = {               coverpage: true,     <!-- enable coverpage -->              };</script>

下一步是创建一个新的_coverpage.md文件。

# 学习Docsify ### 学习从初学者开始的docsify.[开始学习]()[Github](#/README)
创建一个_coverpage.md文件

您的网站封面页面应该如下所示:

封面页
您的封面页面

封面页面和用户界面取决于主题,所以它们会根据不同的主题而有所不同。

插件

插件可以为Docsify提供额外的功能和特性,增强用户体验。

您可以根据自己的需求创建和使用插件。Docsify有许多开源插件可供使用,这些插件由各种贡献者创建。

您可以通过复制粘贴代码来使用任何插件。您甚至可以使用Docsify创建自己的插件。

如何使用第三方插件

在此示例中,我们将使用Docsify插件来启用搜索栏功能。

要启用搜索栏功能,请将以下脚本复制并粘贴到您的index.html文件中:

<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>

现在,搜索栏将在您的站点上显示并工作。使用搜索插件,您还可以配置各种功能 – 了解更多关于它的信息,请访问搜索插件安装和配置页面

searchbar
Docsify搜索插件

如何使用docsify创建自己的插件

要在docsify中创建自己的插件,你需要使用内置的钩子来实现。

Docsify有六个内置的钩子:initmountedbeforeEachafterEachdoneEachready

  1. init:在docsify脚本初始化时调用一次。
  2. mounted:在docsify实例挂载到DOM上时调用一次。
  3. beforeEach:在每次页面加载之前,将新的markdown转换为HTML之前调用。
  4. afterEach:在每次页面加载后,markdown转换为HTML之后调用。
  5. doneEach:在每次页面加载之后,将新的HTML附加到DOM上之后调用。
  6. ready:在渲染初始页面后调用一次。

通过这些钩子,你可以创建一个插件。要了解有关创建自己插件的更多信息,请查看自定义插件文档页面

在此示例中,我们将使用beforeEach插件钩子创建一个编辑按钮。它在每个页面上都显示”编辑文档”按钮。

<!-- index.html -->    <script>      window.$docsify = {                plugins: [                <!-- 写自己的自定义插件 -->        function editButton(hook, vm) {          // 调用钩子          hook.beforeEach(function (html) {                       var url = "https://github.com/officialrajdeepsingh/docsifyjs/edit/master/" + vm.route.file;                          // 路径修复             let tempFile = url.replace("docsifyjs/README.md", "README.md",)              ? url.replace("docsifyjs/README.md", "README.md")              : url;            // 添加编辑按钮            var editHtml = "[📝 编辑文档](" + url + ")\n";            // 在文件顶部添加编辑按钮            return editHtml + html + "\n----\n" + "最后修改 " + editHtml;          });        },        ],                      };    </script>

主题

Docsify有官方主题和社区制作的主题。你可以使用其中之一,而且切换主题时不需要编写额外的代码。

<!--vue主题 --><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css" /><!-- buble主题 --><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/buble.css" /><!-- dark主题 --><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/dark.css" /><!-- pure主题 --><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/pure.css" />

你可以选择压缩或不压缩主题CSS文件。压缩的CSS文件是主题的缩小版本,它是生产环境中的轻量级CSS文件。另一方面,非压缩的主题CSS文件对于开发很有帮助。

只需将CSS主题文件复制并粘贴到head元素内即可更改主题。

在非官方主题方面,我认为docsify-themeable主题是你的最佳选择。

部署

Docsify有多种部署选项。你可以使用GitHub Pages、GitLab PagesFirebase HostingVPS(Nginx)、NetlifyVercelAWS AmplifyDocker来部署Docsify站点。

在一些平台上,比如GitHub pages,您可以在不编写任何配置的情况下,直接将docsify站点部署到GitHub存储库中。

下面是具体步骤:

您需要前往设置 > 页面 > 源代码 > 然后选择从分支部署 > 分支 > 选择包含文件夹的分支,并点击保存按钮。

使用GitHub pages部署docsify
使用GitHub pages部署docsify

这个过程可能需要一些时间,具体取决于您的网站大小。部署完成后,您应该会看到生成的URL。

完成部署
完成部署

结论

Docsify是一个用于生成文档站点的强大工具。在Docsify中,您可以专注于文档编写,而不是UI设计。

对于不太熟悉JavaScript的开发人员来说,Docsify是一个不错的选择。如果您更关注低级语言,比如C++或Rust,Docsify可以帮助您通过一条命令开始编写文档。

最近我在我的awesome-nextjs存储库中使用了Docsify。您可以轻松地在GitHub页面上部署,无需任何配置。

只需记住Docsify有两个缺点

  1. Docsify不生成页面的动态SEO元标签,只生成标题和描述。
  2. Docsify主题没有现代化的UI风格。

但它仍然非常有用!尽情享受创建您的文档吧:)


Leave a Reply

Your email address will not be published. Required fields are marked *