<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<book>
	<bookinfo>
		<mediaobject role="fo">
		  <imageobject>
			<imagedata fileref="images/stripshow-logo.svg" format="SVG" width="5in" />
		  </imageobject>
		</mediaobject>
		<title>stripShow</title>
		<subtitle>User's Guide</subtitle>
		<corpauthor>The stripShow Consortium</corpauthor>
		<author>
			<firstname>Brad</firstname>
			<surname>Hawkins</surname>
			<affiliation>
				<address>
					<email>bhawkins@monkeylaw.org</email>
					<otheraddr>http://stripshow.monkeylaw.org</otheraddr>
				</address>
			</affiliation>
		</author>
		<releaseinfo>Version 2.5</releaseinfo>
		<copyright>
			<year>2010</year>
			<holder>Brad Hawkins</holder>
		</copyright>
		<abstract>
			<para>stripShow is a WordPress plugin for creating and maintaining a webcomics archive.</para>
		</abstract>
		<legalnotice>
			<para>
				<mediaobject role="fo">
				  <imageobject>
					<imagedata fileref="images/gpl-v3-logo.svg" format="SVG" width="1.5in" />
				  </imageobject>
				</mediaobject>
			</para>
			<para>stripShow is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</para>
    		<para>stripShow is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of <emphasis>MERCHANTABILITY</emphasis> or <emphasis>FITNESS FOR A PARTICULAR PURPOSE</emphasis>.  See the GNU General Public License for more details.</para>

    		<para>You should have received a copy of the GNU General Public License along with stripShow.  If not, see <ulink url="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</ulink>.</para>
			<para>This book is set in Droid Sans, a font &copy;2008 The Android Open Source Project, licensed under the Apache License.</para>
		</legalnotice>
	</bookinfo>


	<chapter id="introduction">
		<title>Introduction</title>
		<para>So you want to produce a webcomic, and you've heard other creators rave about how <ulink url="http://www.WordPress.org">WordPress</ulink> is the way to go. But now you need a software package that can handle the drudgery of generating the blog posts and uploading the files, as well as keeping the whole thing automated. This is where stripShow comes in.</para>
		<para>stripShow will allow the webcomic creator to upload his or her comics using a handy WordPress admin interface, create custom themes that incorporate comic-specific template tags to navigate between comics, group comics into hierarchical storylines, and even enter searchable transcripts of your comics to make finding particular strips easy.</para>
		<para>stripShow is very simple. Each comic in stripShow is a blog post. Each comic post can be associated with one or more comic files, which can be graphics like GIF or JPEG, or even HTML or Flash files. In addition to posting comics, you can maintain a regular old blog using the same WordPress system.</para>

		<section id="features">
			<title>stripShow Features</title>
			<itemizedlist spacing="compact">
				<listitem>
					<para>Attractive WordPress admin interface for uploading comics.</para>
				</listitem>
				<listitem>
					<para>Allows for blog entries and comics to coexist on the same site.</para>
				</listitem>
				<listitem>
					<para>Support for bulk upload of comics files.</para>
				</listitem>
				<listitem>
					<para>Support for bulk import of comics files already on your server.</para>
				</listitem>
				<listitem>
					<para>Support for multiple comic file formats, including GIF, PNG, JPEG, Flash, and HTML.</para>
				</listitem>
				<listitem>
					<para>Support for multiple comic files attached to a single blog post.</para>
				</listitem>
				<listitem>
					<para>Support for searchable transcripts within comic posts.</para>
				</listitem>
				<listitem>
					<para>Group comics into nested storylines.</para>
				</listitem>
				<listitem>
					<para>Comic images can be shown in RSS feeds.</para>
				</listitem>
				<listitem>
					<para>Support for traditional date-based comic filenames, or custom filenames.</para>
				</listitem>
				<listitem>
					<para>Supports cover images to delay display of adult or Not Safe for Work content.</para>
				</listitem>
				<listitem>
					<para>New comic-specific sidebar widgets.</para>
				</listitem>
				<listitem>
					<para>Full-featured theme framework for creating beautiful site themes, which are customizable without altering the parent theme.</para>
				</listitem>
			</itemizedlist>
		</section>
	</chapter>


	<chapter id="installation">
		<title>Installation</title>


		<section id="new-installation">
			<title>New installation</title>
			<caution>
				<para>stripShow's installation process has changed from earlier versions; if you've previously used a version prior to 2.0, please note these instructions carefully.</para>
			</caution>
			<sidebar>
				<title>Automatic Install</title>
				<para>With WordPress 2.7 or later, then you may be able to install or upgrade stripShow with just a few mouse clicks.</para>
			</sidebar>

			<procedure id="wp-plugin-install">
				<title>Installing the Plugin</title>
				<step>
					<para>First, you'll need a working WordPress installation. Installing and configuring WordPress is beyond the scope of this document, but help can be found at <ulink url="http://www.wordpress.org">WordPress's website</ulink>.</para>
				</step>
				<step>
					<para>If you are upgrading from a previous version of stripShow, make sure you disable the plugin in WordPress's <guimenu>Plugins</guimenu> page before proceeding.</para>
				</step>
				<step>
					<para>Upload the folder called <filename>stripshow</filename> to your <filename>/wp-content/plugins/</filename> directory.</para>
				</step>
				<step>
					<para>Activate the plugin through the <guimenu>Plugins</guimenu> page in WordPress.</para>
				</step>
				<step>
					<para>Choose a theme. stripShow 2.0 ships with a new framework theme, stripShow Sandbox. You can read more about its features in <xref linkend="theming-stripshow"/>.</para>
					<para>Also included is stripShow Classic, which is nearly identical to the original stripShow example theme included with version 1 of stripShow.</para>
					<para>I recommend copying at least the folder called <filename>stripshow_sandbox</filename> into your <filename>themes</filename> folder. This will allow you to create a child theme based on this framework. See <xref linkend="theming-stripshow"/>.</para>
					<sidebar>
						<title>Using a Symbolic Link</title>
						<para>If you intend to create a child theme of stripShow Sandbox and doing your design there, it might be a better idea simply to create a symbolic link to the original theme using the command line. On UNIX and Mac OS X systems, from your <filename>themes</filename> directory, type:</para>
						<programlisting><![CDATA[ln -s ../plugins/stripshow/example-themes/stripshow_sandbox stripshow_sandbox]]></programlisting>
						<para>Now there's a symbolic link to the <filename>stripshow_sandbox</filename> folder in your themes folder, and when you upgrade stripShow, you won't have to copy that folder again.</para>
					</sidebar>
				</step>
				<step>
					<para>Create a folder to hold your comics. If such a folder already exists, take note of its location relative to your WordPress root, as you will need to enter that location on the stripShow Options page. In either case, this folder will need to be writeable by your webserver, in order to use <application>stripShow's</application> upload feature.</para>
					<sidebar>
						<title>Where should I put my comics folder?</title>
						<para>While you can put your comics folder anywhere within your WordPress root, I recommend placing it within your <filename>wp-content</filename> folder. This conforms with the general principle of a clean WordPress root, with all user-supplied content being segregated into one folder. That way, when WordPress is upgraded, only one folder needs to get special consideration for preservation. The default location for comics in stripShow is <filename>wp-content/stripshow_comics</filename>.</para>
					</sidebar>
					<para>When you have created and copied all the folders you wish, your installation might look something like this:</para>
					<figure id="distribution-layout">
						<title>stripShow Folder Tree</title>
						<mediaobject>

						  <imageobject role="fo">
							<imagedata fileref="images/stripshow_distribution_tree.svg/Canvas_1.svg" format="SVG" width="5in" />
						  </imageobject>
						  <imageobject role="html">
							<imagedata fileref="images/stripshow-distribution-tree.gif" format="GIF" width="563px" />
						  </imageobject>
						</mediaobject>
					</figure>

				</step>
				<step>
					<para>Configure stripShow. The options you can set are detailed in the next chapter.</para>
				</step>
			</procedure>
		</section>
	</chapter>


	<chapter id="configuration">
		<title>stripShow Options</title>
		<para>stripShow uses the familiar WordPress admin panel to set its configuration options. From your WordPress dashboard, select the <guimenu>Settings</guimenu> menu, then the <guimenuitem>stripShow</guimenuitem> menu item. This will take you to the <guimenuitem>stripShow Options</guimenuitem> page.</para>
		<figure>
			<title>stripShow Options Page</title>
			<mediaobject>
				<imageobject role="fo">
					<imagedata fileref="images/stripshow-options.gif" format="GIF" width="5in" align="center"/>
				</imageobject>
				<imageobject role="xhtml">
					<imagedata fileref="images/stripshow-options.gif" format="GIF" width="498px" />
				</imageobject>
			</mediaobject>
		</figure>
		<para>The options you can confsigure from this page are:</para>
		<variablelist>
			<varlistentry>
				<term>Comics folder</term>
				<listitem>
					<para>Tells stripShow where your comic files will be located. This is relative to your WordPress root, so if the full path to your comics folder is <filename>/home/bob/public_html/wordpress/comics</filename>, you would just enter <literal>comics</literal> here.</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Date format</term>
				<listitem>
					<para>stripShow allows you to specify what date format you'll be using to name date-based comics. The string you enter here uses the same format as the <ulink url="http://us.php.net/date">PHP date()</ulink> function. For instance, a date string of <literal>Ymd</literal> would match a file called <filename>20080901.gif</filename>, while a date string of <literal>Y-m-d</literal> would match a file called <filename>2008-09-01.gif</filename>. That latter format is the default in ComicPress, so if you're a ComicPress user, that's probably what your comics are already called. All the characters that can be used as date codes can be found in <xref linkend="php-date-codes"/>.</para>
					<caution>
						<para>I recommend against using any of the formatting codes that do <emphasis>not</emphasis> add leading zeroes to dates, such as <literal>j</literal> or <literal>n</literal>. Some functions in stripShow extract dates from filenames based on their lengths, which can result in incorrect dates being returned, if dates between 1 and 9 are not padded with a leading zero.</para>
					</caution>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Comics category</term>
				<listitem>
					<para>This option determines which WordPress category you'll be using for comics. stripShow has two operating modes when it comes to categories: Single-category mode, which is the default, wherein all comics are stored in one single category, and a post any other category is considered a blog post, and Multiple-category mode, wherein only one category is used for blog posts and all others are considered to be comics. This used to be the default behavior of ComicPress, and this option was created for the benefit of people migrating from that platform.</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Non-comics category</term>
				<listitem>
					<para>If Multiple-category mode is chosen below, this is the category for non-comic blog posts.</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Category mode</term>
				<listitem>
					<para>Determines which of the two operating modes (as listed above) is in effect.</para>
				</listitem>
			</varlistentry>
			<varlistentry id="indexgoesto">
				<term>Index Page</term>
				<listitem>
					<para>By default, the index page of your stripShow site will show the most recent comic entered, which is standard for episodic comics that are still being updated. However, what if you've posted your entire 200-page graphic novel online, with each comic post representing a page? You don't want people starting at the end, so you can set this option to <literal>First Comic</literal> and the index page will take them to the first page. In addition, there is a <literal>Random Comic</literal> which makes your index page unpredictable and goofy.</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Walk back from date if no comic file exists</term>
				<listitem>
					<para>Usually, if a comic post has neither a custom comic file attached to it nor a file with the proper date in the comics directory, the <link linkend="show_comic">show_comic</link> template tag will "walk back" through the files that do exist until it finds the most recent comic file prior to that date. It will then show whatever file it finds. You can turn this feature off and on using this option. Default is <literal>ON</literal>.</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Show comics in RSS feeds</term>
				<listitem>
					<para>By default, stripShow adds the comic to the RSS feed for comic posts. This option allows you to enable or disable this feature.</para>
				</listitem>
			</varlistentry>
			<varlistentry>
				<term>Hide path to comic files</term>
				<listitem>
					<para>This option allows you to disguise the path where your comics are located. Usually, anyone reading the comic can view the source of the site and see the path to your comics. If for any reason you wish to disguise this path, select this option, and stripShow will mask it for you.</para>
					<para>This option comes with some restrictions, however: <itemizedlist spacing="compact">
						<listitem>
							<para>You must have the <ulink url="http://us.php.net/gd">GD extension</ulink> enabled on your copy of PHP. If you don't, this option will be unavailable.</para>
						</listitem>
						<listitem>
							<para>You may only use one comic file per post. If more than one file is found, only the first one will be used.</para>
						</listitem>
						<listitem>
							<para>The comic file for the post must be in GIF, PNG, or JPEG format. HTML, text, and Flash files are not supported.</para>
						</listitem>
						<listitem>
							<para>Animated GIFs will not be animated. Only the first frame will be shown.</para>
						</listitem>
					</itemizedlist></para>
				</listitem>
			</varlistentry>
		</variablelist>
	</chapter>


	<chapter id="stripshow-comics">
		<title>stripShow Comics</title>
		<para>Just like any other WordPress blog, a stripShow archive is made up of posts. These posts are the same as other posts, integrated into the WordPress database. They are just like your blog, the only difference being that they are in a category assigned to comics (or, in multiple-category mode, they are not in a category assigned to blog posts).</para>

		<section id="comicfiles">
			<title>Comic Files</title>
			<para>stripShow comic posts differ from other blog posts in another way; each comic post needs to be accompanied by a <emphasis>comic file</emphasis>. Usually a graphic, this file is one actual comic strip<footnote><para>"Strip" is such a passé term, don't you think? This is the internet; comics can be long strips, square blocks, random zigzags... we're working on spheres. So I won't use the word "strip" to mean a comic... uh, except of course for the name of the product. Damn.</para></footnote> itself.</para>
			<para>However, they don't have to be graphical. A "comic file" in stripShow can be a graphic, or text, or animated Flash video<footnote><para>Flash support is pretty rudimentary in stripShow; I'm looking into ways to make it more flexible. If you need a particular feature, please let me know.</para></footnote>. stripShow supports the following file formats:</para>
			<itemizedlist spacing="compact">
				<listitem>
					<para>GIF (.gif)</para>
				</listitem>
				<listitem>
					<para>JPEG (.jpg or .jpeg)</para>
				</listitem>
				<listitem>
					<para>PNG (.png)</para>
				</listitem>
				<listitem>
					<para>Flash (.swf)</para>
				</listitem>
				<listitem>
					<para>HTML (.html or .htm)</para>
				</listitem>
				<listitem>
					<para>Text (.txt)</para>
				</listitem>
			</itemizedlist>
			<para>These files are stored in the comics directory, as specified on the <link linkend="configuration">stripShow Options page</link>.</para>
			<para>More than one file can be related to any given comic post. File types can be mixed, so you can have a GIF file followed by an HTML file, followed by a PNG, for example. Image files are enclosed in an <markup>&lt;img&gt;</markup> tag. HTML and text files are simply copied verbatim.<footnote><para>PHP in these files is <emphasis>not</emphasis> parsed, for security reasons.</para></footnote></para>
			<note>Although WordPress contains a built-in system for managing media such as image files, and inserting these files into blog posts, comic files are not manipulated in this way. They remain separate from blog posts.</note>
			<para>There are two kinds of files that stripShow will look for: Files with date-based filenames, and files with custom filenames specified by the post itself.</para>


			<section id="date-based-filenames">
				<title>Date-based comic filenames</title>
				<para>If the comic post has no <property>comic_file</property> custom field attached, then stripShow looks in the comics directory (as set in <link linkend="configuration">Options</link>) for any files that match the specified date format (also set in <link linkend="configuration">Options</link>). For example, if the date format is "Ymd," stripShow will find files that begin with dates in that format. The following are all filenames that this format will match:</para>
				<itemizedlist spacing="compact">
					<listitem>
						<para><filename>20080828.gif</filename></para>
					</listitem>
					<listitem>
						<para><filename>20080828a.png</filename></para>
					</listitem>
					<listitem>
						<para><filename>20080101-arbitrary-text.jpg</filename></para>
					</listitem>
				</itemizedlist>
				<para>As you can see, you can append whatever you want to the filename, as long as you retain the extension and the filename begins with a date. If more than one file exists for a given date, then that extra information is used to determine in what order the files should be displayed -- <filename>20080901a.gif</filename> comes before <filename>20080901b.gif</filename>, for example.</para>
				<para>If no files exist that bear the desired date, stripShow will "step backward" one day at a time until it finds one. For example, if the comic's date is September 1, 2008, and stripShow cannot find a file whose name begins with "20080901", but there is a file called <filename>20080831.gif</filename>, stripShow will display that file. However, stripShow will only step back ten years, to prevent it from getting into an infinite loop.
					<footnote><para>Even this ten-year restriction can greatly decrease performance on some webservers. For best results, ensure that all of your comic posts have at least one comic file associated with them.</para></footnote>
				</para>
			</section>


			<section id="custom-comic-files">
				<title>Custom comic files</title>
				<para>Date-based comic filenames are something of a webcomics tradition, but they have their limitations. What if you want to post two different comics on the same day, for instance?</para>
				<para>Beginning with version 2.0, stripShow can take advantage of WordPress's capability to store custom metadata in each post. If you add a custom field called <literal>comic_file</literal> to a comic post, stripShow will display the file specified rather than a date-based file. Multiple custom fields (all with the same key, <literal>comic_file</literal>) can be used, so multiple files can be associated with the same date.</para>
				<caution>
					<para>Just like date-based comic files, custom files are also displayed in alphabetical order, no matter in what order they're entered into WordPress.</para>
				</caution>
				<para>All posts created using stripShow's <guimenuitem>Add Comic</guimenuitem> page have a <literal>custom_comic</literal> field added automatically.</para>
			</section>
			
			<section id="thumbnail-files">
				<title>Thumbnail files</title>
				<para>stripShow has the ability to automatically scale down comic files for presentation on archive pages. The way it scales these files is governed by settings on the <guimenuitem><link linkend="configuration">stripShow Options</link></guimenuitem> page.</para>
				<para>However, you may wish to have a custom thumbnail image that is not just a smaller version of the whole comic -- a single panel, for instance. To use a custom thumbnail, you should create a folder called <filename>thumbnails</filename> in your comics folder. If stripShow is trying to thumbnailize a particular comic file, it will search in this folder for a file with the same name, and use that file if found.</para>
				<para>For example, if your comics directory is <filename>wp-content/comics/</filename> and the comic file is <filename>2009-10-05.gif</filename>, stripShow will see whether <filename>wp-content/comics/thumbnails/2009-10-05.gif</filename> exists, and use that file if it does.</para>
				<para>At present, there is no way to automatically upload thumbnail files. They will have to be uploaded by hand.</para>
			</section>
		</section>


		<section id="adding-comics">
			<title>Adding Comics</title>
			<para>When creating a comic post in stripShow, you do not need to insert the comics in your post itself; stripShow finds the appropriate comics when it displays the post.</para>
			<para>There are four methods for entering comics: </para>


			<section id="post-traditional">
				<title>The Traditional Method</title>
				<para>Back in the old days of webcomics production on WordPress, the way to get a comic file associated with a blog post was to handle them both separately; you would create a comic file named in your chosen date format (such as <filename>20090213.gif</filename>), then upload it using FTP to your sever. Then you'd go to WordPress's <guimenuitem>Add New</guimenuitem> page and enter a blog post, making sure to set the correct category and date. All in all, a big waste of time.</para>
			</section>


			<section id="add-comics-page">
				<title>The Add Comics Page</title>
				<para>A more convenient way to enter comics into your archive is to use stripShow's <guimenuitem>Add Comics</guimenuitem> page. This page is designed to resemble WordPress's <guimenuitem>Add New</guimenuitem> page, including a rich text editor.</para>
				<screenshot>
					<mediaobject>
						<imageobject role="fo">
							<imagedata fileref="images/stripshow-add-comics.gif" format="GIF" width="5in" align="center"/>
						</imageobject>
						<imageobject role="xhtml">
							<imagedata fileref="images/stripshow-add-comics.gif" format="GIF" width="680px" />
						</imageobject>
					</mediaobject>
				</screenshot>

				<para>From this page, you can enter a title for that day's comic, a blog post to accompany the comic, and upload one or more comic files. You can enter or select tags for your post, just as in the normal WordPress <guimenuitem>Add New</guimenuitem> page. Any posts entered in this fashion wil automatically be assigned the category you've selected for comics on the <guimenuitem>stripShow Options</guimenuitem> page.</para>
				<note><para>Please note the <guibutton>Add another file</guibutton> button next to the upload field. This allows you to upload more than one file at once, but each file will be associated with the <emphasis>same comic post</emphasis> unless you select <guimenuitem>Bulk Import</guimenuitem>.</para></note>


				<section id="bulk-upload">
					<title>Bulk Upload</title>
					<para>More than one comic can be uploaded at once. Selecting <guimenuitem>Bulk Import</guimenuitem> from the <guimenu>Publish</guimenu> box allows you to create a new post for each of the files you're uploading.</para>
					<para>Some restrictions apply. At present, stripShow does not allow you to customize the title or content of the posts you're entering, beyond some basic date-related functions (see <xref linkend="date-replacement"/>, below). Bulk upload can be time-saving or time-consuming, depending on the extent to which you like to have your comics differentiated from one another.</para>
					<para>In addition, because there's no opportunity to specify the post date for each comic you're uploading, the comic files must include, at the beginning of their filename, a date. This date must conform to the date format set in <guimenuitem>stripShow Options</guimenuitem>.</para>
					<para>All files uploaded using this method will be associated with their posts using the <literal>comic_file</literal> metadata (see <xref linkend="custom-comic-files"/>).</para>
					<sidebar id="date-replacement">
					<title>Date Replacement</title>
					<para>To distinguish one bulk-uploaded comic from another, you can enter the comic's date in your title and content by way of a wildcard tag. stripShow looks for the word <literal>date</literal> in curly brackets, followed by a PHP strftime code, like: <literal>{date %A, %B %e, %Y}</literal>, and converts it to the date of the imported comic. That particular example would yield the string <literal>Sunday, February 15, 2009</literal>.</para>
					<para>Note that this code, prior to stripShow 2.1, used the formatting of the PHP <literal>date()</literal> function, and now uses the formatting of the <literal>strftime()</literal> function. This is because <literal>date()</literal> outputs dates only in English, whereas <literal>strftime()</literal> takes your current locale settings into account.</para>
					<para>Additional codes that can be used in this tag can be found in <xref linkend="php-date-codes"/>.</para>
				</sidebar>

				</section>


				<section id="bulk-import">
					<title>Bulk Import</title>
					<para>If you've already uploaded a collection of comic files, stripShow has an option to import them as a group into the WordPress blog.</para>
					<para>This option has the same restrictions as <guimenuitem>Bulk Upload</guimenuitem>. Comics must be named with dates, and no customization of the title or content is possible beyond that mentioned in <xref linkend="date-replacement" />.</para>
					<para>All files found in your comic folder (also specified in <guimenuitem>stripShow Options</guimenuitem>) that have properly-formatted dates in their filenames will be imported, unless that file is already associated with a comic post. Multiple files that begin with the same date will be imported aand attached to one post.</para>
							
				</section>


			</section>
		</section>
		<section id="metadata">
			<title>Comic Metadata</title>
			<para>WordPress gaves us the ability to include custom metadata in posts. stripShow makes use of this metadata in several ways. We've already seen how you can use metadata to specify custom comic files. There are several other custom fields which can be used:</para>
			<variablelist>
				<varlistentry>
					<term>comic_title</term>
					<listitem>
						<para>Anything placed in this field will show up in the <markup>ALT</markup> attribute of your comic images. It is also placed in the <markup>TITLE</markup> attribute, causing this text to appear as a tooltip when the reader hovers over the image with his or her mouse. Some comics (such as <ulink url="http://xkcd.com">xkcd</ulink>) make extensive use of tooltips to provide additional information about the comics. While WordPress-based comics have a whole blog entry to serve that purpose, some may also wish to use tooltips.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>nsfw</term>
					<listitem>
						<para>Not all webcomics are family-friendly, and not all are acceptable at the average workplace. If you decide that one of your comics might be objectionable, and could get someone in trouble if viewed on a work computer, you can cover it with an alternate image. By adding the <literal>nsfw</literal> (<emphasis role="strong">N</emphasis>ot <emphasis role="strong">S</emphasis>afe <emphasis role="strong">F</emphasis>or <emphasis role="strong">W</emphasis>ork) meta field to your comic, you can specify a filename to lay over the comic image. To read the real comic, the reader can click on the cover image. The filename you specify must exist in the same folder as your other comic files.</para>
					</listitem>
				</varlistentry>
			</variablelist>
		</section>
	</chapter>


	<chapter id="storylines">
		<title>Storylines</title>


		<section id="storylines-intro">
			<title>What Are Storylines?</title>
			<para>Often, webcomics are organized in some way -- whether into chapters, volumes, etc. In stripShow, any such organizational unit is called a storyline. A storyline is simply a chronological grouping of comics.</para>
			<para>A powerful feature of stripShow is the ability not only to keep track of which comics belong in which storylines, but also to manage <emphasis>nested</emphasis> storylines. This means that any storyline can contain storylines within it, and those storylines can contain storylines, to a theoretically indefinite level.<footnote><para>"Theoretically" being the operative word here... only a few levels have been tested, and adding too many levels may slow stripShow's performance on your web server.</para></footnote></para>
		</section>


		<section id="storylines-management">
			<title>Managing Storylines</title>
			<para>Storylines in stripShow are managed from your WordPress admin page. Click on <guimenu>Tools</guimenu> in the main menu, then select <guimenuitem>Storylines</guimenuitem>. This takes you to the Storylines management page.</para>
			<figure>
				<title>Storylines Admin Panel</title>
				<mediaobject>
					<imageobject role="fo">
						<imagedata fileref="images/stripshow-storylines.gif" format="GIF" width="5in" align="center"/>
					</imageobject>
					<imageobject role="xhtml">
						<imagedata fileref="images/stripshow-storylines.gif" format="GIF" width="680px" />
					</imageobject>
				</mediaobject>
			</figure>
			<para>On this page, you can create, edit, or delete storylines. Storylines are really very simple to enter -- they have a name and a start date, and perhaps a "parent" storyline (remember, they can be nested). That's it. stripShow automatically orders stories by start date, so you don't have to enter them in any particular order.</para>
			<para>From this same page, you can edit or delete storylines. To edit a storyline, click <guimenuitem>Edit</guimenuitem> on that storyline's row. Its information will appear above. The <guibutton>Add</guibutton> changes to <guibutton>Update</guibutton>. Simply make your changes and hit <guibutton>Update</guibutton> when finished.</para>
			<para>Likewise, you delete a storyline by clicking <guibutton>Delete</guibutton> on that storyline's row. You will be prompted for confirmation, and then the storyline will be deleted. Deleting a storyline does not affect your comics in any way.</para>
		</section>


		<section id="storylines-using">
			<title>Using Storylines</title>
			<para>Storylines can be used in a number of ways. The most common is to create a dropdown menu of all stories using the <function moreinfo="refentry"><link linkend="storyline_dropdown">storyline_dropdown</link></function> template tag. See the <link linkend="template-tags">Template Tags</link> section for additional storyline-related tags.</para>
		</section>
	</chapter>


	<chapter id="transcripts">
		<title>Transcripts</title>
		<para>The vast majority of webcomics are image files, that you've painstakingly created in Photoshop, the GIMP, or something similar. Humans can read the dialogue in your strip, but machines can't. What if you want readers to be able to search for a particular strip by a piece of dialogue?</para>
		<para>stripShow allows you to add transcripts to every post which expose the content of your post to the world of search engines. These transcripts do not appear when viewing the post by default (but can be made to, using <link linkend="template-tags">template tags</link>), but are part of the post for purposes of searching. You can, for example, search for a character's name or piece of dialog using WordPress's built-in search engine (or, if you've enabled notification in WordPress, external blog search engines like <ulink url="http://www.technorati.com">Technorati</ulink>.</para>
		<section id="transcript-markup">
			<title>Adding Transcripts to Posts</title>
			<para>To add a transcript to your blog post, simply type whatever text you normally would into the blog entry, then add your transcript in the following format:</para>
			<example id="transcript-markup-example">
				<title>Transcript Markup</title>
				<programlisting>{{transcript}}
		{{character=Bob}}Hey, how's it going?{{/character}}
		{{character=Jim}}Hey, what's up?{{/character}}
		{{description}}Bob hauls off and decks Jim.{{/description}}
		{{arbitrary}}I just made this tag up. It's just that easy!{{/arbitrary}}
{{/transcript}}</programlisting>
			</example>
			<para>What tags exist in this exciting new markup language? Well, anything you want, really. As you can see, the <literal>character</literal> tag has a parameter -- the character's name, which comes after the equals sign.</para>
		</section>
		<section id="using-transcript-tags">
			<title>Using Transcript Tags</title>
			<para>In your template, you insert a transcript through the use of template tags. The conditional tag <literal><link linkend="has_transcript">has_transcript</link></literal> can be used to ensure that the transcript toggler is only shown if the post itself has a transcript. Transcript tags should only be used inside WordPress's loop.</para>
			<example id="transcript-php">
				<title>Transcript PHP</title>
				<programlisting>&lt;?php 
	if(has_transcript()) { <co id="transcript_co_1" linkends="transcript_co_ex_1"/>
		transcript_toggler(); <co id="transcript_co_2" linkends="transcript_co_ex_2"/>
		the_transcript(); <co id="transcript_co_3" linkends="transcript_co_ex_3"/>
		} 
	?&gt;</programlisting>
				<para>This code consists of three parts:</para>
				<calloutlist>
					<callout arearefs="transcript_co_1" id="transcript_co_ex_1">
						<para>This conditional tag tells stripShow only to display any of the following if there actually <emphasis>is</emphasis> a transcript for this post.</para>
					</callout>
					<callout arearefs="transcript_co_2" id="transcript_co_ex_2">
						<para>This code generates a link that, when clicked, shows or hides the transcript code. By default, the transcript starts out hidden. See <xref linkend="transcript_toggler"/>.</para>
					</callout>
					<callout arearefs="transcript_co_3" id="transcript_co_ex_3">
						<para>This code generates the transcript itself, as an HTML table.  See <xref linkend="transcript_toggler"/>.</para>
					</callout>
				</calloutlist>
			</example>
		</section>
		<section id="transcript-output">
			<title>Transcript Output</title>
			<para>The code in <xref linkend="transcript-markup-example"/> would produce the following HTML:</para>
			<example id="transcript-markup-output">
				<title>Transcript HTML Output</title>
				<programlisting><![CDATA[<table]]><co id="transcriptop_co_1" linkends="transcriptop_co_ex_1"/><![CDATA[ cellpadding="0" cellspacing="0" border="0" class="transcript"]]><co id="transcriptop_co_2" linkends="transcriptop_co_ex_2"/><![CDATA[ id="transcript_comic-for-january-4-2009]]><co id="transcriptop_co_3" linkends="transcriptop_co_ex_3"/><![CDATA[" style="display:none;">
		<tr class="transcript_line">]]><co id="transcriptop_co_4" linkends="transcriptop_co_ex_4"/><![CDATA[
			<td class="transcript_character">Bob</td>]]><co id="transcriptop_co_5" linkends="transcriptop_co_ex_5"/><![CDATA[
			<td class="transcript_dialogue">Hey, how's it going?</td>
		</tr>
		<tr class="transcript_line">
			<td class="transcript_character">Jim</td>
			<td class="transcript_dialogue">Hey, what's up?</td>
		</tr>
		<tr class="transcript_line">
			<td colspan="2" class="transcript_description">Bob hauls off and decks Jim.</td>]]><co id="transcriptop_co_6" linkends="transcriptop_co_ex_6"/><![CDATA[
		</tr>
		<tr class="transcript_line">
			<td colspan="2" class="transcript_arbitrary">I just made this tag up. It's just that easy!</td>]]><co id="transcriptop_co_7" linkends="transcriptop_co_ex_7"/><![CDATA[
		</tr>
	</table>]]></programlisting>
				<calloutlist>
					<callout arearefs="transcriptop_co_1" id="transcriptop_co_ex_1">
						<para>By default, the transcript is displayed as an HTML table.</para>
					</callout>
					<callout arearefs="transcriptop_co_2" id="transcriptop_co_ex_2">
						<para>The entire table is given the CSS class <literal>transcript</literal></para>
					</callout>
					<callout arearefs="transcriptop_co_3" id="transcriptop_co_ex_3">
						<para>The transcript for each post is given a unique CSS ID in the form <literal>transcript_&lt;post slug&gt;</literal>.</para>
					</callout>
					<callout arearefs="transcriptop_co_4" id="transcriptop_co_ex_4">
						<para>Each line in the transcript is given the CSS class <literal>transcript_line</literal>.</para>
					</callout>
					<callout arearefs="transcriptop_co_5" id="transcriptop_co_ex_5">
						<para>Most rows in a transcript table have two columns: one for the character name, the other for the dialogue. These are given CSS classes of <literal>transcript_character</literal> and <literal>transcript_dialogue</literal>, respectively.</para>
					</callout>
					<callout arearefs="transcriptop_co_6" id="transcriptop_co_ex_6">
						<para>A line of description contains only one column, which is given the CSS class <literal>transcript_description</literal>.</para>
					</callout>
					<callout arearefs="transcriptop_co_7" id="transcriptop_co_ex_7">
						<para>If you've put a self-created tag in your transcript markup, this is treated just like description, with one column per row, and given a class name <literal>transcript_&lt;tag name&gt;</literal>. This allows you to create multiple custom tags and style them all differently.</para>
					</callout>
				</calloutlist>
	
			</example>
			<para>As you can see, the output is an HTML <markup>table</markup>. This is the default behavior, but using arguments to the <literal>the_transcript</literal>
			<link linkend="template-tags">template tag</link>, you can change this to use <markup>div</markup>s and <markup>span</markup>s instead. See <xref linkend="the_transcript"/> for details. The same CSS classes are used when the transcript is shown as a <markup>div</markup>.</para>
		</section>
	</chapter>

	<chapter id="theming-stripshow">
		<title>Theming stripShow</title>
		<para>stripShow's powerful organization and comic-entry features are only good for so much. You will also need a means of presenting your comic to the people; you need a theme.</para>
		<section id="example-themes">
			<title>The stripShow Sandbox Theme</title>
			<para>Nearly all webcomics creators will want to have a custom theme for their site. You don't want to run the risk of having a site that looks identical to some other comic out there. But having a solid starting point is essential, which is why stripShow includes a theme framework. Whereas previous versions of stripShow included an example theme which was based on ComicPress, with a lot of my own additions, stripShow 2.0 includes a new theme framework called stripShow Sandbox.</para>
			<para>stripShow Sandbox is, as the name implies, based on Sandbox, one of the best-known theme frameworks for WordPress.<footnote><para>Sandbox has been discontinued; I've added some features found in more recent frameworks, notably <ulink url="http://themeshaper.com/thematic/">Thematic</ulink>.</para></footnote> stripShow Sandbox provides a robust PHP and HTML framework for your pages, which can then be fully styled using CSS.</para>
			<para>stripShow Sandbox can be found in your stripShow installation in the folder <filename>example-themes</filename>. In <xref linkend="installation"/>, I recommended that you copy this theme (renaming it in the process) into your <filename>themes</filename> folder. Keep the original around in case one of the changes you make messes things up beyond repair. Never be afraid to mess things up beyond repair, it's part of what makes web design fun.</para>
			<para>The stripShow Sandbox theme comes with several different layout options. </para>
			<section id="stripshow-sandbox-features">
				<title>Features of stripShow Sandbox</title>
				<itemizedlist>
					<listitem>
						<para>Dropdown navigation menu, linking to all WordPress pages, with support for parent and child pages</para>
					</listitem>
					<listitem>
						<para>Context-aware classes added to <literal>body</literal> and <literal>post</literal> elements.</para>
					</listitem>
					<listitem>
						<para>Four widget-ready areas -- two sidebars, a sidebar just for comics, and a header support area for things like advertisements.</para>
					</listitem>
					<listitem>
						<para>Highly-configurable "action zones" that you can use to add content to your page without touching the core template files.</para>
					</listitem>
					<listitem>
						<para>Works with stripShow's comic-orientation metadata to automatically format your page based on whether the comic is horizontal or vertical in form. This allows you to mix comic shapes in a single archive without sacrificing attractive layout for one or the other.</para>
					</listitem>
				</itemizedlist>
			</section>
		</section>
		
		<section id="stripshow-sandbox-options">
			<title>stripShow Sandbox Options</title>
			<para>The stripShow Sandbox framework includes an options page (<guimenu>Appearance->stripShow Sandbox Options</guimenu> for setting some theme options without any customization of files.</para>
			<variablelist>
				<varlistentry>
					<term>Columns</term>
					<listitem>
						<para>stripShow Sandbox comes with a number of predefined column layouts, in one, two, and three-column flavors, with sidebars on the right, left, or both. Choose which one you prefer, or <literal>None</literal> if you prefer to ignore the built-in column options and create your own in CSS.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Suppress Index Rant</term>
					<listitem>
						<para>By default, stripShow puts the comic's rant on the index page, above your blog. If this option is selected, this will not be displayed. This allows you to use the Rant widget to put it wherever you like.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Suppress Blog Header</term>
					<listitem>
						<para>If you don't wish to have a header denoting where your blog begins on the index page, select this option.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>Suppress Archive Comics</term>
					<listitem>
						<para>If you don't wish to have a header denoting where your blog begins on the index page, select this option.</para>
					</listitem>
				</varlistentry>
			</variablelist>
		</section>
		
		<section id="creating-child-themes">
			<title>Creating Child Themes</title>
			<para>stripShow Sandbox includes some CSS presentation information to illustrate how the various theme elements can be styled. </para>
			<para>Rest assured: the template is not designed to be used on its own. Instead, the theme is designed to be extended through the use of <emphasis>child themes</emphasis>. Child themes are a feature available in WordPress 2.7 and later<footnote><para>The idea of inheritance existed in prior versions, but for what I'm about to discuss, assume 2.7 as a minimum</para></footnote> wherein a full theme can be used as a template (or "parent") to a stripped-down "child" theme that may contain as little as a single <filename>style.css</filename>. The child theme usually transforms the look of the parent theme using nothing more than CSS, but as of WordPress 2.7, child themes can also contain replacements for template files such as <filename>index.php</filename>. If WordPress doesn't find a needed file in the child theme's folder, it uses the one from the parent's. This enables child themes to be quite lightweight.</para>
			<para>One major advantage of using child themes is that, if you merely use CSS to style the existing parent, that parent can be updated without having to search for and merge changes into your theme. Of course, if you add your own PHP files into your child, any changes made to that file by updating the parent will not apply to your theme.</para>
			<para>To create a child theme, you simply create a new folder in <filename>wp-content/themes</filename>, just like any other theme. The only file you need to create within that folder is <filename>styles.css</filename>, but you'll almost certainly want to add your own graphics too, so create an <filename>images</filename> folder as well.</para>
			<figure id="child-theme-layout">
				<title>stripShow Themes Layout</title>
				<mediaobject role="fo">
				  <imageobject>
					<imagedata fileref="images/child-theme-tree.svg/Canvas_1.svg" format="SVG" width="4in" />
				  </imageobject>
				  <imageobject role="html">
					<imagedata fileref="images/child-theme-tree.png" format="PNG" width="563px" />
				  </imageobject>
				</mediaobject>
			</figure>
			<para>Your <filename>style.css</filename>, at its most basic, contains the following</para>
			<example>
				<title><filename>style.css</filename> File for Child Theme</title>
			<programlisting><![CDATA[/*
THEME NAME: My Child Theme
THEME URI: http://www.mygreatwebcomic.com
DESCRIPTION: Child theme based on stripShow Sandbox
VERSION: 1.0
AUTHOR: Joe Webcomic Creator
AUTHOR URI: http://www.mygreatwebcomic.com
TAGS: webcomics,stripShow, sandbox
TEMPLATE: stripshow_sandbox
*/

@import url('../stripshow_sandbox/library/styles/reset.css');
@import url('../stripshow_sandbox/library/styles/layout.css');
@import url('../stripshow_sandbox/library/styles/menu.css');
@import url('../stripshow_sandbox/library/styles/icons.css');
@import url('../stripshow_sandbox/library/styles/typography.css');
@import url('../stripshow_sandbox/library/styles/colors.css');
@import url('../stripshow_sandbox/library/styles/widgets.css');
]]></programlisting>
			</example>
			<para>The only lines in the above example that are mandatory are <literal>THEME NAME</literal> and <literal>TEMPLATE</literal>. These lines tell WordPress what your theme is called, and which theme to use as a parent.</para>
			<para>The above example imports several CSS files directly from the <filename>stripshow_sandbox</filename> folder. These files are:</para>
			<variablelist>
				<varlistentry>
					<term>reset.css</term>
					<listitem>
						<para>Resets all styles to a basic form, to compensate for the differences in browser rendering.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>layout.css</term>
					<listitem>
						<para>Specifies how the page is laid out, where objects go on the page, their margins and padding.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>superfish.css</term>
					<listitem>
						<para>Sets up the main drop-down menu (listing all WordPress pages) that appears at the top of your page. This menu uses the <ulink url="http://users.tpg.com.au/j_birch/plugins/superfish/">Superfish</ulink> CSS menu system.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>icons.css</term>
					<listitem>
						<para>Creates icons for the bookmarks and comic navigation bar (and any other graphical elements that might show up in the parent theme), using graphics found in the <filename>images</filename> folder.</para>
						<note><para>You will probably want to create your own  images rather than using the ones provided. Due to the way CSS works, even if you name your images identically to mine and put them in your child theme's <filename>images</filename> folder, they won't be used. Instead, copy the code from <filename>stripshow_sandbox/icons.css</filename> into your own <filename>style.css</filename>, rather than including it, if you want to change the icons.</para></note>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>typography.css</term>
					<listitem>
						<para>Sets up the font faces and sizes for page elements, as well as styles for lists and other text elements.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>colors.css</term>
					<listitem>
						<para>Sets up the colors of page elements.</para>
					</listitem>
				</varlistentry>
				<varlistentry>
					<term>widgets.css</term>
					<listitem>
						<para>Sets styles for sidebar widgets.</para>
					</listitem>
				</varlistentry>
			</variablelist>
			<para>Any styles set in any of these files can be overridden by putting your own CSS in your <filename>style.css</filename> file. These files are merely examples, and the lines including them can be removed at your option.</para>
			<caution>
				<para>Versions of stripShow prior to 2.1 included an additional CSS file, for laying out columns, in <filename>style.css</filename>. These lines are now deprecated, as the ability to choose your column layout is now found in <guimenuitem>stripShow Sandbox Options</guimenuitem>. If your child theme uses one of the default column layouts (like <filename>3c-b.css</filename>, for example), you should remove that line from your <filename>style.css</filename>.</para>
			</caution>
			<sidebar>
				<title>PHP Files in Child Themes</title>
				<para>With WordPress 2.7 or later, you can also add your own PHP files (such as <filename>index.php</filename>) into your child theme, and those will override the corresponding files in the parent theme. I recommend against doing this unless absolutely necessary, however, as this may make it inconvenient to upgrade to a newer version of the parent theme when it is released. One exception is <filename>functions.php</filename>, which adds to, rather than replacing, the one in the parent. You can create your own functions in this file without having to worry about losing functionality that the parent theme provides.</para>
				</sidebar>
				<section id="using-action-zones">
					<title>Using Action Zones</title>
					<para>Further adding to the customizability of stripShow Sandbox, the templates include several areas, called <emphasis>action zones</emphasis>, which you can use to add elements without touching the template files.</para>
					<para>These action zones are called:</para>
					<variablelist>
						<varlistentry>
							<term>before_header</term>
							<listitem>
								<para>Goes before the <literal>#header</literal> div begins.</para>
							</listitem>
						</varlistentry>
						<varlistentry>
							<term>header_support</term>
							<listitem>
								<para>Goes <emphasis>within</emphasis> the header, <emphasis>after</emphasis> the "branding" section (your site's name and description).</para>
						<para>In addition to the action zone, the Header Support area also has a widget-ready sidebar built into it, intended for use with widgets such as John Bintz's <ulink url="http://wordpress.org/extend/plugins/plugin-wonderful/">Plugin Wonderful</ulink>, which can create widgets based on adboxes you've set up at <ulink url="http://www.projectwonderful.com">ProjectWonderful.com</ulink>.</para>
							</listitem>
						</varlistentry>
						<varlistentry>
							<term>after_menu</term>
							<listitem>
								<para>Goes after the main menu found in the <literal>#access</literal> div ends.</para>
							</listitem>
						</varlistentry>
						<varlistentry>
							<term>after_header</term>
							<listitem>
								<para>Goes after the <literal>#header</literal> div ends.</para>
							</listitem>
						</varlistentry>
						<varlistentry>
							<term>do_comic</term>
							<listitem>
								<para>This action hook tells stripShow to show the comic. This action contains the following other actions:</para>
								<variablelist>
									<varlistentry>
										<term>before_comic</term>
										<listitem>
											<para>Goes right after the <literal>#comic-container</literal> div begins, before your comic is displayed. The stripShow Sandbox theme has a default action for this zone, called <function>comic_header</function>.</para>
										</listitem>
									</varlistentry>
									<varlistentry>
										<term>after_comic</term>
										<listitem>
											<para>Goes after your comic is displayed, before the comic sidebar.</para>
										</listitem>
									</varlistentry>
								</variablelist>
							</listitem>
						</varlistentry>
						<varlistentry>
							<term>before_footer</term>
							<listitem>
								<para>Goes before the <literal>#footer</literal> div begins.</para>
							</listitem>
						</varlistentry>
						<varlistentry>
							<term>after_footer</term>
							<listitem>
								<para>Goes after the <literal>#footer</literal> div ends.</para>
							</listitem>
						</varlistentry>
						<varlistentry>
							<term>comic_archive</term>
							<listitem>
								<para>This action zone is used in the Comic Archive page template. If you make a page based on this template, you could customize the output by removing the default action (the <function>comic_archive_table</function> template tag with no arguments) by removing that default and adding your own. For example, if you wanted to group your archive by years, you could put the following in your cild theme's <filename>functions.php</filename> file:</para>
								<programlisting><![CDATA[remove_action('comic_archive' , 'comic_archive_table');
add_action('comic_archive', 'my_comic_archive');
function my_comic_archive() {
	comic_archive_table($years=TRUE);
	}]]></programlisting>
								<para>In this way, you can have a custom archive page without having to touch the templates in your parent theme.</para>
								<para>See the <function><xref linkend="comic_archive_table"/></function> and <function><xref linkend="comic_archive_list"/></function> template tags in Appendix A for tips on how to customize the output of your archive.</para>

							</listitem>
						</varlistentry>
					</variablelist>
					<para>These action zones use WordPress's built-in <function>add_action</function> command to insert your own content. For example, you could have an advertisement inserted into the header, by putting the following in your child theme's <filename>functions.php</filename> file:</para>
					<example>
						<title>Action Zone Usage</title>
						<programlisting><![CDATA[add_action('header_support', 'ad_space');
function ad_space() {
	echo '<div class="ad-space"><a href="http://www.example.com"><img src="images/ad-for-example.gif" alt="An ad for example.com" width="468" height="60" /></a></div>';
	}]]></programlisting>
					</example>
					<para>For more information on the use of actions in WordPress, see the WordPress Codex entry at <ulink url="http://codex.wordpress.org/Function_Reference/add_action"><literal>http://codex.wordpress.org/Function_Reference/add_action</literal></ulink>.</para>
				</section>
		</section>
	
		<section id="features-for-themes">
			<title>Features for Themes</title>
			<para>stripShow 2.0 introduces, at the plugin level, some features which any theme can take advantage of.</para>
			<section id="archive-page">
				<title>Archive Page</title>
				<para>stripShow's example themes come with a special page template, <filename>comic-archive.php</filename>, that displays a complete listing of every comic in your archive.</para>
				<para>To use this template, simply create a new page in WordPress (<guimenu>Pages</guimenu>-><guimenuitem>Add New</guimenuitem>), give your page a name, and choose <guimenuitem>Comic Archive</guimenuitem> from the <guimenu>Template</guimenu> menu. You don't need to put any text in the body of the page; if you do, it will appear above the archive.</para>
				<para>By default, the archive page uses the <link linkend="comic_archive_table"><function>comic_archive_table</function></link> template tag, but the <filename>comic-archive.php</filename> file can be edited to change this.</para>
			</section>
			<section id="orientation">
				<title>Orientation</title>
				<para>Webcomics come in all shapes. Some are horizontal in nature, some vertical. stripShow Sandbox can distingish between the two, and format the page accordingly.</para>
				<para>stripShow needs a little help to do this, however.<footnote><para>I tried using JavaScript to automatically determine the proper orientation for a given strip without user interaction; it failed miserably. If anyone finds a good solution, let me know.</para></footnote> The custom data field <literal>orientation</literal> controls this behavior. If this field is filled out with <literal>vertical</literal>, the comic is assumed to be taller than it is wide. Otherwise, it will be assumed to be wider than it is tall. stripShow's Add Comics page has a dropdown menu to select the comic's orientation when you post it.</para>
			</section>
			<section id="widgets">
				<title>Widgets</title>
				<para>stripShow includes a handful of widgets that can be incorporated into any widget-aware WordPress theme you may wish to use.</para>
				<para>stripShow even creates a second sidebar, called Comic Sidebar, that you can use if you want to keep your comic widgets separate from your WordPress widgets. Any theme that has been set up to can use this second sidebar.</para>
				<para>The widgets included with stripShow 2.0 are:</para>
				<variablelist>
					<varlistentry>
						<term>Comic Navbar</term>
						<listitem>
							<para>This widget provides a set of navigation links for the first, previous, next, and last comics, as well as a random comic. You can configure this widget to rename or omit any of those five.</para>
						</listitem>
					</varlistentry>
					<varlistentry>
						<term>Comic Calendar</term>
						<listitem>
							<para>This widget is identical to WordPress's own calendar, except that it only shows comics, not blog posts.</para>
						</listitem>
					</varlistentry>
					<varlistentry>
						<term>Storylines</term>
						<listitem>
							<para>This widget includes a storyline dropdown, showing all storylines in your archive, and an informational section showing which storyline is current and where the reader is in that storyline.</para>
						</listitem>
					</varlistentry>
					<varlistentry>
						<term>Comic Rant</term>
						<listitem>
							<para>A rant is simply the text associated with a comic -- the content of your comic post. Examples might be what you were thinking when you drew the comic, or some extra information to give it context.</para>
						</listitem>
					</varlistentry>
					<varlistentry>
						<term>Comic Bookmark</term>
						<listitem>
							<para>It's always a good idea, if you've got a lot of comics in your archive, to give readers the option of bookmarking their place and returning to it later. Since people's browser bookmarks are cluttered enough as it is, stripShow provides a handy means of setting a bookmark at the current comic. The Comic Bookmark widget has three buttons -- one to bookmark the current comic, one to go to a set bookmark, and one to clear the bookmark. These can be styled like any other element.</para>
							<note>
								<para>The Comic Bookmark widget uses JavaScript to set a cookie. The reader's browser must have JavaScript and cookies turned on for this feature to work.</para>
							</note>
						</listitem>
					</varlistentry>
				</variablelist>
			</section>
		</section>
	</chapter>



	<chapter id="faq">
		<title>Frequently Asked Questions</title>
		<qandaset defaultlabel="qanda">
			<qandaentry>
				<question>
					<para>All the screenshots in this document are from WordPress 2.7! Is stripShow compatible with previous versions?</para>
				</question>
				<answer>
					<para>Yes, but the administration panels were designed for 2.7 and may look quite different in older versions. WordPress incorporated so many changes to the layout of administration pages in 2.7 that in order to keep stripShow's admin pages consistent with WordPress's UI, I would have to sacrifice some backwards compatibility.</para>
				</answer>
			</qandaentry>
			<qandaentry>
				<question>
					<para>I can't find stripShow's management pages! Where are they?</para>
				</question>
				<answer>
					<para>stripShow puts its management pages among the other WordPress admin pages, grouped under the proper top-level menus as dictated by the WordPress developers. However, the names of these menus have changed between WordPress versions, which can lead to some confusion. Here are the names of the menus under which you can find stripShow's management pages under different versions of WordPress:</para>
					<informaltable width="5in" id="wordpress-compatibility-table">
						<tgroup cols="4">
							<colspec colname='c1' colwidth="1in" />
							<colspec colname='c2' colwidth="1in" align="center" />
							<colspec colname='c3' colwidth="1in" align="center" />
							<colspec colname='c4' colwidth="1in" align="center" />
							<thead>
								<row rowsep="0">
									<entry morerows="1" rowsep="1" valign="bottom">stripShow page</entry>
									<entry namest="c2" nameend="c4" align="center">WordPress version</entry>
								</row>
								<row>
									<entry colsep="0">2.3 and earlier</entry>
									<entry colsep="0">2.5-2.6</entry>
									<entry>2.7</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry>stripShow Options</entry>
									<entry>Options</entry>
									<entry namest="c3" nameend="c4">Settings</entry>
								</row>
								<row>
									<entry>Add Comics</entry>
									<entry namest="c2" nameend="c3">Write</entry>
									<entry>Posts</entry>
								</row>
								<row>
									<entry>Storylines</entry>
									<entry namest="c2" nameend="c3">Manage</entry>
									<entry>Tools</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</answer>
			</qandaentry>
		</qandaset>
	</chapter>


	<appendix id="template-tags">
		<title>Template Tags</title>
		<para>While the example themes included with stripShow are designed to be easy to customize, it's likely that many people will want to create their own themes or adapt third-party themes to use stripShow features. Any WordPress theme can be converted into a stripShow theme through the addition of template tags.</para>
		<para>These tags are PHP commands; they should be placed into your template files in the form <literal>&lt;?php template_tag()?&gt;</literal>. For example, to use the <command>first_comic</command> tag, you'd insert <literal>&lt;?php first_comic()?&gt;</literal>.</para>
		<para>Many template tags can use additional arguments, which change the behavior of the tags. All of these arguments are optional; the tags themselves are designed to be used without them for simplicity's sake. If you do choose to modify a tag's behavior with arguments, remember that PHP requires that arguments be entered in the exact order they are listed. If you wish to omit an argument but include an argument listed after it, use a set of quotes as a placeholder, like so:</para>
		<informalexample>
			<programlisting><![CDATA[<?php last_comic('Last Comic', '',TRUE); ?>]]></programlisting>
		</informalexample>
		<para>Each tag is shown in action, with example usage coupled with the expected output from each example. The output may be broken into multiple lines to fit the printed page, but in real-world use, most tags produce output without any line breaks.</para>

			<refentry id="first_comic">
				<refmeta><refentrytitle>first_comic</refentrytitle></refmeta>
				<refnamediv>
					<refname>first_comic(<varname>linktext</varname>,<varname>titletext</varname>,<varname>always</varname>)</refname>
					<refpurpose>display a link to the first comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays a link to the first comic in the archive. If the reader is already viewing the first comic, displays nothing.</para>
					<para>The <varname>linktext</varname> argument can contain HTML code, and it's not uncommon to see <markup>&lt;img&gt;</markup> tags used therein, to display arrows. A double arrow pointing left or a single left arrow pointing to a vertical line (<inlinegraphic valign="bottom" scalefit="1" width="10pt" fileref="images/first-arrow-2.svg"/>) for "Previous Comic."</para>
					<para>The <link linkend="indexgoesto">Index Page</link> option on the Options page can modify the behavior of this tag. If this option is set to "First Comic," then this tag points to your index page by default.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example><title>Basic Usage</title>
						<programlisting><![CDATA[<?php first_comic() ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com?p=1" title="First Comic">First Comic</a>]]></programlisting>
					</example>
					<example><title>Advanced Usage</title>
						<programlisting><![CDATA[<?php first_comic('<span class="first"><img src="'.get_bloginfo('stylesheet_directory').'/first-comic.gif" /></span>', 'All the way back',FALSE) ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com?p=1" title="All the way back"><span class="first"><img src="http://www.example.com/wp-content/themes/my-stripshow-theme/images/first-comic.gif" /></span></a>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="first-comic-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>linktext</option></entry>
									<entry>string</entry>
									<entry>First Comic</entry>
									<entry>The text to display in the link.</entry>
								</row>
								<row>
									<entry><option>titletext</option></entry>
									<entry>string</entry>
									<entry>First Comic</entry>
									<entry>Text to place in the link's <literal>TITLE</literal> tag</entry>
								</row>
								<row>
									<entry><option>always</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Display link regardless of whether user is already browsing the first comic</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="previous_comic">
				<refmeta><refentrytitle>previous_comic</refentrytitle></refmeta>
				<refnamediv>
					<refname>previous_comic(<varname>linktext</varname>,<varname>titletext</varname>,<varname>always</varname>)</refname>
					<refpurpose>display a link to the previous comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>Displays a link to the previous comic in the archive. If the reader is already viewing the first comic, displays nothing.</para>
					<para>The <varname>linktext</varname> argument can contain HTML code, and it's not uncommon to see <markup>&lt;img&gt;</markup> tags used therein, to display arrows. A single arrow pointing left is a common symbol for "Previous Comic."</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example><title>Basic Usage</title>
						<programlisting><![CDATA[<?php previous_comic() ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com?p=5" title="Previous Comic">Previous Comic</a>]]></programlisting>
					</example>
					<example><title>Advanced Usage</title>
						<programlisting><![CDATA[<?php previous_comic('<span class="previous"><img src="'.get_bloginfo('stylesheet_directory').'/previous-comic.gif" /></span>', 'Back one',FALSE) ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com?p=5" title="Back one"><span class="previous"><img src="http://www.example.com/wp-content/themes/my-stripshow-theme/images/previous-comic.gif" /></span></a>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="previous-comic-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>linktext</option></entry>
									<entry>string</entry>
									<entry>Previous Comic</entry>
									<entry>The text to display in the link.</entry>
								</row>
								<row>
									<entry><option>titletext</option></entry>
									<entry>string</entry>
									<entry>Previous Comic</entry>
									<entry>Text to place in the link's <literal>TITLE</literal> tag</entry>
								</row>
								<row>
									<entry><option>always</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Display this link regardless of whether user is already browsing the first comic</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="next_comic">
				<refmeta><refentrytitle>next_comic</refentrytitle></refmeta>
				<refnamediv>
					<refname>next_comic(<varname>linktext</varname>,<varname>titletext</varname>,<varname>always</varname>)</refname>
					<refpurpose>display a link to the next comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>Displays a link to the next comic in the archive. If the reader is already viewing the last comic, displays nothing.</para>
					<para>The <varname>linktext</varname> argument can contain HTML code, and it's not uncommon to see <markup>&lt;img&gt;</markup> tags used therein, to display arrows. A single arrow pointing right is a common symbol for "Next Comic."</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example><title>Basic Usage</title>
						<programlisting><![CDATA[<?php next_comic() ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com?p=7" title="Next Comic">Next Comic</a>]]></programlisting>
					</example>
					<example><title>Advanced Usage</title>
						<programlisting><![CDATA[<?php next_comic('<span class="next"><img src="'.get_bloginfo('stylesheet_directory').'/next-comic.gif" /></span>', 'Forward one',FALSE) ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com?p=1" title="Forward one"><span class="next"><img src="http://www.example.com/wp-content/themes/my-stripshow-theme/images/next-comic.gif" /></span></a>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="next-comic-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>linktext</option></entry>
									<entry>string</entry>
									<entry>Next Comic</entry>
									<entry>The text to display in the link.</entry>
								</row>
								<row>
									<entry><option>titletext</option></entry>
									<entry>string</entry>
									<entry>Next Comic</entry>
									<entry>Text to place in the link's <literal>TITLE</literal> tag</entry>
								</row>
								<row>
									<entry><option>always</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Display this link regardless of whether user is already browsing the last comic</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="last_comic">
				<refmeta><refentrytitle>last_comic</refentrytitle></refmeta>
				<refnamediv>
					<refname>last_comic(<varname>linktext</varname>,<varname>titletext</varname>,<varname>always</varname>,<varname>absolute</varname>)</refname>
					<refpurpose>display a link to the last comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>Under normal circumstances, this tag would link to the main index page.</para>
					<para>The <varname>linktext</varname> argument can contain HTML code, and it's not uncommon to see <markup>&lt;img&gt;</markup> tags used therein, to display arrows. A double arrow pointing right or a single right arrow pointing to a vertical line are common symbols for "Last Comic."</para>
					<para>The <link linkend="indexgoesto">Index Page</link> option on the Options page can modify the behavior of this tag. If this option is set to "First Comic," then it will be the first_comic tag that points to the blog's index page, rather than this one.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<?php last_comic() ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com" title="Last Comic">Last Comic</a>]]></programlisting>
					</example>
					<example><title>Advanced Usage</title>
						<programlisting><![CDATA[<?php last_comic('<span class="last"><img src="'.get_bloginfo('stylesheet_directory').'/last-comic.gif" /></span>', 'All the way forward',FALSE,TRUE) ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com?p=10" title="All the way forward"><span class="last"><img src="http://www.example.com/wp-content/themes/my-stripshow-theme/images/last-comic.gif" /></span></a>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="last-comic-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>linktext</option></entry>
									<entry>string</entry>
									<entry>Last Comic</entry>
									<entry>The text to display in the link.</entry>
								</row>
								<row>
									<entry><option>titletext</option></entry>
									<entry>string</entry>
									<entry>Last Comic</entry>
									<entry>Text to place in the link's <literal>TITLE</literal> tag</entry>
								</row>
								<row>
									<entry><option>always</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Display this link regardless of whether user is already browsing the last comic</entry>
								</row>
								<row>
									<entry><option>absolute</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Point this link at the absolute URL of the last comic, rather than the index page</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="random_comic_link">
				<refmeta><refentrytitle>random_comic_link</refentrytitle></refmeta>
				<refnamediv>
					<refname>random_comic_link(<varname>linktext</varname>,<varname>titletext</varname>)</refname>
					<refpurpose>display a like to a random comic.</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>Displays a link to some random comic from your archives. If this tag is used more than once on the same page, they will all point to the same place.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="random-comic-link-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>linktext</option></entry>
									<entry>string</entry>
									<entry>Random Comic</entry>
									<entry>The text to display in the link.</entry>
								</row>
								<row>
									<entry><option>titletext</option></entry>
									<entry>string</entry>
									<entry>Random Comic</entry>
									<entry>Text to place in the link's <literal>TITLE</literal> tag</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="first_comic_url">
				<refmeta>
					<refentrytitle>first_comic_url</refentrytitle>
				</refmeta>
				<refnamediv>
					<refname>first_comic_url()</refname>
					<refpurpose>get the URL of the first comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag returns the URL for the first comic. Nothing is displayed; the comic's URL is simply returned so that it can be used in a PHP function.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<?php echo first_comic_url(); ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[http://www.example.com?p=1]]></programlisting>
					</example>
				</refsect1>
			</refentry>

			<refentry id="previous_comic_url">
				<refmeta>


					<refentrytitle>previous_comic_url</refentrytitle>
				</refmeta>
				<refnamediv>
					<refname>previous_comic_url()</refname>
					<refpurpose>get the URL of the previous comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag returns the URL for the previous comic. Nothing is displayed; the comic's URL is simply returned so that it can be used in a PHP function.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<para>See <xref linkend="first_comic_url"/>.</para>
				</refsect1>
			</refentry>

			<refentry id="next_comic_url">
				<refmeta>


					<refentrytitle>next_comic_url</refentrytitle>
				</refmeta>
				<refnamediv>
					<refname>next_comic_url()</refname>
					<refpurpose>get the URL of the next comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag returns the URL for the next comic. Nothing is displayed; the comic's URL is simply returned so that it can be used in a PHP function.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<para>See <xref linkend="first_comic_url"/>.</para>
				</refsect1>
			</refentry>

			<refentry id="last_comic_url">
				<refmeta>


					<refentrytitle>last_comic_url</refentrytitle>
				</refmeta>
				<refnamediv>
					<refname>last_comic_url()</refname>
					<refpurpose>get the URL of the last comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag returns the URL for the last comic. Nothing is displayed; the comic's URL is simply returned so that it can be used in a PHP function.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<para>See <xref linkend="first_comic_url"/>.</para>
				</refsect1>
			</refentry>

			<refentry id="random_comic_url">
				<refmeta>


					<refentrytitle>random_comic_url</refentrytitle>
				</refmeta>
				<refnamediv>
					<refname>random_comic_url()</refname>
					<refpurpose>get the URL of a random comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag returns the URL for a random comic. Nothing is displayed; the comic's URL is simply returned so that it can be used in a PHP function. If this tag is used more than once on the same page, both instances will return the same URL.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<para>See <xref linkend="first_comic_url"/>.</para>
				</refsect1>
			</refentry>

			<refentry id="show_comic">
				<refmeta><refentrytitle>show_comic</refentrytitle></refmeta>
				<refnamediv>
					<refname>show_comic(<varname>thumbnail</varname>)</refname>
					<refpurpose>display the current comic file(s)</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays the comic files for the day being shown. For comic posts that have one or more <literal>comic_file</literal> custom fields set, those files will be shown. Otherwise, stripShow will search for files matching your chosen date format in your comics directory (see <xref linkend="date-based-filenames"/>).</para>
					<para>What form this takes depends on the format of the files themselves. Image files get displayed via the HTML <markup>&lt;img&gt;</markup> tag, Flash files via the <markup>&lt;object&gt;</markup> tag, and text and HTML files are simply inserted into the page as-is.</para>
					<para>For graphical comic files (such as GIF or JPEG), the <function>show_comic</function> tag automatically determines the image's dimensions in pixels and uses those as arguments to the <markup>&lt;img&gt;</markup> tag. The comic post's title is used as the tag's <markup>title</markup> and <markup>alt</markup> attributes.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<?php show_comic() ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<img height="285px" width="794px" src="http://www.example.com/wp-content/stripshow_comics/20090220.png" alt="Comic for February 20, 2009" title="Comic for February 20, 2009" />]]></programlisting>
					</example>
					<example>
						<title>Advanced Usage</title>
						<programlisting><![CDATA[<?php show_comic(TRUE) ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<img height="143px" width="397px" src="http://www.example.com/wp-content/stripshow_comics/20090220.png" alt="Comic for February 20, 2009" title="Comic for February 20, 2009" />]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="show-comic-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>thumbnail</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Scale the comic down (to the size specified in <link linkend="configuration">stripShow Options</link>) for display</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="show_comic_for_date">
				<refmeta><refentrytitle>show_comic_for_date</refentrytitle></refmeta>
				<refnamediv>
					<refname>show_comic_for_date(<varname>date</varname>,<varname>thumbnail</varname>)</refname>
					<refpurpose>show a particular date's comics</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag is virtually identical to <link linkend="show_comic"><function>show_comic</function></link>, except that instead of showing the comic for the post that is currently being viewed, it shows a comic from a date you specify.</para>
					<para>This is the only template tag that has any mandatory arguments. The <varname>date</varname> argument must be supplied, and can be in any valid PHP date format (see <xref linkend="php-date-codes"/>).</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<?php show_comic_for_date('2009-02-13') ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<img height="285px" width="794px" src="http://www.example.com/wp-content/stripshow_comics/20090213.png" alt="Comic for February 13, 2009" title="Comic for February 13, 2009" />]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="show-comic-for-date-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>date</option></entry>
									<entry>string</entry>
									<entry>none</entry>
									<entry>A date in PHP date format</entry>
								</row>
								<row>
									<entry><option>thumbnail</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Scale the comic down (to the size specified in <link linkend="configuration">stripShow Options</link>) for display</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="show_previous_comics">
				<refmeta><refentrytitle>show_previous_comics</refentrytitle></refmeta>
				<refnamediv>
					<refname>show_previous_comics(<varname>howmany</varname>,<varname>thumbnail</varname>,<varname>before</varname>,<varname>after</varname>,<varname>links</varname>,<varname>order</varname>)</refname>
					<refpurpose>display a series of comics that precede the current comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag shows a series of <varname>howmany</varname> comics (1 by default) that immediately precede the current comic. This tag is of course limited by your archives; if you specify five comics, and there are only four comics preceding the current comics, then only those four would be shown.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<?php show_previous_comics() ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<img height="285px" width="794px" src="http://www.example.com/wp-content/stripshow_comics/20090213.gif" alt="Comic for February 13,2009" title="Comic for February 13,2009" />]]></programlisting>
					</example>
					<example>
						<title>Advanced Usage</title>
						<programlisting><![CDATA[<ul>
<?php show_previous_comics(3,TRUE,'<li>', '</li>') ?>
</ul>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<ul>
<li><img height="143px" width="397px" src="http://www.example.com/wp-content/stripshow_comics/20090213.gif" alt="Comic for February 13,2009" title="Comic for February 13,2009" /></li>
<li><img height="143px" width="397px" src="http://www.example.com/wp-content/stripshow_comics/20090212.gif" alt="Comic for February 12,2009" title="Comic for February 12,2009" /></li>
<li><img height="143px" width="397px" src="http://www.example.com/wp-content/stripshow_comics/20090211.gif" alt="Comic for February 11,2009" title="Comic for February 11,2009" /></li>
</ul>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="show-previous-comics-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>howmany</option></entry>
									<entry>integer</entry>
									<entry><literal>5</literal></entry>
									<entry>The number of comics to display</entry>
								</row>
								<row>
									<entry><option>thumbnail</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Scale comic images to thumbnail size</entry>
								</row>
								<row>
									<entry><option>before</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>A string to display before each comic. A common use might be an HTML tag such as &lt;li&gt;.</entry>
								</row>
								<row>
									<entry><option>after</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>A string to display before each comic. A common use might be an HTML tag such as &lt;/li&gt;.</entry>
								</row>
								<row>
									<entry><option>links</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>If TRUE, will make each comic in the series a clickable link; clicking the link will take the reader to that comic's post page.</entry>
								</row>
								<row>
									<entry><option>order</option></entry>
									<entry>string</entry>
									<entry>DESC</entry>
									<entry>The order in which to display comics; "ASC" for ascending, "DESC" for descending.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="show_next_comics">
				<refmeta><refentrytitle>show_next_comics</refentrytitle></refmeta>
				<refnamediv>
					<refname>show_next_comics(<varname>howmany</varname>,<varname>thumbnail</varname>,<varname>before</varname>,<varname>after</varname>,<varname>links</varname>,<varname>order</varname>)</refname>
					<refpurpose>display a series of comics that follow the current comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag shows a series of <varname>howmany</varname> comics (1 by deafult) that immediately follow the current comic. This tag is of course limited by your archives; if you specify five comics, and there are only four comics following the current comics, then only those four would be shown.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="show-next-comics-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>howmany</option></entry>
									<entry>integer</entry>
									<entry><literal>5</literal></entry>
									<entry>The number of comics to display</entry>
								</row>
								<row>
									<entry><option>thumbnail</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Scale comic images to thumbnail size</entry>
								</row>
								<row>
									<entry><option>before</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>A string to display before each comic. A common use might be an HTML tag such as &lt;li&gt;.</entry>
								</row>
								<row>
									<entry><option>after</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>A string to display before each comic. A common use might be an HTML tag such as &lt;/li&gt;.</entry>
								</row>
								<row>
									<entry><option>links</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>If TRUE, will make each comic in the series a clickable link; clicking the link will take the reader to that comic's post page.</entry>
								</row>
								<row>
									<entry><option>order</option></entry>
									<entry>string</entry>
									<entry>ASC</entry>
									<entry>The order in which to display comics; "ASC" for ascending, "DESC" for descending.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="recent_comics">
				<refmeta><refentrytitle>recent_comics</refentrytitle></refmeta>
				<refnamediv>
					<refname>recent_comics(<varname>howmany</varname>,<varname>before</varname>,<varname>after</varname>)</refname>
					<refpurpose>display a list of the most recent comic posts</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays a list of links to the <varname>howmany</varname> most recent comics (five by default).</para>
					<para>By default, this tag just vomits out a series of links, with nothing to separate them. If you like, you can add <varname>before</varname> and <varname>after</varname> arguments to enclose each list item in HTML tags.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<?php recent_comics(); ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://example.com/?p=222">Comic for January 4, 2009</a>
<a href="http://example.com/?p=218">Comic for January 3rd, 2009</a>
<a href="http://example.com/?p=194">Comic for Friday, January 2nd, 2009</a>
<a href="http://example.com/?p=193">Comic for Thursday, January 1st, 2009</a>
<a href="http://example.com/?p=211">Comic for Monday, December 29th, 2008</a>]]></programlisting>
					</example>
					<example>
						<title>Advanced Usage</title>
						<programlisting><![CDATA[<?php recent_comics(6,'<li>', '</li>'); ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<ol>
	<li><a href="http://example.com/?p=222">Comic for January 4, 2009</a></li>
	<li><a href="http://example.com/?p=218">Comic for January 3rd, 2009</a></li>
	<li><a href="http://example.com/?p=194">Comic for Friday, January 2nd, 2009</a></li>
	<li><a href="http://example.com/?p=193">Comic for Thursday, January 1st, 2009</a></li>
	<li><a href="http://example.com/?p=211">Comic for Monday, December 29th, 2008</a></li>
	<li><a href="http://example.com/?p=210">Comic for Sunday, December 28th, 2008</a></li>
</ol>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="recent-comics-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>howmany</option></entry>
									<entry>integer</entry>
									<entry><literal>5</literal></entry>
									<entry>How many items to show</entry>
								</row>
								<row>
									<entry><option>before</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>Text to display before each comic listed; common use would be an HTML tag such as &lt;li&gt;.</entry>
								</row>
								<row>
									<entry><option>after</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>Text to display after each comic in the list; common use would be an HTML tag such as &lt;/li&gt;.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="recent_noncomics">
				<refmeta><refentrytitle>recent_noncomics</refentrytitle></refmeta>
				<refnamediv>
					<refname>recent_noncomics(<varname>howmany</varname>,<varname>before</varname>,<varname>after</varname>)</refname>
					<refpurpose>display a list of the most recent non-comic blog posts</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag is identical to <link linkend="recent_comics">recent_comics</link> except that it displays a list of links to the most recent non-comic blog posts.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="recent-noncomics-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>howmany</option></entry>
									<entry>integer</entry>
									<entry><literal>5</literal></entry>
									<entry>How many items to show</entry>
								</row>
								<row>
									<entry><option>before</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>Text to display before each item in the list; common use would be an HTML tag such as &lt;li&gt;.</entry>
								</row>
								<row>
									<entry><option>after</option></entry>
									<entry>string</entry>
									<entry></entry>
									<entry>Text to display after each item in the list; common use would be an HTML tag such as &lt;/li&gt;.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="comic_archive_list">
				<refmeta><refentrytitle>comic_archive_list</refentrytitle></refmeta>
				<refnamediv>
					<refname>comic_archive_list(<varname>years</varname>,<varname>format</varname>,<varname>order</varname>)</refname>
					<refpurpose>display a list of all comics in the archive</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>Displays a list (using the HTML <literal>&lt;ul&gt;</literal> tag) of all comics in the archive. Each comic is represented by two elements, each wrapped in a <literal>&lt;span&gt;</literal> tag -- One for the comic's date, one for its title. </para>
					<para>stripShow adds some CSS classes to each element in the list to facilitate styling. The date is given the CSS class <literal>archive_date</literal>, the title is given the class <literal>archive_title</literal>. The list itself is given the class <literal>comic_archive</literal>.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<?dbfo keep-together="auto" ?>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<?php comic_archive_list(); ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<ul class="comic_archive">
	<li>
		<span class="archive_date">January 4, 2009</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=222" rel="bookmark" title="Permanent Link: Comic for January 4, 2009">Comic for January 4, 2009</a></span>
	</li>
	<li>
		<span class="archive_date">January 3, 2009</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=218" rel="bookmark" title="Permanent Link: Comic for January 3rd, 2009">Comic for January 3rd, 2009</a></span>
	</li>
	<li>
		<span class="archive_date">January 2, 2009</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=194" rel="bookmark" title="Permanent Link: Comic for Friday, January 2nd, 2009">Comic for Friday, January 2nd, 2009</a></span>
	</li>
	<li>
		<span class="archive_date">January 1, 2009</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=193" rel="bookmark" title="Permanent Link: Comic for Thursday, January 1st, 2009">Comic for Thursday, January 1st, 2009</a></span>
	</li>
	<li>
		<span class="archive_date">December 29, 2008</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=211" rel="bookmark" title="Permanent Link: Comic for Monday, December 29th, 2008">Comic for Monday, December 29th, 2008</a></span>
	</li>
	<li>
		<span class="archive_date">December 28, 2008</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=210" rel="bookmark" title="Permanent Link: Comic for Sunday, December 28th, 2008">Comic for Sunday, December 28th, 2008</a></span>
	</li>
	<li>
		<span class="archive_date">December 27, 2008</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=202" rel="bookmark" title="Permanent Link: Comic for Saturday, December 27th, 2008">Comic for Saturday, December 27th, 2008</a></span>
	</li>
	<li>
		<span class="archive_date">December 26, 2008</span>
		<span class="archive_title"><a href="http://example.com/wordpress/?p=192" rel="bookmark" title="Permanent Link: Comic for Friday, December 26th, 2008">Comic for Friday, December 26th, 2008</a></span>
	</li>
</ul>
]]></programlisting>
					</example>
					<example>
						<?dbfo keep-together="auto" ?>
						<title>Advanced Usage</title>
						<programlisting><![CDATA[<?php comic_archive_list(TRUE,'Y-m-d', 'ASC'); ?>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<h3>2008</h3>
<ul class="comic_archive">
	<li>
		<span class="archive_date">2008-12-26</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=192" rel="bookmark" title="Permanent Link: Comic for Friday, December 26th, 2008">Comic for Friday, December 26th, 2008</a></span>
	</li>
	<li>
		<span class="archive_date">2008-12-27</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=202" rel="bookmark" title="Permanent Link: Comic for Saturday, December 27th, 2008">Comic for Saturday, December 27th, 2008</a></span>
	</li>
	<li>
		<span class="archive_date">2008-12-28</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=210" rel="bookmark" title="Permanent Link: Comic for Sunday, December 28th, 2008">Comic for Sunday, December 28th, 2008</a></span>
	</li>
	<li>
		<span class="archive_date">2008-12-29</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=211" rel="bookmark" title="Permanent Link: Comic for Monday, December 29th, 2008">Comic for Monday, December 29th, 2008</a></span>
	</li>
	</ul>
	<h3>2009</h3>
	<ul class="comic_archive">
	<li>
		<span class="archive_date">2009-01-01</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=193" rel="bookmark" title="Permanent Link: Comic for Thursday, January 1st, 2009">Comic for Thursday, January 1st, 2009</a></span>
	</li>
	<li>
		<span class="archive_date">2009-01-02</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=194" rel="bookmark" title="Permanent Link: Comic for Friday, January 2nd, 2009">Comic for Friday, January 2nd, 2009</a></span>
	</li>
	<li>
		<span class="archive_date">2009-01-03</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=218" rel="bookmark" title="Permanent Link: Comic for January 3rd, 2009">Comic for January 3rd, 2009</a></span>
	</li>
	<li>
		<span class="archive_date">2009-01-04</span>
		<span class="archive_title"><a href="http://thaleia.local/wordpress/?p=222" rel="bookmark" title="Permanent Link: Comic for January 4, 2009">Comic for January 4, 2009</a></span>
	</li>
</ul>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="comic-archive-list-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>years</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Display the years represented as a header between sets of comics. stripShow uses the <literal>&lt;h3&gt;</literal> tag for this. For example, you will see <markup>&lt;h3&gt;2007&lt;/h3&gt;</markup> before the set of comics from 2007.</entry>
								</row>
								<row>
									<entry><option>format</option></entry>
									<entry>string</entry>
									<entry>F j, Y</entry>
									<entry>The format in which to display each comic's date. This format conforms to the same format as the PHP <literal>date()</literal> function. See <xref linkend="php-date-codes"/></entry>
								</row>
								<row>
									<entry><option>order</option></entry>
									<entry>string</entry>
									<entry>DESC</entry>
									<entry>The order in which to display comics; ASC for ascending, DESC for descending.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="comic_archive_table">
				<refmeta><refentrytitle>comic_archive_table</refentrytitle></refmeta>
				<refnamediv>
					<refname>comic_archive_table(<varname>years</varname>,<varname>format</varname>,<varname>order</varname>)</refname>
					<refpurpose>display a table of all comics in the archive</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays a list (using the HTML <literal>&lt;table&gt;</literal> tag) of all comics in the archive.</para>
					<para>Except for displaying a table instead of an unordered list, this tag is identical in usage to the <link linkend="comic_archive_list"><function>comic_archive_list</function></link> tag. The same CSS classes apply, but to <markup>&lt;table&gt;</markup>, <markup>&lt;tr&gt;</markup>, and <markup>&lt;td&gt;</markup> tags, rather than <markup>&lt;ul&gt;</markup>, <markup>&lt;li&gt;</markup>, and <markup>&lt;span&gt;</markup>.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="comic-archive-table-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>years</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Display the years represented as a header between sets of comics. stripShow uses the <literal>&lt;h3&gt;</literal> tag for this. For example, you will see <literal>&lt;h3&gt;2007&lt;/h3&gt;</literal> before the set of comics from 2007.</entry>
								</row>
								<row>
									<entry><option>format</option></entry>
									<entry>string</entry>
									<entry>F j, Y</entry>
									<entry>The format in which to display each comic's date. This format conforms to the same format as the PHP <literal>date()</literal> function.</entry>
								</row>
								<row>
									<entry><option>order</option></entry>
									<entry>string</entry>
									<entry>DESC</entry>
									<entry>The order in which to display comics; ASC for ascending, DESC for descending.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="comic_calendar">
				<refmeta><refentrytitle>comic_calendar</refentrytitle></refmeta>
				<refnamediv>
					<refname>comic_calendar(<varname>initial</varname>)</refname>
					<refpurpose>display a calendar of comics</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays a calendar of comics. This is actually identical to WordPress's built-in calendar, but only shows comics, not blog posts.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="comic-calendar-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>initial</option></entry>
									<entry>boolean</entry>
									<entry>TRUE</entry>
									<entry>Show day names in header as initials (e.g. "M" for Monday) rather than abbreviations ("Mon").</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="has_transcript">
				<refmeta><refentrytitle>has_transcript</refentrytitle></refmeta>
				<refnamediv>
					<refname>has_transcript(<varname>state</varname>,<varname>text</varname>)</refname>
					<refpurpose>determine whether comic has a transcript</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This is a conditional tag that returns TRUE if the currently-viewed comic has a transcript, FALSE if it doesn't.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<para>For detailed usage information, see <xref linkend="transcripts"/>.</para>
				</refsect1>
			</refentry>


			<refentry id="transcript_toggler">
				<refmeta><refentrytitle>transcript_toggler</refentrytitle></refmeta>
				<refnamediv>
					<refname>transcript_toggler()</refname>
					<refpurpose>display a link that toggles display of comic transcript</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays a link that, when clicked, shows or hides the transcript. By default, the transcript starts off hidden, although parameters to this tag can change that. This tag is one of the few that use JavaScript, so JavaScript must be enabled in the reader's browser in order to work. In addition, this tag must be in the WordPress loop of the same post whose transcript it toggles.</para>
					<para>The toggler link itself is given one of two CSS classes: <literal>toggler_on</literal> when the transcript is being displayed, and <literal>toggler_off</literal> when it is being hidden.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="transcript-toggler-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>state</option></entry>
									<entry>string</entry>
									<entry>hidden</entry>
									<entry>Set to <literal>hidden</literal> if the transcript should start out hidden, <literal>shown</literal> if the transcript should be shown by default</entry>
								</row>
								<row>
									<entry><option>text</option></entry>
									<entry>string</entry>
									<entry>Transcript</entry>
									<entry>Text to display in the link</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>


			<refentry id="the_transcript">
				<refmeta><refentrytitle>the_transcript</refentrytitle></refmeta>
				<refnamediv>
					<refname>the_transcript(<varname>style</varname>)</refname>
					<refpurpose>display the comic's transcript</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>The transcript for a particular comic post. This transcript is wrapped up in an HTML <literal>&lt;table&gt;</literal> that is given an ID of <literal>transcript_&lt;post slug&gt;</literal>; this allows you to style individual transcripts, and lets the <literal>transcript_toggler</literal> tag know which transcript to show or hide.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="the-transcript-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>style</option></entry>
									<entry>string</entry>
									<entry>table</entry>
									<entry>There are two possible styles for transcripts, "table" and "css." The CSS feature uses <markup>&lt;div&gt;</markup> and <markup>&lt;span&gt;</markup> tags to add CSS classes (see <xref linkend="transcripts"/>).</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="storyline_dropdown">
				<refmeta><refentrytitle>storyline_dropdown</refentrytitle></refmeta>
				<refnamediv>
					<refname>storyline_dropdown(<varname>indent</varname>)</refname>
					<refpurpose>display an HTML drop-down menu containing all the storylines in the archive</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag generates a dropdown menu (using the HTML &lt;select&gt; tag) of all your storylines.</para>
					<para>Storylines are shown as nested, with children indented with a hyphen in front of their names. Grandchildren have two hyphens, etc. The hyphen is optional; the tag's sole argument can be used to specify a character to use instead.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="storyline-dropdown-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>indent</option></entry>
									<entry>string</entry>
									<entry>-</entry>
									<entry>The text to prepend to child storylines</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="storyline_list">
				<refmeta><refentrytitle>storyline_list</refentrytitle></refmeta>
				<refnamediv>
					<refname>storyline_list(<varname>parts</varname>,<varname>links</varname>)</refname>
					<refpurpose>display a list of storylines</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>Displays an unordered list of all the storylines in your archive.</para>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="storyline-list-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>parts</option></entry>
									<entry>boolean</entry>
									<entry>FALSE</entry>
									<entry>Show the individual comics that make up this story.</entry>
								</row>
								<row>
									<entry><option>links</option></entry>
									<entry>boolean</entry>
									<entry>TRUE</entry>
									<entry>Show each comic as a link, directing readers to that comic's post page.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="the_story">
				<refmeta><refentrytitle>the_story</refentrytitle></refmeta>
				<refnamediv>
					<refname>the_story()</refname>
					<refpurpose>display the name of the current story</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays the name of the current story.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<div>Current story: <?php the_story() ?></div>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<div>Current story: Story 1</div>]]></programlisting>
					</example>
				</refsect1>
			</refentry>

			<refentry id="storyline_start_url">
				<refmeta><refentrytitle>storyline_start_url</refentrytitle></refmeta>
				<refnamediv>
					<refname>storyline_start_url()</refname>
					<refpurpose>display the URL of the first comic in the current storyline</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays the URL of the first comic in the storyline the currently-viewed strip is in.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<a href="<?php storyline_start_url() ?>">Start of this story</a>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com/?p=5">Start of this story</a>]]></programlisting>
					</example>
				</refsect1>
			</refentry>

			<refentry id="storyline_end_url">
				<refmeta><refentrytitle>storyline_end_url</refentrytitle></refmeta>
				<refnamediv>
					<refname>storyline_end_url()</refname>
					<refpurpose>display the URL of the last comic in the current storyline</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays the URL of the last comic in the storyline the currently-viewed strip is in.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<a href="<?php storyline_end_url() ?>">End of this story</a>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<a href="http://www.example.com/?p=10">End of this story</a>]]></programlisting>
					</example>
				</refsect1>
			</refentry>

			<refentry id="story_part">
				<refmeta><refentrytitle>story_part</refentrytitle></refmeta>
				<refnamediv>
					<refname>story_part</refname>
					<refpurpose>display the current part of the current storyline</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays what part this comic constitutes of the current story. For instance, if the current comic is the first comic in the story, this tag would return <literal>1</literal>.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<programlisting><![CDATA[<span>Part <?php story_part() ?> of <?php story_parts() ?></span>>Start of this story</a>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<span>Part 2 of 10</span>]]></programlisting>
					</example>
				</refsect1>
			</refentry>

			<refentry id="story_parts">
				<refmeta><refentrytitle>story_parts</refentrytitle></refmeta>
				<refnamediv>
					<refname>story_parts(<varname>question</varname>)</refname>
					<refpurpose>display the number of comics in the current story</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>This tag displays the number of comics in the current storyline.</para>
					<para>For storylines that have no end (because they're still in progress, for example), this tag displays a string determined by the <option>unknown</option> argument, a question mark by default.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example>
						<title>Basic Usage</title>
						<para>See <xref linkend="story_part" />.</para>
					</example>
					<example>
						<title>Advanced Usage</title>
						<programlisting><![CDATA[<span>Part <?php story_part() ?> of <?php story_parts('an ongoing story') ?></span>>Start of this story</a>]]></programlisting>
						<para>This would produce the following output:</para>
						<programlisting><![CDATA[<span>Part 2 of an ongoing story</span>]]></programlisting>
					</example>
				</refsect1>
				<refsect1>
					<title>Arguments</title>
					<informaltable width="5in" class="template-tag-arguments" id="story-parts-arguments">
						<tgroup cols="4">
							<colspec colname="argument" colwidth="1.5in" />
							<colspec colname="type" colwidth=".625in" />
							<colspec colname="default" colwidth="1.25in" />
							<colspec colname="description" colwidth="2.5in" />
							<thead>
								<row>
									<entry>argument</entry>
									<entry>type</entry>
									<entry>default</entry>
									<entry>description</entry>
								</row>
							</thead>
							<tbody>
								<row>
									<entry><option>question</option></entry>
									<entry>string</entry>
									<entry>? (question mark)</entry>
									<entry>Text to display if the current storyline has no end and is still in progress.</entry>
								</row>
							</tbody>
						</tgroup>
					</informaltable>
				</refsect1>
			</refentry>

			<refentry id="is_comic">
				<refmeta><refentrytitle>is_comic</refentrytitle></refmeta>
				<refnamediv>
					<refname>is_comic()</refname>
					<refpurpose>determine whether the current post is a comic</refpurpose>
				</refnamediv>
				<refsect1>
					<title>Description</title>
					<para>A conditional tag, which tells whether or not the currently-viewed post is a comic. Returns <literal>TRUE</literal> if it is, <literal>FALSE</literal> if not.</para>
					<para>This tag can be used either inside or outside of the WordPress loop. If used outside, it uses several pieces of information to decide what the "current post" is and whether it is a comic. It will always return <literal>TRUE</literal> on the index page, for example.</para>
				</refsect1>
				<refsect1>
					<title>Usage</title>
					<example><title>Basic Usage</title>
						<programlisting><![CDATA[<?php if (is_comic()) {
	show_comic();
	}
else {
	echo "This is not a comic.";
	}]]></programlisting>
					</example>
				</refsect1>
			</refentry>

</appendix>

	<appendix id="php-date-codes">
		<title>PHP Date Codes</title>
		<para>There are several places in stripShow where a formatted date can be entered. For your convenience, I have here reprinted the list of date codes understood by PHP. This table is taken directly from PHP's online manual at <ulink url="http://us.php.net/manual/en/"><systemitem class="domainname">php.net</systemitem></ulink>.</para>


		<table id="php-date-code-table">
			<title>PHP Date codes</title>
			<tgroup cols="3">
				<colspec colname="c1" colwidth=".75in" align="center" />
				<colspec colname="c2" colwidth="3in"/>
				<colspec colname="c3" colwidth="1.5in" align="left" />
				 <thead>
				  <row>
		
				   <entry>Format
		 character</entry>
		
				   <entry>Description</entry>
				   <entry>Example returned values</entry>
				  </row>
		
				 </thead>
		
				 <tbody class="tbody">
				  <row style="subhead">
				   <entry namest="c1" nameend="c3" align="center">Day</entry>
				  </row>
		
				  <row>
				   <entry><literal>d</literal></entry>
				   <entry>Day of the month, 2 digits with leading zeros</entry>
		
				   <entry>01 to 31</entry>
				  </row>
		
				  <row>
				   <entry><literal>D</literal></entry>
				   <entry>A textual representation of a day, three letters</entry>
		
				   <entry>Mon through Sun</entry>
				  </row>
		
				  <row>
				   <entry><literal>j</literal></entry>
				   <entry>Day of the month without leading zeros</entry>
		
				   <entry>1 to 31</entry>
				  </row>
		
				  <row>
				   <entry><literal>l</literal> (lowercase &#039;L&#039;)</entry>
		
				   <entry>A full textual representation of the day of the week</entry>
				   <entry>Sunday through Saturday</entry>
				  </row>
		
				  <row>
				   <entry><literal>N</literal></entry>
		
				   <entry>ISO-8601 numeric representation of the day of the week (added in
				   PHP 5.1.0)</entry>
				   <entry>1 (for Monday) through 7 (for Sunday)</entry>
				  </row>
		
				  <row>
				   <entry><literal>S</literal></entry>
		
				   <entry>English ordinal suffix for the day of the month, 2 characters</entry>
				   <entry>
					st, nd, rd or
					th.  Works well with j
		
				   </entry>
				  </row>
		
				  <row>
				   <entry><literal>w</literal></entry>
				   <entry>Numeric representation of the day of the week</entry>
				   <entry>0 (for Sunday) through 6 (for Saturday)</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>z</literal></entry>
				   <entry>The day of the year (starting from 0)</entry>
				   <entry>0 through 365</entry>
		
				  </row>
		
				  <row style="subhead">
				   <entry namest="c1" nameend="c3" align="center">Week</entry>
				  </row>
		
				  <row>
				   <entry><literal>W</literal></entry>
				   <entry>ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0)</entry>
				   <entry>Example: 42 (the 42nd week in the year)</entry>
				  </row>
		
				  <row style="subhead">
				   <entry namest="c1" nameend="c3" align="center">Month</entry>
				  </row>
		
				  <row>
				   <entry><literal>F</literal></entry>
		
				   <entry>A full textual representation of a month, such as January or March</entry>
				   <entry>January through December</entry>
				  </row>
		
				  <row>
				   <entry><literal>m</literal></entry>
		
				   <entry>Numeric representation of a month, with leading zeros</entry>
				   <entry>01 through 12</entry>
				  </row>
		
				  <row>
				   <entry><literal>M</literal></entry>
		
				   <entry>A short textual representation of a month, three letters</entry>
				   <entry>Jan through Dec</entry>
				  </row>
		
				  <row>
				   <entry><literal>n</literal></entry>
		
				   <entry>Numeric representation of a month, without leading zeros</entry>
				   <entry>1 through 12</entry>
				  </row>
		
				  <row>
				   <entry><literal>t</literal></entry>
		
				   <entry>Number of days in the given month</entry>
				   <entry>28 through 31</entry>
				  </row>
		
				  <row style="subhead">
				   <entry namest="c1" nameend="c3" align="center">Year</entry>
				  </row>
		
				  <row>
				   <entry><literal>L</literal></entry>
				   <entry>Whether it&#039;s a leap year</entry>
		
				   <entry>1 if it is a leap year, 0 otherwise.</entry>
				  </row>
		
				  <row>
				   <entry><literal>o</literal></entry>
				   <entry>ISO-8601 year number. This has the same value as
					Y, except that if the ISO week number
					(W) belongs to the previous or next year, that year
					is used instead. (added in PHP 5.1.0)</entry>
		
				   <entry>Examples: 1999 or 2003</entry>
				  </row>
		
				  <row>
				   <entry><literal>Y</literal></entry>
				   <entry>A full numeric representation of a year, 4 digits</entry>
		
				   <entry>Examples: 1999 or 2003</entry>
				  </row>
		
				  <row>
				   <entry><literal>y</literal></entry>
				   <entry>A two digit representation of a year</entry>
		
				   <entry>Examples: 99 or 03</entry>
				  </row>
		
				  <row style="subhead">
				   <entry namest="c1" nameend="c3" align="center">Time</entry>
				  </row>
		
				  <row>
				   <entry><literal>a</literal></entry>
				   <entry>Lowercase Ante meridiem and Post meridiem</entry>
				   <entry>am or pm</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>A</literal></entry>
				   <entry>Uppercase Ante meridiem and Post meridiem</entry>
				   <entry>AM or PM</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>B</literal></entry>
				   <entry>Swatch Internet time</entry>
				   <entry>000 through 999</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>g</literal></entry>
				   <entry>12-hour format of an hour without leading zeros</entry>
				   <entry>1 through 12</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>G</literal></entry>
				   <entry>24-hour format of an hour without leading zeros</entry>
				   <entry>0 through 23</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>h</literal></entry>
				   <entry>12-hour format of an hour with leading zeros</entry>
				   <entry>01 through 12</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>H</literal></entry>
				   <entry>24-hour format of an hour with leading zeros</entry>
				   <entry>00 through 23</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>i</literal></entry>
				   <entry>Minutes with leading zeros</entry>
				   <entry>00 to 59</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>s</literal></entry>
				   <entry>Seconds, with leading zeros</entry>
				   <entry>00 through 59</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>u</literal></entry>
				   <entry>Microseconds (added in PHP 5.2.2)</entry>
				   <entry>Example: 54321</entry>
				  </row>
		
				  <row style="subhead">
				   <entry namest="c1" nameend="c3" align="center">Timezone</entry>
				  </row>
		
				  <row>
		
				   <entry><literal>e</literal></entry>
				   <entry>Timezone identifier (added in PHP 5.1.0)</entry>
				   <entry>Examples: UTC, GMT, Atlantic/Azores</entry>
				  </row>
		
				  <row>
				   <entry><literal>I</literal> (capital i)</entry>
				   <entry>Whether or not the date is in daylight saving time</entry>
				   <entry>1 if Daylight Saving Time, 0 otherwise.</entry>
		
				  </row>
		
				  <row>
				   <entry><literal>O</literal></entry>
				   <entry>Difference to Greenwich time (GMT) in hours</entry>
				   <entry>Example: +0200</entry>
				  </row>
		
				  <row>
				   <entry><literal>P</literal></entry>
				   <entry>Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3)</entry>
				   <entry>Example: +02:00</entry>
				  </row>
		
				  <row>
		
				   <entry><literal>T</literal></entry>
				   <entry>Timezone abbreviation</entry>
				   <entry>Examples: EST, MDT ...</entry>
				  </row>
		
				  <row>
				   <entry><literal>Z</literal></entry>
				   <entry>Timezone offset in seconds. The offset for timezones west of UTC is always
				   negative, and for those east of UTC is always positive.</entry>
				   <entry>-43200 through 50400</entry>
				  </row>
		
				  <row style="subhead">
				   <entry namest="c1" nameend="c3" align="center">Full Date/Time</entry>
				  </row>
		
				  <row>
				   <entry><literal>c</literal></entry>
		
				   <entry>ISO 8601 date (added in PHP 5)</entry>
				   <entry>2004-02-12T15:19:21+00:00</entry>
				  </row>
		
				  <row>
				   <entry><literal>r</literal></entry>
				   <entry><ulink url="http://www.faqs.org/rfcs/rfc2822">&raquo; RFC 2822</ulink> formatted date</entry>
		
				   <entry>Example: Thu, 21 Dec 2000 16:01:07 +0200</entry>
				  </row>
		
				  <row>
				   <entry><literal>U</literal></entry>
				   <entry>Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)</entry>
				   <entry>See also <ulink url="http://us2.php.net/manual/en/function.time.php">time()</ulink></entry>
		
				  </row>
		
				 </tbody>
				</tgroup>
		</table>
		
	</appendix>
</book>
