We use Genshi for generating XHTML. It is built on XML standards and, by design, ensures valid markup. This is the V in our **MVC**.
Each template that controllers call for rendering is wrapped by a master template and a layout template. master adds some CSS and JS necessary for MediaDrop to work, and generally you shouldn’t need to change it. layout, however, is there for changing so you can easily wrap the output of MediaDrop in your own site’s layout.
Controllers define which templates are rendered and what variables to pass into it. To find out what variables are passed, look up the returns of the controller action in question. If you’re editing the template mediadrop.templates.media.view look up the mediadrop.controllers.media.MediaController.view action. In nearly all instances the naming matches one-to-one.