Документирование программ MATLAB в Doxygen имеет свою специфику, поэтому нам пригодятся далеко не все возможности Doxygen. Далее следует краткое описание основных моментов при комментировании кода MATLAB.
1. Разделы документации в Doxygen
Здесь привожу описание наиболее часто используемых мной тегов разметки, отвечающих за структурные компоненты документации (разделы, подразделы, todo-список, список ошибок и проч.).
1.1. Базовое описание скрипта или функции
Перечисленные ниже теги разметки используются в основном в самом начале файла. Пример типичного скрипта:
%> @file kmvComplCorrRndDataGenerator_func.mДалее описание используемых тегов разметки:
%> @brief This routine does the generation of complex correlated data.
%>
%> @author Mikhail V. Konnik
%> @date 13 May 2010
%> @bug Data is generated in ROWS, must be in Columns
%> @todo The following:
%> - random vectors must contain data in rows, not columns
%>
%> @section randchol Cholesky decomposition
%> In order to start the study of random...
@file programname.m
В самом начале кода - для именования файла, который мы документируем, чтобы была возможность ссылаться на него в других документах просто по имени.
@brief Description of the script of function
Краткое описание реализуемых идей функции или скрипта; используется в начале кода и при описании функции.
Пример типичного описание функции:
%> ======================================================================Здесь нужно отметить, что arg1 и arg2 должны быть в вашей функции теми же, иначе Doxygen будет ругаться следующими словами:
%> @brief Description of the function
%>
%> @c The @c algorithm:
%> - first step
%> - second step
%>
%> @param arg1 Meaning of the parameter1
%> @param arg2 Meaning of the parameter2
%>
%> @retval out1 What is the product of the function?
% ======================================================================
function atm = sim_make_atm_params(arg1, arg2)
/home/dot/matlab/aorta-dev/AOJan07-making/development/sim_make_atm_params.m:10: Warning: argument 'arg1' of command @param is not found in the argument list of sim_make_atm_params(in nx, in phase_screenwidth, in D_over_r0)
/home/dot/matlab/aorta-dev/AOJan07-making/development/sim_make_atm_params.m:10: Warning: argument 'arg2' of command @param is not found in the argument list of sim_make_atm_params(in nx, in phase_screenwidth, in D_over_r0)
/home/dot/matlab/aorta-dev/AOJan07-making/development/sim_make_atm_params.m:10: Warning: argument 'arg3' of command @param is not found in the argument list of sim_make_atm_params(in nx, in phase_screenwidth, in D_over_r0)
/home/dot/matlab/aorta-dev/AOJan07-making/development/sim_make_atm_params.m:10: Warning: The following parameters of sim_make_atm_params(in nx, in phase_screenwidth, in D_over_r0) are not documented:
parameter 'nx'
parameter 'phase_screenwidth'
parameter 'D_over_r0'
Описание использованных тегов:
@param arg1 Описание параметра
arg1@section reflabel The title of the section
Раздел в документации к скрипту с меткой reflabel@ref reflabel )The title of the section. Как правило, содержит солидный кусок текста с кучей формул.
@subsection reflabel The title of the subsection
Подраздел в документации к скрипту с меткой reflabel.
Содержит кусок описания поменьше.
@attention text
Выносной абзац, подчёркивающий важность участка текста.
@ref reflabel
Ссылка на особый участок документации (в другом файле или в том же самом), например:
See @ref reflabel about particular implementation.В тексте будет отображаться гиперссылка с полным названием раздела или подраздела, на который ссылаемся. Если же хочется сослаться на раздел и при этом только упомянуть раздел как-нибудь кратко, можно сделать так:
See @ref reflabel "this page" about particular implementation.Выглядеть будет так: See this page about particular implementation, где this page будет гиперссылкой на нужный нам раздел.
@verbatim
Дословное цитирование кода в документации Doxygen.
Пример:
%> @verbatimПолезно вставлять в документацию особенно сложные или навороченные куски кода с подробными комментариями.
%>% Matlab comment ignored by doxygen
%>%> a = magic(5);
%> @endverbatim
@c TheВыделение слова The курсивом.
@b The Выделение слова The полужирным шрифтом.
%> Making the list:
%> - first thing
%> - next thing
Оформление ненумерованного (bullet-list) списка.
Something @n The Перенос слова The на другую строку (новая строка в Doxygen, оно же newline)
\f$ \LaTeX formula \f$
Иногда для того, чтобы пояснить схему или вставить график в документацию Doxygen, требуется вставить рисунок. Делается это так:
%> @image html image.jpg
После этого в файле Doxyfile ищем и правим переменную:
IMAGE_PATH = ./reference/images/
иначе Doxygen будет ругаться при компиляции, что не нашёл изображение, следующими матерными выражениями:
home/latitude/matlab/aorta/simulator/development/ppg_circ.m:9: Warning: image file image.jpg is not found in IMAGE_PATH: assuming external image.Этот и другие трюки можно прочесть в сих басурманских свитках на вражеской мове.
2 комментариев: |высказаться!| RSS-лента дискуссии.|
Надо бы таки осилить этот вот Doxygen — судя по твоим заметкам, таки полезная штука, если проект достаточно большой. Наверняка же в работе пригодится…
Ну, а теперь перейдём к дебагу статьи:
Интересно, а что с текстом «@param arg1 Описание параметра»? Оно в красивой рамочке, в то время как весь остальной код и параметры не обрамлены. Та же фигня повторяется ещё пару раз ниже по тексту.
Описание возвращаемого значения функцией.
Может, «описание возвращаемого функцией значения»? :)
оно понимает LaTeX формулы и выражения
«Формулы и выражения LaTeX»!
Продолжение скандальных разоблачений Doxygen со стрельбой, погоней и голыми женщинами, можно прочитать по этой ссылке.
Зачем здесь запятая перед «можно»?
@Minoru комментирует...
Надо бы таки осилить этот вот Doxygen — судя по твоим заметкам, таки полезная штука
Осиливать его очень просто, на самом деле. Запускаешь Gnu/Octave, в Kate/Gedit/vim пишешь скрипт, в котором делаешь какие-нибудь расчёты. Пишешь документацию, как я тут привёл примеры (можно прямо скопипастить и поправить). Применяешь перловый скрипт. Всё.
Doxygen это ОЧЕНЬ полезная система: в моём симуляторе телескопа без подробной документации пользователь застрелится.
Интересно, а что с текстом «@param arg1 Описание параметра»?
Хрен его знает: в редакторе он другим шрифтом. Это я его в Опере в Университете правил. Поправлено.
Может, «описание возвращаемого функцией значения»? :)
Это лучше, в самом деле.
«Формулы и выражения LaTeX»!
Пофиксено.
Зачем здесь запятая перед «можно»?
Ты намекаешь, что я уже и пунктуацию забывать начал? :-) Исправил.
Саш, спасибо за полезные правки! Мне тебя иногда так не хватает, когда я посты пишу (вот прямо сейчас, по секрету, почти закончил ОГРОМНЫЙ постище - в следующем году заготавливай попкорн).
Отправить комментарий