Документация LMS версия 0.1.0

Документация/Оформление/Блоки кода

Этого ещё нет в продукте — описывать пока нечего

Блоки кода

Блоков кода в конструкторе ещё нет. Решение принято, правила зафиксированы, код не написан.

Страница нужна сейчас потому, что от этих правил зависит, стоит ли рассчитывать на блоки кода при выборе платформы, — и потому что одно из правил ограничивает то, чего обычно ждут.

Три блока, и они разные по опасности #

Блок HTML. Произвольная разметка, выполняется как есть. Контексты: страница, урок, виджет. В письмах и сообщениях — нет: там разметку определяет почта и мессенджер, и произвольный HTML туда просто не доедет.

Блок CSS. Стили автоматически ограничиваются документом, в котором стоят. Автору для этого ничего писать не надо — ограничение делает движок при сборке страницы. Урок оформляет себя, а не соседний урок и не админку.

Границу с темой школы стоит держать в голове: CSS-блок оформляет свою страницу, тема оформляет всю школу. Страница, переоформившая админку, — это дефект, а не возможность.

Блок JavaScript. Выполняется на странице, где стоит. Три ограничения, и они не обсуждаются.

Пользовательский код никогда не выполняется на экранах админки #

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

Причина прямая: иначе техспециалист, написавший три строки в уроке, получает сессию владельца школы. В продукте, который стоит у сотен клиентов, это вопрос времени, а не вероятности.

Право на код выдаётся отдельно #

Отдельное право, по умолчанию только у владельца. Оно не входит в право редактировать курс: редактировать курс и писать исполняемый код — разные полномочия. На экране выдачи написано словами, что этот человек получит доступ к данным всех, кто откроет страницу.

Журнал правок и реестр вставок #

Журнал — у всех трёх блоков: кто, когда, что было до, с откатом.

Реестр вставок — один экран, где видно все места в школе, где стоит пользовательский код. Без него через полгода никто не помнит, откуда на странице оплаты взялся чужой скрипт, и снять его боятся.

Отдельно: отзыв права на код не выключает уже написанное. Уволившийся техспециалист перестаёт создавать и править, но его виджет продолжает работать — иначе увольнение ломало бы продажи школы посреди дня. Вместо выключателя — видимость: владелец получает список того, что этот человек создавал, и может отключить сам, увидев предпросмотр изменений.

Риск, названный прямо #

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

Где следить #

Обновления.

Эта страница в Markdown