Skip to content

Comanche

friendica edited this page Dec 11, 2013 · 8 revisions

Comanche Page Description Language

Comanche is a markup language similar to bbcode with which to create elaborate and complex web pages by assembling them from a series of components - some of which are pre-built and others which can be defined on the fly. Comanche uses a Page Decription Language file (".pdl", pronounced "puddle") to create these pages. Bbcode is not a requirement; an XML PDL file could also be used. The tag delimiters would be different. Usage is the same.

Comanche is planned for phase II of the Red Matrix project, in order to provide content management and page layout tools for channel owners to create interactive websites using the Red Matrix's built-in decentralised nomadic identity, access rights, single sign-on, communications and social interaction infrastructure; along with its ability to define pages, conversations, events, file management and media, menus, widgets, plugins, themes, and modules.

Complex example

[comment]use an existing page template which provides a banner region plus 3 columns beneath it[/comment]

[layout]3-column-with-header[/layout]

[comment]Use the "darknight" theme[/comment]

[theme]darkknight[/theme]

[comment]Use the existing site navigation menu[/comment]

[region=nav]$nav[/region]

[region=side]

	[comment]Use my chosen menu and a couple of widgets[/comment]

	[menu]myfavouritemenu[/menu]

	[widget=recent_visitors]
		[var=count]24[/var]
		[var=names_only]1[/var]
	[/widget]

	[widget=tagcloud][/widget]
	[block]donate[/block]

[/region]


[region=middle]

	[comment]Show the normal page content[/comment]

	$content

[/region]



[region=right]

	[comment]Show my condensed channel "wall" feed and allow interaction if the observer is allowed to interact[/comment]

	[widget]channel[/widget]

[/region]

Question

Why not just use HTML?

Answer

This is a multi-user site and would therefore be subject to XSS attacks. Also we are not specifying the complete HTML/CSS/JavaScript for the page. We are assembling it from several components which are already built and tested. An advanced interface would let you create complex interactive and social web pages and websites by dropping blocks on the page. All of these blocks can be shared and re-used. Not just the widgets, but the menus, the pages, the layout descriptions, the themes - all can be developed separately and exchanged with others. Comanche provides a way for different developers with different strengths to concentrate on what they do best (page layout, theming, widgets, content creation, etc.) and allow you to bring all these pieces together.

Clone this wiki locally