ternJS — генерировать файл определения типа JSON

У ternJS их несколько. Файлы JSON defs, содержащие определения библиотек. Может ли кто-нибудь объяснить мне, как мне лучше всего сгенерировать свои собственные библиотеки javascript/или только объекты определения?

Я не вижу, что нет общей процедуры для этого?


person eriksv88    schedule 24.09.2013    source источник


Ответы (2)


В Tern есть инструмент для этого. См. condense на странице http://ternjs.net/doc/manual.html#utils. Он запускает Tern в вашем файле и пытается вывести типы, которые он находит. Он далеко не безупречен, но для простых программ работает хорошо. Для файлов со сложной структурой или интерфейсом вам часто придется писать определения вручную.

person Marijn    schedule 24.09.2013
comment
Большое спасибо, Марин, ты спас мой день;) :D :)! - person eriksv88; 24.09.2013

Есть три способа, о которых я думал, чтобы решить вашу проблему:

Использование синтаксического анализатора и посетителя абстрактного синтаксического дерева

Один из способов решить вашу проблему — использовать анализатор абстрактного синтаксического дерева и посетитель, чтобы автоматизировать задачу сканирования кода и его документирования.

Ресурсы здесь будут полезны:

-http://ramkulkarni.com/blog/understanding-ast-created-by-mozilla-rhino-parser/ -Что такое JavaScript AST, как с ним работать?

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

По сути, у вас будет дерево, представляющее конкретную библиотеку, а затем вы должны написать код для его хранения в формате def, на который вы ссылаетесь.

Получение генератора документации и модификация

Другая идея — загрузить исходный код для генератора документации, например. https://github.com/yui/yuidoc/

Изменив стиль/формат вывода, вы можете создать «документацию» в соответствующем формате json.

Преобразование существующей документации (HTML-документ) в JSON

Вы можете создать синтаксический анализатор, который принимает стандартный формат документации (я уверен, что Javadoc подходит для java, должен быть один и для javascript), и написать преобразователь, который извлекает соответствующую информацию и сохраняет ее в определении JSON.

person Menelaos    schedule 24.09.2013
comment
Я посчитал по крайней мере, что они не писали дефы вручную xD хехе - person eriksv88; 24.09.2013
comment
Может у них спросить? :) ... Я заметил, что они также включают URL-адреса документации в определениях, что также указывает на то, что они удалили / просканировали или ввели данные вручную. Я также подозреваю, что они, возможно, сгенерировали определения, просматривая документы. Я обновил свой ответ еще двумя вариантами. - person Menelaos; 24.09.2013
comment
Спасибо, многому научился здесь :)! Спасибо. +1. Но думаю делать так, как положено от крачки :) - person eriksv88; 24.09.2013