Документация
Страница документации построена на основе сайта документации astro.
Добавление новой страницы документации
- добавьте
.mdxфайл в путь подwebsite/src/pages/, например website/src/pages/learn/code.mdx будет доступен по адресу https://strudel.cc/learn/code/ (или локально по адресуhttp://localhost:4321/learn/code/) - убедитесь, что скопировали верхнюю часть другой существующей страницы документации. Настройте заголовок соответственно
- Чтобы добавить ссылку на боковую панель, добавьте новую запись в
SIDEBARвconfig.ts
Использование Mini REPL
Чтобы добавить Mini REPL, убедитесь, что импортировали:
import { MiniRepl } from '../../docs/MiniRepl';
добавьте mini repl с помощью
<MiniRepl client:idle tune={`note("a3 c#4 e4 a4")`} />
client:idleтребуется, чтобы сообщить astro, что repl должен быть интерактивным, см. Client Directivetune: любой валидный код patternpunchcard: если добавлено, отображается визуализация punchcard / pianorolldrawTime: временное окно для отрисовки, по умолчанию[0, 4]canvasHeight: высота canvas, по умолчанию 100px
См. mini-notation.mdx для примеров использования
Внутренняя документация
Вы можете добавить внутреннюю документацию для функции, используя компонент JsDoc. Импорт:
import { JsDoc } from '../../docs/JsDoc';
Использование:
<JsDoc client:idle name="bandf" h={0} />
name: имя функции, как названо с помощью@nameв jsdoch: уровень заголовка.0скроет заголовок. Скрытие позволяет использовать ручной заголовок, что приводит к генерации навигационной ссылки в правой боковой панели.hideDescription: если установлено, описание будет скрыто
Написание jsdoc
Документация написана с помощью комментариев jsdoc. Пример:
/**
* Select a sound / sample by name.
*
* @name s
* @param {string | Pattern} sound The sound / pattern of sounds to pick
* @example
* s("bd hh")
*
*/
// implementation of s function
- Перед каждой сборкой эти комментарии будут отрендерены в
doc.jsonс использованием jsdoc-json в качестве шаблона - Чтобы вручную перегенерировать файл
doc.json, выполнитеnpm run jsdoc-json - Файл используется компонентом
JsDocдля поиска документации по имени - Также он используется для snapshot теста
examples.test.mjs
Как Strudel выполняет тестирование?