我有几个不同的Sphinx项目,我想在本地相互引用(没有Web服务器)。我为项目设置了单独的代码+构建目录,并正在尝试intersphinx
来解决此要求。
我的问题是:
1)在Sphinx中是否有更好的方法引用两个或多个本地项目?
2)有没有办法清除路径中的第二个构建?
在我的配置文件中,我有:
intersphinx_mapping = {
'doc1': ('../build/doc1',None)
}
因此在制作html时没有任何问题,但是当我查看使用:ref:'doc1 info <doc1:label1>'
创建的引用时,我在html文档中就有了
file://// build / build /doc1/html/doc.html#label1
所以问题是我得到两个“构建”目录列表-应该是: 文件:////build/doc1/html/doc.html#label1。
如果我手动执行此操作,它将正确提取文档。
我也尝试过将None替换为'../build/doc1'。如果我从映射中删除了构建,那么在找到doc1的objects.inv文件时确实会出错。
我不想使用绝对路径,因为获得此文档的最终用户可能会在另一个位置看到它,并且我希望它是跨平台的...
我的目录树基本上如下:
Makefile
build/doc1/html
build/doc2/html
doc1
doc2
作为背景,我在Cygwin下使用Sphinx 1.7.5进行了尝试...我还没有尝试过Linux以查看是否出现相同的行为...
感谢您的关注。
答案 0 :(得分:0)
您可以为目标和库存设置不同的路径。 也许您可以尝试以下方法:
intersphinx_mapping = {
'doc1': ('../doc1', '../build/doc1/objects.inv')
}
如果您想保留None
,也可以同时使用两者:
intersphinx_mapping = {
'doc1': ('../doc1', (None, '../build/doc1/objects.inv'))
}