Doxygen и информация о лицензии/авторском праве

У меня есть простой вопрос, который я не мог найти, копаясь в Google.

Я переношу документацию своего проекта из phpDoc в Doxygen, но не знаю, как написать @license и @copyright вместе.

По моему мнению, @copyright предназначено для названия моей "компании" (еще не настоящего :P), а @license способ, которым я разрабатываю, может быть использован: одна из многих комбинаций CreativeCommons, GNU, MIT, BSD, "по лицензии"...


person Bruno Augusto    schedule 10.09.2012    source источник
comment
Мне интересно узнать, что мотивирует переход с phpDoc на Doxygen? Недавно мы начали использовать phpDoc, и я им вполне доволен; новая версия 2 кажется достаточно быстрой и настраиваемой (хотя новый веб-сайт phpDoc шокирует!).   -  person SDC    schedule 10.09.2012


Ответы (2)


Основываясь на ответе Криса, вы можете использовать команду \par для создания блока, аналогичного встроенной команде \copyright. Например, такой псевдоним:

ALIASES += "license=@par License:\n"

Разрешит этот комментарий:

/** My main function.

    \copyright Copyright 2012 Chris Enterprises. All rights reserved.
    \license This project is released under the GNU Public License.
*/
int main(void){
    return 0;
}

для создания этого вывода:

введите здесь описание изображения

Обратите внимание, что в этом решении пустая строка перед \license не требуется, а синтаксис {} не требуется. Это также с меньшей вероятностью вызовет проблемы, если вы попытаетесь создать документацию для форматов, отличных от HTML.

person DRH    schedule 12.09.2012
comment
Очень полезно, спасибо! Я немного поиграл с этим и придумал несколько дополнительных параметров форматирования для получения лицензионного вывода. Фрагмент Doxyfile и файл исходного кода с примерами я перекинул в суть здесь: /2c16253c401f11887c560f51586e7bd6 - person NinthTest; 23.12.2018

Хотя я согласен с вашим различием между информацией об авторских правах и лицензии, кажется, что doxygen не предлагает для них отдельных команд. Фактически, из документации по \author команда команда \copyright используется для указать информацию о лицензии.

Есть (по крайней мере) две возможные вещи, которые вы можете сделать здесь:

  1. Просто объедините информацию об авторских правах и лицензии в аргументе команды \copyright:

    /** My main function.
    
        \copyright Copyright 2012 Chris Enterprises. All rights reserved.
        This project is released under the GNU Public License.
    */
    int main(void){
        return 0;
    }
    

    Это генерирует HTML

    Снимок экрана с документацией, созданной doxygen с использованием первого решения

    Это почти наверняка самое простое, что вы можете сделать.

  2. В качестве альтернативы, HTML-код, написанный для создания приведенного выше изображения,

    <dl class="section copyright"><dt>Copyright</dt><dd>Copyright 2012 Chris Enterprises. All rights reserved. This project is released under the GNU Public License. </dd></dl>
    

    Мы можем использовать это, чтобы определить новую команду, скажем, license, которая ведет себя аналогично команде copyright. Размещение следующего в поле ALIASES файла конфигурации doxygen

    ALIASES += license{1}="<dl class=\"section copyright\"><dt>License</dt><dd>\1 </dd></dl>"
    

    и изменив вышеуказанный блок документации на

    /** My main function.
    
        \copyright Copyright 2012 Chris Enterprises. All rights reserved.
    
        \license{This project is released under the GNU Public License.}
    */
    

    мы получаем сгенерированный doxygen вывод

    Снимок экрана с документацией, созданной doxygen с использованием второго решения

    Обратите внимание, что во втором решении есть пара особенностей: перед командой \license{...} должна быть пустая строка, а команда \license должна заключать аргумент в фигурные скобки. При желании вы можете сделать это с помощью команды \copyright, но команды с аргументами, определенными с помощью ALIASES, должны иметь фигурные скобки.

person Chris    schedule 11.09.2012
comment
Второе решение выглядит лучше, однако я не смог его использовать. Я подумал, что это может быть что-то с политикой пробелов в моем блоке документов, поэтому я заменил ее на вашу и получил тот же результат. Я получаю три ‹p›, заполненных соответственно: определением ‹dt›, текстом внутри фигурных скобок и одинарной кавычкой. Есть ли какие-либо дополнительные настройки, которые я должен включить? Перед запуском Doxygen я сделал несколько тонких настроек и, возможно, что-то случайно отключил. - person Bruno Augusto; 11.09.2012
comment
Я не уверен, почему это так. Попробуйте запустить doxygen с файлом конфигурации по умолчанию. Также ряд недавних вопросов решился путем обновления doxygen до последних версий. Возможно, вы могли бы попробовать это. - person Chris; 11.09.2012
comment
Я начал с Doxygen несколько дней назад. У меня последняя версия :) - person Bruno Augusto; 12.09.2012