我有几个不同的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以查看是否出现相同的行为...
感谢您的关注。
您可以为目标和库存设置不同的路径。也许您可以尝试类似的方法:
intersphinx_mapping = {
'doc1': ('../doc1', '../build/doc1/objects.inv')
}
如果要保留None
,也可以同时使用两个:
intersphinx_mapping = {
'doc1': ('../doc1', (None, '../build/doc1/objects.inv'))
}