Как связать между документами уценки в 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 и повторите попытку.
Это сработало для меня.