Hello folks,
I have reported about my first attempts to augment HTML-TEMPLATE about three years ago. Please take a look at http://lisp.ystok.ru/yhtml/html-template.html
There are too many changes now and I hardly believe they can be considered as patches but rather a branch.
Moreover, I am not using the documentation tool used by Edi. So I could only augment the HTML documentation file "by hands".
Is there any chance to integrate my version into mainstream repository? Any hints or suggestions are welcome.
The main differences are below.
1. A Lisp form in place of "plane attribute" is allowed. Forms are read by the standard read function. All starting tags (except TMPL_INCLUDE) accept forms instead of "old style" attributes. The *attributes-are-lisp-forms* special variable was introduced. Bind or set it to NIL to treating those tags in the compatibility mode.
2. Symbols follow standard Lisp syntax: a package specifier is allowed in front of the name. By default, symbols are interned into the package stored in *template-package*, a new special variable.
3. To interpret the forms in run-time, the template-eval was introduced. It is a simple evaluator akin to the standard eval function except for: - A limited number of special-forms is supported, namely: IF WHEN UNLESS AND OR NOT QUOTE. - The symbol with a name like *var* is treated as a dynamic variable and is retrieved via symbol-value. - The values of other symbols are looked up via *value-access-function*.
4. The TMPL_EVAL tag and create-eval-printer were introduced; the former should be used instead of the TMPL_VAR tag.
5. The value of *format-non-strings* has got an additional meaning. If it equals to T, the result is produced by means of princ-to-string, i.e. (format nil "~A" ...). If it is true but not equals to T, the value must be a single-parameter function, which returns two values: (1) a string resulted from its argument, and optionally (2) do-not-modify flag controlling whether *string-modifier* is applied afterwards. The truth as second value can prevent the result of converting from predefined format, e.g. LHTML, from further escaping.
6. Tag TMPL_ELSE and all ending tags /TMPL_... can embed an optional text between the tag name and the closing marker "-->". This text is intended for readability only and completely ignored by the template parser. For example: <!-- /TMPL_LOOP rows -->
7. The TMPL_ELIF tag was introduced to allow a more concise code. In full, now the "if" pattern looks like:
<!-- TMPL_IF condition_1 --> text_1 <!-- TMPL_ELIF condition_2 --> text_2 ... <!-- TMPL_ELSE --> text_else <!-- /TMPL_IF -->
-- Sincerely, Dmitriy Ivanov lisp.ystok.ru
On Wed, Dec 28, 2011 at 10:27 AM, Dmitriy Ivanov divanov11@gmail.com wrote:
Is there any chance to integrate my version into mainstream repository?
Hi Dmitriy,
Happy New Year... :)
As for new releases, see here:
http://lists.common-lisp.net/pipermail/drakma-devel/2011-August/000884.html
Maybe you can convince Hans Hübner to make a new release. I probably won't have the time for it in the next months.
Cheers, Edi.
Hi Edi,
EW> Happy New Year... :)
Many thanks, you too.
EW> As for new releases, see here: EW> http://lists.common-lisp.net/pipermail/drakma-devel/2011-August/000884.html
This announce looks the same as the one in this mailng list.
EW> Maybe you can convince Hans Hübner to make a new release. I EW> probably won't have the time for it in the next months.
To tell the truth, I do not see much activity at github. And I do not want another cvs client on my computer :-)
For now, I have to fork and will name my branch YHTML-TEMPLATE if you do not mind. -- Sincerely, Dmitriy Ivanov lisp.ystok.ru
On Thu, Jan 5, 2012 at 12:38 PM, Dmitriy Ivanov divanov11@gmail.com wrote:
For now, I have to fork and will name my branch YHTML-TEMPLATE if you do not mind.
No problem.
html-template-devel@common-lisp.net