(as it downloads from https://github.com/pittendrigh/robopages)

Mission Statement

Robopages is a small footprint mostly files-based CMS geared primarily toward unix-savvy developers. Database content generators are not prohited, but mostly avoided. If you are familiar with ssh, scp, bash and with terminal emulators--Robopages is fast and bug snot slick.

Static Output

Robopages can now produce (optional) static output. The details are in the documentation. To write out a whole site I traverse a development domain on localhost with wget -r . Robopages still produces dynamic output, which then gets manipulated by php DOM routines. A hierarchical file system containing static HTML is written out on localhost, where all hyperlinks and image src attributes adjusted so they work with relative paths. Scp -r then pushes that static output up to a real server.


Robopages supports image galleries where a main display image is surrounded by clickable thumbnails. All hyperlinks are automatically generated. In order to add new images to the gallery you simply copy them into the gallery. A clickable slideshow link is also automatially generated.


roboBook is a layout option that uses directories populated with HTML fragment files to present chapters and pages in a familiar book-like fashion, complete with TOC (collapsable table of contents), NextPage, PrevPage and LastReadPage buttons, presented in a configuralble sequential order. The Documentation section, for instance, uses a roboBook layout.


Layouts are defined by editing an XML file (in layouts/*.xml) and by editing or adding CSS. Dynamic content, on a block element by block element basis, is generated from a plugin module in the plugins directory. Layhout XML files marry each individual block element to one or more plugin generators, that populate that particular element.

The simplest plugin module is file.php which sucks in the contents of an html fragment file. Html fragments, images and downloadable files can be arranged in an organized system of nested file directories.


Robopages' plugins operate on a per-block element level. The XML mentioned in the paragraph above defines the ID names of the major block elements of a page, their tree-like nesting structure and the plugin class that supplies their dynamic contents.

The following is robo.xml, the layout definition that results in the current page:

<?xml version="1.0" encoding="utf-8"?>
    <div id="wrapper" src="container">
      <div klass="navColumn">
        <div klass="toc" src="roboRootTOC"/>
        <div klass="toc" src="localNav"/>
      <div klass="headerbanner" src="container">
        <div klass="bannerlinks" src="file"/>
        <div klass="mkBreadcrumbs" src="mkBreadcrumbs"/>
      <div src="flexyFileContent"/>
      <div id="footer" src="file"/>