Cindy-Apache2
view release on metacpan or search on metacpan
examples/site/10_About.shtml view on Meta::CPAN
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//ABISOURCE//DTD XHTML plus AWML 2.2//EN" "http://www.abisource.com/2004/xhtml-awml/xhtml-awml.mod">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:awml="http://www.abisource.com/2004/xhtml-awml/">
<head>
<!-- ======================================================= -->
<!-- Created by AbiWord, a free, Open Source wordprocessor. -->
<!-- For more information visit http://www.abisource.com. -->
<!-- ======================================================= -->
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Cindy Demo Site</title>
<meta name="Title" content="Cindy Demo Site" />
</head>
<body>
<div>
<h2>Cindy Demo Site</h2>
<h3>What is Cindy?</h3>
<p>Cindy is a template engine that was designed to solve the problem of
application developers modifying web designer HTML. There have been
earlier approaches who did this well. The earliest one I know about
is <a href="http://homepage.mac.com/pauljlucas/software/html_tree/classparser.html"
>HTML Tree</a>. Another one is
<a href="http://wiki.zope.org/ZPT/TALSpecification14"
>Zope's TAL</a>. There are at least two recent engines working on
completely unmodified HTML. These are
<a href="http://search.cpan.org/~tomita/Template-Semantic">Template::Semantic</a>
and
<a href="http://beebole.com/pure/">PURE</a>. The term <b>unobtrusive</b>
(as used by PURE) for template engines that work on valid HTML without
any special content describes this approach best.
</p>
<p></p>
<p>Cindy does however go further. It is not a library that mangles data
provided through an API. To achieve complete decoupling of application
and design the application delivers its data as XML (or parse able
HTML). Cindy then moves these data into templates. As a consequence
Cindy is language independent.</p>
<p></p>
<p>This resembles a limited version of XSL. The big difference is that
Cindy is still a template engine, that is dreamweaver compatible. XSL
mixes output template and transformation description and is not
suitable for web design.
</p>
<h3>Content Injection Sheets</h3>
<p style="text-align:left">The description of how to move the data is
done in content injection sheets. They have a grammar that is mostly
<source XPath> <action> <target XPath>. The actions
are those specified by <a href="http://homepage.mac.com/pauljlucas/software/html_tree/classparser.html"
>TAL</a>. </p>
<p style="text-align:left"></p>
<p style="text-align:left">The idea for content injection sheets came
from seeing a web designer adding an image to a page with css. I
realized that he was actually injecting content. Since the semantics
are similiar cjs sheets do resemble css.</p>
<h3>About this Demo</h3>
<p style="text-align:left">This demonstrates the use of the
<a href="http://search.cpan.org/%7ejzobel/Cindy/"
>Cindy</a> Apache2 module and SSI for building a static website.
As you see you get an albeit limited CMS. Cindy is used to surround
all pages with a constant frame and to create a menu. You
can look at the unmodified pages (such as
( run in 1.003 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )