#markdown #doxygen
#markdown #doxygen
Вопрос:
Среда — Doxygen 1.8.7 в Microsoft Windows 10.
Я работаю над проектом Doxygen, который включает в себя несколько файлов markdown, которые все следуют этому шаблону:
1 Copyright (c) 2016-2017, XYZ CORP. All rights reserved.
2
3 @page xxx yyy
4 @{
5 Start of text
.
.
.
End of text
У меня есть два вопроса по этому поводу.
Во-первых, файл не @}
балансирует @{
в строке 4, но Doxygen не выдает никаких предупреждений. Это просто ошибка или причуда в Doxygen, или это действительно по какой-то причине, которую я не понимаю?
Во-вторых, этот файл выдает (как минимум) две страницы выходных данных. Одна озаглавлена yyy
и содержит текст из строк 5 и ниже, и это нормально. Другая озаглавлена md_<d>_<dd>_<ddd>_xxx.html
, где <d>_<dd>_<ddd>...
указаны имена каталогов в пути от домашнего каталога репозитория до файла. Этот не содержит ничего, кроме уведомления об авторских правах, которое бесполезно и выглядит глупо.
Есть ли способ убрать эту страницу?
Обратите внимание, я не понял, как перейти на страницу «авторское право» с домашней страницы проекта, щелкнув ссылки. Если это невозможно сделать, то существование страницы тривиально. Но я предполагаю, что, поскольку Doxygen генерирует страницу, он предоставляет какой-то способ ее отображения, который я просто еще не нашел.
Комментарии:
1. Уверен, что вы используете doxygen 1.8.7 (апрель 2014), текущая версия 1.8.20…
Ответ №1:
Как уже отмечалось в комментарии, версия 1.8.7 немного устарела (апрель 2014 года), а текущая версия doxygen — 1.8.20. Решения в этом ответе основаны на doxygen 1.8.20 что касается 1.8.7, они не будут работать в 1.8.7 (в 1.8.17 они должны работать)
В вопросе упоминаются 2 проблемы
-
нет предупреждения в случае
@{
без закрытия@}
. Это, вероятно, неверно, но@{
в@page
любом случае не имеет никакого значения.Это следует изучить подробнее и, вероятно, стоит новой проблемы в doxygen issue tracker: https://github.com/doxygen/doxygen/issues/new/choose ..Я только что отправил предложенный патч на github (запрос на извлечение 8060, https://github.com/doxygen/doxygen/pull/8060 ). -
удаление «авторских прав»
в файле markdown, когда первая непустая строка не является командой страницы (например@page
,@mainpage
textn====
), doxygen добавит@page
команду с именем файла в качестве заголовка. Существует ряд возможностей «преодолеть» эту проблему. В Doxygen есть ряд команд, которые делают содержимое больше или меньше комментария и, таким образом, не отображаются в выходных данных. Это:<!-- ....->
т. е. обычные знаки комментариев HTML (также удалят это содержимое из других выходных форматов)cond [<label>]
…endcond
в случае, если значение ` равно false или отсутствует, содержимое блока не отображаетсяif <label>
…endif
в случае, если значение ` равно false, содержимое блока не отображаетсяnoop ...
текст в одну строку после команды не отображается.
Проблема здесь в том, что они не удаляют ссылку на страницу (поскольку команды не отображаются в непустых строках из-за порядка обработки), для достижения этой цели есть решение:
- переместите содержимое с помощью команд «комментарий» внутрь (по крайней мере, где-то после первой
@page
команды like. Таким образом, решение может выглядеть так:@page xxx1 yyy1 <!-- Copyright (c) 2016-2017, XYZ CORP. All rights reserved. --> Start of text1
Похоже, я уже создал некоторое время назад предложенный запрос на извлечение, касающийся автоматической обработки <!--
: https://github.com/doxygen/doxygen/pull/6909
Редактировать 29 сентября 2020 года Запрос на извлечение https://github.com/doxygen/doxygen/pull/8060 был интегрирован в мастер-версию doxygen.
Комментарии:
1. Что касается
@{
проблемы, я только что отправил предложенный патч на github (запрос на извлечение 8060, github.com/doxygen/doxygen/pull/8060 ).2.
@page xxx yyy n <!-- Copyright... ->
вероятно, это лучшее решение. Мне нужно будет найти оригинальные инструкции нашего юридического отдела, чтобы узнать, допустимо ли это. В противном случае добиться изменения политики может быть очень сложно. /// Что касается версии: да, я совершенно уверен, что использую 1.8.7, а также что обновление невозможно. 1.8.7 встроен в наш набор инструментов, и нет никакой необходимости это менять.3. Что ж, у вас может быть веская причина изменить его сейчас (помимо всех улучшений, сделанных за это время в doxygen). Изменить версию doxygen не должно быть сложно, она должна работать сразу. Вы также используете Windows 10, и это даже было выпущено после версии doxygen 1.8.10.
4. Я предполагаю, что вы используете множественное число «вы» — у меня нет полномочий делать это самостоятельно. Практически нет шансов, что кто-то еще серьезно задумается о внесении изменений, если только какая-то проблема или требование не заставят это сделать. Рабочая нагрузка слишком велика, чтобы позволить нам делать то, что мы просто должны делать!