iCal / CalDAV
fogrew opened this issue · 4 comments
Было бы круто, заводя мероприятия в calendar.yml, автоматически конвертировать их в ical и caldav форматы. Идеально бы ещё в html, чтобы можно было зайти на сайт с календарём и просто посмотреть.
Представляю себе такую автоматизацию процесса:
- завести ветку gh-pages, где будет сайт и календарь в нужных форматах
- написать gulp-task, который разбирает yml и трансформирует в ical и caldav. Если так не выйдет, то сделать организацию через какие-нибудь сервисы генерации событий в календарь (типа API Google Calendar).
- написать таск, который генерит и деплоит всё в ветку gh-pages
- написать конфиг для travis ci, следуя которому всё будет деплоиться при комите в master. в конфиге примерно следующее: установить npm пакеты (хорошо их кэшировать между установками), сконвертировать в три формата календарь, если всё прошло без ошибок, то закомитить их в gh-pages
Вижу себе это примерно так. Понимаю, что кажется слишком сложным, но, один раз автоматизировав, с этим сталкиваться больше не придётся и никакой рутины не потребуется.
Как считаете?
@Gurylev спасибо большое за предложение!
Я полностью согласен насчет автоматизации процесса. Мне нравится процесс, который Вы предложили выше, только подписку на календарь я бы делал силами стороннего сервиса (чтобы каждый был доволен и смог подписаться без проблем).
Всё ещё считаю идею с подпиской на события на стороннем сервисе слишком сложной для первого этапа и я лучше бы сфокусировался на генерации простого календаря из YML. А потом уже можно сделать круче.
Сейчас бы иметь какой-нибудь /calendar.ical
на сайте, чтобы подписаться на него и штука просто заработала.
@pepelsbey я бы наоборот использовал сторонний сервис на первом этапе, потому что так мы сможем сфокусироваться только на одной веще: отлавливать события гитхаба и пушить их в сторонний сервис в правильном формате.
Использование стороннего сервиса не дает нам большой гибкости (хотя calendarx достаточно хорош), но он снимет с нас большую часть работу. В дальнейшем, когда мы захотим что-то более привлекательное и удобно настраиваемое, то можем сделать свое решение.
Если мы просто хотим иметь calendar.ical
, то мы должны будем сделать гораздо больше работы :).