Web DevCenter
oreilly.comSafari Books Online.Conferences.
MySQL Conference and Expo April 14-17, 2008, Santa Clara, CA

Sponsored Developer Resources

Web Columns
Adobe GoLive
Essential JavaScript

Web Topics
All Articles
Scripting Languages

Atom 1.0 Feed RSS 1.0 Feed RSS 2.0 Feed

Learning Lab

Dreamweaver: A Visual Tool for Serious Web Coders
Pages: 1, 2

Formatting HTML

Dreamweaver offers complete control over HTML code coloring and formatting. For example, under Edit->Preferences->Code Colors, you can specify the colors to use when displaying HTML code (these don't affect the browser page display). You can specify separate colors for text, comments, tags, reserved JavaScript keywords, JavaScript function names, and JavaScript string literals. You have infinite control over the color applied to each tag and its attributes. For example, you can use one color for <img> tags, another color for <img> attributes, and a third color for <a> tags.

Screen shot of code format preferences.
Changing HTML formatting defaults under Edit->Preferences->Code Format

Furthermore, you can control HTML formatting under Edit->Preferences->Code Format. These preferences allow precise control over indentation (using either tabs or spaces), line wrapping, and line breaks. You can specify the case for HTML tags, such as <lowercase> or <UPPERCASE> (use <lowercase> for XHTML compliance). You can also specify whether attributes should be in lowercase or uppercase.

HippoRelated Reading

The O'Reilly web design collection provides working professionals with the tools they need to build high performance, attractive sites. In addition to our new Dreamweaver manual, we cover JavaScript, CSS and XHTML. Take a look at these selections:

Designing with JavaScript, 2nd Edition

JavaScript: The Definitive Guide, 4th Edition

Dreamweaver 4: The Missing Manual

Web Design in a Nutshell, 2nd Edition

Web Design CD Bookshelf

Cascading Style Sheets: The Definitive Guide

HTML & XHTML: The Definitive Guide, 4th Edition

Learning Web Design

Still not convinced Dreamweaver is useful? Take a look at the SourceFormat.txt file, which gives greater control over HTML tag formatting than the preferences allow. Use this file to specify how many line breaks to add before and after each tag; specify groups of tags to be indented (such as <tr> and <td> tags); specify exact capitalization for tags and keywords, such as onMouseOver. You can apply the source formatting to individual files using Commands->Apply Source Formatting.

Customizing Dreamweaver

The SourceFormat.txt file is but one example of how Dreamweaver's operation and UI are completely customizable. You can change Dreamweaver's default behavior or augment it by simply editing external files. Even if you never change these settings, it is comforting as a programmer to be able to inspect the blueprints that control Dreamweaver. For example, Dreamweaver offers complete customization over keyboard shortcuts via Edit->Keyboard Shortcuts. But if you prefer to hand-code your configuration files, simply open and edit the menus.xml file. This XML-like file defines all of Dreamweaver menus and keyboard shortcuts, allowing you to customize the UI. This allows developers who extend Dreamweaver to add custom menu items for new functionality.

Extending Dreamweaver

Dreamweaver was designed to be completely extensible. In fact, Macromedia's Dreamweaver UltraDev application is built atop the Dreamweaver "platform." As a skilled JavaScript developer, you may want to augment Dreamweaver and even sell your extensions. The Dreamweaver Exchange is a forum where you can upload and download Dreamweaver extensions. About 500 extensions (most of them free) exist already, and more are added frequently. Macromedia writes some extensions, but most are offered by third-party programmers. Dreamweaver itself is completely scriptable. Macromedia documents the API in "Extending Dreamweaver" available under Help->Extending Dreamweaver or from Macromedia's site.

You might write Dreamweaver extensions to share with other developers on your team, or you might want to upload them to the Exchange. The Extension Manager application (included with Dreamweaver) lets you package extensions for uploading. It also lets you install extensions you've downloaded from the Dreamweaver Exchange. If you are uploading your own extensions, Macromedia offers extensive documentation for testing your extension and complying with their UI guidelines (Macromedia will "certify" compliant extensions).

Dreamweaver's architecture for downloading and installing an extension is controlled via an .mxi file, as documented in The Macromedia Extension Installation File Format.

Using an .mxi file, you can instruct Dreamweaver to make your extension accessible via one or more menus or the Objects panel. For example, if you extension inserts a new asset type, such as a QuickTime movie, you might add it to the Special category of the Objects panel. Although an .mxi file will handle the mechanics for you, this panel serves as another good illustration of Dreamweaver's extensibility. The appearance of the Objects panel is controlled by the files in the Dreamweaver 4/Configuration/Objects folder. To add, move, or delete items from the Objects panel simply modify the files in this folder and its subfolders. For example, to add an item to the Special category of the Objects panel, add your files--typically a GIF to define the icon and a .js file to implement the necessary code--to the Dreamweaver 4/Configuration/Objects/Special folder.

XML Import and Export

So we've seen that Dreamweaver is both configurable and extensible. But does it play nice with open standards like XML? Dreamweaver includes a Templates feature that lets you define a document template and editable regions within it. This is naturally akin to an XML structure, which separates a document's format definition from the data within it. Therefore, you can export a Dreamweaver template in XML format and you can import an XML document to act as a Dreamweaver Template using the File->Export as XML and File->Import XML commands.

Dreamweaver itself isn't geared towards heavily data-driven Web sites. If you expect to use a back-end database or extensive server-side scripting, you'll want to look into Dreamweaver UltraDev. Fortunately, UltraDev is a superset of the basic Dreamweaver application, so everything you've learned about Dreamweaver applies equally to UltraDev. (UltraDev adds Data Bindings and Server-Side Behaviors panels to Dreamweaver, but it is otherwise 95 percent identical.)

Related Reference

Dreamweaver in a NutshellDreamweaver in a Nutshell
By Heather Williamson & Bruce Epstein
Table of Contents
Sample Chapter
Full Description


Dreamweaver improves the productivity of both people who develop visually and those who prefer to work directly in Code view. We've barely scratched the surface of what Dreamweaver can do and how to do it. All the topics mentioned here are discussed in greater detail in Dreamweaver in a Nutshell. I hope that I've exposed you to enough of Dreamweaver to motivate you to investigate it further. A free 30-day trial can be downloaded from Macromedia. Best of luck in all your Web development.

Bruce A. Epstein is the author of Director in a Nutshell and Lingo in a Nutshell, the coauthor of Dreamweaver in a Nutshell and the editor of ActionScript: The Definitive Guide.

Return to the JavaScript and CSS DevCenter.