2013-09-01 42 views
4

外部鏈接到一個Git倉庫在外部git倉庫的形式超鏈接獅身人面像PDF文檔

.. _Git repo: git://github.com/migueldvb/repo.git 

正確顯示HTML文檔中,但他們沒有在PDF文件中顯示出來。出現警告運行python setup.py sphinx_build -b latex何時生成LaTeX文件:

unusable reference target found git://github.com/... 

怎麼能到一個Git倉庫的超級鏈接被包括在由獅身人面像產生的PDF文檔中?

回答

4

這似乎工作:

.. raw:: latex 

    \href{git://github.com}{GitHub} 

.. raw:: html 

    <a href="git://github.com">GitHub</a> 

編輯:我看着斯芬克斯的源代碼和警告消息在文件斯芬克斯產生/寫入器/ latex.py在visit_reference方法,其被定義如下:

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)) 

現在「使latexpdf」和「使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 
+0

謝謝。我想要一個適用於HTML和PDF文檔的解決方案 –

+0

請參閱我的編輯。我知道這不是很美,但我找不到一個更好的方法來使它工作。 :) – eminor

+0

謝謝,但我無法同時爲HTML和PDF做這項工作。 –