Project

tongo

0.0
No commit activity in last 3 years
No release in over 3 years
ruby template engine based on radius and liquid
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.5.0.pre6
>= 0
>= 0

Runtime

>= 0
>= 0
>= 0
 Project Readme

tongo

tongo is a ruby template engine based in Radius and Liquid. I couldn't have done it without the help of Temple, in my opinion, one of the most interesting projects I've ever seen. Right now the implementation is pretty naïve, I haven't done any kind of optimizations and there are probably bugs sneaking around.

Here comes what you were looking for, an example:

Given a context like this one:

class CustomContext < Tongo::Context
  tag :shout do
    'ARGH!'
  end

  tag :whisper do
    'shhh'
  end
  
  tag :upcase do |content|
    content.upcase
  end

  tag :loop do |attrs,content|
    number = (attrs['times'] || 1).to_i
    result = ''
    number.times { result << content }
    result
  end
end

When you use it to handle this template:

<h1 class="highlight">Header</h1>
<ul>
  <tng:loop times="3">
    <li>Hello World</li>
  </tng:loop>
</ul>
<tng:shout />
<strong><tng:shout /></strong>
<em>%{whisper | upcase}, %{shout}</em>

You should get this result:

<h1 class="highlight">Header</h1>
<ul>
  
    <li>Hello World</li>
  
    <li>Hello World</li>
  
    <li>Hello World</li>
  
</ul>
ARGH!
<strong>ARGH!</strong>
<em>SHHH, ARGH!</em>

So basically, it supports markup tags like <tng:whatever some="attribute">, that can be empty or nested, and text tags like %{whatever | filter}.

Contributing to tongo

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright

Copyright (c) 2011 Rodrigo Alvarez. See LICENSE.txt for further details.