Просто выплескиваю эмоции, но, проработав с большим количеством языков шаблонизации, чем я хочу вспоминать (Jinja2, ERB, FTL, XSLT, JSX, Handlebars и т. д.), я нахожу Hyperscript совершенно ужасным в работе.
В произвольном порядке, вот что в нём ломается:
Переносимость кода (нельзя скопировать/вставить фрагменты HTML без их прогона через конвертер)
Подсветка синтаксиса (превращает всё в огромную кашу), например
Да, я согласен, что с этим не так удобно работать, особенно по сравнению с Handlebars (который мы тоже используем), где можно писать HTML так, как ожидается.
Мы начали использовать virtual-dom/virtual-hyperscript в тех местах, где требовалось повысить производительность. Тема использования нескольких систем шаблонов — это то, о чём мы недавно начали говорить внутри команды; у нас пока нет конкретных планов, но мы понимаем, что было бы неплохо всё упростить. Возможно, это означает, что мы больше не будем использовать virtual-hyperscript? Время покажет.
Синтаксис немного непривычен. Я помню, что в начале работы над темами Discourse сам был сильно озадачен, но со временем разобрался, как это работает. Также через виджет можно генерировать «сырой» HTML.
Я не самый опытный в том, чтобы точно сказать, когда и где что использовать, но это вариант, который стоит рассмотреть, если вы занимаетесь кастомизацией, пишете виджет и испытываете трудности с использованием virtual-hyperscript.
Это стоит знать — спасибо! Я потратил час или два на ручное переписывание HTML-фрагментов, но с помощью этого и html2hyperscript у меня теперь есть несколько вариантов, с которыми можно поэкспериментировать
Интересно… Я думал, что одним из главных преимуществ Ember была скорость GlimmerVM. Неужели производительность virtual-dom настолько превосходит Glimmer?
Понятно. Это помогает с таймлайном — спасибо! Значит, пожалуй, самый простой вариант — подождать, пока производительность Glimmer станет сопоставимой с virtual-dom, а затем отказаться от неё и вернуться к чистому Ember?
Эта функция крутая, но у меня возникают проблемы с её запуском. Я подключил discourse/widgets/hbs-compiler через require, но всё равно получаю ошибку: error: hbs is not a function
У нас сейчас идет активное обсуждение того, как оптимизировать наши системы шаблонов. Я разберусь в этом вопросе и в ближайшие дни отвечу на ваш конкретный запрос.
Да. Переход может оказаться непростым. В принципе, мы могли бы создать обратный аналог html2hyperscript, но на практике большинство сценариев hyperscript, скорее всего, так тесно переплетено с JS виджета, что это быстро превратится в кошмар.
Полагаю, самое простое решение — временно сохранить поддержку hyperscript, а возможно, со временем поместить его в статус устаревшего?
На самом деле, я бы сказал прямо противоположное: рационализация использования шаблонов до Octane поможет нам легче перейти на синтаксис с угловыми скобками, когда мы этого захотим.
@edL Я вижу withPluginApi в вашем трассировке стека — вы пытаетесь использовать компилятор hbs внутри тега <script> темы? К сожалению, компилятор Handlebars для виджетов не работает в этом сценарии.