summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-02 11:26:28 -0500
committerJesse Luehrs <doy@tozt.net>2012-10-02 11:26:28 -0500
commit2986df9f1eef1112b2221a52bf0a025611ec4e09 (patch)
tree7771ed2ae172282d6ec71a56dc1689cd47d76a62
parentc17f2b9fcceb9a89d815c2f9d777c8e32a8feddc (diff)
downloadtext-handlebars-2986df9f1eef1112b2221a52bf0a025611ec4e09.tar.gz
text-handlebars-2986df9f1eef1112b2221a52bf0a025611ec4e09.zip
don't insert extra newlines for blocks
-rw-r--r--lib/Text/Xslate/Syntax/Handlebars.pm9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Text/Xslate/Syntax/Handlebars.pm b/lib/Text/Xslate/Syntax/Handlebars.pm
index 934a83b..4741d7f 100644
--- a/lib/Text/Xslate/Syntax/Handlebars.pm
+++ b/lib/Text/Xslate/Syntax/Handlebars.pm
@@ -97,14 +97,21 @@ sub preprocess {
my @chunks = $self->split_tags($input);
my $code = '';
+ my $suppress_newline;
for my $chunk (@chunks) {
my ($type, $content) = @$chunk;
if ($type eq 'text') {
$content =~ s/(["\\])/\\$1/g;
- $code .= qq{print_raw "$content";\n};
+ $content =~ s/^\n//
+ if $suppress_newline;
+ $code .= qq{print_raw "$content";\n}
+ if length($content);
+ $suppress_newline = 0;
}
elsif ($type eq 'code') {
$code .= qq{$content;\n};
+ $suppress_newline = 1
+ if $content =~ m{^[#/]};
}
elsif ($type eq 'raw_code') {
$code .= qq{mark_raw $content;\n};