Jump to content

Доксиген

Разработчик(и) Дмитрий ван Хиш
Первоначальный выпуск 26 октября 1997 г .; 26 лет назад ( 1997-10-26 ) [1]
Стабильная версия
1.11.0 [2]  Отредактируйте это в Викиданных / 20 мая 2024 г .; 2 месяца назад ( 20 мая 2024 г. )
Репозиторий
Написано в С++
Операционная система Кросс-платформенный
Тип Генератор документации
Лицензия лицензия GPLv2
Веб-сайт doxygen.nl

Doxygen ( / ˈ d ɒ k s i ən / DOK -see-jən ) [3] это генератор документации [4] [5] [6] [7] и статического анализа инструмент деревьев исходного кода программного обеспечения . При использовании в качестве генератора документации Doxygen извлекает информацию из специально отформатированных комментариев внутри кода. При анализе Doxygen использует свое дерево разбора для создания диаграмм и диаграмм структуры кода. Doxygen может перекрестно ссылаться на документацию и код, чтобы читатель документа мог легко обратиться к фактическому коду.

Doxygen — бесплатное программное обеспечение , выпущенное на условиях GNU General Public License версии   2 (GPLv2).

Как и Javadoc , Doxygen извлекает документацию из комментариев исходного файла. В дополнение к синтаксису Javadoc, Doxygen поддерживает теги документации, используемые в наборе инструментов Qt , и может генерировать выходные данные на языке гипертекстовой разметки ( HTML ), а также в скомпилированной HTML-справке Microsoft (CHM), расширенном текстовом формате (RTF), переносимом формате документов . (PDF), LaTeX , PostScript или справочные страницы .

Использование

[ редактировать ]

Языки программирования, поддерживаемые Doxygen, включают C , [8] C++ , C# , D , Фортран , IDL , Java , Objective-C , [9] Перл , [10] PHP , [11] Питон , [12] [13] и ВХДЛ . [11] Другие языки могут поддерживаться с помощью дополнительного кода.

Doxygen работает на большинстве Unix-подобных систем, macOS и Windows .

Первая версия Doxygen заимствовала код из ранней версии DOC++, разработанной Роландом Вундерлингом и Малте Цёклером в Институте Цузе в Берлине . Позже код Doxygen был переписан Дмитрием ван Хешем.

Doxygen имеет встроенную поддержку для создания диаграмм наследования для классов C++. Для более сложных диаграмм и графиков Doxygen может использовать инструмент «точка» из Graphviz . [14]

Пример кода

[ редактировать ]

Общий синтаксис комментариев к документации заключается в том, что комментарий начинается с дополнительной звездочки после ведущего разделителя комментариев '/*':

/**
<A short one line description>

<Longer description>
<May span multiple lines or paragraphs as needed>

@param  Description of method's or function's input parameter
@param  ...
@return Description of the return value
*/

Многие программисты любят отмечать начало каждой строки пробелом-звездочкой-пробелом, как показано ниже, но в этом нет необходимости.

/**
 * <A short one line description>
 *
 * <Longer description>
 * <May span multiple lines or paragraphs as needed>
 *
 * @param  Description of method's or function's input parameter
 * @param  ...
 * @return Description of the return value
 */

Многие программисты избегают использования комментариев в стиле C и вместо этого используют однострочные комментарии в стиле C++. Doxygen принимает комментарии с дополнительной косой чертой как комментарии Doxygen.

/// <A short one line description>
///
/// <Longer description>
/// <May span multiple lines or paragraphs as needed>
///
/// @param  Description of method's or function's input parameter
/// @param  ...
/// @return Description of the return value

Ниже показано, как C++ можно документировать исходный файл .

Скриншот того, как будет выглядеть результат в HTML.
/**
 * @file
 * @author  John Doe <[email protected]>
 * @version 1.0
 *
 * @section LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details at
 * https://www.gnu.org/copyleft/gpl.html
 *
 * @section DESCRIPTION
 *
 * The time class represents a moment of time.
 */

class Time {

    public:

       /**
        * Constructor that sets the time to a given value.
        *
        * @param timemillis is a number of milliseconds
        *        passed since Jan 1, 1970.
        */
       Time (int timemillis) {
           // the code
       }

       /**
        * Get the current time.
        *
        * @return A time object set to the current time.
        */
       static Time now () {
           // the code
       }
};

Альтернативный подход к документированию параметров показан ниже. Он выдаст ту же документацию.

       /**
        * Constructor that sets the time to a given value.
        */
       Time (int timemillis ///< Number of milliseconds passed since Jan 1, 1970.>
            )
       {
           // the code
       }

Также возможна более богатая разметка. Например, добавьте уравнения с помощью LaTeX команд :

/**
 *
 * An inline equation @f$ e^{\pi i}+1 = 0 @f$
 *
 * A displayed equation: @f[ e^{\pi i}+1 = 0 @f]
 *
 */

Источник и разработка Doxygen

[ редактировать ]

Исходники Doxygen в настоящее время размещены на GitHub , где главный разработчик Дмитрий ван Хиш вносит свой вклад под именем пользователя «doxygen». [15] Doxygen написан на C++ и состоит из около 300 000 строк исходного кода . Для лексического анализа стандартный инструмент Lex (или его замена Flex) запускается с помощью примерно 35 000 строк сценария lex. Инструмент синтаксического анализа Yacc ( или его замена Bison) также используется, но только для второстепенных задач; основная часть синтаксического анализа языка выполняется собственным кодом C++. Процесс сборки основан на CMake , а также включает в себя некоторые скрипты Python.

См. также

[ редактировать ]
  1. ^ АНОНС: doxygen 0.1. Архивировано 4 октября 2011 г. в Wayback Machine . Анонс: первый выпуск Doxygen, системы документации C++. , От: Дмитрий ван Хиш, Дата: воскресенье, 26 октября 1997 г., Архив Qt-interest
  2. ^ «Релиз Doxygen 1.11.0» . 20 мая 2024 г. Проверено 21 мая 2024 г.
  3. ^ «Руководство по Doxygen: Часто задаваемые вопросы» . www.doxygen.nl .
  4. ^ Перкель, Джеффри М. (22 ноября 2015 г.). «Начни с программой: советы по добавлению кодирования в свой аналитический арсенал» . Ученый ( Журнал ). Ученый.
  5. ^ Сабин, Михаэла (22 ноября 2015 г.). «Доксиген» . OpenComputing ( Вики ). Университет Нью-Гэмпшира. Архивировано из оригинала 23 ноября 2015 г.
  6. ^ «Доксиген» . Каталог свободного программного обеспечения ( Вики ). 2015-11-22.
  7. ^ «Документация» . Розеттский кодекс ( Вики ). 2015-11-22.
  8. ^ «Документация: C» . Розеттский кодекс ( Вики ). 2015-11-22.
  9. ^ «Документация: Objective-C» . Розеттский кодекс ( Вики ). 2015-11-22.
  10. ^ «Doxygen::Filter::Perl — предварительный фильтр кода Perl для Doxygen — Metacpan.org» . Metacpan.org .
  11. ^ Jump up to: а б «Руководство по Doxygen: Начало работы» . www.doxygen.nl .
  12. ^ «Инструменты автоматического создания документации API Python» . Вики-сайт python.org ( Вики ). 2015-11-22.
  13. ^ Браун, Эрик В. «doxypypy: фильтр Doxygen для Python» – через PyPI.
  14. ^ «Руководство по Doxygen: Графики и диаграммы» . www.doxygen.nl .
  15. ^ «доксиген/доксиген» . 9 июня 2021 г. – через GitHub.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3b6613151339dd7c7b3cf25bd4a49d1a__1707154320
URL1:https://arc.ask3.ru/arc/aa/3b/1a/3b6613151339dd7c7b3cf25bd4a49d1a.html
Заголовок, (Title) документа по адресу, URL1:
Doxygen - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)