Шаблонные движки конечных пользователей Rails: жидкость против усов против других? - PullRequest
11 голосов
/ 27 февраля 2011

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

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

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

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

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

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

Огромная благодарность за любые идеи, опыт или комментарии.

1 Ответ

3 голосов
/ 27 февраля 2011

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

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

...