Как легко создать GitHub дружественный markdown для документированных функций JavaScript?



Я хочу иметь возможность принимать комментарии JSDoc, как это в любом месте в источнике JavaScript (даже вложенные вниз несколько слоев функций, в модуле или даже анонимных функций):



/**
* Used to do some important thing that needs doing that works like xyz.
* @param {String} whatever - some string that has some purpose
* @param {Function} callback - a function that needs to be run
* @returns {Boolean} whether or not something happened
*/
function something(whatever, callback) {
...


и есть простой способ произвести хорошее уценки:



##`root.something(whatever,callback)`
Used to do some important thing that needs doing that works like xyz.

*Parameters*
`whatever {String}` some string that has some purpose
`callback {Function}` a function that needs to be run

*Returns*
`{Boolean}` whether or not something happened


где "root" - это пространство имен, в котором эта функция доступна. Или если это анонимная функция или частная функция (которая по какой-то причине должна быть в публичном документе, это даже делает смысл??), используйте какое-то другое соглашение, чтобы обозначить это. Может быть



##_private_function_ `something(whatever,callback)`

and

##_anonymous_function_`(whatever,callback)`


это не обязательно должен быть именно этот формат, просто что-то, что хорошо выглядит на Github и имеет смысл. Идеальный инструмент был бы достаточно умен, чтобы иметь возможность принимать код, как усы.js и произвести хороший выход. И особенно хорошо было бы, если бы он мог обрабатывать множество исходных файлов и создавать один документ в качестве вывода или связанный набор документов в зависимости от конфигурации.



и было бы лучше всего, если это было сделано таким образом, чтобы его можно было полностью и легко включить в репозиторий git, чтобы людям не нужно было настраивать высокоспециализированную цепочку инструментов для обновления doco. Или, по крайней мере, требуется минимальная цепочка инструментов.



О, и пони.





существующие варианты




JSDoc, плюс какой-то HTML - > markdown conversion



JSDoc довольно хорошо. Но я не могу заставить его хорошо работать с модулями. Или, скорее, это больше хлопот, чем это должно быть ИМХО. Мне не нужно добавлять дополнительный тег для имени функции. Я пробовал @export и @name и до сих пор не могу заставить его отображаться в окончательном документе так, как я хотел бы. Если кто-то может указать на источник комментариев JSDoc, который имеет модули в нем и выполнен хорошо, это может помочь. обновление: JSDoc v3 на самом деле кажется намного лучше с модулями, чем v2, так что это может быть лучше подходит.



даже если бы я мог получить вывод JSDoc, как я хочу, я бы нужно конвертировать из HTML в markdown. Я не могу найти хороший инструмент для этого, существует ли он?



Docdown



Я немного поиграл с Docdown, но тот факт, что это PHP, для меня не является стартером...




YUIDoc плюс преобразования



Я на самом деле не играл с YUIDoc, но это выглядит нормально. Тем не менее, мне понадобится конвертер. Имеет ли он дело с модулями легко и избежать необходимости предоставлять имя функции и имя экспорта явно?




здесь плюс шаблоны уценки



Dox производит JSON по мере его вывода, поэтому вам нужно будет связать это с некоторыми хорошими шаблонами markdown, а также включить механизм шаблонов для создания документов. Кто-нибудь собрал набор таких шаблонов в полезной форме?




jGrouse плюс преобразования



работает с муравьем. Следующий...



ScriptDoc...



тут это даже существует больше? Кажется, это часть Aptana studio, так что это будет не запуск... Aptana, похоже, не имеет никакой информации об этом. Но ... ScriptDoc.org есть интересная информация о трещине, если это полезно...



Pdoc



Pdoc основан на Ruby, но эта цепочка инструментов не является редкостью, так что это не огромная проблема. Вы можете предоставить свои собственные шаблоны, так что, возможно,уже есть некоторые хорошие уценки. Я с ним не играл... стоит ли это делать? Являются есть хорошие шаблоны уценки там?



что-то еще?



что еще там?



сделать свой собственный!



после возни с JSDoc в течение нескольких часов, пытаясь заставить его работать, как я хотел, я сдался и написал свое собственное быстрое и грязное решение на Java на CharFunk, библиотека Unicode JavaScript, над которой я работал. Он работает достаточно хорошо для того, что мне нужно, хотя это не близко к общему назначению еще.





так.....



это неудовлетворенная потребность или только я?

786   7  

7 ответов:

ты пробовал jsdox?

его узел.js jsdoc к генератору уценки.

Я использую jsdoc-to-markdown..

писать документированный код:

/**
a quite wonderful function
@param {object} - privacy gown
@param {object} - security
@returns {survival}
*/
function protection(cloak, dagger){}

получить markdown docs:

$ jsdoc2md example/function.js

#protection(cloak, dagger)
a quite wonderful function

**Params**

- cloak `object` - privacy gown
- dagger `object` - security

**Returns**: `survival`

эти проекты имеют readme файлы, отображаемые jsdoc2md:

markdox может генерировать документы уценки из кода javascript.

jsDox. https://github.com/sutoiku/jsdox Полный разбор с помощью UglifyJS

МОКС. https://github.com/tjchaplin/mox Несколько готовых к запуску примеров / шаблонов.

оба обрабатывают форматы JSDoc/Dox. Оба имеют активное развитие. Для меня Mox выигрывает из-за примера suite.

ОК. После некоторого обсуждения с самим собой я бы пошел с DOX + Underscore/Whatever JS templating engine over Node.

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

Dox, насколько я помню, является относительно легким и имеет пакет npm (IIRC).

обновление: Я думаю, после некоторого опыта, что я хотел бы изменить свой ответ на YUIDoc.

попробуйте использовать глагол. В простейшем случае использования глагол будет строить readme из шаблона, используя данные из пакета.формат JSON.

но verb также имеет расширенные функции, если вам нужно создать многостраничные TOC или создать пользовательские помощники и т. д.

Что касается документации API, см. Это пример readme генерируется с помощью комментариев кода от index.js. Нажмите на заголовки, которые также генерируются автоматически. Используйте это встроенный помощник to создайте документы API из любого указанного пути к файлу. Вы также можете использовать шаблоны glob для извлечения документов из нескольких файлов.

глагол будет строить .verb.md без каких-либо конфигурации. Но если вам нужно больше, вы можете использовать verbfile.js

Мне нужно было создать документацию API из JSDoc, которая должна быть проста в использовании, а также поддерживает современные интерфейсные стеки. Некоторые из упомянутых библиотек имеют проблемы с JS-кодом, транспилированным в babeljs, поэтому вам нужно временно транспилировать свой код с комментариями, чтобы создать свою документацию по уценке.

для такого случая использования я нашел http://documentation.js.org/ весьма полезно, поскольку они интегрировали поддержку конфигураций BabelJs, поэтому он заботится о создании markdown (JSON, HTML) из ваших JSDocs.

Comments

    Ничего не найдено.