Простое документирование JavaScript с помощью YUIDocs и Grunt.js

Документирование кода — неприятный, но необходимый этап работы над приложением. Хорошо документированная и актуализированная кодовая база поможет новым разработчикам лучше понять ваш код, а также усилит контроль над отдельными составляющими вашего приложения.

YUIDoc

YUIDoc — это относительно новое приложение на платформе Node.js, позволяющее распарсить некоторые комментарии в JavaScript и сгенерировать на их основе документацию для API. Ниже будут рассмотрены основы синтаксиса для документирования.

YUIDoc позволяет отмечать части приложения, которые должны быть использованы в последующем документировании.

Например, если вам нужно составить документацию для чего-то на подобии jQuery, это будет выглядеть так:

/**
* Главный класс jQuery.
* @class jQuery
* @param {String} selector Селектор элемента.
* @param {String} [context] Контекст для поиска.
*/
jQuery = /* … */

Затем таким же образом можно задокументировать методы:

/**
* Использование AJAX для поиска данных
* @method ajax
* @param {Object} options Опции запроса
    @param {String} options.url Адрес запроса.
    @param {String} [options.type=get] Тип запроса, по умолчанию `GET`.
* @example
Здесь, кстати, можно использовать синтаксис markdown!

    jQuery.ajax({ 
        url: 'foo/'
    });

* @return {jQuery.Deferred}
*/ 
jQuery.ajax = /* … */

У YUIDoc также есть масса возможностей, например:

Ознакомьтесь с синтаксисом, чтобы узнать о всех возможностях приложения.

Создание документации с помощью Grunt

Gruntjs — это сборщик проектов для NodeJS. С его помощью можно выполнить множество задач для кода, таких как проверка качества кода (JSHint), конкатенация, минификация, и т.д. Для Grunt прописаны сотни задач.

Для YUIDoc есть задача под именем grunt-contrib-yuidoc. Чтобы использовать YUIDoc в своём проекте, прочтите про азы настройки проекта Gruntjs на http://gruntjs.com/getting-started. Выполните следующую команду:

npm install grunt-contrib-yuidoc --save

Затем обновите ваш Gruntfile.js следующим кодом:

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    yuidoc: {
        all: {
            name: '<%= pkg.name %>',
            description: '<%= pkg.description %>',
            version: '<%= pkg.version %>',
            url: '<%= pkg.homepage %>',
            options: {
                paths: ['path/to/your/scripts'],
                outdir: './docs/'
            }
        }
    }
});

grunt.loadNpmTasks("grunt-contrib-yuidoc");

grunt.registerTask("docs", ["yuidoc"]);

Теперь вы можете запустить grunt docs и, вуаля, ваша документация сгенерирована и сохранена в outdir.

Заключение

Документация действительно очень важна для проекта. Хоть её составление может показаться трудоёмкой задачей, в конце концов, оно того стоит. Большинство лучших библиотек с открытым кодом завоевали популярность благодаря своей документации. Не важно, открытый у проекта код, или нет, хорошая документация играет очень важную роль в возможности поддержки приложения.