Edgewall Software

Changes between Version 5 and Version 6 of GenshiVsKid


Ignore:
Timestamp:
Sep 12, 2006, 12:19:58 PM (18 years ago)
Author:
cmlenz
Comment:

s/Markup/Genshi

Legend:

Unmodified
Added
Removed
Modified
  • GenshiVsKid

    v5 v6  
    1 = Comparing Markup to Kid =
     1= Comparing Genshi to Kid =
    22
    3 The [wiki:MarkupTemplates template engine] in Markup was heavily inspired by Kid (http://kid-templating.org).
     3The XML-based template engine in Genshi was heavily inspired by Kid (http://kid-templating.org).
    44
    55Common concepts and features:
     
    1313 * No generation of Python code for a template; the template is executed directly.
    1414 * No support for `<?python ?>` processing instructions
    15  * Expressions are evaluated in a more flexible manner, meaning you can use e.g. dotted notation to access items in a dictionary, and the other way around (see the [source:/trunk/markup/eval.py markup.eval] module)
     15 * Expressions are evaluated in a more flexible manner, meaning you can use e.g. dotted notation to access items in a dictionary, and the other way around (see the [source:/trunk/genshi/eval.py genshi.eval] module)
    1616 * Proper scoping of variables. Names do not leak into outer scopes.
    1717 * Use of XInclude and match templates instead of Kid's `py:extends` / `py:layout` directives
    18  * `py:match` directives use (basic) XPath expressions to match against input nodes, making match templates more powerful while keeping the syntax simple (see the [source:/trunk/markup/path.py markup.path] module)
     18 * `py:match` directives use (basic) XPath expressions to match against input nodes, making match templates more powerful while keeping the syntax simple (see [wiki:Documentation/xpath.html Using XPath in Genshi])
    1919 * Additional directives `py:choose` / `py:when` / `py:otherwise` to better support multi-branch conditionals (aka ''if, else if, else'').
    20  * It is possible to include markup that is not well-formed in the output (which you may need to do in [http://pyre.third-bit.com/blog/archives/000417.html some]  [http://groups.google.com/group/turbogears/browse_thread/thread/f8c0c9800b6aabae/ca12dea6a9729da9?lnk=gst&q=kid+questions&rnum=1 cases]). And if you need to include bad HTML markup but would like to still produce valid output, Markup provides a ''HTML-sanitizing'' stream filter.
     20 * It is possible to include markup that is not well-formed in the output (which you may need to do in [http://pyre.third-bit.com/blog/archives/000417.html some]  [http://groups.google.com/group/turbogears/browse_thread/thread/f8c0c9800b6aabae/ca12dea6a9729da9?lnk=gst&q=kid+questions&rnum=1 cases]). And if you need to include bad HTML markup but would like to still produce valid output, Genshi provides a ''HTML-sanitizing'' stream filter.
    2121 * Real (thread-safe) search path support
    2222 * No dependency on ElementTree (due to the lack of position reporting)
     
    2424
    2525Other minor syntactic changes (useful when converting):
    26  * The XML Namespace used is `http://markup.edgewall.org/`, not `http://purl.org/kid/ns#"`
     26 * The XML Namespace used is `http://genshi.edgewall.org/`, not `http://purl.org/kid/ns#"`
    2727 * `py:attrs` takes a dictionary argument or list of tuples but doesn't support keyword arguments in the form `name=value`
     28
    2829----
    29 See also: MarkupFaq, MarkupPerformance
     30See also: GenshiFaq, GenshiPerformance, [wiki:Documentation]