Генератор статических сайтов, проверяющий данные и шаблоны с помощью схем

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

То, что я здесь описываю, является концепцией, полной реализации пока нет. Прототип можно найти здесь.

Уже несколько месяцев я программирую либо на JavaScript, либо на Rust. И я очень стараюсь сделать процесс написания JS более похожим на Rust. Почему? Поскольку Rust статически типизирован и действительно хорошо проверяет вещи во время компиляции: попрощайтесь с недопустимым доступом к полям, нулевыми указателями и даже с неправильным форматированием строк или недопустимыми регулярными выражениями. Я был умеренно успешным.

И это то, что я хочу для моего генератора статических сайтов.

Я хочу, чтобы он проверял как можно больше во время компиляции.

Думаю, это может быть весьма полезно. Сначала вам, вероятно, придется бороться с множеством сообщений об ошибках, но со временем, я надеюсь, вы оцените их.

JSON-схема

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

  • Учитывая, что каждый шаблон/частичный/компонент определяет свою собственную входную схему (даже если просто ссылается на другую), я могу подделать структуру данных, соответствующую схеме (используя это), и отобразить шаблон самостоятельно. Вуаля, мы только что создали руководство по стилю!
  • Как вы думаете, можем ли мы что-то сделать, чтобы люди вручную редактировали текстовые файлы для добавления контента на веб-сайт? Нет проблем, просто создайте красивую HTML-форму на основе вашей схемы (используя это) и добавьте небольшой сервер, обрабатывающий загрузку и сохранение файлов.

Дополнительная информация

Я еще немного написал об этом проекте — кодовое название Silicon Zucchini — в своем личном блоге.