CUF™ - Creativyst Universal Formatters
A recommendation for open, easy-to-use message formatting
(w/source code)

How do I?    
  Add CUF™ to
an application
I'm developing
  Develop my own
What Is CUF?       CUF™ Benefits       Design Goals       Map       Login(soon)

What Is CUF™?
CUF(tm) codes are openly developed message formatting instructions that allow users of your appliction to include elements of style, design, and layout within their messages and documents in a simple, easy-to-understand way. At an administrator's option, users inputting messages into CUF(tm) compliant applications may also include links, glossary entries, and even tables within their messages.

Firstly, it is important to understand, that there is nothing new here. These format codes are based on bracket-styled codes that have been used for a long time on the web. I was first introduced to them as UBB (Ultimate Bulletin Board) codes. At Creativyst, a clear need was recognized, early on, for a library of formatting functions that can be used to implement formatting in multiple applications. These descriptions serve as the specification for that library.

As the HTML specification continues to develop into a robust document markup language, a need has emerged among non-IT professionals for formatting codes that are easy to use and understand. With this in mind, CUF has been designed to be useable by people in all professions, not just web and content design fields.


CUF™ Benefits
The idea behind CUF-style message formatting is not new by any means. This recommendation borrows heavily from similar formatting codes that have been in use around the web for many years and primarily incorporated into bulletin board systems such as Ultimate Bulletin Board (UBB), Yet Another Bulletin Board (YaBB), and many others.

The goal here is to cooperatively develop and distribute a core set of these codes that can be maintained as a single coding effort for the benefit of all who incorporate them into messaging applications and those who use their applications. Such a cooperative effort affords many benefits to developers and end users alike. Just to list a few:

    CUF™ Is Easy and Inclusive
    As the HTML specification continues to develop into a robust document markup language, a need has emerged among non-IT professionals for formatting codes that are easy to use and understand.

    CUF™ Works Well In XML #PCDATA Element Types
    As XML becomes the preferred mechanism for information distribution, a formatting system with no SGML lineage or syntax will allow simple formatting to be included within XML elements easily, without using cumbersome escaping sequences.

    CUF™ Is Easy to Add to New
    and Existing Messaging Applications

    Just follow the instructions provided in these support pages to have CUF™ compliant message displays and help screens in your application by the end of the day today.

    Users and Administrators Benefit from
    Cross-Platform Interoperability

    For example, a webmaster can install CUF™ compliant glossary software from one vendor, and CUF™ compliant forum software from a different vendor. Forum visitors will then be able to include links to the glossary within their forum messages in a familiar way without concern or knowledge of interoperability issues.

    CUF(tm) Promotes Good Code.
    A cooperative effort on format codes will shield developers from an otherwise bug-prone and reactionary work method that interrupts them regularly to add the latest must have format code.

    CUF(tm) Improves Security
    Having one single implementation of formatting functions allows the code to be exercised widely. This means there are more opportunities for hacker vulnerabilities to show up faster. Thus, cooperation on core formatting codes will produce a stronger, more secure set of formatting functions for everybody.

    Basic formatter codes are not a good mechanism
    for differentiating messaging based products.

    There are a core set of formatting codes which everybody must have to be in the game and the set is always expanding as newly developed format codes become known. When one product adds a new formatter that users like, everybody else will quickly add it to their products as well. This really isn't a differentiator, just thousands of hours of interrupted developer time (collectively). This developer time would be better spent adding real improvements in end-user security, privacy, ease-of-use features, and product functionality.

CUF™ Design Goals
The W3C has chosen to move toward separating content from format in newer HTML standards. This has taken HTML from being a formatting standard that was already difficult for non-IT professionals to use, to a document standard specifically for use by programmers and web-page designers. This was not a bad decision by the W3C. As mentioned, HTML's utility as an end-user formatting code was already questionable to begin with. As HTML standards become more complex, a cooperative effort on simple formatting codes can fill the void. Such an effort should embrace simplicity and ease of use over technical flexibility so that the non-IT community can best benefit.

For this reason, the overriding philosophy for this recommendation is simplicity for end users. This in turn drives the design goals which are:

  1. Simple for non-IT professionals to use

  2. Extremely low initial learning barrier to users (typing text)

  3. Flexibility when required despite easy learning curve

  4. Non-SGML syntax in order to compliment SGML based markups

  5. Easy for developers to add to new and existing applications

  6. A secure, consistent, concisely defined interface

  7. Open source and community

I'm a developer. How do I add
CUF™ to my application(s)?

For developers in any of the currently supported languages, adding CUF compatability to your applications is easy.
  1. Download the code from this site and add it to your application's code.
  2. Make a function call to CUF() just before displaying any messages.
  3. Cut and paste the HTML code provided here for the link to our help and support documents and display it near the message entry fields in your application.
That's all there is to it. Your application now supports bug-free formatting, including clean, well formatted user-help documentation. It is the same whether you're incorporating CUF™ into new designs or existing applications.

When the JavaScript version of CUF™ becomes available, you will be able to add links to your message-entry forms to let writers preview how their messages will look (without using any WAN bandwidth).


Document Outline (a work in progress...)
  1. CUF Information and index page.
    This page. Serves as a 'top' index into all things CUF.
  2. Text of The Standard
    This is the actual standard which governs CUF code development. This is written for developers who want to inlcude CUF™ capabilities in their web-based applications or implement their own CUF™ interpreter. This document will probably be of little use to you if you are not a programmer or have no interest in what's going on under CUF's proverbial hood. The current version is 1.0a.
  3. CUF Code Reference
    A complete list of all of CUF's formatting tags. Tells if they are a basic part of the standard (core), included at the option of the administrator (toggle), or only part of special applications (implementation). It also lists any "obsolete" CUF codes just for completeness.

© Copyright 2002, Creativyst, Inc. (last update: 20-Apr-02)
All Rights Reserved