Install DOM Inspector

I’ve taken the Mozilla 1.8.1 DOM Inspector and adapted it for KompoZer 0.8. You can download it here: inspector-20091201.xpi

I’ve tried to make a quick port of Venkman but I’m not sure it works on KompoZer 0.8 (I confess I don’t use it at all). If you can help me with this, that would be very appreciated.

If you need other developer add-ons for KompoZer 0.8 (Console², Event Spy, Extension Developer…), just let me know. If you can take the time to port these add-ons to KompoZer 0.8, that’d be even better. :-)

Set up a development profile

You should add these two lines in the prefs.js file in your profile directory:

 user_pref("browser.dom.window.dump.enabled", true);
 user_pref("nglayout.debug.disable_xul_cache", true);

The first one will show the output of dump() commands to the console. The second one will save you some significant time if your extension is in a separate window or in the sidebar, as you won't have to restart KompoZer to see your changes: modify your code and reopen your window/sidebar, your changes are reloaded.

You can also use the about:config extension to modify these two settings. This extension will be useful to check the preferences you modify with your extensions…

UUID / install.rdf

As you may know, KompoZer 0.8 now has a specific UUID:
{20aa4150-b5f4-11de-8a39-0800200c9a66}

This new UUID will prevent many compatibility issues we had with Nvu add-ons. If you know some Nvu extensions that should be ported to KompoZer 0.8, just let me know and I’ll port them as soon as possible.

Your install.rdf file should have the following “targetApplication” section:

    <!-- target: KompoZer 0.8.x -->
    <em:targetApplication>
      <Description>
        <em:id>{20aa4150-b5f4-11de-8a39-0800200c9a66}</em:id>
        <em:minVersion>0.7.99</em:minVersion>
        <em:maxVersion>0.8+</em:maxVersion>
      </Description>
    </em:targetApplication>

You can (should) use a readable identifier for your add-on, i.e. something like “myextension@website.tld” instead of a UUID.

Unlike Nvu / KompoZer 0.7.10 extensions, you can use chrome.manifest files instead of contents.rdf ones.

Overlay

If you want to add your extension to the “Tools” menu, I recommend to insert it after the “JavaScript console” item in your overlay file:

<menupopup id="taskPopup">
  <menuitem id="myExtensionID"
                insertafter="javascriptConsole"
                command="cmd_openMyExtension" />
</menupopup>

Warning: the ID “javascriptConsole” is case-sensitive. I realized recently that the ID is “javaScriptConsole” for Thunderbird, but it’s too late to change this ID now that KompoZer 0.8 is shipped in most Linux distros.

Getting started: LoremIpsum

Pascal Chevrel has designed a simple but helpful LoremIpsum extension.

This extension is the simplest I can think of: no locales and 10 lines of JavaScript. As such, playing with LoremIpsum should be the easiest way to get started if you want to develop your own add-on for KompoZer.

Another way to get started would be to adapt a Firefox or Thunderbird extension to KompoZer. Beware, KompoZer 0.8 is still based on Gecko 1.8.1 (= Firefox 2 / Thunderbird 2)…

Getting Help

As usual, the #kompozer channel is the best place to get some help for KompoZer-related issues. I’m usually online from noon to midnight, GMT.