Skip to content

Commit

Permalink
Updated TODO, examples and generated HTML
Browse files Browse the repository at this point in the history
  • Loading branch information
abw committed Nov 10, 2009
1 parent 08a1241 commit f48d00e
Show file tree
Hide file tree
Showing 6 changed files with 217 additions and 6 deletions.
14 changes: 13 additions & 1 deletion TODO
Expand Up @@ -22,4 +22,16 @@ brackets: () [] {} <>
punctuation: , ;


Delete position() and other source methods from T::Type::Text
Delete position() and other source methods from T::Type::Text

Change 'block' element type to something non-generic like 'tt_block'
(and prohibit tt_ prefixes on keywords) to avoid clash with 'block'
keywords directives. The grammar always chooses the block keyword over
the core block element.

Make if look for elsif/else

Handle the end / } terminator. If it's 'end' then we shouldn't parse on
to the next elsif / else.

Figure out what non-chaining infix operators should do.
24 changes: 22 additions & 2 deletions bin/tt3_tokens
Expand Up @@ -39,10 +39,11 @@ __DATA__
div.template {
font-family: Courier, monospace;
font-size: 14px;
line-height: 20px;
color: #444;
white-space: pre;
background-color: #ddd;
border: 1px solid #ccc;
border: 1px solid #aaa;
padding: 5px;
}
Expand All @@ -59,7 +60,8 @@ span.keyword {
color: #a44;
}
span.binop {
span.binop,
span.operator {
color: #a44;
}
Expand All @@ -82,7 +84,25 @@ span.comment {
span.tag_start,
span.tag_end {
color: #aaa;
/* display: none; */
}
span.tag {
padding: 2px 1px;
border: 1px solid #aaa;
}
span.nl {
display: block;
float: left;
margin: 1px 0 0 0;
width: 2px;
height: 19px;
border: 1px solid #aaa;
border-right: 0;
border-left: 0;
background-color: white;
display: none;
}
</style>
</head>
<body>
Expand Down
15 changes: 12 additions & 3 deletions examples/complex.tt3
Expand Up @@ -2,16 +2,25 @@ Hello [% name or 'World' %]!

[% if foo %]
blah blah blah some text
[% %]
[% end %]

[% do %]
blah blah blah
[% %]
[% if x < 10 {
y z
}
%]

[% x + 5 * 10 - foo.bar.bar %]

[% foo # this is a comment
bar # this is also a comment
%]

[% do;
foo
+
bar
baz
end
%]
The end
1 change: 1 addition & 0 deletions examples/expr.tt3
@@ -0,0 +1 @@
[% a + 5 * 10 - foo.bar.bar %]
104 changes: 104 additions & 0 deletions html/complex.html
@@ -0,0 +1,104 @@
<html>
<head>
<title>TT3 Template Tokens: examples/complex.tt3</title>
<style>
div.template {
font-family: Courier, monospace;
font-size: 14px;
line-height: 20px;
color: #444;
white-space: pre;
background-color: #ddd;
border: 1px solid #aaa;
padding: 5px;
}

span.text {
color: #88a;
}

span.tag {
font-weight: bold;
background-color: #f8f8f8;
}

span.keyword {
color: #a44;
}

span.binop,
span.operator {
color: #a44;
}

span.number,
span.squote,
span.dquote {
color: #44a;
}

span.word {
color: #4a4;
/* font-weight: bold; */
}

span.whitespace,
span.comment {
color: #888;
}

span.tag_start,
span.tag_end {
color: #aaa;
/* display: none; */
}
span.tag {
padding: 2px 1px;
border: 1px solid #aaa;
}
span.nl {
display: block;
float: left;
margin: 1px 0 0 0;
width: 2px;
height: 19px;
border: 1px solid #aaa;
border-right: 0;
border-left: 0;
background-color: white;
display: none;
}

</style>
</head>
<body>
<div class="template tt3">
<span class="text">Hello </span><span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="word">name</span><span class="whitespace"> </span><span class="binop">or</span><span class="whitespace"> </span><span class="squote">'World'</span><span class="whitespace"> </span><span class="tag_end">%]</span></span><span class="text">!

</span><span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="keyword">if</span><span class="whitespace"> </span><span class="word">foo</span><span class="whitespace"> </span><span class="tag_end">%]</span></span><span class="text">
blah blah blah some text
</span><span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="keyword">end</span><span class="whitespace"> </span><span class="tag_end">%]</span></span><span class="text">

blah blah blah
</span><span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="keyword">if</span><span class="whitespace"> </span><span class="word">x</span><span class="whitespace"> </span><span class="binop"><</span><span class="whitespace"> </span><span class="number">10</span><span class="whitespace"> </span><span class="punctuation">{</span><span class="whitespace">
<span class="nl"></span> </span><span class="word">y</span><span class="whitespace"> </span><span class="word">z</span><span class="whitespace">
<span class="nl"></span> </span><span class="punctuation">}</span><span class="whitespace">
<span class="nl"></span></span><span class="tag_end">%]</span></span><span class="text">

</span><span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="word">x</span><span class="whitespace"> </span><span class="operator">+</span><span class="whitespace"> </span><span class="number">5</span><span class="whitespace"> </span><span class="operator">*</span><span class="whitespace"> </span><span class="number">10</span><span class="whitespace"> </span><span class="operator">-</span><span class="whitespace"> </span><span class="word">foo</span><span class="binop">.</span><span class="word">bar</span><span class="binop">.</span><span class="word">bar</span><span class="whitespace"> </span><span class="tag_end">%]</span></span><span class="text">

</span><span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="word">foo</span><span class="whitespace"> # this is a comment
<span class="nl"></span> </span><span class="word">bar</span><span class="whitespace"> # this is also a comment
<span class="nl"></span></span><span class="tag_end">%]</span></span><span class="text">

</span><span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="keyword">do</span><span class="punctuation">;</span><span class="whitespace">
<span class="nl"></span> </span><span class="word">foo</span><span class="whitespace">
<span class="nl"></span> </span><span class="operator">+</span><span class="whitespace">
<span class="nl"></span> </span><span class="word">bar</span><span class="whitespace">
<span class="nl"></span> </span><span class="word">baz</span><span class="whitespace">
<span class="nl"></span> </span><span class="keyword">end</span><span class="whitespace">
<span class="nl"></span></span><span class="tag_end">%]</span></span><span class="text">
The end</span>
</div>
</body>
</html>
65 changes: 65 additions & 0 deletions html/expr.html
@@ -0,0 +1,65 @@
<html>
<head>
<title>TT3 Template Tokens: examples/expr.tt3</title>
<style>
div.template {
font-family: Courier, monospace;
font-size: 14px;
color: #444;
white-space: pre;
background-color: #ddd;
border: 1px solid #aaa;
padding: 5px;
}

span.text {
color: #88a;
}

span.tag {
font-weight: bold;
background-color: #f8f8f8;
}

span.keyword {
color: #a44;
}

span.binop,
span.operator {
color: #a44;
}

span.number,
span.squote,
span.dquote {
color: #44a;
}

span.word {
color: #4a4;
/* font-weight: bold; */
}

span.whitespace,
span.comment {
color: #888;
}

span.tag_start,
span.tag_end {
color: #aaa;
}
span.tag {
padding: 1px 3px;
border: 1px solid #aaa;
}
</style>
</head>
<body>
<div class="template tt3">
<span class="tag"><span class="tag_start">[%</span><span class="whitespace"> </span><span class="word">a</span><span class="whitespace"> </span><span class="operator">+</span><span class="whitespace"> </span><span class="number">5</span><span class="whitespace"> </span><span class="operator">*</span><span class="whitespace"> </span><span class="number">10</span><span class="whitespace"> </span><span class="operator">-</span><span class="whitespace"> </span><span class="word">foo</span><span class="binop">.</span><span class="word">bar</span><span class="binop">.</span><span class="word">bar</span><span class="whitespace"> </span><span class="tag_end">%]</span></span><span class="text">
</span>
</div>
</body>
</html>

0 comments on commit f48d00e

Please sign in to comment.