frequently asked questions

This document set is being updated for Xilize version 3.0. Nearly all of the information here applies to version 3.0 as well.


What is Xilize?

${x2} is a way of creating great web pages easily with the simplest of tools on the most modest of computers.

Xilize is the name of both a markup syntax and a program to translate the markup into XHTML. It can be used standalone or as a ${jedit} plugin.

But what's the basic idea behind Xilize?

You can use any text editor or word processor to create a text file containing Xilize2 markup, then use the Xilize program to translate that file into XHTML.

In short, Xilize2 is very simple and XHTML very complex. With Xilize you can create richly formatted web pages in valid XHTML without even knowing what that acronym means. Yet, if you do know something about XHTML, CSS, and JavaScript, Xilize offers efficient ways to include even the most obscure constructions and makes you more productive.

See the ${examples} for an introduction.

Xilize2 can be plugged into ${jedit} — a free, opensource, text editor — or run as a standalone application.

Why not use an HTML editor?

By all means use a specialized HTML editor if you find that productive. I created Xilize to be more productive in these ways:

  1. faster, easier creation of rich web pages
  2. higher quality XHTML output
  3. more readable/editable plain text source for web pages

I also wanted to enable web newbies to produce good web pages easily — without having to master a host of arcane syntax, complex editors, and intricate web standards — and without having to spend money.

Dedicated HTML editors – there are many of them – distract you from your main task which is expressing yourself. In all of them, you end up having to grab your mouse, highlight blocks of text, and click on toolbar buttons — and that's in the best case. With Xilize you can keep your hands on the keyboard and write. If you want to emphasize something you put _ around it: _some words_ becomes some words. If you need a section header for "new ideas" you type h2. new ideas instead of <h2> new ideas </h2>.

A classic example is creating a bulleted or numbered list. See Xilize2 the Xilize home page to see how simple that is with Xilize. Tables are especially fun.

However, the quality of the XHTML produced by an editor is another issue. I've never seen one that I liked. Every one of them has some strange and – to my mind – completely unnecessary twist. Xilize2 produces ordinary, natural XHTML that actually is human-readable.

Is Xilize dependent on any third party components?

No. Xilize is written in Java and runs on any Java 1.4+ installation on any operating system. JavaCC was used to create some of the parsing functionality but it does not create a dependency on any special library. (That's one of the great JavaCC features.)

Why didn't you write it in Perl or some other scripting language?

Xilize is written in Java which makes it easy to debug and extremely easy to add as a plugin to jEdit. If you like Perl and want a completely programmable environment, see Blosxom.

I felt there was a large group of users who would like to create web pages/sites with some sophistication with just a text editor and without having to understand a scripting language.

When it comes to programming languages, each to their own. Personally, I like the strong typing, object-oriented flavor, automatic garbage collection, and extensive collection of standardized libraries of Java as well as its ubiquity. I've never seen a "pure" object-oriented language that's been effective in a production environment but I'm no ruby expert.

Isn't Xilize just another version of Textile?

Yes and no.

Yes: sometime after I started working on Xilize2 I discovered Textile and realized it was very similar to what I was doing. Since it has some popularity I thought it best to go with its syntax where possible.

No: Xilize is different than Textile. It was designed from the beginning to be used client-side authoring tool rather than a server-side translation engine (although it can be that in a JSP environment). And it was designed to suit my own needs so I added to the syntax where I felt it was necessary or when users have requested generally useful modifications.

Xilize and jEdit

What's this about jEdit?

${jedit} is a powerful, flexible, opensource editor, freely available and actively supported, with a host of plugins that you can download and install/uninstall at will. It's easy to configure, and you can set it up as a programming editor, which I believe was its original concept, or as a general-purpose, fairly light-weight plain-text editing tool. I do most of my work on a relatively modest laptop and jEdit doesn't hog resources the way, say, NetBeans, Word (or name any Microsoft application), or OpenOffice do.

What's special about using Xilize as a jEdit plugin?

Syntax highlighting: Xilize comes with a jEdit mode definition file that highlights the Xilize2 markup as you type. I can't say enough about what a difference this simple feature makes. If you have used a syntax-highlighting editor before you know what I mean. If you haven't, try it.

Seamless integration: You can make a change in a file, tap a key to run Xilize, hit refresh in your web browser and see the change reflected there.

Remote editing: With jEdit you can edit files via FTP so you can edit content on a remote web-server. Make your changes, press the Xilize2 key, and presto — your remote file is updated.

Macros & shortcuts: jEdit has a great macro writing capability and any macro can be accessed through a menu and/or a keyboard shortcut — both are simple to setup. So you can use Xilize2 in a way that works for you.

See the next question as well.

What is natural mode?

If you are creating a web site or a group of related web pages, you'll want to use natural mode. See the User Guide.

Can I run Xilize on just part of a file?

Yes, you can with the Xilize selection command. This is one of the especially cool things about running Xilize2 inside jEdit. You have four commands at your fingertips to translate:

  1. a file
  2. a directory of files
  3. a directory tree
  4. a selected block of text

If you need to edit an existing HTML file, you can use Xilize markup, select the markup section, and xilize the selected text. Xilize will replace the selected Xilize markup with its translation into XHTML.

If you have a need to create XHTML that is beyond Xilize's abilities (and that is not often) you can start with Xilize markup, select and transform it, then use it as a starting point.

You can also write Xilize markup, select, and transform it, just to see what the correct XHTML looks like. It's far easier to write Xilize than XHTML and, if you like, you can blend XHTML markup with Xilize markup. Xilize regonizes HTML tags and skips over them.

How do I install the jEdit plugin for Xilize?

See download.

How do I uninstall the jEdit plugin for Xilize?

  1. from the jEdit main menu select PluginsPlugin Manager...
  2. uncheck the box next to the Xilize.jar
  3. if you like, delete Xilize.jar from jEdit's "jars" directory

How big is Xilize's footprint?

Under 200KB as a jEdit plugin and most of that is the user interface. The translation engine is well under 100KB and can be used independently of the plugin.

Using Xilize

Can Xilize help me manage a group of similar files?

Yes. If you are creating a web site or a group of related web pages, you'll want to consider Xilize's natural mode. See the User Guide.

In addition to automatic natural mode behavior you can always use special signatures called directives to create common functionality/look-and-feel among a set of files.

In Xilize2 you can use include. filename to include the content of another file in the current file where the include occurs. You can also use the define. signature to assign an arbitrary string of text to a name, then use that text anywhere in your document with ${name}.

With the xilize. directive you can have Xilize create XHTML DOCTYPE declaration as well as the <head> section of the page. You can also specify a number of parameters like a CSS stylesheet to use and files to use for a header and a footer.

Used in combination include , define , and xilize enable you to quickly and easily create any number of files with the same look and feel. The entire Xilize2 website is done in this fashion.

As a simple example the Xilize2 link sprinkled through this FAQ is defined like this:

define. X Xilize2

which translates to

<a href="intro.html" title="Xilize2 home page">Xilize2</a>

So when I put ${X&#125; in the text, Xilize first looks up the definition for X and substitutes its value Xilize2. Then that markup is in turn translated to XHTML.

See the list of directives which, together, provide a wide range of behavior.

What's that about a property file?

You can use the Xilize2's propfile directive to read standard Java property files and add the properties to the current set of key definitions — as if each had been define'd. This is a simple way for Xilize to communicate with other programs.

For example, a couple of these pages display information about the Xilize download, like the size of the jar file and the current version number. That information is created as part of software build process and stored in a property file which is later read by Xilize when it translates a line like this:

propfile. ../../xilize/buildresult.props


What's the funny Ξ symbol for?

See here.