Simple Content Management

by Chris Ross-Gill

49 Reader Comments

Back to the Article
  1. I agree that XML/XSLT is far more powerful, but it isn’t simpler to the user…

    we’re all coders, so XML is a walk in the park for us, but the fact is that most clients don’t understand the concept of tags or don’t want to bother understanding because it is a bit complicated…

    so if a client has to choose between XML and REBOL, then he will probably choose REBOL because it looks simpler…

    Copy & paste the code below to embed this comment.
  2. No, I don’t agree with that. It isn’t REBOL which was simple in the article, but the arbitrary markup language the author invented and then was translated with REBOL. The REBOL code is actually more complicated than the corresponding XSLT.

    XML also has a large number of editors available for it. Word now saves to XML, so does OpenOffice. XSLT is a language for writing translators (in this case, translating XML to HTML), so it would, in fact, make it even easier to manage content than the ALA article’s method. Once the designer has written the XSLT stylesheet, the experience is more seamless for the user. They don’t have to memorize any ‘—’, ‘==’, or ‘##’ codes.

    Copy & paste the code below to embed this comment.
  3. Please explain how this is more effecient/productive/simple than: XML/SQL data storage. Style sheet. Template files. Template files might get replaced with something else as technology progresses, but the data stays in the same simple format.

    As for a client choosing REBOL – I’d hope not. There should be a simple interpreter that spits out the code, XML or REBOL. The client shouldn’t be using time learning a language he doesn’t need. The question is which will get the job done better.

    If anyone has a scenario where REBOL would be superior, I’d be very interested.

    Copy & paste the code below to embed this comment.
  4. the author makes it clear at the beginning of the article, to me anyway, that implementing a CMS with REBOL is not really for advanced developers.

    In the first paragraph Ross-Gill wrote:
    “This system makes it easy for any website operator, regardless of experience, to update site content while keeping markup valid and consistent and ensuring that links stay pertinent.”

    So the REBOL set up may help not so experienced site makers output valid markup as well as helping with organization. That sounds good to me. I think anyone who has studied databases or has a Software Engineering or Computer Science degree can think of a more efficient way to set up a CMS. But believe it or not there are some people out there who need a CMS yet don’t have the know how, are too intimidated for whatever reason, or don’t have time to learn the stuff.

    Surely the article will help some folks who need this stuff.

    Copy & paste the code below to embed this comment.
  5. Please someone correct me but aren’t most of the blog scripts out there (Moveable Type, Radio, Greymatter, Slash, etc.) already CMS systems? Perhaps instead of calling them blogs we should call them personal CMS.

    Granted, you have to understand perl or php to modify them to suit different site structures but, they seem, to me at least, to alrady have most of the bases covered.

    Copy & paste the code below to embed this comment.
  6. “the author makes it clear… that implementing a CMS with REBOL is not really for advanced developers”

    XSLT is storage agnostic, meaning it doesn’t care if you’re delivering content from a database or a flat file. Since a large number of simple content management tools have already been developed for it, an adopter of XSLT would find most of the work he’d have done learning and writing equivalent HTML translation rules in REBOL have already been done for him. For example, if you mark up your content in DocBook (an XML dialect, with a number of user friendly WYSIWYG programs that save to it natively), there’s already an XSLT stylesheet for translating it into HTML for you. I think stylesheets for converting Word’s new native XML format are freely available, too, which could be a coup for the developer in the right environment.

    XML was designed to solve the problem of coming up with a new markup language every time one was needed, of any degree of complexity. Now there’s a critical mass of toolkits for it, and the network effect is beginning to mean something important.

    It’s a mistake to assume XML is for advanced uses only.

    Copy & paste the code below to embed this comment.
  7. Maybe using REBOL is great if you have your own server to play with and install the appropriate software, but what about the majority of us who have their sites hosted by a third party?

    Copy & paste the code below to embed this comment.
  8. anonymous poster above, I suggest you re-read the article. The whole idea of the CMS in the article is that you DON’T have to install software on your server – you run the REBOL scripts on your own computer to generate HTML (with templates and so forth) which you then eithe rupload to your hosting account or get the REBOL script to upload it for you.

    Copy & paste the code below to embed this comment.
  9. Content management via PHP? Look for that in an upcoming issue of A List Apart.

    Copy & paste the code below to embed this comment.
  10. Chris, what’s this about Word and XML? I poked around in Word as soon as I saw your post and I didn’t see what you’re talking about. I have some pretty non-technical users at my work that are very comfortable with Word and I’m getting pretty good at XSLTs, so this had better not be some kind of cruel joke!

    Copy & paste the code below to embed this comment.
  11. Microsoft claims that Office XP’s native file formats (presumably for all of its components, not just Word) are XML. OpenOffice now claims the same, too.

    Copy & paste the code below to embed this comment.
  12. Actually, looking on their website (see reference below), it looks like Word doesn’t support XML. The only mention of XML is for Excel and Access. Can anyone who is using Office XP confirm or deny this (inquiring minds…)? Thanks in advance.


    XML Support in Excel and Access”
    “Rich support for XML in Office XP enables you to load and save XML directly into Excel and analyze online data by querying XML spreadsheets from the Web. In Access, you can import and export XML schemata, data, and tables automatically using default settings, or you can take advantage of advanced options that provide more control.”

    Copy & paste the code below to embed this comment.
  13. I’ don’t know about office and XML, but I’m shure that the WordPerfect suite comes with XML capabilities…
    I just haven’t checked how extensive those capabilities are

    Copy & paste the code below to embed this comment.
  14. The gibberish produced by ‘save for web’ in MS Word is certainly too strange to be called HTML, but I don’t know that it’s necessarily XML either.

    Copy & paste the code below to embed this comment.
  15. hi all,

    xml really is the native format for all OpenOffice documents.
    but since i’m not an xml expert i don’t know how useful their xml is for further processing. ill provide you with a small example.

    a .sxw (‘Star Office Writer’) file is nothing more than a zip file, containing the following xml documents : content,mainfest,meta,settings,styles.xml

    if you open a simple content.xml that has been formatted with stylesheets, you’ll get :

    <text:h text:style-name=“Heading 1” text:level=“1”>
    This is the title</text:h>
    <text:p text:style-name=“Text body”>
    this is the first paragraph.</text:p>
    <text:p text:style-name=“Text body”>
    this is the 2nd paragraph.</text:p>

    i’d say you can work with this !

    otoh : if you convert a typical MS word document to xml, how useful would the xml be? i’d imagine, if the average user wants a headline he will mark text, press 14pt, then underline, then bold … (same prob with openoffice of course)
    i think you have to educate the ‘content-creating’ people to use proper formatting (prepare some stylesheets for them) to get logically structured documents that result in useful xml output.

    i don’t know about office XP but the html output of Office 2000 is pure junk (<font size=3 face=“Times New Roman”><span
    12.0pt’>Das ist der Zweite absatz</span></font>).
    couldn’t find XML output in Office 2000.

    btw i can only recommend openoffice/star office 6, i hated staroffice 5 but the latest version is decent. even handling of word files is ok.


    Copy & paste the code below to embed this comment.
  16. You are missing the point my friends…

    Consider this scenario: a local middle school teacher wants to post his weekly assignments, notes to parents and test schedules on the web. He needs a little more functionality than blogger, but dosent have the loot to pay for a development team to build an entire web application. I have a working knowledge of php, javascript and the like, but I have yet to find a content editing tool that I can implement and understand. Sure I have phpMyAdim installed in my little web directory, but I cant make it do anything! Ive been to devshed, sitepoint and phpbuilder – theyre great sites if youre a developer, but what resources do the rest of us have? the persons who knows html, javascript, etc. but not xml? the developer sites tend to gloss over the real nuts and bolts, while the mid-level amateur such as myself says, ‘there has got to be an easy php, mySql content management system!?’ ya know, the basic. ‘enter-post-edit’ functionality?


    Copy & paste the code below to embed this comment.
  17. The syntax of REBOL is hardly intuitive, and the constant uploading will be a pain. How about Radio?

    Copy & paste the code below to embed this comment.
  18. I love the relative “plug and play” simplicity of setting up a PHP or CGI based CMS like Moveable Type, Radio, Greymatter, etc.

    Even a web journeyman like myself, more adept at front end niceities than backend mechanisms can, with even my basic and utilitarian knowledge of these lanuages, can set up a blog in a few minutes.

    The problem I have is that I am coveting something that I am not sure exisits, or at least I haven’t found. I want a simple to implement, user frinedly, CMS for the “rest of us” who aren’t looking to “publish” a blog or web zine.

    Most of my sites are your standard “brochure ware” broken down into digestable and informative sections. I have some sections which update more frequently than others with some updating very regularly.

    I’d like to be able to have a CMS system with some basic “author > editor > approval > post live” workflow, but also allow the “client” to be able to update some pages via their browser or via email to certain page templates.

    I guess I want the usability of a Movabletype-esque CMS on multiple pages that has some of the bells and whisltes (like comments and an event calendar) but I want to be able to adminsiter or update (or allow access to let my client administer or update) multiple pages that may have multiple templates.

    Does that make any sense? Anyone else who “has lust in their heart” for such an animal?

    Copy & paste the code below to embed this comment.
  19. I’m sorry, but that just seems like the wrong way to go. As many posters have pointed out already, there are already languages meant for this, namely XHTML (or I suppose you could make you own XML language).

    The only real arguments for it is that “dev guys find XML easy, but others don’t.” But, either way your people have got to learn something, and it wouldn’t be too difficult to learn a bit of XTHML anyhow. Much easier than remembering circle-circle-dot-dot.

    Seems like using a bit of contentEditable with XHTML would easily overpower this solution and takes no time to learn!

    Copy & paste the code below to embed this comment.
  20. > I guess I want the usability of a Movabletype-esque CMS on multiple pages that has some of the bells and whisltes (like comments and an event calendar) but I want to be able to adminsiter or update (or allow access to let my client administer or update) multiple pages that may have multiple templates. Does that make any sense? Anyone else who “has lust in their heart” for such an animal? <

    I too lusted for such an animal and so built one over the last several months. While it is still in an early stage of development, I am pretty pleased with the results. I created a rich IE-based client for assembling sites from templates and assets. Pages can have three levels of templates and each template level can have referenced page elements. I think that I am close to acheiving the separation of content and presentation which many webmasters seek! The server-side is XML/XSLT/SOAP/WebDAV. Pages can be previewed in the editor and published to any WebDAV/FrontPage compatible server. Anyone who kn

    Copy & paste the code below to embed this comment.
  21. This is from The Screen Savers at TechTV. It’s an interesting little tool.

    “You know how annoying it can be when, in the middle of typing a document, suddenly a paragraph’s formatting changes. Argh! I didn’t want to do that! How can I stop this from happening? Look no further than the built-in script editor. Open it by pressing Alt + Shift + F11 on your keyboard. Newer Word documents are done in XML, so you can easily edit the source to your heart’s content.”

    Copy & paste the code below to embed this comment.
  22. If anyone is interested there is a basic XML content editor on Source Forge.

    The idea is to provide simple content management for xml web sites. At the moment it’s a very simple text editor using php and javascript (CSS front end) but the goal was to make it wysiwyg (based on the XSL templates being used to parse the XML).

    It’s simple to set up and reasonably simple to use (tho the wysiwyg version would remove tjhose XMl tags)

    It’s at:


    Copy & paste the code below to embed this comment.
  23. i have a CGI CMS that simply edits txt files, then the said files are called into the page where needed.

    it does its job, and allows the site to be maintained from anywhere and by anyone.

    its nice and simple, and the user can insert html tags (bold, italic and hyperlinks) very easily.

    is there a better way to do this? i know php is faster, but im more familier with cgi.

    Copy & paste the code below to embed this comment.
  24. I seem to be a rare case here, but I loved Chris’s article. Maybe it’s because I’m closer to his target audience—and Rebol’s target audience—than others here.

    First off, for me, Rebol is a great discovery. Although I’m tech-orriented enough to run a linux system at home, I’ve never had much luck learning any program/scripting languages—it simply requires too much time. As a writer I’m mainly interested in using technology to get the job done. Since discovering Rebol through this article a few days ago, I’ve quickly learned how to make useful scripts for my own computer system.

    And I’m looking forward to getting this content management system up and running. Sure I use Moveable Type for my blog, but there are also non-blog pages I’d like to put on my site. This Rebol-based CMS allows me to do this on my own computer without the overhead of a database and without the time overhead of learning to hack Perl to modify MT.

    Though I’m behind open source software, I’m also behind ease of use. Thanks Chris!

    Copy & paste the code below to embed this comment.
  25. This is the first I’ve heard of REBOL. REBOL is a solution to the classical problem of separating page layout/design from content. If I understand correctly, REBOL handles this entirely on the client side, providing simplicity and server independence.

    The design goals of REBOL are similar to the design goals of Webegnz ( and other HTML preprocessors. The basic idea is to define a collection of reusable templates and content macros. Then, a “generation” process merges the templates and the macros to produce HTML files. In the case of Webgenz, there is a full set of graphical tools to support managing these templates and content macro files.

    In comparison to XML and XSLT, I prefer the approach described in the paragraph above. Although XSLT is an interesting and useful technology, it is not a silver bullet for solving the complexities of managing and maintaining complex web sites.

    What would make managing complex sites more efficient? How about a “website object model” which allows sites to be built from plug-and-play modules with defined interfaces. Certainly this technique has served the software industry well over the past 20 years. Now we need to explore ways to apply it to the problem of managing web site front-end code. What do you think?


    Copy & paste the code below to embed this comment.
  26. I’d have to agree, XSLT is the way to go and the use of REBOL is mildly obscure and confusing.

    There are a variety of command line tools that let you batch XML -> stylesheet -> file. Even for the scenario outlined in the article, the use of xsl templates would maximize reusability later down the road.

    And calling this a “content management system” is a bit of a misnomer as CMS’s involve work flow processes, hence the “management”.

    And as for the comments on SQL Server’s XML support being “incomplete”, eh? How is it “incomplete” exactly?

    Finally, for the mod_rewrite on IIS, there are a couple for IIS, however has built in support for a similar scheme that is quite delicious.

    Anyone else’s eyes hurt with this color scheme?

    Copy & paste the code below to embed this comment.
  27. The mini-language is similar to the way wiki systems work. I implemented something like this for our company’s sites, originally as part of a wiki, but later as a mini-CMS just like the article describes – it may be of interest to the “you should have used XML” crowd.

    My target was to produce a JSP custom tag which could be used to reformat its content on any page. I envisaged the managed content being fragments (like the text in this forum). Since we expected end-users to be using the system, the mini-styling language used many of the conventions of MS Word’s smart typing (eg italic, bold).

    I implemented the parser for my mini-language as a SAX2 XMLReader, faking up SAX events for the structures I parsed. This meant I could plug the output directly into an XSL processor. Calling SAX2 ContentHandler methods like this means you dont ever have to escape out special chars from XML; you’re acting as if you’ve already gone through the XML parse stage where the entities are decoded.

    The custom tag (a few lines of code) simply allowed me to set an XSL stylesheet, which it plugs into the parser. On the plus side, this is all quite standards compliant and we can do nifty stuff like dump content as PDF (using XSL:FO). On the minus side, implementing the parse rules in Java was not nearly as flexible or easy to understand as the system described in the article. Does the job tho.

    Copy & paste the code below to embed this comment.
  28. I’ll reiterate that my solution is client-side. You download Rebol to your client’s machine. Blindingly easier than setting up Perl. Download REBOL/View and you can add your own GUICMS at a button press. Easy.

    XML/XHTML – This is an XHTML solution. Rebol is what you make of it and I find it an easy way to produce valid XHTML. The document format I created (well, modified) is not Rebol syntax – you could parse it with Perl or any language, but it’s purposely visual so it’s easy to learn. Side note: Rebol is not common in hosting packages, but if you used it for CGI, you wouldn’t turn back. Demand the best.

    In many cases Rebol works well with XML. In many cases, a Rebol solution is better than an XML counterpart. In many cases, XML would be the way to go. The great thing about open standards is you can approach them with whatever tool suits you. Use your imagination (Rebol’s middle name is Expressive, kindof).

    Copy & paste the code below to embed this comment.
  29. I have seen Rebol mature over the past 5 years, and have been impressed how it has grown features, graphics without much size increase.

    I think a few people “got” the elegance of the markup languages that have been done in Rebol. It is nice to have the Open System mentality in a commercial product. You can see the elegance of the markup language, and the source to the parser, which is tiny enough for anyone to read.

    I like that I can author documents in a markup language with code built-in that can execute to create diagrams, and is of higher elegance than K&R’s pic language. Open Systems never has had it so good before.

    O’Reilly said that Perl was the Duct Tape of the Internet. Perl has done a great job, as well as other home-brewed languages, but it is nice to have Rebol, which is a finely machined tool, OS, and GUI for the Internet.

    For a vintage article, which helped me write a GPSbot.r a couple years ago, try this out, and you will see some more of the power under the hood:

    I have been amazed the the beautiful Web spaces that Chris has created with his art + scripting ability.

    -Steve Shireman, wireless CTO, Technical Futurist, and 25-year Unix Tool Sharpener

    Copy & paste the code below to embed this comment.
  30. I’m the author of one of the sites mentioned at the end of the article. Just came across this article today.

    One of the advantages of storing content in plain text like my eText format, is that the plain text can be show in an html textarea element and used to make a Wiki. For my own site, I use a browser and wiki to make changes to my local content, then upload the generated .html (and .txt) to my site. I’ve done this so that non-technical people can see how the formatting works and intuitively understand it, just based on normal typewriter usage, not just computer plain text.

    The other advantage is that plain text is a ideal storage medium. As I write better and better eText parsers in Rebol, I can glean additional information out of the written text and generate better HTML and XHTML code.

    If stored as XML, as an author I’d have to have complete understanding of what I’ve written to be sure that I’ve encoded my information correctly. Encoded as XML, it would be harder for non-technical people to understand, and, if altered, by non-technical people, either directly in a plain text editor or through a browser and Wiki combination, it’s more likely to be wrong (those leading and trailing angle brackets, and tags).

    With plain text, it’s immediately obvious to a nontechnical person how the text is laid out, and how to enter new headings, paragraphs, lists, and so on. They simply type and layout text in a text editor or browser/wiki text area, as they would normally for a piece of paper and type writer. The software then formats the text appropriately.

    Copy & paste the code below to embed this comment.
  31. Having a neat little mechanisim that splits up markup, links and content is nice and nifty – using a proprietary mechanisim is shooting sparows with canons.
    Appropriately applied CSS, JavaScript, and classic HTML with some Frames should do the trick nearly just as well and speed up content provision a great deal. After all, copying and pasting a JavaScript array or a text only .html doc isn’t all that more difficult than designing and using your own ML, no?

    Copy & paste the code below to embed this comment.
  32. Rebol/Core, an executible which which weighs in at less than 260k total, runs on 42 platforms, provides true 100% portability, resolves the LF/CR problems between platforms, has NNTP, SMTP, POP, HTTP, etc protocols built-in datatypes, money, time, tuples, urls, parsing with alternation, full reflection, is its own metalanguage, is free, natural language, key-word free, well, it is true, you cannot shoot sparrows with it.

    But you can change the nature of computing with it…the platforms have been brought up to the same level.

    I’ve thrown my perl to the swine, I thought Java and JavaScript were cool in the mid 90’s, but they didn’t deliver what I needed for speed, size, and expressiveness, especially for embedded world.

    Can anyone else do CMS in an embedded device or cell phone? Not sure, but haven’t heard of it yet.

    Am I on drugs, you ask? Nah, just Rebol….

    …why wait 20 years for everyone else?

    Copy & paste the code below to embed this comment.
  33. Hello,

    I know PHP, JSP, ASP, XML, JAVA etc… and I also know Rebol, and what you don’t seem to understand is that this article is from users point of view and not programer’s point of view and sure a user DON’T WANT TO CODE XML or HTML do you forget that ?

    Copy & paste the code below to embed this comment.
  34. I found this :

    I found the ‘ML dialect difficult to get used to, being so used to my object approach
    which I inherited from C++ programming. Having said that, I am in the process of replacing
    and recoding the ‘ML dialect in my Rebol projects. The learning and recoding curve is
    worth it for improved quality control, and also the method enlists the rebol interpreter
    in the error-checking process.

    As Rebol matures and adds assets, it is my hope that custom dialects become part of
    what this highly efficient scripting language offers to programmers.
    Copy & paste the code below to embed this comment.
  35. Am I being thick? I have just tried out the REBOL CMS described in the article ‘Simple Content Management’. I assume one has to rename the file from content-management-r.txt to content-management.r. Unfortunately I get the following error message:

    • Access Error: Cannot open /C/My Documents/REBOL CMS experiment/template.html
    • Where: punch-template
    • Near: template: read %template.html
      replace template
      Can anyone tell me what I have done wrong? This is very disappointing. The directory \pages is created, though.
Copy & paste the code below to embed this comment.
  • The script requires the file ‘template.html’ to be in the same folder. That should sort the problem. Alternatively, change the line in the script that reads:

    template: read %template.html


    template: read

    - Chris

    Copy & paste the code below to embed this comment.
  • Hi Chris,

    I would like to know, once the system has been set up,
    how other users (who may be around the world) can use it.
    Do they have to download rebol or do they just use the browser?
    Can they post pictures and sounds (files) ?
    My housemate Martin wants a content management system that does this. He has been travelling around, and has some friends all over the place. He wants a unified place where they can share stories, pictures etc.
    Is this what this is for?



    Copy & paste the code below to embed this comment.
  • This is but a simple desktop-based system, though depending on the size of your pictures, you could probably fit the lot (including REBOL) on a floppy disk.

    For a REBOL-based server-side CMS, look at Vanilla:

    - Chris

    Copy & paste the code below to embed this comment.
  • The idea of my clients having to learn any kind of syntax (be it simple as it may) doesn’t really convince me;
    technically I find rebol quite compelling though,
    but that’s not the issue..


    Copy & paste the code below to embed this comment.