Команда doxygen @par прерывает вывод html с отсутствующими тегами <b>или ошибочными </b> - PullRequest
0 голосов
/ 02 апреля 2012

Doxygen Noob здесь.Я искал и пытался решить эту проблему в течение нескольких часов безуспешно.Ответ, вероятно, будет чем-то очевидным, что я недостаточно знаком, чтобы увидеть.

РЕДАКТИРОВАТЬ: Команда @par Doxygen разрывает страницу вывода HTML (запуск doxy 1.8.0 через мастер gui), либо не вставляя<b> внутри <dt> или путем вставки ошибочного </b> внутри </dt>, тогда как аналогичные команды (например, @return и @note) этого не делают.Пример комментария (комментарий относится к функции, если это имеет значение ...):

/** 
Register a new exit to the room object. Adds the exit to our exit_hash map with some safety checks for whether we've been passed an array of exits or just one.

New practice; there's now an exit hash map ([direction:hash])
and we add exits into our hash map as they're created. This is how guards
are now identified: they're assigned the hashes they guard as IDs.

@code
OH JESUS GOD PLEASE WORK
@endcode

@return hrm

\note
This note consists of two paragraphs.
This is the first paragraph.

\par User defined paragraph:
Contents of the paragraph.

\par
New paragraph under the same heading.

\par
And this is the second paragraph.

More normal text.


*/

Вы можете распознать часть комментария, поскольку я поднял его из демонстрации doxygen об использовании команды.Это приводит к выводу HTML, который заканчивается на «Это первый абзац».под командой \ note (все разделы до этого отображаются правильно), а в верхней части страницы doxygen указывается ошибка:

Эта страница содержит следующие ошибки: ошибка в строке 422 в столбце 42: открытиеи окончание несоответствия тега: dt строка 0 и b Ниже приведено отображение страницы с точностью до первой ошибки.

XML отображается (или, по крайней мере, мне), и выглядит следующим образом:

<detaileddescription>
    <para>Adds the exit to our exit_hash map with some safety checks for whether we&apos;ve been passed an array of exits or just one.</para>
    <para>New practice; there&apos;s now an exit hash map ([direction:hash]) and we add exits into our hash map as they&apos;re created. This is how guards are now identified: they&apos;re assigned the hashes they guard as IDs.</para>
    <para><programlisting><codeline><highlight class="normal">OH<sp/>JESUS<sp/>GOD<sp/>PLEASE<sp/>WORK</highlight></codeline></programlisting></para>
    <para>
        <simplesect kind="return"><para>hrm</para></simplesect>
        <simplesect kind="note"><para>This note consists of two paragraphs. This is the first paragraph.</para></simplesect>
        <simplesect kind="par"><title>User defined paragraph:</title><para>Contents of the paragraph.</para></simplesect>
        <simplesect kind="par"><title></title><para>New paragraph under the same heading.</para></simplesect>
        <simplesect kind="par"><title></title><para>And this is the second paragraph.</para></simplesect>
More normal text. 
    </para>
</detaileddescription>

Вывод HTML на сайте ошибок:

<code><p>Register a new exit to the room object. </p>
<p>Adds the exit to our exit_hash map with some safety checks for whether we've been passed an array of exits or just one.</p>
<p>New practice; there's now an exit hash map ([direction:hash]) and we add exits into our hash map as they're created. This is how guards are now identified: they're assigned the hashes they guard as IDs.</p>
<div class="fragment"><pre class="fragment">OH JESUS GOD PLEASE WORK
Возвращает: HRM Примечание: Это примечание состоит из двух параграфов.Это первый абзац. И это второй абзац. Пользовательский абзац: Содержание абзаца. Новый абзац под тем же заголовком. И это второй абзац.

Более обычный текст.

Ответы [ 3 ]

1 голос
/ 18 июня 2013

Я в такой же ситуации. Имейте .xhtml в качестве моего расширения из-за .svg точечных диаграмм. Я обнаружил, что если вы добавите дополнительную новую строку до и после блоков @code, это, похоже, решит множество проблем:

/**
 * @par Example:
 * This is an example:
 * @code
 * // Some code
 * @endcode
 * The above example is AWESOME!
 */

Приведенное выше создает ошибки XHTML, но если я изменю его на:

/**
 * @par Example:
 * This is an example:
 *
 * @code
 * // Some code
 * @endcode
 *
 * The above example is AWESOME!
 */

Все снова хорошо. Это может или не может быть решением вашей проблемы, но позволило мне сохранить расширение .xhtml, пока работаю с выводом XHTML doxygen.

1 голос
/ 02 апреля 2012

Я не уверен, но отчасти ваша проблема может заключаться в том, что вы используете заголовок абзаца в одном из абзацев в \note.Со страницы руководства doxygen для \par:

Если заголовок абзаца не задан, эта команда начнет новый абзац.Это также будет работать внутри других команд абзаца (например, \ param или \ warning) без завершения этой команды.

Это означает, что добавление заголовка завершит любой предыдущий блок команд.Попробуйте переупорядочить документацию в соответствии с примером документации \par и посмотрите, дает ли это ожидаемые вами результаты.

Кроме того, что находится в строке 422?

0 голосов
/ 03 апреля 2012

Я переключал опции / искал ошибки в формате комментариев в течение нескольких дней, и похоже, что я, наконец, выделил проблему, которую я здесь запишу, если кто-то еще заглянет:

Я установил для параметра HTML_FILE_EXTENSION значение .xhtml, как рекомендовано в документации для параметра DOT_IMAGE_FORMAT:

Тег DOT_IMAGE_FORMAT можно использовать для установки формата изображений, генерируемых точкой. Возможные значения: svg, png, jpg или gif. Если оставить пустым, будет использован png. Замечания: Если вы выбираете svg, вам нужно установить HTML_FILE_EXTENSION в xhtml, чтобы SVG-файлы были видны в IE 9+ (в других браузерах это требование отсутствует).

Этот параметр не является причиной ошибки (отчет об ошибке: https://bugzilla.gnome.org/show_bug.cgi?id=672472),, но параметр заставлял ее предотвращать загрузку страницы из-за непарных тегов. Возврат этого параметра .html не решает проблему с дополнительным тегом </b>, но он работает как обходной путь, чтобы не допустить взлома страницы.

...