PRO_техписательство
556 subscribers
92 photos
1 file
45 links
Канал техписа с дипломами программиста и аналитика. Пишу про техписательство и всё, что около него.
Адепт Docs as code.
До этого 9 лет работал IT-копирайтером и редактором на фрилансе. Так что про фриланс знаю всё. А еще пишу стихи, в т.ч. на заказ.
加入频道
#apidocs

Привет.
Продолжаем курс по проектированию и документированию API.
В прошлый раз мы собрали и задеплоили сайт-справочник.
Но он с дефолтными настройками. А ведь, наверняка вам захочется его кастомизировать (поменять цвета, размеры элементов, убрать какую-то информацию, добавить JS, скрипты и пр.). Все это реально: в репозитории со стартерпаком, который мы использовали на прошлом уроке, есть все необходимое для кастомизации сайта:

1. Папка slate_shards/basic — здесь хранится шаблон страницы сайта-справочника, JS-скрипты, CSS-файлы и картинки, которые использует бэкенд Slate из состава Foliant для сборки сайта. Т.е. отсюда можно управлять всем, скажем так «фронтендом», нашего справочника.
2. Папка widdershins_templates — здесь хранятся шаблоны, в соответствии с которыми происходит преобразование OpenAPI-спецификации в Markdown, который потом отдается бэкенду Slate для генерации сайта.
Досконально разбираться что за что отвевает в этих папках не будем, при желании можете сделать это самостоятельно. С slate_shards/basic все понятно: открываем собранный сайт, открываем инструменты разработчика в браузере и изучаем селекторы элементов страницы, после чего можно влиять на них посредствам содержимого папки. С шаблонами widdershins_templates поможет разобраться официальная документация Widdershins.

Давайте для примера внесем небольшие изменения в наш сайт, чуть-чуть кастомизировав его: изменим цвет подложки левой части сайта (где расположен список методов и ссылки на них).

Через инструменты разработчика модно увидеть, что левая часть сайта имеет CSS-класс toc-wrapper, а цвет подложки для нее — #2E3336 (черный). Давайте заменим его, например, на цвет с HEX-кодом #5cd8df.
Для этого в файле slate_shards/basic/source/stylesheets/screen.css.scss найдите класс .toc-wrapper, Видно, что для него цвет подложки задан через переменную background-color: $nav-bg;. Можно изменить цвет, заменив значение $nav-bg на #5cd8df или же, заменив значение переменной $nav-bg в файле slate_shards/basic/source/stylesheets/_variables.scss. Если выбрать первый вариант, цвет изменится только для класса .toc-wrapper. Если же изменить значение переменной, тогда цвет изменится для всех классов и элементов, в CSS-правилах которых он используется.
Я изменил значение переменной и цвет применился для подложки левой части сайта, а также для поля ввода формы поиска по сайту (т.к. он задается через ту же переменную $nav-bg в файле slate_shards/basic/source/stylesheets/screen.css.scss).

После внесения изменений не забудьте пересобрать сайт, чтобы увидеть результат.
Теперь вы знаете, как кастомизировать сайт-справочник, собранный с помощью Foliant и Slate. Напоминаю, что только цветами возможности кастомизации не ограничиваются: при должной сноровке вы сможете придать сайту какой угодно вид и даже добавить интерактивности. Рекомендую потренироваться.

В следующий раз разберемся, как документировать API с помощью Foliant и Slate, если спецификации OpenAPI у вас (на проекте) нет, но есть возможность создавать описания методов вручную.
👍8🤝21
#apidocs

Привет.
Публикую очередной (и завершающий) урок курса по документированию API.

Сегодня рассмотрим процесс сборки справочника API, если на проекте нет спецификации в формате OpenAPI.

В таком случае техническому писателю придется:

1. Добыть информацию (у разработчиков, из кода, при самостоятельном тестировании уже разработанного API и пр.).
2. Сделать исходник в формате .md для сборки справочника.
3. Немного изменить конфигурацию в стартерпаке, который мы использовали на предыдущих уроках.

Процесс сбора информации рассматривать не будем, т.к. это отдельный вопрос. Разберемся только с пунктами 2 и 3 из списка выше.

Подготовка исходника для сборки справочника
Как было описано в предыдущем уроке (П.2 списка), Slate собирает сайт-справочник из Markdown-исходника, который получается из OpenAPI-спецификации в результате ее обработки препроцессором swaggerdocWiddershins под капотом). В случае, если OpenAPI-спецификации нет, подготовка этого самого Markdown-исходника ложится на плечи технического писателя.
Я подготовил пример такого исходника с описанием одного метода (ссылка на него) и назвал его api.md.

Некоторые пояснения по нему:

- Первый заголовок первого уровня будет заголовком нашего сайта. Каждый последующий заголовок первого уровня будет восприниматься Slate как заголовок, обозначающий группу методов API (в нашем случае это # techwriters).
- Заголовки второго уровня используются для обозначения методов API (в примере это ## GET /techwriters).
- Текст, который следует после >, и блоки кода рендерятся в правой части сайта.
- При подготовке исходника можно использовать практически любые возможности Markdown, включая таблицы, inline HTML и пр.: Slate все благополучно переварит и сгенерирует сайт-справочник.

Полученный исходник нужно разместить в папке src.

Изменения в конфигурации в стартерпаке

Т.к. сборка сайта будет происходить из уже готового Markdown-источника, нужды в препроцессоре swaggerdoc у нас нет. Поэтому его можно отключить (я просто закомментировал его в foliant.yml для наглядности). Там же, в блоке chapters я изменил исходник, из которого будет собираться сайт.
В общем, это все, что нужно изменить, чтобы собрать сайт-справочник из Markdown-файла.

Можете подтянуть себе ветку reference_without_open_api_spec из репозитория, с которым мы работали на предыдущих уроках (или склонировать репозиторий полностью), если еще не делали этого ранее) и собрать сайт локально, как описано в этом уроке.

К слову, вы можете комбинировать сборку сайта из OpenAPI-спецификации и Markdown-файла одновременно. Как это сделать, описано в документации Foliant. Если интересно, можете попробовать самостоятельно.


На этом всё, курс закончен.

Позже я выложу все уроки на отдельном сайте, чтобы с курсом было удобнее работать.

Или не всё? Если захотите, в качестве бонусного урока можем рассмотреть, как «замокать» наш API с помощью Postman. Это будет полезным, например, для разработчиков и тестировщиков и поможет им на наглядном примере понять в первом приближении, как будет работать спроектированный API. Если есть такое желание, пишите в комментариях.
🔥9👍3🤝1