Надежная и гибкая альтернатива doxygen с поддержкой C++.

Мне нужно сгенерировать документацию для моего проекта C++ (а вскоре, возможно, и для дополнительных). До сих пор я изучал doxygen, и, несмотря на то, что он кажется популярным, у меня были некоторые проблемы с ним (подробности, которые я не буду здесь вдаваться; некоторые из них были решены). Поскольку я не особо к нему привязан — несмотря на его кажущуюся популярность — хочу рассмотреть некоторые альтернативы.

Так вот, 7 лет назад на StackOverflow был вопрос именно об этом:

Альтернативы Doxygen для C++

но ответы уже устарели, поэтому я задаю тот же вопрос здесь и сейчас.

Требования:

  • бесплатно
  • Бесплатно
  • Мультиплатформенность, поддерживающая как минимум Linux и Windows
  • Гибкость на том же уровне, что и у doxygen или выше
  • Активно поддерживается
  • Незначительная пользовательская база
Если вы "не будете здесь вдаваться в подробности", то вам сложно будет помочь
@Mawg: В основном это было так , но я думаю, это вам мало поможет...
Но это решилось. Так почему бы не использовать DoxyGen? Просто любопытно
@Mawg: Тот факт, что он вел себя таким образом, натолкнул меня на мысль, что мне может понадобиться что-то еще. Кроме того, почему я должен использовать doxygen, кроме того, что я слышал о нем? Это не похоже на то, что у меня есть положительный опыт с ним.
Почему бы хотя бы не попробовать? Есть много людей, которые положительно относятся к этому. Они не могут все ошибаться. Кроме того, он активно поддерживался и развивался в течение многих слез, и Дмитрий очень полезен. Поскольку домашняя страница начинается «Doxygen — это де-факто стандартный инструмент для создания документации из аннотированных источников C++», безусловно, стоит попробовать. И то, что он продолжает «но также поддерживает другие популярные языки программирования, является для меня большим плюсом.
Но, подождите, у вас была проблема, которая была решена, поэтому вы, вероятно, использовали ее для создания документации из своего кода. Если вы можете сказать нам, каких именно функций не хватает, мы можем попытаться вам помочь.
@Mawg: Кто сказал, что я не попробую? Я просто не хочу пробовать только doxygen.
Затем попробуйте другие и DoxyGen (если это поможет, вероятно, причина в том, что это отраслевой стандарт)
Поскольку пока единственной предложенной альтернативой является Sphinx-Doc, взгляните на статью В чем основные отличия Sphinx и Doxygen? и Сравнение генераторов документации Википедии
ссылка stackoverflow.com... теперь возвращает "страница не найдена". админы немного не в себе.
@TrevorBoydSmith: вопрос был удален, но администраторы/модераторы должны были переместить ответы сюда. Может быть, мы сможем это сделать?
@TrevorBoydSmith: Смотрите мой новый ответ...
что со всеми бесполезными комментариями о совете использовать doxygen, когда он сказал, что хочет альтернативы? +1 за еще один бесполезный комментарий. Спасибо, что задали вопрос, и почему они удалили другой вопрос для

Ответы (3)

Лично я настоятельно рекомендую взглянуть на Sphinx-Doc , который был написан для документации Python, но применим и к другим системам.

Обращение к вашим пунктам:

  • Свободный полностью открытый исходный код
  • Бесплатно Да
  • Многоплатформенность, поддержка как минимум Linux и Windows Да Основана на Python, поэтому работает практически везде Инструкции по установке на разных платформах
  • Гибкость на том же уровне, что и у doxygen или выше Да Лично я нахожу его более гибким, поскольку он позволяет сочетать автоматически сгенерированную и предварительно написанную в ReStructuredText документацию.
  • Активно поддерживается Да На момент написания rev 1.5.3 была выпущена 2017-02-26 чуть более месяца назад
  • Незначительная пользовательская база ДаRead The Docs поддерживает это для начала и множество примеров здесь

Обратите внимание, что для автоматического создания красивой документации из исходного кода C/C++ вы можете комбинировать Sphinx для создания документов с doxyGen для извлечения информации в XML и дышать , выступая в качестве моста между ними.

Sphinx не поддерживает автоматически сгенерированные документы для C или C++. То есть вам нужно поддерживать весь ваш API и документацию в файлах ReST параллельно с вашим кодом. Большой риск опечаток, рассинхронизации и т. д.
@detly Добавлена ​​информация о расширении дыхания, которое позволяет автоматически генерировать код через doxygen .
Спасибо за это, я видел упоминание дыхания в другом месте, но неправильно понял, какую роль оно играет здесь. После проведения дополнительных исследований выяснилось, что есть также некоторые плагины автогенирования на основе LLVM Clang для Sphinx, которые находятся в разработке, но в конечном итоге могут заполнить и этот пробел.

(Я спас несколько ответов с уже удаленной страницы вопросов StackOverflow :)

Док++

Вы можете попробовать DOC++ , но это может быть еще уродливее.

cldoc

Существует альтернатива doxygen с открытым исходным кодом, которая называется cldoc .

Он может обрабатывать как C, так и C++ и основан на clang. Наиболее интересные функции, которые он предлагает:

  • Использует clang для надежного анализа даже самых сложных проектов C++ без дополнительных усилий со стороны пользователя.
  • Использует уценку для форматирования документации.
  • Использует простой формат для документирования вашего кода.
  • Поддерживает перекрестные ссылки в документации.
  • Создает один файл веб-приложения на основе javascript для отображения документации.
  • Молниеносный поиск на стороне клиента с использованием предварительно созданного поискового индекса.

NaturalDocs

У NaturalDocs есть свои недостатки, но вывод приличный, а разметка не требует усилий.

NetBeans

Если вы заинтересованы в отслеживании большого проекта, я бы предложил версию Netbeans для С++, которая может динамически генерировать красивые графики вызовов (ищите функцию «Показать график вызовов»).

Доксипресс

DoxyPress — современная замена Doxygen.

Это может не соответствовать вашим требованиям, но стоит упомянуть стандартный вариант .

По состоянию на 2022 год только Doxypress и стандартный язык кажутся альтернативами Doxygen, улучшенными для C ++. Doxpress — это ответвление Doxygen версии 1.8.8, целью которого является поддержка и других языков.

См. страницы GitHub, чтобы узнать о последних действиях:
стандартный
Doxypress

Я не пробовал ни один из них, поэтому любые отзывы тепло приветствуются.

Пожалуйста, напишите немного больше об этом - чем он отличается от doxygen или похож на него.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре .
Добро пожаловать в рекомендации по программному обеспечению! Если это не соответствует требованиям, то как это ответ? А зачем упоминать, если не подходит?
Это стоит упомянуть, потому что по состоянию на 2022 год только Doxypress и стандартез кажутся альтернативами Doxygen, улучшенными для C++, где последний вообще не упоминается. Не стесняйтесь улучшать сообщение или создавать новый ответ, основанный на вашем опыте.