我修改了 Reinout van Rees 的解决方案:
我创建了一个downloadMe.rst
(其中包含 lorem ipsum 文本),它在make html
运行时自动内置到 HTML 中,因此downloadMe.html
使用 lorem ipsum 文本。
然后我编辑了 Makefile 的 html 目标,如下所示:
- 让它构建 LaTeX pdf 并将其复制到
_build/html/static
.
- 使用
sed
脚本将 lorem ipsum 文本替换为downloadMe.html
指向 PDF 中的 HTML 超链接_build/html/_static
。
当所有这些都完成后,这就是 html 目标的Makefile
样子:
html:
@echo "Making LaTeX"
make latex
( cd _build/latex/; make ) # the LaTeX needs to be built separately. This can be done in a subshell
@echo "Done making LaTeX"
@echo "Copying PDF to Static"
cp _build/latex/Genetic.pdf _build/html/_static/
@echo "Copy PDF to Static... DONE"
@echo "Adding PDF to HTML"
sed -i '' 's/lorem\ ipsum/\<a href="_static\/Genetic.pdf"\>Download\ Me\<\/a\>/g' _build/html/downloadPDF.html
@echo "Done adding PDF to HTML"
@echo "Removing LaTeX dir"
rm -rf _build/latex
@echo "Done removing LaTeX dir"
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
这个 makefile 目标,虽然有点重,但它的优点是即发即弃;我只需要make html
一次性完成所有文档,完成后我不必编辑任何文件make
。这让我在上传到 PyPI 之前忘记编辑某些文件或其他文件以正确制作文档的空间更少