Skip to content

Latest commit

 

History

History
62 lines (51 loc) · 4.1 KB

CONTRIBUTING.md

File metadata and controls

62 lines (51 loc) · 4.1 KB

Что это?

Это репозиторий-хранилище русскоязычных фронтенд-митапов/-конференций.

Формат хранения

Один эвент - один файл хранимый по пути ~/events/{event organizer}/{date} {event name}.yaml (например ~/events/WSD/2019-12-07 WSD 2019 - Минск.yaml).

Содержимое файла:

type Event = {
    name: string
    date: Date | [start: Date, end: Date]
    videos?: string
    talks: Talk[]
}
  • name - название эвента
  • date - дата проведения. Если занимает больше одного дня, то записывается массив с датой начала и датой окончания
  • videos - необязательная ссылка на видеотрансляцию или плейлист
  • talks - список докладов, в некоторых случаях может быть пустым.

Модель доклада:

type Talk = {
    name: string
    altName?: string
    speaker: string
    video?: string
    presentation?: string
    code?: string
    text?: string
    lang?: string
    tags?: string[]
}
  • name - название доклада
  • altName - иногда спикер читает один и тот же (или с лёгкими вариациями) доклад на разных митапах и меняет его название. Для того чтобы такие доклады группировались в один на странице спикера, можно для более свежих докладов указать altName одинаковым с name самого раннего доклада.
  • speaker - "Имя Фамилия" спикера. Если неизвестно, то допустимо указать "Unknown"
  • video - необязательная ссылка на видео
  • presentation - необязательная ссылка на презентацию
  • code - необязательная ссылка на примеры кода, используемые в докладе
  • text - необязательная ссылка на текстовую версию доклада
  • lang - устаревшее поле. Заполняется только если язык доклада отличается от русского. Ранее в репозиторий были добавлены видео на английском и украинском языках. Я склонен оставить этот репозиторий для хранения только русскоязычных докладов, поэтому этот тег в будущем будет удалён.
  • tags - устаревшее поле. Ранее хотелось докладам давать некие теги, по которым можно было бы фильтровать доклады. Но при файловой системе хранения сложно гарантировать консистентность таких тегов и задумка сошла на нет. Существующие tags пока остались, новые не добавляются.

Как добавить новые эвенты

  1. Руками или кодом сгенерировать *.yaml файлы
  2. Закоммитить и запушить изменения
  3. Вы великолепны!

Как перегенерировать *.md файлы

  1. Удостовериться что установлена достаточно свежая версия Node.js
  2. Выполнить corepack enable в корне репозитория
  3. Установить зависимости: yarn install
  4. Установить git-хуки: yarn prepare

Теперь при пуше изменений выполнится препуш-хук, который сгенерирует *.md файлы.

Сгенерировать файлы можно и вручную выполнив node scripts/index.js.