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

TheAthlete theathlet at yandex.ru
Thu Jun 6 02:14:48 PDT 2013


Нет..., добавил, но все равно не интерполируется, вот тестовый пример:

#================ 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


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


More information about the Kiev-pm mailing list