Тут дело в том, что в СС7 появились неймспейсы, и при наследовании нужно указывать весь неймспейс целиком: 
	extends lalala.parent Но, если шаблон наследования лежит в том же неймспейсе, что и базовый шаблон, то можно проще: extends @parent Т.к. неймспейс создаёт неявный with блок с биндингом на себя. Цитата: 
	
  | 
	
		
 О. Папка с тестами как всегда выручила :) 
	
#{ template child(@params) extends @parent }
Собачку надо добавить :) Цитата: 
	
  | 
	
		
 Цитата: 
	
 button.ss - namespace ui.button - template main() ... super-button.ss - include './button' - namespace ui['super-button'] - template main() extends ui.button.main ...  | 
	
		
 Привет. 
	Можете подсказать такую вроде не сложную вещину :) ? задача глобальная - разбить все на микрочастицы, и комбинировать как хочется. 1. Есть шаблон основной страницы 
- namespace demo
- template layout.general(@params)
	- doctype
		< html
			< head
				< title
					{ @title }
				# style css
					.foo {}
				# script
					alert(1);
			< body
				< .hello
					Hello me!
2. Есть модуль А 
- namespace A
{ template html(@params) }
    < button
         { @buttonText }
{/ template }
#{ template styles(@params) }
#{ @buttonSelector } {
	background: #f00;
	outline: 0;
}
#{/}
#{ template scripts(@params) }
alert( #{@message} )
#{/}
{ template page(@params) }
???
{/ template }
Таких модулей может быть много. Моя задача наследовать (может не совсем верная формулировка) каждый модуль от demo.layout.general и на место стилей и скриптов в head ставить мои темплеиты. Равно как и содержимое body также нужно заменить на A.html шаблон Я пока себе не представляю, как это делается? При том, что мне нужно в каждый шаблон пробросить нужные переменные. Т.е должно работать вроде как вот так 
const a = ss.compileFile( path.resolve(__dirname, './../a.ss') );
a.page({
    message: 'Some alert message',
    buttonSelector: 'button.my-button',
    buttonText: 'Click me!',
    title: 'Кнопка же, ну'
});
Но я запутался с последовательностью. Или в сторону block надо копать?  | 
	
		
 Писать вот так не получается 
	
< head
	< title
		{ @title }
	# style css
		{ block styles() }
			Hello world!
		{/ block }
Суть в том, что стили из шаблона А.styles мне будут нужны в двух видах. Как здесь - внутри тега style Так и как raw - чтобы вставить их в отдельный файл.  | 
	
		
 Эммм, если я правильно понял, то есть мастер шаблон, и все остальные шаблоны должны от него наследоваться и заменять (или дополнять) некоторые его участки. Для этого будем использовать блоки и наследование. 
	base.ss 
- namespace base
- template main()
  - doctype
  < html
    < head
      - block head
    < body
      - block body
child.ss 
- namespace child
- include './base'
- template main() extends base.main
  - block head
    # style
      .foo { color: red }
Если при переопределении блока в дочернем шаблоне нужно вызвать тело родителя, то используем директиву super 
- namespace child
- include './base'
- template main() extends base.main
  - block head
    - super
    # style
      .foo { color: red }
 | 
	
		
 Цитата: 
	
 base.ss 
- namespace base
- template main()
  - doctype
  < html
    < head
      - block head
    < body
      - block body
child.ss 
- namespace child
- include './base'
#{template style()}
.foo { color: red }
#{/template}
- template main() extends base.main
  - block head
    - style
      += child.style() /// Или += @style() если не занят биндинг
 | 
	
		
 ой. Сработало. 
	Невнимательно переписал пример. Решетку убрать надо было. А зачем она? Чем # style отличается от - style ?  | 
	
		
 Цитата: 
	
 # style ты продекларировал расширенный синтаксис директив, вот тут += styles.test() забыл про это и СС думает, что это просто текст :) Исправь на #+= styles.test() А вообще в примере выше нет необходимость делать style через расширенный синтаксис, если всё что внутри неё будет - это просто вызов другого шаблона, т.к. расширенный синтаксис нужен если мы пишем текст, а тут просто вызов другого шаблона. Цитата: 
	
 
- template foo(content)
  < .wrapper
    {content}
- template bar()
  += foo()
    < .baz
      Hello world
Думаю смысл ясен :) Если нужно передать несколько аргументов, то используем директиву putIn 
- template foo(a, b, content1, content2)
  {a + b}
  < .wrapper1
    {content1}
  < .wrapper2
    {content2}
- template bar()
  += foo(1, 2)
      < .baz
        Hello world
    *
      < .bla
        Hello!
Больше примеров тут  | 
	
		
 Это и спрашивал. Спасибо) 
	Пока все круто. Ну за исключением того, что сюда надо бегать за каждым чихом :)  | 
| Часовой пояс GMT +3, время: 18:29. |