2013-10-09 39 views
18

我有一組降價的網頁是相互關聯的鏈接,如如何鏈接doxygen中的降價文檔?

[Go to this page](subdir/MyOtherPage.md) 

都得到通過的doxygen回升並出現在輸出的頁面的一個項目,但鏈接不會改變指向其新的html格式。

我可以更改指向html頁面的鏈接,但我的項目託管在github上,然後這些鏈接會因爲github支持自動鏈接降級頁面而中斷。

我看不出有關支持其他鏈接的doxygen文檔中的任何內容。有沒有辦法讓doxygen從一個降價的HTML鏈接生成一個HTML鏈接?

+1

doxygen command \ ref是否有幫助?它適用於鏈接到其他降價頁面中的doxygen \ section頭文件,但我不確定這是否有助於您的特定需求重新設置github。 – Cheeseminer

回答

2

在Doxygen的1.8.6(2013年12月)中加入此功能

Allow @ref to unlabeled markdown page by name, i.e. @ref mypage.md 
Allow links to other markdown pages of the form [link text](page.md) 

您可能需要incldue文檔目錄中的鏈接,它的工作,如

[link text](docs/page.md) 
+3

我使用1.8.7,它仍然無法正常工作。它總是指.md文件的源代碼(在html中),而不是渲染的(html)頁面。無論我使用'@ ref'還是'[here](documentation.md)''都沒關係。有沒有解決方案? – verpfeilt

+0

不適用於我,1.8.6 ... – Kyle

+0

不適用於1.8.11以及 – dwj

11

按Doxygen 1.8.7有三種方法可以做到這一點:

  • 使用標準的降價超鏈接,如原始問題中所述。
  • 使用@ref並將目標與md_一起加上任何子目錄。
  • 命名該頁面並使用@ref來引用該名稱。

第一種方法非常簡單,這也可以在沒有Doxygen的情況下使用(例如,在Github上瀏覽您的代碼庫時)。

[Go to this page](subdir/MyOtherPage.md) 

而你需要像這樣的鏈接第二種方法:

[Go to this page](@ref md_subdir_MyOtherPage) 

顯然這也是the way prescribed by the Doxygen's primary author

最後在第三種方法中,您需要爲目標頁面指定一個名稱,然後鏈接到該名稱。例如:

MyOtherPage.md有此作爲標題

# My Other Page Title {#MyOtherPageName} 

然後,像這樣

[Go to this page](@ref MyOtherPageName) 
+0

請注意,doxygen * 1.8.7 *很重要,Centos 7仍然帶有1.8.5,其中第三個選項不會工作。剛剛過了三年,最好保持doxygen穩定。 – ted

3

普通的老減價鏈接鏈接它作爲Doxygen的1.8.6,例如所處理的[link text](docs/page.md)。但是,這樣做有點過分 - URL必須是Doxygen工作目錄(即不是Doxyfile或.md文件的目錄,而是Doxygen運行的目錄)的相對位置。如果您注意到單擊該鏈接顯示原始Markdown而不是呈現的HTML,則表示您的URL與Doxygen的工作目錄不相關。

+1

這解決了我的問題,在我的情況下,我有doxyfile和markdown文件夾的文件夾文檔。因此我必須寫'[file](markdown/file.md)'。謝謝! –

0

下面的步驟可以解決問題,

  • 設置STRIP_FROM_PATH到的Doxyfile目錄。鏈接降價文件時存在相對路徑問題。
  • 在包含代碼pd = Doxygen::pageSDict->find(target);(如果它不在那裏)的2438行號的doxygen源文件src/docparser.cpp中追加以下代碼。它修復了在頁面列表中搜索的降價文件。

    如果(PD == 0 & &郎== SrcLangExt_Markdown){PD = Doxygen的:: pageSDict->找到(markdownFileNameToId(目標));}

  • 最後編譯的doxygen並再次嘗試。

它爲我工作。