Как связать между документами уценки в doxygen?

У меня есть проект с набором страниц разметки, которые связаны между собой ссылками, такими как

[Go to this page](subdir/MyOtherPage.md)

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

Я мог бы изменить ссылки, чтобы указать на html-страницы, но мой проект размещен на github, а затем эти ссылки будут нарушены, так как github автоматически связывает ссылки между страницами разметки.

Я не вижу ничего в документации doxygen о поддержке ссылок, отличных от внешних. Есть ли способ заставить doxygen создать HTML-ссылку из уценки?

Ответы

Ответ 1

В соответствии с Doxygen 1.8.7 существует три способа сделать это:

  • Используйте стандартную гиперссылку уценки, как описано в исходном вопросе.
  • Используйте @ref и префикс цели с помощью md_ вместе с любыми подкаталогами.
  • Назовите страницу и используйте @ref для обозначения имени.

Первый метод прост, и это также будет работать без Doxygen (например, при просмотре вашего репозитория кода в Github).

[Go to this page](subdir/MyOtherPage.md)

В то время как для второго метода вам необходимо связать его следующим образом:

[Go to this page](@ref md_subdir_MyOtherPage)

По-видимому, это также способ, предписанный основным автором Doxygen.

Наконец, в третьем методе вам нужно будет указать имя целевой страницы, а затем ссылку на это имя. Пример:

В MyOtherPage.md есть это как заголовок

# My Other Page Title {#MyOtherPageName}

тогда свяжите его так:

[Go to this page](@ref MyOtherPageName)

Ответ 2

Регулярно-старые ссылки Markdown обрабатываются как Doxygen 1.8.6, например. [link text](docs/page.md). Это работает немного неудобно, хотя... URL-адрес должен быть относительным из рабочего каталога Doxygen (т.е. Не каталога Doxyfile или файла .md, а каталога, из которого Doxygen является RUN). Если вы заметили, что нажатие ссылки показывает необработанный Markdown вместо отображаемого HTML, это означает, что ваш URL-адрес не относителен к рабочему каталогу Doxygen.

Ответ 3

Эта функция была добавлена ​​в Doxygen 1.8.6 (декабрь 2013)

Allow @ref to unlabeled markdown page by name, i.e. @ref mypage.md
Allow links to other markdown pages of the form [link text](page.md)

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

[link text](docs/page.md)

Ответ 4

Следующие шаги могут решить проблему,

  • установите STRIP_FROM_PATH в каталог Doxyfile. Существует проблема с относительным путем при связывании файлов разметки.
  • добавьте следующий код в исходном файле doxygen src/docparser.cpp при номере строки 2438, содержащем код pd = Doxygen::pageSDict->find(target); (если его еще нет). Он фиксирует поиск файла по умолчанию в списке страниц.

    if (pd == 0 & lang == SrcLangExt_Markdown) {pd = Doxygen:: pageSDict- > find (markdownFileNameToId (target));}

  • Наконец, скомпилируйте doxygen и повторите попытку.

Это сработало для меня.