【问题标题】:What's the difference between using reST and using HTML to write documentation with Sphinx?使用 reST 和使用 HTML 使用 Sphinx 编写文档有什么区别?
【发布时间】:2021-02-05 21:34:28
【问题描述】:

我已经知道这是一个非常愚蠢的问题,但我对如何为我正在从事的项目编写文档有些疑问。基本上我使用 Django 构建了一个 API,现在我需要为它编写 Docs,所以我开始使用 Sphinx 并且我开始了,所以我创建了我的第一个文档并使用命令 make html 为它构建了 HTML。

现在,我知道为了编写文档,我需要使用 rst 文件,但我对它很陌生,我仍然必须完全理解它的语法是如何工作的,所以我的问题是:为什么我不能只使用 Sphinx 生成的 HTML 并继续在 HTML 文件上编写文档,而不是每次都使用 reST 和 make html 吗?

当我更熟悉 reST 后,我会看到它的优势吗?如果我只是抓取 Sphinx 生成的模板并在相同的 HTML 文件上构建文档,是否仍然可以?

【问题讨论】:

  • 更新 HTML 时比更新 .rst 时更有可能破坏某些内容
  • 为什么不使用机器代码而不是 Python/Django 编写应用程序? (Python 解释器在执行你的应用程序时不断生成机器代码。)如果你知道这个答案,你可以回答这个。
  • 这是有道理的,但是现在写html感觉更容易,但我不能真正判断,因为我不熟悉rst,可能一旦我熟悉了我会说相反
  • 然后写HTML,没有错。它更灵活,可读性更差。你的选择。
  • ReST 和 Markdown 都是 Sphinx 支持的源标记语言,使用 MyST 您可以混合和匹配这两种语法,并充分利用 reST 的优势。有些人发现 markdown 比 reST 更容易使用,但它的功能更少。 reST、Sphinx 和 MyST 提供了许多有用的功能,包括从 API 文档字符串生成文档、参考链接、索引、词汇表和搜索。 HTML 没有。

标签: python html python-sphinx restructuredtext


【解决方案1】:

让我们从解决一个关键差异开始:

使用 reST 和使用 HTML 的区别

reST 和 HTML 都是标记语言,但是 reST 比 HTML 更轻量级。请注意,在 HTML 中元素被标签包围,一切都是明确的。而在 reST 中,语法不那么复杂,从而提高了纯文本的易读性和可维护性。给定两种语言的 2 个结构,依靠缩进等隐式规则,reST 结构会更加简洁。

reStructuredText Markup Specification

简单、隐式的标记用于指示特殊结构 (...) 使用的标记尽可能少且不显眼。

然后让我们想想重构文本的一个关键目标:

reStructuredText

reStructuredText 的主要目标是定义和实现一种标记语法,以便在 Python 文档字符串 (...) 中使用,该语法可读且简单,但功能强大,可用于非平凡的使用。标记的预期目的是将 reStructuredText 文档转换为有用的结构化数据格式。

这与Docstring Format Goals - PEP 216一致。

现在我们有了一些上下文来回答标题中的完整问题:

用 ReST 和用 HTML 用 Sphinx 写文档有什么区别?

用简单的技术术语来说,您可以在一个 reST 文件中包含 HTML,以便 Sphinx 生成最终文档。这可以通过使用许多 reST 指令来实现,例如 metaincluderaw。但是这样做会失去前面提到的 reST 优势。

此外,Sphinx 有一个number of builders 可用于生成不同的输出格式。通过在 reST 上使用 HTML,您会失去生成这些格式的透明度。

为什么我不能只使用 Sphinx 生成的 HTML 并继续在 HTML 文件上编写文档?

由于编辑最终的 HTML 既麻烦又乏味,您必须手动维护一些 Sphinx 功能,例如 cross-referencesindex,以及与各种 domains 的互操作性。

自动化和生产力是 reST 和 Sphinx 的标志性优势。例如。它们的使用摘要来自编辑HTML attributes 和所有其他 HTML 元素都是透明生成的,它们的一致性由 Sphinx 为您管理。

【讨论】:

  • 完美答案!万分感谢!现在清楚多了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 2013-06-10
相关资源
最近更新 更多