Doxygen глобально определенные ссылки

0

В 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

Но это уродливое, подверженное ошибкам и требующее каждый раз проверять, какая ссылка должна быть.

Теги:
documentation
doxygen

2 ответа

1
Лучший ответ

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

<a href="linkURL">link text</a>

... но это не имеет никакого отношения к вашей исходной проблеме.

Для достижения вашей цели я считаю, что лучше всего использовать объект ALIAS. Страница соответствующего руководства здесь. Используя их, вы должны иметь возможность определять псевдоним, такой как std-string и вставлять ссылку HTML везде, где вы используете псевдоним.

ALIASES настроены в файле конфигурации doxyfile (в этом разделе руководства)

  • 0
    Спасибо. Это сработало. У меня вопрос относительно использования только одного псевдонима с параметрами вместо одного псевдонима для каждой ссылки. Буду признателен, если вы проверите мой вопрос изменить.
  • 0
    Мне никогда не приходилось использовать смесь псевдонимов и параметров, так что вы выходите за пределы моего опыта. Извините, мы дошли до стадии, когда ваше предположение так же хорошо, как и мое :)
Показать ещё 1 комментарий
0

Вы можете настроить псевдонимы вручную для каждого ключевого слова C++, на которое вы хотите сослаться, но лучший способ сделать это - использовать функцию doxygen TAGFILES.

Файл тегов в основном представляет собой компактное представление сущностей, найденных во внешних источниках. Doxygen может генерировать и читать файлы тегов.

Чтобы создать файл тегов для вашего проекта, просто введите имя файла тегов после параметра GENERATE_TAGFILE в файле конфигурации.

Чтобы объединить вывод одного или нескольких внешних проектов с вашим собственным проектом, вы должны указать имя файла тегов после опции TAGFILES в файле конфигурации.

У Doxygen есть целая страница, посвященная объяснению, как ссылаться на внешнюю документацию

И cppreference.com уже установил для вас файл тегов с некоторыми основными инструкциями.

Для нетерпеливых:

  1. Загрузите файл: cppreference-doxygen-web.tag.xml для прямой ссылки на сайт cppreference.com.

  2. Добавьте эту строку в ваш Doxyfile:

    TAGFILES + = "location/of/cppreference-doxygen-web.tag.xml = http://en.cppreference.com/w/ "

Ещё вопросы

Сообщество Overcoder
Наверх
Меню