2013-12-19 2 views
3

Я пытаюсь создать документацию для приложения C#, используя doxygen. Прямо сейчас, я пытаюсь создать главную страницу, которая имеет некоторые ссылки на центральные классы документированного приложения.Автогенерируемые ссылки на ссылки на главную страницу в doxygen

Я создал страницу с помощью уценки, и это выглядит примерно так:

\mainpage 
Project name 
================== 
bla 
Important classes 
------------------ 
* Class1 
* Class2 
* Class3 

По какой-то причине, Doxygen не автоматически создавать ссылки на соответствующие классы на этой странице. Чтобы сделать вещи странными, doxygen не имеет проблем с распознаванием этих имен классов внутри документации по коду и созданием соответствующих ссылок, поэтому, насколько я могу судить, это проблема главной страницы.

Есть ли способ сделать это, не используя жестко привязанные ссылки к сгенерированным страницам классов?

ответ

7

Я экспериментировал, поскольку у меня есть аналогичная потребность. У меня также есть основная статья, написанная в Markdown. Это по сути тот же самый ответ, что и Стивен, но немного больше информации. Я использую doxygen 1.8.5.

С AUTOLINK_SUPPPORT установлен в NO в Doxyfile:

Кажется, вам нужно полное имя пакета

com.bigcorp.stuff.product.namespace.ClassName

А также необходима эталонная команда, чтобы сделать ссылку :

\ref com.bigcorp.stuff.product.namespace.ClassName

, который делает по крайней мере, означает, что вы можете претендовать выходной текст

\ref com.bigcorp.stuff.product.namespace.ClassName "ClassName"

означает текст вывода не имеет пространства имен беспорядок.

С AUTOLINK_SUPPPORT установлен в YES (или пробел):

Вы не необходимости\ref т.е. com.bigcorp.stuff.product.namespace.ClassName предоставит ссылку на класс только сам по себе, но есть беспорядок, так используя \ref может быть чист в любом случае.

Только с использованием ClassName по-прежнему не предоставляется ссылка. Кажется, вам нужна преамбула пакета.

Любопытно, что зависание автоматически созданной ссылки создает всплывающее описание целевого класса. Однако явная ссылка \ref нет.

+0

Хорошего объяснения. Странно, что HIDE_SCOPE_NAMES не работает в этом случае, но это не так - я попытался. – Mikkel

3

Я, наконец, получил его! Префикс имени класса с именем пространства имен, например Namespace1.Class1, сделал трюк!

Это все еще странно, поскольку doxygen не имеет проблем с обработкой коротких имен классов в других местах, но эй, он работает!

0

Я нашел, как вы можете избежать добавления утомительного \ ref для каждого класса и сохранить всплывающую подсказку класса.

Вы можете просто поместить свой комментарий в пространство имен.

namespace com.bigcorp.stuff.product.namespace 
{ 
/// \page page_name Page Name 
/// This is a working class auto ref -> ClassName. 
} 

Это не будет работать для классов в нескольких пространствах имен, хотя ...

Смежные вопросы