Подтвердить что ты не робот

Rails для конечных пользователей: для жидкостей против усов и других?

Я создаю службу, в которой я хочу разрешить конечным пользователям редактировать HTML-шаблоны для веб-страниц, что позволяет получить доступ к определенным "переменным" для включения в шаблон.

Я знаю, что жидкость была разработана именно для этой цели, является безопасной (по крайней мере относительно) и находится в тяжелом производстве. Тем не менее, я считаю, что язык довольно сложный для конечных пользователей по сравнению с чем-то вроде Усы.

Усы звучат здорово, но меня беспокоит безопасность... она когда-либо использовалась для шаблонов конечных пользователей?

В принципе, я ищу механизм шаблонов, я могу использовать w/Rails для конечных пользователей, который:

  • Secure - не разрешает выполнение кода пользователем... по крайней мере, не на сервере. Пользователям будет разрешено вставлять javascript на стороне клиента.
  • Мощный - позволяет конечным пользователям создавать практически любую веб-страницу, которую они могут себе представить, используя предоставленные "переменные" и в контексте # 1
  • Простой - синтаксис понятен и прост для применения конечными пользователями.
  • Бонусные баллы, если есть поддержка для визуализации синтаксиса шаблона в javascript и других языках.

Жидкость встречается 1 и 2, но не 3-4. Усы встречаются 2-4, но я не уверен в № 1, и это не подлежит обсуждению.

Почувствуйте любые идеи, впечатления или комментарии.

4b9b3361

Ответ 1

Усы фантастичны для интерполяции, и я не могу себе представить, чтобы он когда-либо показывал вам уязвимости на стороне сервера, если вы используете его для оценки Javascript. Это самый простой, самый мощный вариант. Я не знаю, что не-программисты поймут это, но я уверен, что это проще, чем Liquid.

Другим вариантом будет использование существующей более простой пользовательской разметки, такой как BBcode или библиотека редактирования богатого текста, например TinyMCE. Они значительно сокращены по функциональности, но их легче использовать для средних людей.