This directory structure contains everything you need to get started on your article.


Steps
=====

1.	Replace "Title" the folder name "Article-Title" to be the name of your article

2.	You should work exclusively in the above folder. 
	Do not add any files to either the main root directory.
	If you have images for your article be sure to place them in your 
	article directory (formerly called rename-this-and-work-in-here) or a subdirectory.

3.	Update the following
	-	<title>....</title> of the article  - this is typically shown in the tile of a web browser
	-	author & company name
	-	date
	-	copyright text in the top right corner

	
4.	Write your content. Use the most plain XHTML possible. Avoid setting specific font or
	messing with color. Use <strong></strong> or <em></em> where possible. Conform to the provided
	<div></div> classes.
	Tip:	Avoid using specific fonts. You can use styles (heading, preformatted, bold, italic).


5.	Remember to include a zip file containing your code.
	This allows readers to quickly try out your examples.
	
6.	ZIP up the Article directory and attach it to your bugzilla entry.

