ZENPRESS Smart Style Objects
Another key element of our ZENPRESS technology is what we call “Smart Style Objects”. These objects determine how the individual publication elements appear on the Web. They're developed and structured in terms of editorial content rather than Web structure (in other words, they’re used while thinking like an editor rather than like an HTML programmer). They determine, for example, how the titles of articles look in a given publication, or how headlines look, or how a sidebar is built, and so forth. Each publication in a given mold uses the same set class of Smart Style Objects, but the objects themselves can be customized from publication to publication.
Publication molds and Smart Style Objects
Let me sort of relate the Smart Style Objects to the publication molds for a moment. A publication mold is an entire structure for how a publication works. It has its own series of Smart Style Objects. Remember the Jello molds we discussed back in the section on publication molds? If you recall, we discussed a star-shaped mold, filled with orange Jellow or grape Jello. If the star-shaped mold is the publication mold, then the Smart Style Objects are the grape and the orange filling. The shape is pretty much the same, but the color and style might change a bit.
That’s how it works with Smart Style Objects. From one instance of a publication to another, for example from PalmPower to DominoPower, the Smart Style Objects might change because we might want the look and feel of a publication to differ although we want the structure to be the same.
For example, in a print magazine the structure is always the cover of the magazine (which might have a cover picture and names of various articles that are inside), an inside front cover ad and a Table of Contents, probably divided into features, general interest articles, and departments. Likewise, our publication mold, the ZENPRESS JournalMaster, knows about a magazine's Home Page, the News Page, the Table of Contents Page, the Back Issues, and so on.
From magazine to magazine, the Smart Style Objects are the same objects by name, but they generate different looks or different behaviors based on the publication. So we might have, say, five or six molds for five or six different kinds of publications (i.e., magazines, books, reference manuals, and the like) and within those molds we might have a series of publications, each with its own series of Smart Style Objects.
The origin of dot commands
If you've got any background in computer science or in the computer industry, you may recognize the concept of what are called dot commands. Way back in the late seventies and early eighties, there were document production languages called nroff, RUNOFF and troff. Early desktop publishing systems were driven by document production languages that used commands that had a dot (i.e., a “.”) in the first character position of a line. Each such dot command described what the line was supposed to do. Following the dot command as a parameter was the rest of the line -- which the command ostensibly operated on. Certain dot commands would also control a series of lines.
Eventually, the technology matured to become troff, which was a typesetting language. Rather than controlling a dot matrix or a daisy wheel printer, troff controlled typesetting systems. The dot commands became incredibly complex and writing good troff became an arcane art all it's own.
How ZENPRESS uses dot commands
The idea of dot commands was very simple. It's very straightforward for a parsing routine to identify the command and then process it. We wanted to have our writing environment as simple as possible as well. The idea of dot commands seemed to fit the bill.
For example, .TITLE means that there’s going to be an article title immediately following on the same line. .AUTHOR means that the rest of the line contains an author’s name. .SUMMARY means that the attached paragraph is a summary of an article (e.g., the abstract). .PAGE tells ZENPRESS to throw a page and break the HTML into two separate pages. And something kept between a .BEGIN_KEEP and a .END_KEEP would not have a page throw allowed in its confines.
On the surface, ZENPRESS dot commands seem pretty simple stuff. Of course, below all this was rather intense development.
Now, I'm going to stop for a second and tie some things together.
Dot commands are Smart Style Objects
These dot commands are the Smart Style Objects and the entire set of those dot commands are the Editorial Markup Language (EML). Objects in a publication are controlled using EML.
They (the objects) work in a variety of really interesting ways. But the key idea is that you sit down and write a text file that consists of a variety of dot commands and the editorial content itself. When ZENPRESS sees those dot commands, it processes them using an object oriented methodology that includes knowledge about how a given type of publication is structured. EML is the language by which you write ZENPRESS content files, so that the editorial production system can handle it.
There are a lot of markup languages, languages that are used to structure and create published documents. Again, these track all the way back to the troff/nroff days and even earlier. Of course, HTML is the HyperText Markup Language, XML is the eXtended Markup Language, etc. Most markup languages deal with the structure of the document at a low level. In other words, the typographics of the document. When you write in that language, you're writing in something that's designed for the machine to understand how you want to display it.
EML is for editors
Now EML is very different. EML works at an editor's level as opposed to at a layout or formatter’s level. I think this is one of our big innovations. We've created a markup language not to describe the look and layout of the publication, but rather to describe how the publication will be structured from an editorial perspective.
"EML works at an editor's level as opposed to at a layout or formatter’s level. I think this is one of our big innovations. We've created a markup language not to describe the look and layout of the publication, but rather to describe how the publication will be structured from an editorial perspective."
|
So, for example, when an editor uses a .TITLE, he or she is not concerned with font or size that the title will be eventually represented in, because that's already taken care of. Rather , the editor is telling ZENPRESS "this is the title of the article”. You can see this at work in Figure C
 Figure C. This is a small example of a ZENPRESS source file written in EML, along with the page that’s generated, in this case an article. The same file will be imported into the ZENPRESS database and will be used on many pages throughout the publication.
An editor might decide "Well, we really don't want to break this page (in other words, to throw the page to a second page) right here, because this is an important paragraph and we want to wait a little while. So, I want to throw the page here." But the editor is not concerned with what exactly that means, how the code is going to be built for it, or any of that sort of thing. The editor would simply use .PAGE to cause the page to break or put the contents of anything that couldn’t be split between pages between lines containing .BEGIN_KEEP and .END_KEEP.
An editor may decide that a given article is a feature article and it should be represented at the top part of the Table of Contents. He or she would then type .FEATURE into the article’s text file. Again, our editor isn't concerned with anything about how the Table of Contents, the Home Page, or the actual article is laid out, how the article will look in production, or any of the production, programming, or design issues. Instead, the editor is making an editor’s decision on the priority of the article in the issue.
So, EML, the Editorial Markup Language (which is our invention) is pretty unique because it's dealing with things at such a high level -- at the editorial and document management level, as opposed to at the document structure level.
Previous | Table of Contents | Next
|
|