Every page in an HTML disassembly is built from a single full-page template and several subtemplates defined by [Template:*] sections in the ref file.
A template may contain ‘replacement fields’ - identifiers enclosed by braces ({ and }) - that are replaced by appropriate content (typically derived from the skool file or a ref file section) when the template is formatted. The following ‘universal’ identifiers are available in every template:
The parameters in the SkoolKit dictionary are:
The parameters in a dictionary are accessed using the [param] notation; for example, wherever {Game[Copyright]} appears in a template, it is replaced by the value of the Copyright parameter in the [Game] section when the template is formatted.
In addition to the universal identifiers, the following page-level identifiers are available in every full-page template:
The Asm template is the full-page template that is used to build disassembly pages.
The following identifiers are available (in addition to the universal and page-level identifiers):
The parameters in the prev_entry, entry and next_entry dictionaries are:
The entry dictionary also contains the following parameters:
To see the default Asm template, run the following command:
$ skool2html.py -r Template:Asm$
The AsmAllInOne template is a full-page template that may be used to build a disassembly on a single page (by setting the AsmSinglePageTemplate parameter in the [Game] section).
The following identifier is available (in addition to the universal and page-level identifiers):
To see the default AsmAllInOne template, run the following command:
$ skool2html.py -r Template:AsmAllInOne
New in version 5.3.
The GameIndex template is the full-page template that is used to build the disassembly index page.
The following identifier is available (in addition to the universal and page-level identifiers):
To see the default GameIndex template, run the following command:
$ skool2html.py -r Template:GameIndex
The MemoryMap template is the full-page template that is used to build memory map pages and the ‘Game status buffer’ page.
The following identifiers are available (in addition to the universal and page-level identifiers):
To see the default MemoryMap template, run the following command:
$ skool2html.py -r Template:MemoryMap
The Page template is the full-page template that is used to build custom non-box pages defined by [Page:*] sections.
The following identifier is available (in addition to the universal and page-level identifiers):
To see the default Page template, run the following command:
$ skool2html.py -r Template:Page
The Reference template is the full-page template that is used to build box pages.
The following identifiers are available (in addition to the universal and page-level identifiers):
To see the default Reference template, run the following command:
$ skool2html.py -r Template:Reference
The anchor template is the subtemplate used to format a page anchor (by default, a <span> element with an id attribute).
The following identifier is available (in addition to the universal identifiers):
To see the default anchor template, run the following command:
$ skool2html.py -r Template:anchor
The asm_comment template is the subtemplate used by the Asm full-page template and the asm_entry subtemplate to format block start comments, mid-block comments and block end comments.
The following identifiers are available (in addition to the universal identifiers):
To see the default asm_comment template, run the following command:
$ skool2html.py -r Template:asm_comment
The asm_entry template is the subtemplate used by the AsmAllInOne full-page template to format the disassembly of a memory map entry.
The following identifiers are available (in addition to the universal identifiers):
To see the default asm_entry template, run the following command:
$ skool2html.py -r Template:asm_entry
New in version 5.3.
The asm_instruction template is the subtemplate used by the Asm full-page template and the asm_entry subtemplate to format an instruction (including its label, address, operation and comment).
The following identifiers are available (in addition to the universal identifiers):
To see the default asm_instruction template, run the following command:
$ skool2html.py -r Template:asm_instruction
The asm_register template is the subtemplate used by the Asm full-page template and the asm_entry subtemplate to format each row in a table of input register values or output register values.
The following identifiers are available (in addition to the universal identifiers):
To see the default asm_register template, run the following command:
$ skool2html.py -r Template:asm_register
The contents_list_item template is the subtemplate used by the Reference full-page template to format each item in the contents list on a box page.
The following identifiers are available (in addition to the universal identifiers):
To see the default contents_list_item template, run the following command:
$ skool2html.py -r Template:contents_list_item
The img template is the subtemplate used to format <img> elements.
The following identifiers are available (in addition to the universal identifiers):
To see the default img template, run the following command:
$ skool2html.py -r Template:img
The index_section template is the subtemplate used by the GameIndex full-page template to format each group of links on the disassembly index page.
The following identifiers are available (in addition to the universal identifiers):
To see the default index_section template, run the following command:
$ skool2html.py -r Template:index_section$
The index_section_item template is the subtemplate used by the index_section subtemplate to format each link in a link group on the disassembly index page.
The following identifiers are available (in addition to the universal identifiers):
To see the default index_section_item template, run the following command:
$ skool2html.py -r Template:index_section_item
The javascript template is the subtemplate used by the full-page templates to format each <script> element in the head of a page.
The following identifier is available (in addition to the universal identifiers):
To see the default javascript template, run the following command:
$ skool2html.py -r Template:javascript
The link template is the subtemplate used to format the hyperlinks created by the #LINK and #R macros, and the hyperlinks in instruction operands on disassembly pages.
The following identifiers are available (in addition to the universal identifiers):
To see the default link template, run the following command:
$ skool2html.py -r Template:link
The list template is used by the #LIST macro to format a list.
The following identifiers are available (in addition to the universal identifiers):
To see the default list template, run the following command:
$ skool2html.py -r Template:list$
New in version 4.2.
The list_entry is the subtemplate used by the Reference full-page template to format each entry on a box page whose SectionType is BulletPoints or ListItems.
The following identifiers are available (in addition to the universal identifiers):
To see the default list_entry template, run the following command:
$ skool2html.py -r Template:list_entry
Changed in version 6.0: The name of this template changed from changelog_entry to list_entry; accordingly, the name of the t_changelog_item_list identifier changed to t_list_items.
The list_item template is the subtemplate used by the list template and the list_items subtemplate to format each item in the list.
The following identifier is available (in addition to the universal identifiers):
To see the default list_item template, run the following command:
$ skool2html.py -r Template:list_item$
New in version 4.2.
The list_items template is the subtemplate used by the list_entry subtemplate to format a list of items in an entry on a box page whose SectionType is BulletPoints or ListItems, and also by the list_item subtemplate to format a list of subitems or subsubitems etc.
The following identifiers are available (in addition to the universal identifiers):
To see the default list_items template, run the following command:
$ skool2html.py -r Template:list_items
Changed in version 6.0: The name of this template changed from changelog_item_list to list_items; accordingly, the name of the m_changelog_item identifier changed to m_list_item.
The map_entry template is the subtemplate used by the MemoryMap full-page template to format each entry on the memory map pages and the ‘Game status buffer’ page.
The following identifiers are available (in addition to the universal identifiers):
The parameters in the entry dictionary are:
To see the default map_entry template, run the following command:
$ skool2html.py -r Template:map_entry
The paragraph template is the subtemplate used to format each paragraph in the following items:
The following identifier is available (in addition to the universal identifiers):
To see the default paragraph template, run the following command:
$ skool2html.py -r Template:paragraph
The reference_entry template is the subtemplate used by the Reference full-page template to format each entry on a box page that has a default SectionType.
The following identifiers are available (in addition to the universal identifiers):
To see the default reference_entry template, run the following command:
$ skool2html.py -r Template:reference_entry
The reg template is the subtemplate used by the #REG macro to format a register name.
The following identifier is available (in addition to the universal identifiers):
To see the default reg template, run the following command:
$ skool2html.py -r Template:reg
The stylesheet template is the subtemplate used by the full-page templates to format each <link> element for a CSS file in the head of a page.
The following identifier is available (in addition to the universal identifiers):
To see the default stylesheet template, run the following command:
$ skool2html.py -r Template:stylesheet
The table template is used by the #TABLE macro to format a table.
The following identifiers are available (in addition to the universal identifiers):
To see the default table template, run the following command:
$ skool2html.py -r Template:table$
New in version 4.2.
The table_cell template is the subtemplate used by the table_row template to format each non-header cell in the table row.
The following identifiers are available (in addition to the universal identifiers):
To see the default table_cell template, run the following command:
$ skool2html.py -r Template:table_cell
New in version 4.2.
The table_header_cell template is the subtemplate used by the table_row template to format each header cell in the table row.
The following identifiers are available (in addition to the universal identifiers):
To see the default table_header_cell template, run the following command:
$ skool2html.py -r Template:table_header_cell
New in version 4.2.
The table_row template is the subtemplate used by the table template to format each row in the table.
The following identifier is available (in addition to the universal identifiers):
To see the default table_row template, run the following command:
$ skool2html.py -r Template:table_row
New in version 4.2.
When SkoolKit builds an HTML page, it uses the template whose name matches the page ID (PageID) if it exists, or one of the stock page-level templates otherwise. For example, when building the RoutinesMap memory map page, SkoolKit uses the RoutinesMap template if it exists, or the stock MemoryMap template otherwise.
Page type | Preferred template | Stock template |
---|---|---|
Home (index) | GameIndex | GameIndex |
Other code index | CodeID-Index | MemoryMap |
Routine/data block | [CodeID-]Asm-* | Asm |
Disassembly (single page) | [CodeID-]AsmSinglePage | AsmAllInOne |
Memory map | PageID | MemoryMap |
Box page | PageID | Reference |
Custom page (non-box) | PageID | Page |
When SkoolKit builds an element of an HTML page whose format is defined by a subtemplate, it uses the subtemplate whose name starts with PageID- if it exists, or one of the stock subtemplates otherwise. For example, when building the footer of the Changelog page, SkoolKit uses the Changelog-footer template if it exists, or the stock footer template otherwise.
Element type | Preferred template | Stock subtemplate |
---|---|---|
Registers table | [CodeID-]Asm-*-asm_register | asm_register |
Routine/data block comment | [CodeID-]Asm-*-asm_comment | asm_comment |
Instruction | [CodeID-]Asm-*-asm_instruction | asm_instruction |
Single-page disassembly routine/data block | [CodeID-]AsmSinglePage-asm_entry | asm_entry |
Box page entry (paragraphs) | PageID-entry | reference_entry |
Box page entry (list items) | PageID-entry | list_entry |
Box page entry list | PageID-item_list | list_items |
Box page entry list item | PageID-list_item | list_item |
Box page contents list item | PageID-contents_list_item | contents_list_item |
Paragraph on a routine/data block page, box page or memory map page | PageID-paragraph | paragraph |
Entry on a memory map page | PageID-map_entry | map_entry |
<link> element for a CSS file | PageID-stylesheet | stylesheet |
<script> element | PageID-javascript | javascript |
<img> element | PageID-img | img |
Hyperlink | PageID-link | link |
Page anchor | PageID-anchor | anchor |
Page footer | PageID-footer | footer |
Register name rendered by the #REG macro | PageID-reg | reg |
List created by the #LIST macro | PageID-list | list |
PageID-list_item | list_item | |
Table created by the #TABLE macro | PageID-table | table |
PageID-table_row | table_row | |
PageID-table_header_cell | table_header_cell | |
PageID-table_cell | table_cell |
Wherever Asm-* appears in the tables above, it means one of Asm-b, Asm-c, Asm-g, Asm-s, Asm-t, Asm-u or Asm-w, depending on the type of code or data block.