How to Create a Module Page

= Overview =

Each VASSAL module has its own page in the Modules namespace here on the VASSAL Wiki. There are four steps to creating a module page:


 * 1) Start a new page for the module.
 * 2) Copy the module page template to your new module page.
 * 3) Fill in the details for your module.
 * 4) Upload your module.

This tutorial will walk you through each step.

''Please note that many of the steps described here require you to be logged in to the site to do them. If you are following the tutorial but are not logged in, log in now.''

= Start a new page =

There are several ways to start a new page; the most straightforward one is to type "Module:", followed by the name of the game for which you are creating a module, in the wiki's search box on the left. Then click the "Go" button. (Note: The "Module:" preceding the name of the game is a namespace. Namespaces help separate types of content in our wiki.)

This will take you to a "Search results" page. If there really is no page for your module, you'll see the link "create this page", circled in green in the screenshot below.

After clicking the link, you will be taken to a page where you can begin editing.

Proceed to the next section, where we will begin to fill in the module page.

= Copy the module page template =

All VASSAL module pages follow a set style in order to make it easy for users to locate the information they need and to give our module pages a uniform appearance. Creating a module page from scratch is a fair amount of typing, so we provide a template for you to copy:

Files

 * }

Players

 * someguy@example.com@Some Guy

Select the template text and paste it into the text area on the editing page. Then, click the "Show Preview" button below the editing area.

You should now see a skeletal version of your module page previewed above the editing area. Proceed to the next section, where we will describe what each element in the template does and how to fill in the details for your module.

= Fill in Your Module Details =

In this section, we will walk you through adding the information for your module to the module page template. We will make frequent use of wiki markup. For more details on wiki markup see Help:Formatting.

Module pages are divided into sections marked by level-2 headings:. (Level-2 headings correspond to the  element in HTML.) If you look at the module page template, you'll see headings for "Files", "Module Information", "Screen Shots", and "Players":

 

== Files ==




 * }

== Module Information == 

== Screen Shots == 

== Players == 
 * someguy@example.com@Some Guy

These headings divide the module page into sections. Above the "Files" section is the markup which produces an information box for your module.

The Module Information Box
Here we will look at the module information box one piece at a time. The module information box is produced by a MediaWiki template. Templates define text which will be included into a page when it is rendered. The syntax for templates is, where Name is the name of the template, arg1 to argn are named arguments, and val1 to valn are the values of those arguments. Argument-value pairs are separated from the template name and from each other by the pipe character (" ").

The template which produces the module information box is called, and takes the following arguments:


 * the name of the image to display, image to be no taller than 150 pixels
 * the name of the image to display, image to be no taller than 150 pixels


 * the publisher of the game Publisher examples
 * the publisher of the game Publisher examples


 * the year the game was published
 * the year the game was published


 * the historical era the game covers, if applicable. Era examples
 * the historical era the game covers, if applicable. Era examples


 * the topic the game covers, if applicable. Topic examples
 * the topic the game covers, if applicable. Topic examples


 * the series the game is part of, if applicable
 * the series the game is part of, if applicable


 * the scale of the game, if applicable. Scale examples
 * the scale of the game, if applicable. Scale examples


 * the number of players the game accomodates
 * the number of players the game accomodates


 * the length of the game
 * the length of the game

Now, an example: The module for The Longest Day uses this code

which produces this info box:



Notice that the series isn't specified here;  is an optional argument, since not every game is part of a series. The  template automatically adds your module page to the Modules category, as well as the categories for the game's publisher, era, and topic.

The Files Section
This section of the module page contains the table listing files available for download. The code for this section consists of four parts, seen here:


 * }

The parts:


 * 1) The   template creates the table header.
 * 2) The   template creates a table row which specifies the module version for the files appearing in subsequent rows.
 * 3) The   template creates a row containing information about a file and a link for downloading it.
 * 4) The final   ends the table.

An example: The following code


 * }

produces this table of files:


 * }

The parameters for  are described here:


 * filename
 * the name of the file


 * description
 * a description of the file


 * date
 * the release date of the file, formatted as YYYY-MM-DD


 * size
 * the size of the file


 * compatibility
 * the versions of VASSAL this file is compatible with

If a file is not already uploaded, then you'll see a red link in the row in the file table corresponding to that file. You can use this link to upload your file, as we will see in the final section of this tutorial.

The Module Information Section
This section of the module page contains important information about the module. At the top of this section, you will find the  template, where the names and email addresses of the module maintainer(s) and contributors are listed. This code

produces this listing:

Email addresses are listed using the  template. The first argument of this template is the email address, while the second (optional) argument is the text to display for the link. The  template ensures that email addresses are shown only to users who are logged in to the wiki.

Below the  is an appropriate place to display other important information about the module.

The Screen Shots Section
This section contains a gallery of screen shots of the module in action. To add an image to the screen shot gallery, add the name of the image on a new line between the  tags, one image name per line:

For full details on how image galleries work in this wiki, see the gallery documentation.

FIXME: Describe how to upload images.

The Players Section
This section contains a listing of people interested in playing this game. Email addresses are specified as in the the Module Information section. The following code


 * someguy@example.com@Some Guy
 * s.o.guy@example.com@Some Other Guy
 * y.a.guy@example.com@Yet Another Guy

produces this:


 * someguy@example.com@Some Guy
 * s.o.guy@example.com@Some Other Guy
 * y.a.guy@example.com@Yet Another Guy

Each email address is an item in a bullet list.

= Upload Your Module =

If you've added an entry for your module in the Files section of your module page, then you should see a red link in that row. To upload the file corresponding to that link, simply click the link. Doing so will take you to an upload page where you can upload your file. To see an example of such an upload page, follow this link: [[media:DoesNotExist.vmod|DoesNotExist.vmod]]. Note: Please do not upload a file with this name&mdash;that will ruin the example.

If you are uploading a new version of a module, please do not overwrite an existing version. Give your new version its own version number and put that version number in the filename. This will help users tell which version of your module they're using.