Могу ли я написать псевдоним doxygen, похожий на @code или @verbatim? - PullRequest
5 голосов
/ 03 февраля 2012

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

@cmd
C:\temp>echo Hello, world!
Hello, world!

C:\temp>
@endcmd

Обычные псевдонимы doxygen не могут этого сделать (многострочные, вложенные"\ temp"), но @code и @verbatim могут.Однако я не могу использовать их, потому что они отформатированы как белый фон с черным текстом, поэтому перезапись класса pre.fragment с помощью специального CSS некорректна.

Есть идеи?

UPD : Комментарии показали, насколько плох мой английский ...

Что ж, попробуйте еще раз.Функции обычного doxygen, такие как HTML и XML, работают так, как показано ниже:

<code>    cpp file                       doxygen produced index.html
/**
@mainpage main               |  
<pre>                        | <pre>C:&gt;echo Hello, world! 
C:\temp>echo Hello, world!   | Hello, world!
Привет, мир!||C: \ temp> |
C:&gt;
|* / |

в журнале:

/tmp/index.h:3: warning: Found unknown command `\temp'
/tmp/index.h:6: warning: Found unknown command `\temp'

"код" и "дословно" работают по-разному!Почувствуйте разницу:

<code>  cpp file                       doxygen produced index.html
/**
@mainpage main               |
@verbatim                    | <div class="fragment">
C:\temp>echo Hello, world!   | <pre class="fragment">C:\temp&gt;echo Hello, world!
Hello, world!                | Hello, world!
                             |
C:\temp>                     | C:\temp&gt;
@endverbatim                 | 
* / |

Вопрос в том, могу ли я написать псевдоним, который будет работать как «код» или «дословно».Сейчас чисто?

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

В этом ответе кратко изложены некоторые комментарии в ответе Пола Джойермана.

Ответ Пола Джойермана - путь.Определите два псевдонима в файле конфигурации doxygen:

<code>ALIASES += "mycode=<div class="myfragment"><pre class=myfragment>"
ALIASES += "endmycode=
"

и оберните ваш пример кода в операторы \mycode и \endmycode. Например, ваш файл C ++может выглядеть примерно так:

/** \mainpage main
 * \mycode
 * C:\\temp>echo Hello, World!
 * Hello, World!
 *
 * \endmycode
*/

, что приводит к следующему соответствующему выводу HTML для кислорода:

<code><div class="myfragment>"><pre class="myfragment>">
 C:\temp&gt;echo Hello, World!
 Hello, World!

(я не уверен, почему существуют > в частях class="myfragments>". Вам нужно будет отформатировать класс myfragments в файле CSS.

Еще одна вещь в приведенном выше коде C ++, которая не упоминалась в комментарияхэто использование экранированной обратной косой черты \\ в примере кода.

1 голос
/ 03 февраля 2012

Как насчет использования HTML и HTML с вашей собственной CSS-разметкой, добавленной в файл Doxygen css. Кажется, примерно столько же печатается.

0 голосов
/ 12 февраля 2012

Единственный выход, который я нашел, это

ALIASES += cmd="<div class=\"cmd\">@verbatim"
ALIASES += endcmd="@endverbatim</div>"

Где класс CSS "cmd" установлен в вашей собственной таблице стилей. Может быть:

.cmd {color: # e3e3e3; цвет фона: # 222222; }

...