Подобен на мустаци език за шаблони с разширения?

Харесвам минимализма на езиците за шаблони в стил mustache - в момента използвам mustache и icanhasmustache, но също така проверих handlebars и hogan.

Въпреки това имам нужда от функционалност от тип „разширява“, за да позволя на дете да препраща към определен родителски шаблон. Не мога да намеря документация за това как разширенията се прилагат в някое от горните, но видях (от произволни същности на githib), че други хора изглежда го правят.

Забележка: Знам за съществуването на включвания (понякога наричани частични), но те изглежда са предназначени за родителя, за да се позовава на конкретно дете. Това е обратното на това, което търся - дъщерният шаблон в този случай е истинският „основен“ документ, родителят е просто случаен, така че искам детето да контролира връзката.


person mikemaccana    schedule 07.03.2012    source източник
comment
Може би това ще помогне (фалшивият шаблон се разширява в mustache.js) stackoverflow.com/questions/7925931/   -  person WTK    schedule 07.03.2012
comment
@WTK Благодаря. Виждал съм този отговор - самите мустаци не го правят. Въпросът ми е може би: има ли нещо друго? Използването на статична функция за #2 в отбелязания отговор означава, че ще ви трябва функция за всеки родител.   -  person mikemaccana    schedule 07.03.2012


Отговори (3)


Изглежда, че приложението на Twitter за Мустаци, Хоган, сега поддържа наследяване.

Вижте този скорошен ангажимент: Hogan 3. Добавяне на наследяване на шаблон...

person KajMagnus    schedule 18.04.2012

Отговор за 2016 г.:

Ако използвате express, мидълуерът за оформление приема layout опция, която може да намерите за полезна.

res.render('page', { layout: 'mylayout.jade' })

оригинален отговор: Много малко JS библиотеки прилагат функционалност от тип „разширява“.

  • Монахинята прилича много на мустаци, но е само сървър (и вече не се поддържа)
  • Swig има разширения, но не прилича много на мустаци.
  • Jade има разширения и работи в браузъра, но не е като мустак

Спрях се на Dust.JS, тъй като използва подобни на мустаци секции, работи на клиент и сървър , и поддържа преодоляване на блокове на родителя от дъщерния, осигурявайки ефективна поддръжка за разширяване.

Вижте документацията за прах, раздел „Блокове и вградени части“:

{>base_template/}
{<title}
  Child Title
{/title}
{<main}
  Child Content
{/main}

Замяна на секциите „title“ и „main“ от родителския шаблон, запазвайки околното съдържание.

person mikemaccana    schedule 13.03.2012

Разглеждам Nunjucks, който обещава да коригира някои проблеми, както и да поддържа наследяване.

РЕДАКТИРАНЕ:

Наистина съм приел Nunjucks, доста е здрав досега. Едно ограничение, на което се натъкнах, е, че не можете да посочите множество папки за предварително компилиране, но написах скрипт, който да го позволи.

person Aram Kocharyan    schedule 24.04.2013