Я использую PHP и JavaScript в своем проекте, который я полностью кодирую с помощью netbeans 7.0.1. Мне очень нравится, как netbeans включает и использует стиль комментариев JavaDoc, как для PHP, так и для JS-кода.
Теперь я хочу сгенерировать документацию кода из PHP, а также JS-кода. Я знаю, что есть несколько способов сделать это, но моя главная цель - иметь документацию для обеих частей в одной документации.
Чтобы объяснить это дальше: например, я мог бы использовать Doxygen и обрабатывать файлы PHP и JsDoc для обработки JS файлов. В результате я получаю два разных документа в двух разных папках - результат, который мне не нравится. Как я уже упоминал, я хочу как в одной документации.
Итак, сначала я пошел путем использования помощника doxygen js2doxy.pl(http://jsunit.berlios.de/internal.html), но это было недостаточно гибким. Он хорошо работает с "нормальными" определенными функциями, но не с анонимными функциями js.
После нескольких попыток я подумал, почему бы не изменить параметр FILE_PATTERNS документа для обработки файлов .js, так как стиль JavaDoc комментариев почти идентичен тем, которые используются в PHP. И хорошо, результат выглядит многообещающим, но некоторые функции отсутствуют в документе.
Вот примеры:
/**
* Definitions for the languages.
* @memberof Language
*/
Language.Definitions = (function()
{
...
}
Это работает очень хорошо, я вижу документацию. Но:
**
* Definitions for the languages
* @memberof Language
*/
Language.Definitions = (function()
{
var Translations = {};
/**
* Replaces strings.
* @memberof Language
* @param string translation Translation string
* @param array parameters (optional) List of parameters
*
* @return string replaced string
*/
function replaceStrings(translation, parameters)
{
...
}
В этом примере я вижу документы для Language.Definitions, но не для replaceStrings(). У вас есть идея, что я делаю неправильно? Эта же конструкция - процесс JsDoc очень хорошо.
Также (часть Language.Definitions)...
...
return {
/**
* Initialize translations
*
* @memberof Language
*/
initTranslations: function()
{
...
}
...
}
... не отображается в документации.
Я также не возражаю, если кто-нибудь покажет мне, как наилучшим образом объединить два выхода doxygen и JsDoc в одну документацию.
Большое спасибо!
Привет!