这似乎有效:
.. raw:: latex
\href{git://github.com}{GitHub}
.. raw:: html
<a href="git://github.com">GitHub</a>
编辑:我查看了sphinx的源代码,在visit_reference方法的文件sphinx/writers/latex.py中产生了警告信息,定义如下:
def visit_reference(self, node):
uri = node.get('refuri', '')
# ...
elif uri.startswith('mailto:') or uri.startswith('http:') or \
uri.startswith('https:') or uri.startswith('ftp:'):
self.body.append('\\href{%s}{' % self.encode_uri(uri))
else:
self.builder.warn('unusable reference target found: %s' % uri,
(self.curfilestack[-1], node.line))
self.context.append('')
所以协议是硬编码的,因此我认为不使用原始数据或更改狮身人面像源以使“未知”链接正常工作是没有选择或简单的方法的。
我在源代码中为 git 协议添加了一行:
def visit_reference(self, node):
uri = node.get('refuri', '')
# ...
elif uri.startswith('mailto:') or uri.startswith('http:') or \
uri.startswith('git:') or \
uri.startswith('https:') or uri.startswith('ftp:'):
self.body.append('\\href{%s}{' % self.encode_uri(uri))
现在“make latexpdf”和“make html”正在生成带有工作 git 链接的文档,该链接具有以下来源:
Test Link
=========
This is a paragraph that contains `a link`_.
.. _a link: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git