Writing with Ease

Writing and Markup

What I really want is just to writeup my website without worrying about markup, and to have full control when I finally present it. The website pages are written and stored as XML, before being converted to the XHTML that visitors see.The downside is the amount of typing I’ve forced myself into by using XML.

It would be easier, I guess, if I were using HTML, since there are so many good editors for HTML these days. Most of them give you a WYSIWYG view of the page, so writing feels more of less like using a work processor. For the most part, you just type, and use keyboard shortcuts to markup boldface, italic, underlines, headings, and so on. Occassionally you have to jump to a menu to insert a table or something, but generally you can spend most of your time writing.

Using XML means I can do neat things, like generate different versions of the website, or parse the pages to look for links, inter-page references, make lists of pages, and dadada. I like that aspect of it. What I don’t like so much is having to surround my writing with silly little tags like

  <p></p>
  <b></b>
  <ul><li></li></ul>

  <code></code>

and so on. I use jEdit to write the pages, and that helps a lot (it closes tags automatically, and checks page validity against the DTD), but it still feels like I am constantly aware of markup while typing.

There are solutions, and the current one I’m thinking of involves a mixture of XML and structured text. Structured text means different things in different contexts, but here I’m thinking about Wiki-style structure text (WST). The people who developed the different Wiki tools decided to make it easy to format your Wiki pages, by letting you type what you wanted without (almost) any markup at all, or rather, using WST, which is very very simple. You just type. When you want something in bold, you surround it with *asterisks*, when you want underlines you surround it in _underscores_. These few conventions are so non-intrusive that it feels just like writing an email. And the cool thing is, when you finally see the rendered Wiki page, you have boldface, italic, headings, lists, links and so forth. If I was using WST, then *this* _little piece of text_ would appear to you like this little piece of text.

I like WST a lot. Once you learn the basic rules, writing a page is just like typing in a text editor. There is really nothing that gets in the way. So my new idea is to use XML to structure pages in my website, but once I begin a <section></section>, I just type using WST. When my XSL encounters one of those <section elements, it passes the contents to a Wiki-markup engine like SnipSnap Radeox (Google it), which spits out valid XHTML. I am waiting till the rest of my XSL is stable enough to do this, since I am likely to break things when I try to link in an extension function into XSL.

The question is, how does a Wiki accomplish this stunning feat? Well, WST simplifies the markup problem by saying that there are really just a few types of basic markup that you want: bold, italic, underlines, headings, lists, links–and so on. I think the standard WST includes just over a dozen of these. Then they figured out the least amount of typing required to get those dozen variations, and also followed some established conventions people were already using in plain-text email, like ** or __ to highlight text. They also restricted the variations in layout. In other words, they simplified the markup by simplifying the problem.

Compared to DocBook, LaTEX, or SGML markup, WST can’t really do much for you. Those let you write complete books with as much control you could possibly need. But DocBook, for example, has dozens of tags for formatting documents, in part because “real” writers need so much control over how a “real” book is layed out.

For my purposes in writing a basic website, WST seems like a good solution. Radeox allows you to compose your own definition of a WST, so if I need to I can come up with weird little conventions, so that $% is markup for a filename or some thing. But the more I deviate from the standard, the more I need to remember; WST works because there is little to remember. You know: expand your capabilities by limiting your options.

(originally posted as this JRoller entry)

This entry was posted in Uncategorized and tagged , . Bookmark the permalink.