[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