2017-01-16 125 views
1

使用doxygen 1.8.13,如何在降價代碼中生成自動鏈接?例如,我有以下兩個文件:Doxygen不會在降價代碼塊中生成自動鏈接

test.h

/** 
* Function foo. 
* This is a code snippet in markdown format: 
* 
*   foo("Hello World!!!"); 
* 
* This is a regular code snippet: 
* \code 
* foo("Hello World!!!"); 
* \endcode 
**/ 
void foo(const char *hello); 

及以下伴隨文件:

test.md

# Markdown Test 

This is a code snippet in markdown format: 

    foo("Hello World!!!"); 

This is a regular code snippet: 
\code 
foo("Hello World!!!"); 
\endcode 

輸出我在這些文件上運行doxygen時看起來像這樣:

test.h enter image description here

通知第二片段是如何生成的鏈接,foo,但第一個也沒有。

test.md

enter image description here

通知沒有片斷是如何生成的鏈接,foo功能 - 也,格式是完全不同的。

因此,問題:有沒有一種方法來配置doxygen,以便在markdown文檔的代碼段中生成自動鏈接?

回答

2

回答我自己的問題。

  • 從我看到的,doxygen不會正確地突出顯示縮進的代碼塊。它會將它們格式化爲代碼,但不會嘗試猜測代碼的語言;這可以通過使用圍欄代碼塊來解決 - 這會被認爲是它在找到的文件相同的語言可正常工作:

foo.h中

/** 
* Function foo. 
* This does not work properly: 
* 
*   foo("Hello World!!!"); 
* 
* But this does: 
* ``` 
* foo("Hello World!!!"); 
* ``` 
**/ 
void foo(const char *hello); 
  • 在降價文件(.md)中編寫代碼示例時,doxygen不會自動猜測代碼語言。在.md文件中託管代碼示例時的解決方案僅僅是指定語言。此後,自動鏈路適當地生成:

foo.md

# Markdown Test 

This does not work properly: 

    foo("Hello World!!!"); 

But this does 
```{cpp} 
foo("Hello World!!!"); 
```