<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>[Your title goes here]</title>
<meta http-equiv="Content-Type"
	content="text/html; charset=windows-1252">
<link href="../article.css" type="text/css" rel="stylesheet">
</head>
<body>

<h1>[Your title goes here]</h1>
<div class="summary">
<h2>Summary</h2>
<p>In this article, ...</p>
<div class="author">By [Your name], [Your affiliation]</div>
<div class="copyright">Copyright &copy; [Year] [Your affiliation].</div>
<div class="date">January 28, 2007</div>
</div>

<div class="content">
<h2>Introduction</h2>
<p>Please use strict, but simple, HTML formatting. Be sure to wrap
your paragraphs in &lt;p&gt;&lt;/p&gt; tags.</p>

<h2>How to present code</h2>
<p>When including code snippets use preformatted style as below. In
general try to avoid using specific fonts.</p>

<pre>public void createPartControl(Composite parent) { /* [1] */
	label = new Label(parent, 0); 
	label.setText("Hello World"); / * [2] */
	getViewSite().getPage().addSelectionListener(this);
}</pre>

<p>Consider annotating your code, if necessary using comments
appropriate for the language.</p>

<p>In the preceding example, [1] is the signature of the method and
[2] sets text of the label.</p>

<h2>Other useful text samples</h2>
<p>The <i>images/</i> subdirectory of this template also contains
several images you may want to use. Below are the images and a simple
example of their use.</p>
<p>1) An image to indicate a tip for the user.</p>
<blockquote>
<p><img src="images/tip.gif" width="62" height="13"> Always
put your snowman in the freezer before summer.</p>
</blockquote>
<p>2) An image to indicate a point in the article where the user may
want to run a quick test to see their progress.</p>
<blockquote>
<p><img src="images/tryit.gif" width="61" height="13"> Choose
Instant Article from the pop-up menu and confirm our article creation
wizard opens.</p>
</blockquote>
<p>3) Images to indicate platform specific behavior.</p>
<blockquote>
<p><img src="images/win_only.gif" width="49" height="13"> On
Windows the splash screen is represented using BMP files.</p>
<p><img src="images/linux_only.gif" width="49" height="13"> On
Linux the splash screen is represented using XPM files.</p>
</blockquote>
<h2>Source Code</h2>
<p>Always include a link to your zip file containing the source
code. You may want to include a section titled <b>Source Code</b> (as we
have done here) with the text shown below. Remember to ensure the zip
file does <b>not</b> include eclipse/plugins in the path of files; it
should only include only your plug-in directory name. Users will assume
they can unzip the plug-in directly into their <i>plugins </i>directory.
Here is some sample text:</p>
<p>To run the example or view the source code for this article unzip
<a href="your_filename.zip">your_filename.zip</a> into your <i>plugins/
</i>subdirectory.</p>
<p>&nbsp;</p>
<h2>Did you remember?</h2>
<p>Don't remember to update the following:</p>
<ul>
	<li>&lt;title&gt;....&lt;/title&gt; of the article - this is
	typically shown in the tile of a web browser</li>
	<li>author &amp; company name</li>
	<li>date</li>
	<li>copyright text</li>
</ul>
<p>Did you remember to avoid using specific fonts - try to only use
the main styles (performatted, italic, H1, H2 etc.).<br>
</p>
</body>
</html>
