Как сделать ссылку на методы класса в Doxygen HTML - PullRequest
4 голосов
/ 01 июля 2011

У меня есть установка, где я использую doxygen для описания набора тестов (я использую QtTest для запуска тестов).Выходные данные тестов анализируются небольшим фрагментом Python, который выдает хороший и аккуратный отчет.Теперь я хотел бы сделать ссылку из отчета на каждый тестовый пример, т. Е. Метод члена частного слота, в материале Doxygen.Тем не менее, якоря, определяемые doxygen, выглядят так:

<a class="anchor" id="a2a0e066d4dad8e0dff6c9231bf65fd65"></a>
<!-- doxytag: member="PRadioTunerTst::scanFM" ref="a2a0e066d4dad8e0dff6c9231bf65fd65" args="()" --> 

Конечно, я мог бы проанализировать html doxygen и сопоставить все методы с ссылочным ключом, но я бы предпочел иметь читаемые ссылки.Я не перегружаю никакие методы модульного тестирования, поэтому их перечисление не будет проблемой - я просто смогу выбрать первый и единственный.Я бы даже с удовольствием вычислил хеш идентификатора сам.Мне просто нужно знать, как это сделать.

Итак, в основном, вопросы:

  • Кто-нибудь знает, как настроить doxygen для создания читаемых якорей
  • , если неткак вычислить хеш?

Ответы [ 2 ]

4 голосов
/ 02 июля 2011

Вместо того, чтобы пытаться восстановить хеш (который является контрольной суммой md5 по определению метода, проанализированному doxygen, см. MemberDef :: setAnchor () в коде)Я бы предложил, чтобы doxygen сгенерировал файл тегов (GENERATE_TAGFILE), а затем проанализировал это.Файл тегов - это простой XML-файл, в котором есть имя и привязка для каждого члена.

0 голосов
/ 09 января 2013

Мне также нужны были целевые ссылки, в моем случае, чтобы первые документы указывали на html, созданный с помощью дыхания / кислорода.Вот что я сделал:

Чтобы лучше понять, как doxygen создает якоря, я перекомпилировал doxygen с этим в конце setAnchor ():

printf("memAnchor=%s sigStr=%s\n", memAnchor.data(), sigStr.data());

, чтосоздает вывод наподобие:

memAnchor=const int SomeNamespace::GetStateGetState(SomeNamespace::State *state) sigStr=f2c41a8a6a152602c92fefb80bd0862a

У меня уже были сигнатуры функций, поэтому я создал строки, похожие на memAnchor выше, и передал их через md5sum для получения хэша, затем добавил его к строке, общей для всех якорей,В моем первом документе я поместил такие определения:

.. _GetState: `project0class_SomeNamespace_1f2c41a8a6a152602c92fefb80bd0862a`_

Не уверен в первом вопросе о читаемых якорях.

...