DocumenterVitepress.jl 中 doctest 输出文件保存的最佳实践
在使用 DocumenterVitepress.jl 构建文档时,开发者可能会遇到 doctest 生成的输出文件未被正确复制到最终文档目录的问题。本文将深入分析这一问题的技术背景,并提供可靠的解决方案。
问题背景
在文档构建过程中,开发者经常需要在 doctest 代码块中生成并保存图片或其他输出文件。常见的做法是使用类似 savefig(a, "src/assets/api/output.png") 的代码。然而,这种直接保存到 assets 目录的方式可能会导致文件未被正确复制到最终的 .documenter 目录中。
技术原理
DocumenterVitepress.jl 的构建过程分为几个关键阶段:
- Markdown 扩展阶段:包括执行 doctest 代码块和显式保存操作,这些操作都在
docs/build目录下执行 - 文件复制阶段:将处理后的文件从
docs/build复制到docs/build/.documenter
这种分阶段的设计是为了确保所有文档处理操作都在正确的上下文中执行。
解决方案
正确的做法是将 doctest 生成的输出文件保存到 docs/build/ 目录下,而不是直接保存到 assets 目录。例如:
# 正确的保存路径
savefig(a, "build/my_output.png")
这种方式的优势在于:
- 确保文件在 Markdown 扩展阶段就已经生成
- 文件会被自动复制到最终的
.documenter目录 - 与 DocumenterVitepress.jl 的构建流程完美契合
替代方案
如果开发者希望保持原有的 assets 目录结构,也可以考虑使用 public 目录作为替代方案。不过,build 目录仍然是更推荐的选择,因为它与构建流程的配合更加无缝。
总结
理解 DocumenterVitepress.jl 的构建流程对于正确保存 doctest 输出文件至关重要。通过将文件保存到 build 目录,开发者可以确保这些文件被正确处理并包含在最终生成的文档中。这一最佳实践不仅解决了文件复制问题,也使整个文档构建过程更加可靠和可预测。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



