Changes between Version 105 and Version 106 of GenshiTutorial
- Timestamp:
- Nov 14, 2007, 12:28:07 AM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GenshiTutorial
v105 v106 539 539 [[Image(tutorial02.png)]] 540 540 541 But there's a problem here: Note how the input values have vanished from the form! We'd have to repopulate the form manually from the data submitted so far. We could do that by adding the required `value=""` attributes to the text fields in the template, but Genshi provides a more elegant way: the [wiki:Documentation/filters.html#html-form-filler HTMLFormFiller] st eam filter. Given a dictionary of values, it can automatically populate HTML forms in the template output stream.541 But there's a problem here: Note how the input values have vanished from the form! We'd have to repopulate the form manually from the data submitted so far. We could do that by adding the required `value=""` attributes to the text fields in the template, but Genshi provides a more elegant way: the [wiki:Documentation/filters.html#html-form-filler HTMLFormFiller] stream filter. Given a dictionary of values, it can automatically populate HTML forms in the template output stream. 542 542 543 543 To enable this functionality, first you'll need to add the following import to the `genshi/controller.py` file: … … 672 672 Most template languages provide an inheritance mechanism to allow different templates to share some kind of common structure, such as a common header, navigation, and footer. Using this mechanism, you create a “master template” in which you declare slots that “derived templates” can fill in. The problem with this approach is that it is fairly rigid: the master needs to know which content the templates will produce, and what kind of slots need to be provided for them to stuff their content in. Also, a derived template is itself not a valid or even well-formed HTML file, and can not be easily previewed or edited in a WYSIWYG authoring tool. 673 673 674 Match templates in Genshi turn this up 674 Match templates in Genshi turn this upside down. They are conceptually similar to running an XSLT transformation over your template output: you create rules that match elements in the template output stream based on XPath patterns. Whenever there is a match, the matched content is replaced by what the match template produces. This sounds complicated in theory, but is fairly intuitive in practice, so let's look at a concrete example. 675 675 676 676 In the `geddit/templates/` directory, add a file named `layout.html`, with the following content: