<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.1-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
	<title>Design a Simple 1-Man CMS</title>
	<link>http://1mancms.blogsome.com</link>
	<description>Forum and Think Tank for sharing ideas about a simple Content Management System</description>
	<pubDate>Tue, 08 Nov 2005 11:26:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1-alpha</generator>
	<language>en</language>

		<item>
		<title>Prototype 3</title>
		<link>http://1mancms.blogsome.com/2005/11/05/prototype-3/</link>
		<comments>http://1mancms.blogsome.com/2005/11/05/prototype-3/#comments</comments>
		<pubDate>Sat, 05 Nov 2005 03:29:07 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Prototypes</category>
		<guid>http://1mancms.blogsome.com/2005/11/05/prototype-3/</guid>
		<description><![CDATA[	Prototype 3 basically a test of how good XSLT is at building a website (screenshot) which has navigation, list of news, info boxes, meta tags, breadcrumbs navigation. The core CMS Engine in also extended in 3 ways.
	
	A categories.xml defines the structure (categories) of the website
	Ability to list images
	A settings.xml allows a webmaster to define any [...]]]></description>
			<content:encoded><![CDATA[	<p>Prototype 3 basically a test of how good XSLT is at building a website (<a href="/images/prototype3_site.gif">screenshot</a>) which has navigation, list of news, info boxes, meta tags, breadcrumbs navigation. The core CMS Engine in also extended in 3 ways.<a id="more-29"></a></p>
	<ul>
	<li>A categories.xml defines the structure (categories) of the website</li>
	<li>Ability to list images</li>
	<li>A settings.xml allows a webmaster to define any simple text settings like a site&#8217;s name, author etc.</li>
	</ul>
	<p>Download <a href="http://hyperupload.com/download/24095f52/prototype3.zip.html">prototype3.zip</a>.</p>
	<p><b>/categories.xml</b><br />
I wanted a way to formalize the structure of the website. An XML Structure file is the obvious way to define a hierachical structure of category names with associated &#8220;main pages&#8221;. That&#8217;s basically what I did:<br />
<code><br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;categories&gt;<br />
&nbsp;&lt;category name=&quot;Home&quot; page=&quot;index&quot;&gt;<br />
&nbsp; &lt;category name=&quot;News&quot; page=&quot;news&quot;&gt;<br />
&nbsp;&nbsp; &lt;category name=&quot;Local&quot; page=&quot;news.local&quot;&gt;&lt;/category&gt;<br />
&nbsp;&nbsp; &lt;category name=&quot;International&quot; page=&quot;news.int&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;Views&quot; page=&quot;views&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;Gallery&quot; page=&quot;gallery&quot;&gt;<br />
&nbsp;&nbsp; &lt;category name=&quot;Rossi&quot; page=&quot;gallery.rossi&quot;&gt;&lt;/category&gt;<br />
&nbsp;&nbsp; &lt;category name=&quot;All&quot; page=&quot;gallery.all&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;Links&quot; page=&quot;links&quot;&gt;&lt;/category&gt;<br />
&nbsp;&lt;/category&gt;<br />
&lt;/categories&gt;<br />
</code><br />
This allows us to create XSLT Functions or Templates which we can call to give us a navigation. The template for a horizontal navigation bar looks (in essence) like this:<br />
<b>/design/subtemplates/navi.xsl</b><br />
<code><br />
&nbsp;&lt;xsl:template name=&quot;navibar&quot;&gt;<br />
&nbsp;&lt;xsl:param name=&quot;category&quot;&gt;Home&lt;/xsl:param&gt;<br />
&nbsp;&lt;table class=&quot;navi&quot;&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp; &lt;xsl:for-each select=&quot;/site/categories//category[@name=$category]/*&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;xsl:call-template name=&quot;naviitem&quot;/&gt;<br />
&nbsp;&nbsp; &lt;/xsl:for-each&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&nbsp;&lt;/table&gt;<br />
&lt;/xsl:template&gt;<br />
</code><br />
It is then called from any page template using the following syntax:<br />
<b>/design/templates/page/simple.xsl</b><br />
<code><br />
.<br />
.<br />
&lt;xsl:include href=&quot;../subtemplates/navi.xsl&quot;/&gt;<br />
&lt;xsl:call-template name=&quot;navibar&quot;&gt;<br />
&nbsp;&lt;xsl:with-param name=&quot;category&quot; select=&quot;&#8217;Home&#8217;&quot;/&gt;<br />
&lt;/xsl:call-template&gt;<br />
.<br />
.<br />
</code><br />
One could argue that this is a propietary syntax but it&#8217;s not really. The syntax can be changed at any time by the webmaster by changing the template definition in navi.xsl. This is not something that is part of the CMS other than as a bundled example.</p>
	<p><b>Settings</b><br />
Any template can use site-wide settings or texts by simply including a reference to the /site/settings element. This is a simple XML file with all tags defined freely by the webmaster:<br />
<b>/settings.xml</b><br />
<code><br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br />
&lt;settings&gt;<br />
&nbsp;&lt;site&gt;<br />
&nbsp; &lt;name&gt;Demo CMS Site&lt;/name&gt;<br />
&nbsp; &lt;author&gt;Jack Parker&lt;/author&gt;<br />
&nbsp;&lt;/site&gt;<br />
&nbsp;&lt;option&gt;My Option Here&lt;/option&gt;<br />
&lt;/settings&gt;<br />
</code><br />
So we can include the site&#8217;s author&#8217;s name in any template using XSLT:<br />
<b>/design/templates/page/simple.xsl</b><br />
<code><br />
&lt;meta name=&quot;author&quot; content=&quot;{/site/settings/site/author}&quot;/&gt;<br />
</code><br />
One could of course &#8220;misuse&#8221; this feature to define global styles or colors which can be changed centrally but that&#8217;s really the purpose of <b>/design/styles/style.css</b>.</p>
	<p><b>Page Lists</b><br />
Say we want to list some news articles on our news page with the newest first. We need a template which looks something like this:<br />
<b>/design/templates/subtemplates/lists.xsl</b><br />
<code><br />
&nbsp;&lt;xsl:template name=&quot;pagelist&quot;&gt;<br />
&nbsp;&lt;xsl:param name=&quot;category&quot;/&gt;<br />
&nbsp;&lt;xsl:param name=&quot;sort&quot;/&gt;<br />
&nbsp;&lt;xsl:param name=&quot;order&quot; select=&quot;&#8217;descending&#8217;&quot;/&gt;<br />
&nbsp;&lt;xsl:variable name=&quot;child_categories&quot; select=&quot;/site/categories//category[@name=$category]/descendant-or-self::category&quot;/&gt;<br />
&nbsp;&lt;table class=&quot;pagelist&quot;&gt;<br />
&nbsp; &lt;xsl:for-each select=&quot;/site/pages/page&quot;&gt;<br />
&nbsp;&nbsp; &lt;xsl:sort select=&quot;*[name()=$sort]|@*[concat(&#8217;@',name())=$sort]&quot; order=&quot;{$order}&quot;/&gt;<br />
&nbsp;&nbsp; &lt;xsl:variable name=&quot;current_page&quot; select=&quot;.&quot;/&gt;<br />
&nbsp;&nbsp; &lt;xsl:for-each select=&quot;$child_categories&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;xsl:variable name=&quot;child_category&quot; select=&quot;@name&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;xsl:if test=&quot;$current_page/descendant::category/@name=$child_category&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:call-template name=&quot;pagelistitem&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:with-param name=&quot;page_node&quot; select=&quot;$current_page&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:call-template&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/xsl:if&gt;<br />
&nbsp; &lt;/xsl:for-each&gt;<br />
&nbsp;&lt;/xsl:for-each&gt;<br />
&nbsp;&lt;/table&gt;</p>
	<p>&lt;/xsl:template&gt;<br />
</code><br />
And we call the following in our page:<br />
<code><br />
&lt;pagelist category=&quot;News&quot; sort=&quot;pubDate&quot; order=&quot;descending&quot;/&gt;<br />
</code><br />
Of course this will also include our main news.htm page because it is also in the &#8220;News&#8221; category. To exclude this we need an if statement:<br />
<code><br />
&lt;xsl:if test=&quot;$current_page/@id!=/site/categories//category[@name=$child_category]/@page&quot;&gt;<br />
</code></p>
	<p>As you can see, the XPath gets a little hairy at times.</p>
	<p><b>Link Lists</b><br />
I also tried out some simple link lists in infoboxes on the right.<br />
<img src="/images/prototype3_infobox.gif"/><br />
This is called in the page using a similar tag to the &lt;pagelist&gt;:<br />
<code><br />
&lt;linklist category=&quot;Links&quot;/&gt;<br />
</code><br />
The template is almost identical to the one above but calls a different template to display individual items.<br />
<code><br />
&nbsp;&lt;xsl:template name=&quot;linklistitem&quot;&gt;<br />
&nbsp;&lt;tr&gt;<br />
&nbsp; &lt;td&gt;<br />
&nbsp;&nbsp; &lt;a href=&quot;{concat(@id, &#8216;.htm&#8217;)}&quot;&gt;&lt;xsl:value-of select=&quot;title&quot;/&gt;&lt;/a&gt;<br />
&nbsp; &lt;/td&gt;<br />
&nbsp;&lt;/tr&gt;<br />
&lt;/xsl:template&gt;<br />
</code><br />
<code><br />
&lt;xsl:call-template name=&quot;linklistitem&quot;/&gt;<br />
</code><br />
<b>Architecture</b><br />
<img src='/images/prototype3.gif' alt='Prototype 3 Architecture' /><br />
<b>Demo Site</b><br />
<img src='/images/prototype3_site.gif' alt='Prototype 3 Infobox' />
</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/11/05/prototype-3/feed/</wfw:commentRss>
	</item>
		<item>
		<title>GUI - Customized Folders</title>
		<link>http://1mancms.blogsome.com/2005/10/22/gui-customized-folders/</link>
		<comments>http://1mancms.blogsome.com/2005/10/22/gui-customized-folders/#comments</comments>
		<pubDate>Sat, 22 Oct 2005 17:48:00 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Brainstorming</category>
		<guid>http://1mancms.blogsome.com/2005/10/22/gui-customized-folders/</guid>
		<description><![CDATA[	My Idea of using customized windows folders (see vebwiew) as a GUI was noble, exciting but impractical.
	Basically the CMS could define a customization for the /projects/ folder and all subfolders and as soon as the user browses these folders in Windows explorer the GUI changes. They can have a different look and feel, different options [...]]]></description>
			<content:encoded><![CDATA[	<p>My Idea of using customized windows folders (see <a href="http://www.virtualplastic.net/html/down_wbv.html">vebwiew</a>) as a GUI was noble, exciting but impractical.<a id="more-28"></a></p>
	<p>Basically the CMS could define a customization for the /projects/ folder and all subfolders and as soon as the user browses these folders in Windows explorer the GUI changes. They can have a different look and feel, different options when they select a file, CMS-specific tools like preview, publish, edit and customized file information on the left.</p>
	<p>While I have not yet given up it seems that the following disadvantages are evident:</p>
	<ol>
	<li>You can&#8217;t customize a folder and all it&#8217;s subfolders</li>
	<li>The effort required to program extra functions is the same as an HTA</li>
	<li>It doesn&#8217;t behave the same on Win9x, 2K, ME and XP</li>
	<li>Security policies block many functions</li>
	</ol>
	<p>That said, they are pretty cool. They save you all the effort of:</p>
	<ol>
	<li>Displaying folders and files</li>
	<li>Modfiying, renaming, deleting and copying files and folders</li>
	<li>Folder, Navigation (back, forward, up) and the automatic tree view</li>
	</ol>
	<p>For these reasons alone, it may be worth it to pursue the topic later. However, it may be worth a try to access the Active-X Object used to display the folder and use this in the HTA:</p>
	<p>&lt;object id=&quot;FileList&quot; classid=&quot;clsid:1820FED0-473E-11D0-A96C-00C04FD705A2&quot; tabIndex=&quot;1&quot;&gt;&lt;/object&gt;</p>
	<p>Just need to find some documentation on this object&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/22/gui-customized-folders/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Structure</title>
		<link>http://1mancms.blogsome.com/2005/10/21/structure-2/</link>
		<comments>http://1mancms.blogsome.com/2005/10/21/structure-2/#comments</comments>
		<pubDate>Fri, 21 Oct 2005 18:56:56 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Brainstorming</category>
		<guid>http://1mancms.blogsome.com/2005/10/21/structure-2/</guid>
		<description><![CDATA[	As I mentioned in Content Management Philosphy structure should be seperated from content. This is often neglected in the much-quoted &#8220;seperate content from layout&#8221; buzz-phrase. But what is structure and why is it important?
	Structure is the organisation of the pages in a website. This can be done in various ways:
	
	Flat structure - e.g. simple chronological [...]]]></description>
			<content:encoded><![CDATA[	<p>As I mentioned in <a href="/2005/09/18/content-management-philosophy/">Content Management Philosphy</a> structure should be seperated from content. This is often neglected in the much-quoted &#8220;seperate content from layout&#8221; buzz-phrase. But what is structure and why is it important?<a id="more-27"></a></p>
	<p><a href="/2005/09/18/structure/">Structure</a> is the organisation of the pages in a website. This can be done in various ways:</p>
	<ul>
	<li>Flat structure - e.g. simple chronological blogs or basic wikis</li>
	<li>Hierachical</li>
	<li>Other?</li>
	</ul>
	<p>Hierachical structures are probably the most traditional and common for websites. </p>
	<p>Hierachies are structured logically to allow a user to browse intuitively to their goal (the page) and easily see other pages related to that page because they are in the same branch/folder. </p>
	<p>There are however 2 types of hierachy which differ importantly:</p>
	<ul>
	<li>Strict Hierachy</li>
	<li>Loose Hierachy</li>
	</ul>
	<p><b>Strict Hierachies</b><br />
Here, each page resides in 1 folder. Most Operating Systems organise files in a strict hierachy. Hierachies such as this offer the additional advantage that a path is automatically available no matter where you are - the DOS path (/news/2004/october/) or breadcrumbs (news -&gt; 2004 -&gt; october). Hierachies are great!</p>
	<p><b>Loose Hierachies</b><br />
Modern Wiki&#8217;s and Blogs have no hierachy in the strictest sense because they either have no categories or they have a &#8220;loose hierachy&#8221; which means that pages can be in multiple categories and when you are on a single page, there are multiple possible paths which could get you there. Being on a certain news article could mean many paths and generating a single breadcrumbs navigation is not possible.</p>
	<p>In summary, hard-hierachies (folders) are clear, strict and provide useful advantages in generating paths. loose-hierachies (categories) are flexible, easy to use and understand.</p>
	<p>I envision using the windows folders and files in the CMS to implicitly define the site&#8217;s &#8220;Hard Structure&#8221; and offer an optional &#8220;categories.xml&#8221; to allow webmasters to defined a loose hierachy for pages.</p>
	<p>See an example of this structure on Radio Userland&#8217;s <a href="http://frontier.userland.com/stories/storyReader$1338">Hierachy XML Format</a> story.</p>
	<p>&lt;categories&gt;<br />
&nbsp;&lt;category name=&quot;Interests&quot;&gt;<br />
&nbsp; &lt;category name=&quot;Software&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;Politics&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;Art&quot;&gt;<br />
&nbsp;&nbsp; &lt;category name=&quot;Rennaisance&quot;&gt;&lt;/category&gt;<br />
&nbsp;&nbsp; &lt;category name=&quot;Classical&quot;&gt;&lt;/category&gt;<br />
&nbsp;&nbsp; &lt;category name=&quot;Modern&quot;&gt;&lt;/category&gt;<br />
&nbsp;<br />
&lt;/category&gt;<br />
&nbsp;<br />
&lt;category name=&quot;Philosophy&quot;&gt;&lt;/category&gt;<br />
&nbsp;&lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;News&quot;&gt;<br />
&nbsp; &lt;category name=&quot;Events&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;People&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;Help Wanted&quot;&gt;&lt;/category&gt;<br />
&nbsp; &lt;category name=&quot;Jobs&quot;&gt;&lt;/category&gt;<br />
&nbsp;&lt;/category&gt;<br />
&lt;/categories&gt;
</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/21/structure-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Types of Websites</title>
		<link>http://1mancms.blogsome.com/2005/10/21/types-of-websites/</link>
		<comments>http://1mancms.blogsome.com/2005/10/21/types-of-websites/#comments</comments>
		<pubDate>Fri, 21 Oct 2005 18:22:32 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Brainstorming</category>
		<guid>http://1mancms.blogsome.com/2005/10/21/types-of-websites/</guid>
		<description><![CDATA[	Trying to make a simple CMS is not so simple. The urge is always there to produce a CMS which can do &#8220;everything&#8221; because of the risk of producing a CMS which is &#8220;too simple&#8221; and just can&#8217;t do some things. In fact, I want to produce a CMS Framework which CAN do &#8220;everything&#8221; BUT [...]]]></description>
			<content:encoded><![CDATA[	<p>Trying to make a simple CMS is not so simple. The urge is always there to produce a CMS which can do &#8220;everything&#8221; because of the risk of producing a CMS which is &#8220;too simple&#8221; and just can&#8217;t do some things. In fact, I want to produce a CMS Framework which CAN do &#8220;everything&#8221; BUT by clever use of defaults CAN ALSO be simple.<a id="more-26"></a></p>
	<p>But what is &#8220;everything&#8221;? What types of websites are there out there? Can we list the main types of site which differ fundamentaly? I&#8217;ve tried to formulate a list leaving off sites which obviously require server side scripting (dynamic sites) such as forums, online stores etc.</p>
	<ul>
	<li>Blogs</li>
	<li>Wikis</li>
	<li>Directories</li>
	<li>News Platforms</li>
	<li>Portal</li>
	<li>Projects</li>
	</ul>
	<p>I&#8217;m sure there are other types but I can&#8217;t think of any and there seems to be no other such lists on the web <img src='http://1mancms.blogsome.com/wp-images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  - at least I can&#8217;t find any.</p>
	<p>A Wiki, in the classical sense, will not be possible with a static CMS because it require collaboration from multiple users. However a single user could create a Wiki for a private or publich Knowledge Base where he/she really is the only author.</p>
	<p>Now I need to start thinking about what sort of CMS Framework would support all (or most) of the different types of sites.
</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/21/types-of-websites/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Specifying a Template</title>
		<link>http://1mancms.blogsome.com/2005/10/16/specifying-a-template/</link>
		<comments>http://1mancms.blogsome.com/2005/10/16/specifying-a-template/#comments</comments>
		<pubDate>Sun, 16 Oct 2005 17:19:29 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Brainstorming</category>
		<guid>http://1mancms.blogsome.com/2005/10/16/specifying-a-template/</guid>
		<description><![CDATA[	How does one specify which template a page has? In Prototype 2 each page had a &lt;template&gt; tag to specify it&#8217;s template. An attractive alternative springs to mind based on the following disadvantages of the &lt;template&gt; tag.
	
	We&#8217;re adding propietary tags (contrary to guiding principles)
	XML Documents from 3rd party sources (docbook, word, rss, etc) would need [...]]]></description>
			<content:encoded><![CDATA[	<p>How does one specify which template a page has? In <a href="/2005/10/13/prototype-2/">Prototype 2</a> each page had a &lt;template&gt; tag to specify it&#8217;s <a href="/2005/09/18/template/">template</a>. An attractive alternative springs to mind based on the following disadvantages of the &lt;template&gt; tag.<a id="more-25"></a></p>
	<ul>
	<li>We&#8217;re adding propietary tags (contrary to guiding principles)</li>
	<li>XML Documents from 3rd party sources (docbook, word, rss, etc) would need this tag added</li>
	</ul>
	<p>Particularly the second point is important if you consider importing 100&#8217;s of XML documents from an external system. Each one would need the &lt;template&gt; tag added. So, what&#8217;s the alternative? Folders!</p>
	<p>Each folder has a corresponding template which is the default for documents in that folder. The pages in folder /content/pages/news/ would all have the template /design/templates/page/news.xsl applied by default. Of course the XML Author can specify another template using our trusty &lt;template&gt; tag.</p>
	<p>Sounds great but: Folders introduce a new level of complexity in linking documents. With our old flat, single folder system linking was as simple as specifying the target pages name with the &lt;a href=&quot;page.htm&quot;&gt; tag. As soon as you have folders you need to either:</p>
	<ul>
	<li>mirror the folders structure in your published site: &lt;a href=&quot;/news/page.htm&quot;&gt; <b>OR</b></li>
	<li>keep the flat site structure and rename published pages to (try and) ensure uniqueness of filename: &lt;a href=&quot;news.page.htm&quot;&gt;</li>
	</ul>
	<p>Both options are equally complex (well, less simple) than the previous situation and the 1st option is more intuitive. We all like folders in our published site.</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/16/specifying-a-template/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Guiding Principles</title>
		<link>http://1mancms.blogsome.com/2005/10/14/guiding-principles/</link>
		<comments>http://1mancms.blogsome.com/2005/10/14/guiding-principles/#comments</comments>
		<pubDate>Fri, 14 Oct 2005 21:46:27 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Brainstorming</category>
	<category>Philosophy</category>
		<guid>http://1mancms.blogsome.com/2005/10/14/guiding-principles/</guid>
		<description><![CDATA[	Just thought I&#8217;d jot down some more guiding principles:
	
	Zero-Code - Try to minimize coding (read bugs)
	Stand on the shoulders of giants
	No proprietary languages/syntax
	
]]></description>
			<content:encoded><![CDATA[	<p>Just thought I&#8217;d jot down some more guiding <a href="/category/philosophy/">principles</a>:</p>
	<ul>
	<li>Zero-Code - Try to minimize coding (read bugs)</li>
	<li>Stand on the shoulders of giants</li>
	<li>No proprietary languages/syntax</li>
	</ul>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/14/guiding-principles/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Prototype 2</title>
		<link>http://1mancms.blogsome.com/2005/10/13/prototype-2/</link>
		<comments>http://1mancms.blogsome.com/2005/10/13/prototype-2/#comments</comments>
		<pubDate>Thu, 13 Oct 2005 17:49:41 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Prototypes</category>
		<guid>http://1mancms.blogsome.com/2005/10/13/prototype-2/</guid>
		<description><![CDATA[	This prototype is basically an improvement on the previous one. It properly implements the concept of global components which can be &#8220;blocks of content&#8221; and adds functional elements, such as a navigation menu. Each page has a &lt;template&gt; tag which specifies which template is to be used.
Download prototype2.zip.gif and remove the .gif extension.

]]></description>
			<content:encoded><![CDATA[	<p>This prototype is basically an improvement on the previous one. It properly implements the concept of global components which can be &#8220;blocks of content&#8221; and adds functional elements, such as a navigation menu. Each page has a &lt;template&gt; tag which specifies which template is to be used.<br />
Download <a href="/images/prototype2.zip.gif">prototype2.zip.gif</a> and remove the .gif extension.
</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/13/prototype-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Prototype 1</title>
		<link>http://1mancms.blogsome.com/2005/10/02/prototype-1/</link>
		<comments>http://1mancms.blogsome.com/2005/10/02/prototype-1/#comments</comments>
		<pubDate>Sun, 02 Oct 2005 07:49:34 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Prototypes</category>
		<guid>http://1mancms.blogsome.com/2005/10/02/prototype-1/</guid>
		<description><![CDATA[	This prototype is just a test of the basic concepts discussed in Definitions. The system consists of several folders containing the XML page files, templates, CSS styles, images, global components and configuration files.
	
	
	
	
	
	Run project1.bat to create the website.
	This calls cms.makesite.bat project1
	In this way you can manage multiple sites by keeping them in seperate named folders
	components.xml [...]]]></description>
			<content:encoded><![CDATA[	<p>This prototype is just a test of the basic concepts discussed in <a href="/category/definitions/">Definitions</a>. The system consists of several folders containing the XML page files, templates, CSS styles, images, global components and configuration files.<a id="more-22"></a></p>
	<table border="0" width="100%" id="table1">
	<tr>
	<td valign="top"><img src='/images/prototype2.gif' alt='' /></td>
	<td width="100%" valign="top">
	<ul>
	<li>Run <b>project1.bat</b> to create the website.</li>
	<li>This calls <b>cms.makesite.bat project1</b></li>
	<li>In this way you can manage multiple sites by keeping them in seperate named folders</li>
	<li><b>components.xml</b> contains re-usable Global <a href="/2005/09/18/component/">Components</a> (like a Header) which can be inserted into any page</li>
	<li><b>cms.makesite.bat</b> uses <b>sitemap.xml</b> to get a list of all pages in the site and build a batch file to process them all with <b>cms.makepage.bat</b></li>
	<li><b>cms.makepage.bat</b> combines each pageN.xml with <strong>components.xml</strong> to ensure the template has access to both page and global components.</li>
	<li><b>cms.makepage.bat</b> then uses the (currently hardcoded) template <b>template/simple.xsl</b> to produce pageN.htm in the folder <b>site/</b></li>
	<li>The resulting website&nbsp; is in <b>/project1/site/</b></li>
	</ul>
	</td>
	</tr>
	</table>
	<p>Right click and choose &#8220;Save Link/Target as&#8221; to download the file <a href="/images/prototype1.zip.gif">prototype1.zip.gif</a>. Then rename to prototype1.zip and unzip.
</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/02/prototype-1/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Infrastructure</title>
		<link>http://1mancms.blogsome.com/2005/10/01/infrastructure/</link>
		<comments>http://1mancms.blogsome.com/2005/10/01/infrastructure/#comments</comments>
		<pubDate>Sat, 01 Oct 2005 08:04:17 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Brainstorming</category>
		<guid>http://1mancms.blogsome.com/2005/10/01/infrastructure/</guid>
		<description><![CDATA[	I want to avoid a database if possible. Let&#8217;s run with the XML Theme and store everything in XML Files. One great big XML file for everything is out. I like the directory approach because it leaves navigation up to the operating system. A webmaster can browse folders to find templates, components and page data.
	What [...]]]></description>
			<content:encoded><![CDATA[	<p>I want to avoid a database if possible. Let&#8217;s run with the XML Theme and store everything in XML Files. One great big XML file for everything is out. I like the directory approach because it leaves navigation up to the operating system. A webmaster can browse folders to find templates, components and page data.<a id="more-21"></a></p>
	<p>What about this?</p>
	<table>
<tr>
<td>
<img src="/images/filestructure2.gif"/>
</td>
	<td valign=top>
	<ul>
	<li>All <a href="/2005/09/18/component/">Components</a> in the /component folder, seperated by context - Global or Page.</li>
	<li>All <a href="/2005/09/18/template/">Templates</a> in the /template folder, seperated by context - Global or Page.</li>
	<li>All binaries (files and images) in the /media folder.</li>
	<li>All Stylesheets in the /design folder.</li>
	<li>config.xml to bring it all together</li>
	</ul>
	</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/10/01/infrastructure/feed/</wfw:commentRss>
	</item>
		<item>
		<title>TAL as an &#8220;easy&#8221; Templating Language</title>
		<link>http://1mancms.blogsome.com/2005/09/24/tal-as-an-easy-templating-language/</link>
		<comments>http://1mancms.blogsome.com/2005/09/24/tal-as-an-easy-templating-language/#comments</comments>
		<pubDate>Sat, 24 Sep 2005 17:24:14 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Brainstorming</category>
		<guid>http://1mancms.blogsome.com/2005/09/24/tal-as-an-easy-templating-language/</guid>
		<description><![CDATA[	Is TAL an alternatuve to XSLT which can be more easily edited, managed and understood by webmasters?
	TAL has 2 advantages over XSLT:
	
	It&#8217;s less complex
	It can be edited by any HTML editor
	
	The second point is interesting becaus TAL introduces no new tags. You just design your HTML page as per normal but add attributes which define [...]]]></description>
			<content:encoded><![CDATA[	<p>Is TAL an alternatuve to XSLT which can be more easily edited, managed and understood by webmasters?<a id="more-20"></a></p>
	<p>TAL has 2 advantages over XSLT:</p>
	<ul>
	<li>It&#8217;s less complex</li>
	<li>It can be edited by any HTML editor</li>
	</ul>
	<p>The second point is interesting becaus TAL introduces no new tags. You just design your HTML page as per normal but add attributes which define where your content goes.</p>
	<p>TAL Snippet:<br />
<code><br />
&lt;html xmlns:tal=&quot;http://xml.zope.org/namespaces/tal&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&lt;title tal:content=&quot;document/header/title&quot;&gt;Here comes the title&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&#8230;<br />
&lt;/body&gt;&lt;/html&gt;&lt;/code&gt;</p>
	<p>The TAL template refers to content elements via XPATH expressions.</p>
	<p>In order to avoid having to write a TAL parser we can use a transformation to convert the TAL template to XSLT. Some bright spark has created the <a href="http://wiki.bitflux.org/Templates_XSLTAL">tal2xslt.xsl</a> for us so all we need is <a href="http://xmlstar.sourceforge.net">xmlstarlet</a> or other XSLT processor and we can create our pages with the following easy batch file:<br />
</code><code><br />
xml tr tal2xslt.xsl template.tal.html > template.xsl<br />
xml tr template.xsl page1.xml > page1.html<br />
del template.xsl<br />
</code></p>
	<p>Now I need to find a way to process a complete site&#8230;
</p>
]]></content:encoded>
			<wfw:commentRss>http://1mancms.blogsome.com/2005/09/24/tal-as-an-easy-templating-language/feed/</wfw:commentRss>
	</item>
	</channel>
</rss>
