跨多个项目的本地文件的intersphinx链接创建问题

问题描述 投票:0回答:1

我有几个不同的Sphinx项目,我想在本地相互引用(没有Web服务器)。我为项目设置了单独的代码+构建目录,并正在尝试intersphinx来解决此要求。

我的问题是:

1)在Sphinx中是否有更好的方法引用两个或多个本地项目?

2)有没有办法去除路径中的第二个构建?

在我的配置文件中,我有:

intersphinx_mapping = {
'doc1': ('../build/doc1',None)
}

所以我在制作html时没有任何问题,但是当我查看用:ref:'doc1 info <doc1:label1>'创建的引用时,我在html文档中就有:

文件://///构建/ 构建 / doc1 / html / doc.html#label1

所以问题是我得到两个“构建​​”目录列表-应该是:文件:////build/doc1/html/doc.html#label1。

如果我手动执行此操作,它将正确地拉入文档。

我还尝试用'../build/doc1'代替None。如果我从映射中删除构建,则在为doc1查找objects.inv文件时确实会出错。

我不想使用绝对路径,因为获得此文档的最终用户可能会在另一个位置看到它,并且我希望它可以跨平台使用...

我的目录树本质上如下:

Makefile
build/doc1/html
build/doc2/html
doc1
doc2

[作为背景,我正在Cygwin下使用Sphinx 1.7.5进行此尝试...我还没有尝试过Linux以查看是否出现相同的行为...

感谢您的关注。

python-sphinx
1个回答
0
投票

您可以为目标和库存设置不同的路径。也许您可以尝试类似的方法:

intersphinx_mapping = {
'doc1': ('../doc1', '../build/doc1/objects.inv')
}

如果要保留None,也可以同时使用两个:

intersphinx_mapping = {
'doc1': ('../doc1', (None, '../build/doc1/objects.inv'))
}
© www.soinside.com 2019 - 2024. All rights reserved.