В Doxygen вы используете ссылки ссылки: определите их отдельно, а затем обратитесь к ним из текста.
/**
* This is a documentation. Here I link [std::string] to an external web page.
*
* The next line is the link definition:
*
* [std::string]: http://en.cppreference.com/w/cpp/string/basic_string "std::string documentation"
*/
Однако кажется, что определение ссылки видно только в блоке документации. Это не видно даже на других блоках документации на одной странице.
Я хочу определить некоторые ссылки один раз, а затем использовать их везде (на разных страницах).
Это возможно?
Изменить (последующий вопрос)
Для достижения вашей цели я считаю, что лучше всего использовать объект ALIAS.
Мне удалось настроить псевдоним следующим образом:
ALIASES += std_string="<a href=\"http://en.cppreference.com/w/cpp/string/basic_string\" title=\"std::string documentation\" target=\"_blank\">std::string</a> "
ALIASES += std_vector="<a href=\"http://en.cppreference.com/w/cpp/container/vector\" title=\"std::vector documentation\" target=\"_blank\">std::vector</a> "
И используя его:
@std_string
@std_vector
В основном у меня есть один псевдоним для каждой ссылки.
Можно ли это сделать с помощью одного псевдонима с параметрами? Использование:
@std_ref std::string
@std_ref std::vector
Проблема в том, что между именем (параметром) и ссылкой требуется какая-то карта:
std::string -> http://en.cppreference.com/w/cpp/string/basic_string
std::vector -> http://en.cppreference.com/w/cpp/container/vector
Я знаю, что это можно сделать, если один параметр будет другой частью ссылки, например:
@std_ref std::string string/basic_string
@std_ref std::vector container/vector
Но это уродливое, подверженное ошибкам и требующее каждый раз проверять, какая ссылка должна быть.
Стоит отметить, что то, что вы используете в настоящее время, - это нотация, которая поставляется только с поддержкой Doxygen для Markdown - это не метод doxygen для внешних ссылок. Оригинальный метод Doxygen заключается в том, чтобы вставить ссылку HTML в строку...
<a href="linkURL">link text</a>
... но это не имеет никакого отношения к вашей исходной проблеме.
Для достижения вашей цели я считаю, что лучше всего использовать объект ALIAS. Страница соответствующего руководства здесь. Используя их, вы должны иметь возможность определять псевдоним, такой как std-string
и вставлять ссылку HTML везде, где вы используете псевдоним.
ALIASES настроены в файле конфигурации doxyfile (в этом разделе руководства)
Вы можете настроить псевдонимы вручную для каждого ключевого слова C++, на которое вы хотите сослаться, но лучший способ сделать это - использовать функцию doxygen TAGFILES.
Файл тегов в основном представляет собой компактное представление сущностей, найденных во внешних источниках. Doxygen может генерировать и читать файлы тегов.
Чтобы создать файл тегов для вашего проекта, просто введите имя файла тегов после параметра GENERATE_TAGFILE в файле конфигурации.
Чтобы объединить вывод одного или нескольких внешних проектов с вашим собственным проектом, вы должны указать имя файла тегов после опции TAGFILES в файле конфигурации.
У Doxygen есть целая страница, посвященная объяснению, как ссылаться на внешнюю документацию
И cppreference.com уже установил для вас файл тегов с некоторыми основными инструкциями.
Для нетерпеливых:
Загрузите файл: cppreference-doxygen-web.tag.xml для прямой ссылки на сайт cppreference.com.
Добавьте эту строку в ваш Doxyfile:
TAGFILES + = "location/of/cppreference-doxygen-web.tag.xml = http://en.cppreference.com/w/ "