Nvu, a web authoring system built on Gecko

Daniel Glazman

http://disruptive-innovations.com

What is Nvu?

Nvu is

Why Nvu?

Why do we need an editing tool?

How did it start?

What's new in Nvu?

  • site manager
  • colorpicker
  • cleaner code
  • tabs!
  • forms
  • better CSS editing
  • XFN
  • customizable toolbars
  • new toolbar buttons
  • visible marks

13-oct-2003/04-feb-2003; ten packs of Lindt chocolate; dozens of oranginas; hundreds of visits to xulplanet and black magic spells; a few beers

What's immediately next?

How is it built?

#include "nsXULAppAPI.h"
#include "nsISoftwareUpdate.h"
#ifdef XP_WIN
#include 
#endif

int main(int argc, char* argv[])
{
  nsXREAppData appData;
  appData.SetSplashEnabled(PR_FALSE);
  appData.SetProductName(NS_LITERAL_CSTRING("Nvu"));
  appData.SetUseStartupPrefs(PR_TRUE);
  return xre_main(argc, argv, appData);
}

#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2)
char* splash_xpm[] = {0};
#endif

#ifdef XP_WIN
// We need WinMain in order to not be a console app.  This function is
// unused if we are a console application.
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR args, int )
{
    // Do the real work.
    return main( __argc, __argv );
}
#endif
pref("general.startup.browser",     false);
pref("general.startup.mail",        false);
pref("general.startup.news",        false);
pref("general.startup.editor",      true);
pref("general.startup.compose",     false);
pref("general.startup.addressbook", false);

Tweaking the chrome

Everything is done by the jar packager!

comm.jar:
+       content/editor/editor.xul          (content/editor.xul)
+       content/editor/editorOverlay.xul   (content/editorOverlay.xul)
        content/editor/about-composer.png  (content/about-composer.png)
*+      content/editor/mainCore.js         (content/mainCore.js)

+ = update

* = run through XUL preproc

So basically, we just launch Composer as always!!! We've just replaced some of its chrome files by new versions!

the XUL preprocessor

the customizable toolbars

The FTP site manager

Tabs

A deep modification of Composer's chrome made easy by Composer's architecture

You said heavy weight, heavy process?

Directory structure

So what's hard or problematic here???

What's next?

Questions?

yes, the Nvu logo is made of markup+CSS