Всем привет!
Мне нужна помощь с началом разработки bbcode-тега «countdown», который, как следует из названия, будет отображать обратный отсчёт в сообщении.
Идея заключается в том, чтобы преобразовать что-то вроде [countdown=<iso дата и время>] в простой текстовый обратный отсчёт формата ddd:hh:mm:ss, где d — дни, h — часы, m — минуты, а s — секунды.
Мои эксперименты пока заключались во вставке некоторого JS-кода для расчёта количества дней, часов и так далее. Я вставил его в часть заголовка темы через интерфейс редактирования темы, и я могу отображать обратный отсчёт в консоли JS без проблем.
Самая сложная часть, даже после прочтения Developing Discourse Themes & Theme Components, — это найти способ:
- определить, содержит ли исходный текст сообщения тег
[countdown ...] - извлечь из него дату в формате ISO и проверить её корректность
- если проверка прошла успешно, запустить JS-функцию обратного отсчёта и выполнить замену текста в обработанном тексте сообщения
Я подумал, что можно почерпнуть вдохновение из кода, реализующего функцию [date ...], предоставляемую Discourse. Будет ли это правильным выбором? Можете ли вы предложить какую-либо лучшую альтернативу?
Заранее спасибо!