[Kiev-pm] Как реализовать данный код с помощью Text::Haml

TheAthlete theathlet at yandex.ru
Thu Jun 6 03:19:16 PDT 2013


Хорошо

vti <viacheslav.t ÎÁ gmail.com> писал(а) в своём письме Thu, 06 Jun 2013  
12:47:25 +0300:

> Это баг интерполяции в фильтре. Постараюсь починить.
>
> On 06/06/2013 12:14 PM, TheAthlete wrote:
>> Нет..., добавил, но все равно не интерполируется, вот тестовый пример:
>>
>> #================ test_haml.pl
>>
>> #!/usr/bin/perl -w
>> use Modern::Perl;
>> use utf8::all;
>>
>> use Text::Haml;
>>
>> my $haml = Text::Haml->new;
>>
>> my $html = $haml->render_file('tmpl/index.haml',
>>   title => 'Hello from Haml',
>>   content => [qw/test1 test2/],
>>   test_hash => {
>>     sky => 'blue',
>>     grass => 'green',
>>   },
>>   settings => {
>>     charset => 'utf-8',
>>   },
>>   request => {
>>     uri_base => '/home/theathelete',
>>   },
>> );
>>
>> say $html;
>>
>> #============== tmpl/index.haml
>>
>> !!! 5
>> %html
>>   %head
>>     %meta(charset = $settings->{charset})
>>     %title= $title
>>     :javascript
>>       !window.jQuery && document.write('<script type="text/javascript"  
>> src=#{$request->{uri_base}}."/javascripts/jquery.js"><\/script>')
>>   %body
>>     #content
>>       %strong= $content->[1]
>>     %p= $test_hash->{grass}
>>
>> #================ Вывод:
>>
>> <!DOCTYPE html>
>> <html>
>> <head>
>> <meta charset='utf-8' />
>> <title>Hello from Haml</title>
>> <script type='text/javascript'>
>>   //<![CDATA[
>>     !window.jQuery && document.write('<script type="text/javascript"  
>> src=}."/javascripts/jquery.js"></script>')
>>   //]]>
>> </script>
>> </head>
>> <body>
>> <div id='content'>
>> <strong>test2</strong>
>> </div>
>> <p>green</p>
>> </body>
>> </html>
>>
>>
>> vti <viacheslav.t ÎÁ gmail.com> писал(а) в своём письме Thu, 06 Jun 2013  
>> 11:56:13 +0300:
>>
>>> Так а сама переменная есть?
>>>
>>> On 06/06/2013 11:55 AM, TheAthlete wrote:
>>>> Use of uninitialized value in substitution iterator at  
>>>> /usr/local/share/perl5/Text/Haml.pm line 942.
>>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
>>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>>> <html>
>>>> <head>
>>>> <meta charset='utf-8' />
>>>> <title>Hello from Haml</title>
>>>> <script type='text/javascript'>
>>>>   //<![CDATA[
>>>>     !window.jQuery && document.write('<script type="text/javascript"  
>>>> src=}."/javascripts/jquery.js"></script>')
>>>>   //]]>
>>>> </script>
>>>> </head>
>>>> <body>
>>>> <div id='content'>
>>>> <strong>test2</strong>
>>>> </div>
>>>> <p>green</p>
>>>> </body>
>>>> </html>
>>>>
>>>> Это если использовать интерполяцию с помощью #{}
>>>> :javascript
>>>>   !window.jQuery && document.write('<script type="text/javascript"  
>>>> src=#{$request->{uri_base}}."/javascripts/jquery.js"><\/script>')
>>>>
>>>>
>>>> vti <viacheslav.t ÎÁ gmail.com> писал(а) в своём письме Thu, 06 Jun 2013  
>>>> 11:46:40 +0300:
>>>>
>>>>> Насколько я помню правильный способ второй, используя интерполяцию  
>>>>> #{}. А что именно не работает? Какая ошибка?
>>>>>
>>>>> On 06/06/2013 11:40 AM, TheAthlete wrote:
>>>>>> Здравствуйте!
>>>>>> Подскажите пожайлуста, как с помощью Haml для Text::Haml  
>>>>>> реализовать следующий код:
>>>>>>
>>>>>> <script type="text/javascript">/* <![CDATA[ */
>>>>>>       !window.jQuery && document.write('<script  
>>>>>> type="text/javascript" src="<% request.uri_base  
>>>>>> %>/javascripts/jquery.js"><\/script>')
>>>>>>   /* ]]> */</script>
>>>>>>
>>>>>> Пробую слеюующим образом:
>>>>>>
>>>>>> :javascript
>>>>>>   !window.jQuery && document.write('<script type="text/javascript"  
>>>>>> src=$request->{uri_base}."/javascripts/jquery.js"><\/script>')
>>>>>>
>>>>>> но не работает - не получается интерполировать $request->{uri_base}
>>>>>> #{$request->{uri_base}} тоже не работает
>>>>>> _______________________________________________
>>>>>> Kiev-pm mailing list
>>>>>> Kiev-pm ÎÁ pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/kiev-pm
>>>>>
>>>>> _______________________________________________
>>>>> Kiev-pm mailing list
>>>>> Kiev-pm ÎÁ pm.org
>>>>> http://mail.pm.org/mailman/listinfo/kiev-pm
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Kiev-pm mailing list
>>> Kiev-pm ÎÁ pm.org
>>> http://mail.pm.org/mailman/listinfo/kiev-pm
>>
>>
>
> _______________________________________________
> Kiev-pm mailing list
> Kiev-pm ÎÁ pm.org
> http://mail.pm.org/mailman/listinfo/kiev-pm


-- 
Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/


More information about the Kiev-pm mailing list