I have been developing a template engine called Open Power Template for 5+ years so far. The library itself is very mature and I get some help from the community and another programmer, but to make the development faster and more active, I'm looking for programmers who would like to help in this open-source project. If you want to write a new template engine, consider joining an existing project instead. Without experience, you have very little chance to create something innovative and you end with yet another library that repeats the mistakes and drawbacks of the rest.
Project page: http://www.invenzzia.org/en/projects/op ... r-template
Project summary page on Ohloh: http://www.ohloh.net/p/open-power-template-2
Requirements
The library is written in PHP 5.3+ with massive use of object-oriented programming. If you want to volunteer, you have to know both of them. The basic knowledge of Subversion and issue tracking systems would also be appreciated.
Benefits
The entire project is open-source and there are no financial benefits for participating in it (I don't have them, too). What I can provide is the experience, knowledge about XML parsing and compiler design, unit testing, etc. and getting a nice library for your own projects.
What needs to be done?
- Testing the existing features and codebase.
- Improving the compiler and feature set.
- Improving the additional libraries (OPT is a part of a bigger family of PHP libraries)
- Writing framework ports.
- Writing tutorials, improving documentation etc.
How to participate?
Simply register on the project discussion board, describe yourself briefly and ask for some task to do or suggest something you could do. Any help would be appreciated.
Template engine development help
Moderator: General Moderators
- John Cartwright
- Site Admin
- Posts: 11470
- Joined: Tue Dec 23, 2003 2:10 am
- Location: Toronto
- Contact:
Re: Template engine development help
Before I would even entertain the idea of using.. yet..another..template..engine.. I would like to hear the benefits over existing templating engine solutions (and not benefits for working on your project).Benefits
The entire project is open-source and there are no financial benefits for participating in it (I don't have them, too). What I can provide is the experience, knowledge about XML parsing and compiler design, unit testing, etc. and getting a nice library for your own projects.
I only bring this up because I have a feeling that many people feel the exact same way.
Re: Template engine development help
This is an existing template engine. The first stable version was released in 2006, and the code is being developed since 2005. The only reason why you could not hear about it is because for a long time I did not promote it outside my country. Anyway, you are asking for features, so here they are described briefly:
- XML-based syntax.
- Declarative programming (you say what you want to get not how it is supposed to work, like in PHP, Smarty etc.).
- The instruction set is focused on solving practical problems, such as list generation, form processing, pagination, etc. Even if there is implemented an instruction derived from control structures, I try to make it much more powerful and easy-to-deploy in XML.
- Template is independent from script implementation details (so-called data formats, currently an unique feature of OPT).
- Real objective API, not a class for everything.
Sample (template) code:
Note that one example is not physically able to show all the features, but there are tutorials, documentation and a wiki on the project page.
I started writing it five years ago because I was getting more and more annoyed with PHP templates and most of the template engines with a custom language that only packed foreach and if into curly brackets (so the mess in the templates was exactly the same) whereas they could do much, much more. Some of the first users said if they were about choosing a template engine, they would choose something more innovative that provides a real abstraction, I decided to give it to them (and myself). The practice and the users (both individuals and companies) tell me this was was correct.
I hope that the answer satisfied you.
- XML-based syntax.
- Declarative programming (you say what you want to get not how it is supposed to work, like in PHP, Smarty etc.).
- The instruction set is focused on solving practical problems, such as list generation, form processing, pagination, etc. Even if there is implemented an instruction derived from control structures, I try to make it much more powerful and easy-to-deploy in XML.
- Template is independent from script implementation details (so-called data formats, currently an unique feature of OPT).
- Real objective API, not a class for everything.
Sample (template) code:
Code: Select all
<!-- a list of blog entries -->
<div class="entry" opt:section="blogEntry">
<h1>{$blogEntry.title}</h1>
{u:$blogEntry.body}
<p class="tags">
<opt:section name="tag" str:separator=", "><a parse:href="url($tag.address)">{$tag.name}</a></opt:section>
</p>
<p class="date">{date($global.dateFormat, $blogEntry.date)}</p>
</div>
<div class="pagination">
<!-- list of result pages rendered using the information from the pagination class -->
<opt:selector name="pagination">
<opt:page><a parse:href="enumerate($pagination.number)">{$pagination.number}</a></opt:page>
<opt:active><a parse:href="enumerate($pagination.number)" class="active">{$pagination.number}</a></opt:active>
<opt:gap> ... </opt:gap>
</opt:selector>
</div>
I started writing it five years ago because I was getting more and more annoyed with PHP templates and most of the template engines with a custom language that only packed foreach and if into curly brackets (so the mess in the templates was exactly the same) whereas they could do much, much more. Some of the first users said if they were about choosing a template engine, they would choose something more innovative that provides a real abstraction, I decided to give it to them (and myself). The practice and the users (both individuals and companies) tell me this was was correct.
I hope that the answer satisfied you.