torin2k
			  Июнь 9, 2010 07:44:27
		 	 
			
				Кто-нибудь знает как отучить mako транслировать двойные кавычки в символ quot?
Пока нашел только один способ: напрямую писать в context.
Например: 
${context.write(' “ ‘)} выплюнет двойные кавычки
${’ ” '} выплюнет символ quot
			
		 
		
			
			  Андрей Светлов
			  Июнь 9, 2010 11:57:58
		 	 
			
				Отучить-то можно… 
Но, кажется, вы что-то неправильно делаете. Зачем такое потребовалось?
			
		 
		
			
			  torin2k
			  Июнь 9, 2010 12:49:25
		 	 
			
				что-бы сократить количество % if … % endif в темплейте написал в проекте функцию делающую case и выдающую куски html.
что-то такое:
<div ${c.case(row,(1,'id=“first”',2,'class=“second”'))}>
…
</div>
если row = 1, то <div id=“first”>
если row = 2, то <div class=“second”>
			
		 
		
			
			  Андрей Светлов
			  Июнь 9, 2010 16:30:52
		 	 
			
		 
		
			
			  torin2k
			  Июнь 9, 2010 17:22:39
		 	 
			
				делал (так правильнее). почему-то вместо результата выдавало текст вставленного кода.
			
		 
		
			
			  torin2k
			  Июнь 11, 2010 11:07:04
		 	 
			
				Андрей Светлов
Сделайте ваш case mako-функцией: http://www.makotemplates.org/docs/synta … x_tags_def
И будет вам счастье.
Тоже преобразует, например:
<%def name="d(x,l=)">
    % for y in l:
    % if x == y:
    ${y}
    % endif
    % endfor
</%def>
${d(10,)}
выдаст значение: class=quot;desyatquot;
			
 
		 
		
			
			  Андрей Светлов
			  Июнь 11, 2010 11:26:32
		 	 
			
				<%def name="d(x,l={})">
    % row = l.get(x)
    % if row is None:
    %     return
    % for name, val in row.iteritems():
        ${name}="${val}"
    % endfor
</%def>
${d(10,{10, {'class': "desyat"}})} 
		 
		
			
			  torin2k
			  Июнь 11, 2010 12:26:55
		 	 
			
				Андрей Светлов
<%def name="d(x,l={})">
    % row = l.get(x)
    % if row is None:
    %     return
    % for name, val in row.iteritems():
        ${name}="${val}"
    % endfor
</%def>
${d(10,{10, {'class': "desyat"}})}
Строанно, когда я изначально пытался словарем передавать параметры, но mako ругался на синтакс-еррор.
			
 
		 
		
			
			  torin2k
			  Июнь 14, 2010 18:24:38
		 	 
			
				Оказывается mako в фигурных скобках поддерживает конструкции Python типа: ${“Результат1” if “Выражение1” else “Результат2”}
Необходимость отдельной функции отпала.