Skip to content

创建复制品

¥Creating a reproduction

复现是错误的简化版本,用于演示错误发生的具体场景。它包含所有必要的最低限度的设置和说明,并且在演示问题的同时应尽可能简洁。

¥A reproduction is a simplified version of a bug that demonstrates the specific scenario in which the bug occurred. It includes all necessary minimal settings and instructions and should be as simple as possible while still demonstrating the issue.

指导

¥Guide

环境可选

¥Environment optional

我们建议使用虚拟环境,它是一个独立的 Python 运行时。如果您处于虚拟环境中,则您安装或升级的任何软件包都将保留在该环境的本地。如果遇到问题,只需删除并重新创建该环境即可。设置过程非常简单:

¥We recommend using a virtual environment, which is an isolated Python runtime. If you are in a virtual environment, any packages that you install or upgrade will be local to the environment. If you run into problems, you can just delete and recreate the environment. It's trivial to set up:

最小复制

¥Minimal reproduction

按照以下说明,您将设置一个骨架项目来创建复本。如上所述,我们建议使用虚拟环境,因此请在工作目录中创建一个新文件夹,并在其中创建一个新的虚拟环境。下一步:

¥Create a new virtual environment with:

  1. 正如我们的错误报告指南中提到的,请确保您运行的是最新版本的 Material for MkDocs,其中可能已经包含针对该错误的修复:

    pip install --upgrade --force-reinstall mkdocs-material
    
    pip install --upgrade --force-reinstall mkdocs-material
    

    pip install --upgrade --force-reinstall mkdocs-material pip install --upgrade --force-reinstall mkdocs-material

  2. 使用mkdocs可执行文件引导一个新的文档项目,并将其作为复制的基础。为此,必须创建一个新的空项目:

    mkdocs new .
    
    mkdocs new .
    

    mkdocs new . mkdocs new 。首先在mkdocs.yml中添加最小配置

    theme:
      name: material
    
    theme:
      name: material
    

    theme: name: material 主题:名称: 材料

  3. 现在,只需在mkdocs.yml中添加必要的设置,以尽量减少重现。如果您要创建渲染错误的重现,请仅创建必要数量的 Markdown 文档。重复此步骤,直到可以观察到您要报告的错误为止。

  4. 最后一步,在将所有内容打包成.zip文件之前,请仔细检查所有设置和文档,确认它们对于复现是否必要,这样即使省略了它们,错误也不会再次发生。请删除所有不必要的行和文件。

创建.zip文件

¥Creating a .zip file

MkDocs 9.0.0 的 Material 包含一个新插件,专门用于创建错误报告的复现。启用内置的 info 插件后,MkDocs 会将所有相关文件添加到.zip文件中,并在终端上打印摘要并退出。将以下几行添加到mkdocs.yml中:

¥Activate the environment with:

plugins:
  - info

现在,当运行mkdocs build时,会自动创建一个名为example.zip的文件,其中包含您可以直接附加到错误报告中的最小复制品。

¥Your terminal should now print (venv) before the prompt, which is how you know that you are inside the virtual environment that you just created.

INFO     -  Started archive creation for bug report
INFO     -  Archive successfully created:

  example/.dependencies.json 859.0 B
  example/.versions.log 83.0 B
  example/docs/index.md 282.0 B
  example/mkdocs.yml 56.0 B

  example.zip 1.8 kB