<codewalk title="How to Write a Codewalk">

<step title="Introduction" src="doc/codewalk/codewalk.xml">
	A codewalk is a guided tour through a piece of code.
	It consists of a sequence of steps, each typically explaining
	a highlighted section of code.
	<br/><br/>
	
	The <a href="/cmd/godoc">godoc</a> web server translates
	an XML file like the one in the main window pane into the HTML
	page that you're viewing now.
	<br/><br/>
	
	The codewalk with URL path <code>/doc/codewalk/</code><i>name</i>
	is loaded from the input file <code>$GOROOT/doc/codewalk/</code><i>name</i><code>.xml</code>.
	<br/><br/>
	
	This codewalk explains how to write a codewalk by examining
	its own source code,
	<code><a href="/doc/codewalk/codewalk.xml">$GOROOT/doc/codewalk/codewalk.xml</a></code>,
	shown in the main window pane to the left.	
</step>

<step title="Title" src="doc/codewalk/codewalk.xml:/title=/">
	The codewalk input file is an XML file containing a single
	<code>&lt;codewalk&gt;</code> element.
	That element's <code>title</code> attribute gives the title
	that is used both on the codewalk page and in the codewalk list.
</step>

<step title="Steps" src="doc/codewalk/codewalk.xml:/&lt;step/,/step&gt;/">
	Each step in the codewalk is a <code>&lt;step&gt;</code> element 
	nested inside the main <code>&lt;codewalk&gt;</code>.
	The step element's <code>title</code> attribute gives the step's title,
	which is shown in a shaded bar above the main step text.
	The element's <code>src</code> attribute specifies the source
	code to show in the main window pane and, optionally, a range of 
	lines to highlight.
	<br/><br/>
	
	The first step in this codewalk does not highlight any lines:
	its <code>src</code> is just a file name.
</step>

<step title="Specifying a source line" src='doc/codewalk/codewalk.xml:/title="Title"/'>
	The most complex part of the codewalk specification is
	saying what lines to highlight.
	Instead of ordinary line numbers,
	the codewalk uses an address syntax that makes it possible
	to describe the match by its content.
	As the file gets edited, this descriptive address has a better
	chance to continue to refer to the right section of the file.
	<br/><br/>

	To specify a source line, use a <code>src</code> attribute of the form
	<i>filename</i><code>:</code><i>address</i>,
	where <i>address</i> is an address in the syntax used by the text editors <i>sam</i> and <i>acme</i>.
	<br/><br/>
	
	The simplest address is a single regular expression.
	The highlighted line in the main window pane shows that the
	address for the &ldquo;Title&rdquo; step was <code>/title=/</code>,
	which matches the first instance of that <a href="/pkg/regexp">regular expression</a> (<code>title=</code>) in the file.
</step>

<step title="Specifying a source range" src='doc/codewalk/codewalk.xml:/title="Steps"/'>
	To highlight a range of source lines, the simplest address to use is
	a pair of regular expressions
	<code>/</code><i>regexp1</i><code>/,/</code><i>regexp2</i><code>/</code>.
	The highlight begins with the line containing the first match for <i>regexp1</i>
	and ends with the line containing the first match for <i>regexp2</i>
	after the end of the match for <i>regexp1</i>.
	Ignoring the HTML quoting, 
	The line containing the first match for <i>regexp1</i> will be the first one highlighted,
	and the line containing the first match for <i>regexp2</i>.
	<br/><br/>
	
	The address <code>/&lt;step/,/step&gt;/</code> looks for the first instance of
	<code>&lt;step</code> in the file, and then starting after that point,
	looks for the first instance of <code>step&gt;</code>.
	(Click on the &ldquo;Steps&rdquo; step above to see the highlight in action.)
	Note that the <code>&lt;</code> and <code>&gt;</code> had to be written
	using XML escapes in order to be valid XML.
</step>

<step title="Advanced addressing" src="doc/codewalk/codewalk.xml:/Advanced/,/step&gt;/">
	The <code>/</code><i>regexp</i><code>/</code>
 	and <code>/</code><i>regexp1</i><code>/,/</code><i>regexp2</i><code>/</code>
 	forms suffice for most highlighting.
 	<br/><br/>

	The full address syntax is summarized in this table
	(an excerpt of Table II from
	<a href="http://plan9.bell-labs.com/sys/doc/sam/sam.html">The text editor <code>sam</code></a>):
	<br/><br/>

	<table>
	<tr><td colspan="2"><b>Simple addresses</b></td></tr>
	<tr><td><code>#</code><i>n</i></td>
	    <td>The empty string after character <i>n</i></td></tr>
	<tr><td><i>n</i></td>
	    <td>Line <i>n</i></td></tr>
	<tr><td><code>/</code><i>regexp</i><code>/</code></td>
	    <td>The first following match of the regular expression</td></tr>
	<!-- not supported (yet?)
	<tr><td><code>–/</code><i>regexp</i><code>/</code></td>
	    <td>The first previous match of the regular expression</td></tr>
	-->
	<tr><td><code>$</code></td>
	    <td>The null string at the end of the file</td></tr>

	<tr><td colspan="2"><b>Compound addresses</b></td></tr>
	<tr><td><i>a1</i><code>+</code><i>a2</i></td>
	    <td>The address <i>a2</i> evaluated starting at the right of <i>a1</i></td></tr>
	<tr><td><i>a1</i><code>-</code><i>a2</i></td>
	    <td>The address <i>a2</i> evaluated in the reverse direction starting at the left of <i>a1</i></td></tr>
	<tr><td><i>a1</i><code>,</code><i>a2</i></td>
	    <td>From the left of <i>a1</i> to the right of <i>a2</i> (default <code>0,$</code>).</td></tr>
	</table>
</step>


	
</codewalk>
