Doxygen
Doxygen — кросплатформна система документування початкового коду програм[1], яка підтримує C++, Сі, Objective-C, Python, Java, IDL, PHP, Perl, C#, Фортран, VHDL і, частково, D.
Doxygen генерує документацію на основі набору вихідних текстів і також може бути налаштований для вилучення структури програми з недокументованих вихідних текстів. Можливе складання графів залежностей програмних об'єктів, діаграм класів та вихідних кодів з гіперпосиланнями.
Приклад програми мовою C++ (згенерована документація — на рисунку):
class Time {
public:
/**
* Constructor that sets the time to a given value.
*
* @param timemillis 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
}
};
Doxygen має вбудовану підтримку генерації документації в форматі HTML, LaTeX, man, RTF і XML. Також результати його роботи можуть бути легко конвертовані в CHM, PostScript, PDF.
Для HTML-представлення документації, що розміщується на web-серверах, існує зручний спосіб організації пошуку (за допомогою створюваного Doxygen'ом PHP-модуля) і посилань на зовнішню документацію.
Doxygen використовується в багатьох проектах, в тому числі KDE, Pidgin, Torque Game Engine, AbiWord, Mozilla, FOX toolkit, Crystal Space, Drupal. Є вбудована підтримка в KDevelop.
Doxygen — консольна програма в стилі класичної Unix. Вона працює подібно компілятору, аналізуючи вихідні тексти і створюючи документацію. Додаткові параметри для створення документації можуть читатись із конфігураційного файлу, що має простий текстовий формат.
Для спрощення маніпуляцій з конфігураційним файлом (який містить досить багато налаштувань), існує кілька програм з графічним інтерфейсом: програма doxywizard (реалізована з використанням Qt-3) поставляється разом з Doxygen; програма Doxygate[2] заснована на Qt версії 4. Пізніше doxywizard був переписаний на Qt-4 і проект Doxygate був закритий.