Какие системы шаблонов подходят для написания получателей услуг

1

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

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

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

Я бы представил простой рецепт шаблона, выглядящий примерно так:

# Create a service from NodeA to NodeC via NodeB
# Parameters are:
#   node a id, node a port, node b id, node c id, node c port, comment
node_a = node_a_type($1)
conn_a = node_a.create_connection($2, $7)
node_b = node_b_type($3)
conn_b = node_b.create_connection(conn_a.output_port, $7)
node_c = node_c_type($4)
conn_c = node_c.terminate_connection(conn_b.output_port, $5, $7)

Я предлагаю python как базовый язык, поскольку я знаком с ним. Однако в вики Python предлагается множество различных опций (http://wiki.python.org/moin/Templating), причем большинство из них нацелены на решения HTML/XML. Было бы оценено понимание преимуществ и недостатков различных систем.

  • 0
    Думая об этом еще немного, возможно, мне действительно нужно что-то вроде установки песочницы с тщательно контролируемой средой, доступной для рецептов.
Теги:
templates
recipe

1 ответ

2
Лучший ответ

Я думаю, Mako или Jinja2 оба могут подписать счет.

  • Оба шаблона не html/xml, но основаны на тексте.
  • Оба являются популярными и хорошо документированы.
  • У Mako больше пифонического синтаксиса, где BIG-преимущество у Jinja - это поддержка песочницы, которая может быть вам полезна.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню