Docs:Course Structure/Theme

From DevWiki
Jump to navigation Jump to search
IMPORTANT: This page contains specification information. You should read it carefully, and periodically verify that your work conforms to the specification if appropriate.


Each theme in your material should have its own Theme page, linked from the Themes section of the CourseData page. The Theme page contains links to the modules that form the content of the theme, and metadata describing the modules and their interrelationships. You may add sections other than those listed in the Required sections below, but they will be ignored by the export tool and processor.

Required sections

Each Theme page must contain a number of 'sections'. The start of each section is a level two title (== ... ==) containing the name of the section, followed by the content of the section. A section ends at the next section title, or the end of the page, whichever is encountered first. The required sections are listed below - you may create additional sections if you want, but they will be ignored by the export tools:

Modules section

The modules that form the contents of the theme should be listed in the Modules section. The section starts with a level 2 header called Modules, followed by a list of links to modules in the theme, one module link per line.

Example Modules section

== Modules ==
[[NS:Module name a]]<br />
[[NS:Module name b]]<br />
...etc...

Metadata section

The Metadata section contains theme-level metadata (which describes the relationships between modules in the theme, and other vital information.) It should start with a level 2 header called Metadata, followed by the metadata for the theme enclosed in <source> elements.

IMPORTANT NOTE: in the metadata, the <module> title attributes MUST match the page names for the modules (excluding the namespace) exactly, including case sensitivity, as the export tool uses the module name attribute to determine the directory to save steps to, and it chooses the module page based on the title matching a page in the wiki. So, for example, if a theme contains a red module

[[NS:Taking over The World]]

Then the metadata must contain the module element

<module title="Taking over The World" name="plan_x" level="red" indexorder="12">
...
</module>

and the contents of the 'NS:Taking over The World' page will be saved into the plan_x directory. For more on theme metadata, please see the metadata documentation.

Example Metadata section

== Metadata ===
<source lang="xml" style="emacs">
<theme name="java_c" title="Java to C" indexorder="1">
    ... metadata...
</theme>
</source>

Layout example

The suggested layout for a Theme page is (replacing NS with the namespace of your course):

== Modules ==
[[NS:module]]<br/> 
[[NS:module]]<br/> 
[[NS:module]]<br/> 

== Metadata ==
<source lang="xml" style="emacs">
<theme name="dir_name" title="Theme name" indexorder="">
...metadata...
</theme>
</source>

<noinclude>{{NS:CourseNav}}</noinclude>

This includes the two required sections, and a special <noinclude>{{NS:CourseNav}}</noinclude> line at the end of the page: this line will make your course's navigation block appear at the bottom of the Theme page, and it should appear at the bottom of every page in your course material (for more about this, see the CourseNav documentation.)

For a complete example of a Theme page, see C:Information Representation