deno doc, генератор документации
Использование в командной строке
deno doc [OPTIONS] [source_file]...Показать документацию для модуля.
Вывести документацию в стандартный вывод:
deno doc ./path/to/module.ts
Вывести документацию в формате HTML:
deno doc --html --name="My library" ./path/to/module.ts
Проверить модуль на наличие диагностических сообщений в документации:
deno doc --lint ./path/to/module.ts
Указать конкретный символ:
deno doc ./path/to/module.ts MyClass.someField
Показать документацию для встроенных функций во время выполнения:
deno doc
deno doc --filter Deno.Listener
Параметры управления зависимостями
--import-map
Загрузить файл карты импорта из локального файла или удаленной URL-адреса.
--lock
Проверить указанный файл блокировки. (Если значение не указано, используется по умолчанию "./deno.lock").
--no-lock
Отключить автоматическое обнаружение файла блокировки.
--no-npm
Не разрешать модули npm.
--no-remote
Не разрешать удаленные модули.
--reload
Короткая команда: -r
Перезагрузить кэш исходного кода (перекомпилировать TypeScript) без значения Перезагрузить всё jsr:@std/http/file-server,jsr:@std/assert/assert-equals Перезагружает конкретные модули npm: Перезагрузить все модули npm npm:chalk Перезагрузить конкретный модуль npm.
Параметры
--allow-import
Короткая команда: -I
Разрешить импорт из удаленных хостов. Можно указать разрешенные IP-адреса и имена хостов, при необходимости с портами. Значение по умолчанию: deno.land:443,jsr.io:443,esm.sh:443,cdn.jsdelivr.net:443,raw.githubusercontent.com:443,user.githubusercontent.com:443.
Параметры документации
--category-docs
Путь к JSON-файлу, индексированному по категориям, и необязательному значению документа Markdown.
--default-symbol-map
Использует предоставленное отображение стандартного имени на желаемое имя для блоков использования.
--filter
Путь к символу через точку.
--html
Вывести документацию в формате HTML.
--json
Вывести документацию в формате JSON.
--lint
Вывести диагностические сообщения документации.
--name
Имя, которое будет использоваться в документации (например, для навигационной цепочки).
--output
Директория для вывода HTML-документации.
--private
Вывести документацию для частных элементов.
--strip-trailing-html
Удалить окончание .html из различных ссылок. Файлы всё равно будут генерироваться с расширением .html.
--symbol-redirect-map
Путь к JSON-файлу, индексированному по файлам, с внутренней картой символа и внешней ссылки.
Примеры
deno doc за которым следует список одного или нескольких исходных файлов, отобразит документацию JSDoc для каждого из экспортированных членов модуля.
Например, если у вас есть файл add.ts со следующим содержимым:
/**
* Adds x and y.
* @param {number} x
* @param {number} y
* @returns {number} Sum of x and y
*/
export function add(x: number, y: number): number {
return x + y;
}
Запустив команду Deno doc , выведется JSDoc-комментарий функции в stdout:
deno doc add.ts
function add(x: number, y: number): number
Adds x and y. @param {number} x @param {number} y @returns {number} Sum of x and y
Проверка кода
Вы можете использовать --lint флаг для проверки проблем в вашей документации во время её генерации. deno doc выявит три вида проблем:
- Ошибка для экспортированного типа из корневого модуля, ссылающегося на неэкспортированный тип.
- Обеспечивает, что потребители API имеют доступ ко всем типам, которые использует API. Это можно подавить, экспортировав тип из корневого модуля (одного из файлов, указанных для
deno docв командной строке) или пометив тип меткой@internaljsdoc.
- Обеспечивает, что потребители API имеют доступ ко всем типам, которые использует API. Это можно подавить, экспортировав тип из корневого модуля (одного из файлов, указанных для
- Ошибка отсутствия типа возвращаемого значения или типа свойства в общедоступном типе.
- Обеспечивает, что
deno docотображает тип возвращаемого значения/свойства и помогает улучшить производительность проверки типов.
- Обеспечивает, что
- Ошибка отсутствия JS-комментария к общедоступному типу.
- Обеспечивает документирование кода. Может быть подавлена добавлением JSDoc-комментария или меткой
@ignorejsdoc, чтобы исключить его из документации. В качестве альтернативы, добавьте метку@internal, чтобы сохранить его в документации, но обозначить как внутренний.
- Обеспечивает документирование кода. Может быть подавлена добавлением JSDoc-комментария или меткой
Например:
interface Person {
name: string;
// ...
}
export function getName(person: Person) {
return person.name;
}
$ deno doc --lint mod.ts
Type 'getName' references type 'Person' which is not exported from a root module.
Missing JS documentation comment.
Missing return type.
at file:///mod.ts:6:1
Эти проверки помогают написать лучшую документацию и ускорить проверку типов в ваших проектах. Если какие-либо проблемы обнаружены, программа завершается с ненулевым кодом выхода, и вывод сообщается в стандартный поток ошибок.
Поддерживаемые теги JSDoc
Deno реализует большой набор тегов JSDoc, а также дополнительные теги, которые не определены в спецификации JSDoc. Поддерживаются следующие теги:
-
constructor/class: отмечает функцию как конструктор. -
ignore: игнорирует символ для включения в вывод. - internal: отмечает символ для внутреннего использования. В генераторе HTML символ не будет включён в список, но он по-прежнему будет сгенерирован и доступен, если к нему ссылается не внутренний символ.
-
public: рассматривает символ как общедоступный API. Эквивалентно ключевому слову TypeScriptpublic. -
private: рассматривает символ как закрытый API. Эквивалентно ключевому слову TypeScriptprivate. -
protected: рассматривает свойство или метод как защищённый API. Эквивалентно ключевому слову TypeScriptprotected. -
readonly: отмечает символ как неизменяемый, то есть его нельзя перезаписать. -
experimental: отмечает символ как экспериментальный, что означает, что API может измениться или быть удалён, или поведение не определено чётко. -
deprecated: отмечает символ как устаревший, что означает, что он больше не поддерживается и может быть удалён в будущей версии. -
module: этот тег можно определить в верхнем JSDoc-комментарии, который будет рассматривать этот комментарий как относящийся к файлу, а не последующему символу. -
category/group: отмечает символ как относящийся к определённой категории/группе. Это полезно для группировки различных символов вместе. -
see: определяет внешнюю ссылку, связанную с символом. -
example: определяет пример для символа. -
tags: определяет дополнительные пользовательские метки для символа через список, разделённый запятыми. -
since: определяет, с какого момента символ доступен. -
callback: определяет обратный вызов. -
template/typeparam/typeParam: определяет обратный вызов. -
prop/property: определяет свойство символа. -
typedef: определяет тип. -
param/arg/argument: определяет параметр функции. -
return/returns: определяет тип возвращаемого значения и/или комментарий функции. -
throws/exception: определяет, что функция выбрасывает при вызове. -
enum: определяет объект как перечисление. -
extends/augments: определяет тип, который функция расширяет. -
this: определяет, к чему относится ключевое словоthisв функции. -
type: определяет тип символа. -
default: определяет значение по умолчанию для переменной, свойства или поля.
Вывод в HTML
Используйте флаг --html для генерации статического сайта с документацией.
$ deno doc --html --name="My library" ./mod.ts
$ deno doc --html --name="My library" --output=./documentation/ ./mod.ts
$ deno doc --html --name="My library" ./sub1/mod.ts ./sub2/mod.ts
Сгенерированная документация — это статический сайт с несколькими страницами, который можно развернуть на любом хостинге статических сайтов.
На сгенерированном сайте включён поиск на стороне клиента, но он недоступен, если в браузере отключён JavaScript.
Вывод в JSON
Используйте флаг --json для вывода документации в формате JSON. Этот формат JSON используется веб-сайтом deno doc для генерации документации модуля.
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/doc