Ответ 1
Doxygen 1.8 добавил поддержку Markdown, так как описан здесь! (Я знаю, что это не альтернатива, но это такие большие новости, которые я хотел бы выделить из комментариев).
В то время как doxygen, похоже, хорошо индексирует большой проект на С++, у меня есть некоторые серьезные проблемы с ним.
Есть ли такой инструмент с хорошей поддержкой С++? Способность Doxygen индексировать С++ на самом деле весьма полезна... это именно то, как она представляет информацию, и требует уродливой разметки в комментариях, которая является болью для решения проблемы.
Doxygen 1.8 добавил поддержку Markdown, так как описан здесь! (Я знаю, что это не альтернатива, но это такие большие новости, которые я хотел бы выделить из комментариев).
Вы можете попробовать DOС++, но я считаю это еще более уродливым. Ваш лучший выбор - настроить настройки Doxygen:
Некоторые переключатели, которые могут вас заинтересовать:
QT_AUTOBRIEF
избегает ввода @brief
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
EXCLUDE
, чтобы избежать появления некоторых уродливых файлов или сторонних разработчиков.HTML_HEADER
HTML_FOOTER
HTML_STYLESHEET
CHM_FILE
HAVE_DOT
CLASS_DIAGRAMS
CLASS_GRAPH
UML_LOOK
Существует новая альтернатива с открытым исходным кодом для doxygen, называемая cldoc: http://jessevdk.github.io/cldoc/.
Он может обрабатывать как c, так и С++ и основан на clang. Я просто скопировал вставку самых интересных функций, которые он предлагает:
Sphinx поддерживает документацию по проектам С++ через домен С++. Он использует reStructuredText в качестве языка разметки.
С веб-сайта:
Следующие функции присутствуют, работают нормально и могут быть видны "в действии" в документах Python:
для точки # 2: (Медленный поворот в поиске ошибок разметки, т.е. мне нужно индексировать весь мой проект, чтобы найти, что я использовал неправильный синтаксис для некоторой функции.).....
Я только что создал оболочку script для запуска Doxygen по одному файлу за раз, который я могу запустить из своей IDE, чтобы решить именно эту проблему, поэтому я могу постоянно запускать и повторно запускать ее при документировании одного файл.
Предполагая, что у вас есть ваш "Doxyfile" в текущем каталоге, script для запуска его только "add_doc.cpp" будет выглядеть как
cp Doxyfile tmp_doxy
echo INPUT = $1 >> tmp_doxy
doxygen tmp_doxy
называется
dofile adding_doc.cpp
как вы интегрируете это с вашей IDE, зависит от вас (разрешение переменных имени файла и т.д.).
Существует аналогичный вопрос (why-is-doxygen-so-unfriendly-to-mobiles), и у него есть ответ, который я нашел полезным. Существует проект github, называемый doxygen-bootstrapped с использованием бутстрапа для документации doxygen. Он не затрагивает все проблемы, конечно, но это позволяет лучше контролировать форматирование вывода HTML.
Если вы заинтересованы в отслеживании большого проекта, то я бы предложил версию С++ Netbeans, который может динамически генерировать хорошие графики вызовов (ищите функцию "Показать Call Graph" ).
Мое оружие выбора NaturalDocs. Он имеет бородавки, но результат приличный, а разметка - без усилий.
Doc-o-matic может обрабатывать как С++, так и С#, но довольно дорого. Выход гибкий и красивый. Когда я использовал его еще в 2009 году, у него было (и, вероятно, еще) несколько ошибок, которые заставляли меня сходить с ума тогда, но с некоторым опытом вы знаете обходные решения. Поскольку по-прежнему нет подходящих альтернатив, я бы по-прежнему рекомендовал его.
DoxyPress - это современная замена doxygen.