Difference between revisions of "Help:Templates"

From RimWorld Wiki
Jump to navigation Jump to search
m
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
''MediaWiki Help article: [https://www.mediawiki.org/wiki/Help:Templates Help:Templates]''
+
{{navbar help}}
==Using Templates==
 
===Summary===
 
Templates are to improve wiki efficiency by allowing editors to write less on pages by transcluding these preset templates. For example, if you type <code><nowiki>{{Stub}}</nowiki></code> this shows on the page:
 
  
{{rwbox|nocat=true|type=notice|text=''This is a '''[[:Category:Page Stub|Stub]]''' page. You can help {{SITENAME}} by '''[{{fullurl:{{#titleparts:{{FULLPAGENAME}}|1}}|action=edit}} expanding it]'''.}}
+
{{Ambox
 +
|type=For a list of all the templates on the RimWorld Wiki, see [https://rimworldwiki.com/wiki/Special:AllPages?from=&to=&namespace=10 this list].
 +
|border=yellow
 +
|style=font-size:80%
 +
}}
 +
<br/>
  
In a nutshell, templates save up space and create consistency.
+
At their most basic, '''templates''' are basically just wiki pages whose content may be pulled into other pages. In other words, all the content you see when viewing a page may not actually be in the page source. Some or even all of it may be in templates.
  
===Parameters===
+
Two very common types of templates are shown here as examples:
Some templates take parameters. For instance, [[Template:Asof]] takes a value from A1 to the current alpha version.<br />
+
* To the right, there is an example of an "infobox" template. Nearly every wiki provides at least one of these.
'''Example:'''
+
* Below, there is an example of a navigation template called a "navbox" - typically used at the bottom of pages.
<pre>{{Asof|A16}} luciferium can heal scars.</pre>
+
{{Navbar example}}
'''Result:'''<br />
+
<!-- Infobox should be higher on the page, but the navbar mucks it up -->
{{Asof|A16}} luciferium can heal scars.
+
{{Infobox example
 +
| name    = Phoebe
 +
| image    = Phoebe friendly.png
 +
| race    = Human
 +
| location = RimWorld
 +
| source  = Tynan's inner circle
 +
| reward  = Happiness
 +
| related  = Calming bliss
 +
| ID      = Phoebe_ID
 +
}}
  
Templates like [[Template:Impressive]] take special parameters. The way to use them is to type the pipe (|) symbol, followed by the parameter name an equals (=) sign, and then the value.<br />
+
Speaking generally, a template is any wiki page whose content is designed to be [[wikipedia:Wikipedia:Transclusion|transcluded]] (embedded) inside other pages. Templates follow a convention that the name is prefixed with <code>Template:</code>, assigning it to that [[wikipedia:Wikipedia:Namespace|namespace]].
'''Example:'''
 
<pre>{{Impressive
 
|title=Demo
 
}}</pre>
 
'''Result:'''
 
{{rwbox|nocat=true|type=notice|text=''This is an '''[[:Category:Impressive|Impressive]]''' page, and is giving a <span style=color:green>+3</span> positive [[thoughts#Rec Room|thought]] to all [[colonist|colonists]] viewing this page. Please consider leaving the page as is, or decorating this page with [[sculptures]]. The impressiveness of this page at the moment is <b style="color:green">{{#expr:({{#time:s}}/4+95)round 0}}</b>. It has also been deemed the title: '''Demo'''. }}
 
  
==Creating a template==
+
== Templates in the page source ==
===Basics===
+
When editing wiki pages, it is likely you might encounter something like this:
 +
 +
<nowiki>{{navbar example}}</nowiki>
  
===Parameters===
+
Or perhaps something more complex like this:
[[Category:Help pages]]
+
 +
<nowiki>{{Infobox example
 +
| name    = Phoebe
 +
| image    = Phoebe friendly.png
 +
| race    = Human
 +
| location = RimWorld
 +
| source  = Tynan's inner circle
 +
| reward  = Happiness
 +
| related  = Calming bliss
 +
| ID      = Phoebe_ID
 +
}}
 +
</nowiki>
 +
 
 +
These are examples of templates being used on these wiki pages. The first is using <nowiki>[[Template:navbar example]]</nowiki>, the second is using <nowiki>[[Template:Infobox example]]</nowiki>. The double curly brackets, <code>{{</code> and <code>}}</code> usually mean that a template is being used there, but unfortunately, double curly brackets also have other uses in wikitext, which can cause some confusion.
 +
 
 +
=== How to tell if it's a template ===
 +
Let's look at our examples above again.
 +
 
 +
<nowiki>{{Infobox example
 +
| name    = Phoebe
 +
| image    = Phoebe friendly.png
 +
| race    = Human
 +
| location = RimWorld
 +
| source  = Tynan's inner circle
 +
| reward  = Happiness
 +
| related  = Calming bliss
 +
| ID      = Phoebe_ID
 +
}}
 +
</nowiki>
 +
 
 +
In this case, we have a definite clue because the first thing after the name other than just space is a pipe character: (<code>|</code>). This is definitely a template. If it were a colon instead, (<code>:</code>), then it would not be a template, but some kind of [[Wikipedia:Help:Magic words|magic word]].
 +
 
 +
<nowiki>{{navbar example}}</nowiki>
 +
 
 +
Unfortunately, this one doesn't offer any definite clues right off the bat. If you aren't sure, there are a few ways to make a pretty good guess:
 +
* One clue that it is a template is that it ''isn't'' in all capital letters. Virtually all magic words that don't require a colon are typed in all caps.
 +
* To be sure, when editing a page, you should see "Templates used on this page" at the bottom of the screen under the "{{int:savearticle}}" and other buttons. If it's listed there, it's definitely a template.
 +
* If it isn't a documented [[Wikipedia:Help:Magic words|magic word]], it's almost certainly a template.
 +
 
 +
== Basic transclusion ==
 +
Transclusion is by far the most common way to use templates.
 +
 
 +
* <code><nowiki>{{Name}}</nowiki></code> — as described above, this link will be dynamically replaced by the current content of <nowiki>[[Template:Name]]</nowiki> at the time the page with the template link is loaded. The page's source will be unchanged.
 +
 
 +
In fact, an ordinary wiki page can also be used as a template, simply by specifying the namespace in which it resides, so:
 +
* <code><nowiki>{{Template:Pagename}}</nowiki></code> includes <code><nowiki>[[Template:Pagename]]</nowiki></code>
 +
* <code><nowiki>{{Foo:Pagename}}</nowiki></code> includes <code><nowiki>[[Foo:Pagename]]</nowiki></code>
 +
* <code><nowiki>{{:Pagename}}</nowiki></code> includes <code><nowiki>[[Pagename]]</nowiki></code>
 +
** <code><nowiki>{{SUBST::Pagename}}</nowiki></code> replaces itself with the contents of <code><nowiki>[[Pagename]]</nowiki></code>
 +
 
 +
If no such namespace exists, the full title is assumed to be a template:
 +
 
 +
* <code><nowiki>{{Foo:Bar}}</nowiki></code> includes <code><nowiki>[[Template:Foo:Bar]]</nowiki></code>
 +
 
 +
There are other ways of using templates, but these are useful only in special situations. Most editors will never have any use for these special functions, so they are explained only at the [[#Alternate ways to use templates|bottom of this page]].
 +
 
 +
=== Template documentation ===
 +
Many template authors provide documentation for how to use specific templates. This can usually be found on the template page itself. If you are editing a page using a particular template, one way you can usually get to the template page quickly is by using the "Templates used on this page" section at the bottom of the edit page.
 +
 
 +
Unfortunately, many templates are not documented. In this case, you can try looking for examples of the template being used on other pages. From the template page, try clicking "What links here" in the "Tools" menu in the sidebar to find other pages where the template is used. If it's not documented, consider writing your own template documentation.
 +
 
 +
It can help to understand how to write templates. Once you do, you may be able to figure out a template simply by opening it for editing and looking at its source. However, templates can be very complex and may use advanced wiki features or specific extensions, like any other wiki page. If all else fails, never hesitate to ask for assistance from the [[RimWorld Wiki:Community portal|staff]] or wiki community.
 +
 
 +
== Alternate ways to use templates ==
 +
In addition to standard transclusion, templates can be used in other pages in these ways:
 +
 
 +
* <code><nowiki>{{subst:Name}}</nowiki></code> — when this template link is used, it will be replaced once and for all with the content of <nowiki>[[Template:Name]]</nowiki> as of the time the page with the link is '''saved'''; a copy of the contents of <nowiki>[[Template:Name]]</nowiki> will be ''substituted'' for the template link. The contents are then a part of the including page, and can be edited normally, separately from the original. Changes to the source template page will ''not'' be propagated to the page with the template link.
 +
* <code><nowiki>{{safesubst:Name}}</nowiki></code> — this is for special cases where a template may be designed to work both through transclusion and substitution. For example, say you used a template <nowiki>{{Firstname}}</nowiki> within <nowiki>[[Template:Name]]</nowiki>. If you use <nowiki>{{subst:Name}}</nowiki>, the <nowiki>{{Firstname}}</nowiki> will be saved on the page. If you try to change it to <nowiki>{{subst:Firstname}}</nowiki> inside <nowiki>[[Template:Name]]</nowiki>, then it'd be substituted inside the template. safesubst: doesn't substitute until the template containing it is used with <code>subst:</code>.
 +
* <code><nowiki>{{msgnw:Name}}</nowiki></code> includes the template in a form that displays it as raw wiki syntax (the way <code><nowiki>&lt;nowiki&gt;</nowiki></code> does) when the page containing it is fetched.
 +
 
 +
== See also ==
 +
* [[Wikipedia:Help:A quick guide to templates|Wikipedia]]'s quick guide to templates
 +
 
 +
[[Category:Help]]

Latest revision as of 23:30, 4 April 2023



At their most basic, templates are basically just wiki pages whose content may be pulled into other pages. In other words, all the content you see when viewing a page may not actually be in the page source. Some or even all of it may be in templates.

Two very common types of templates are shown here as examples:

  • To the right, there is an example of an "infobox" template. Nearly every wiki provides at least one of these.
  • Below, there is an example of a navigation template called a "navbox" - typically used at the bottom of pages.
Phoebe
Phoebe
Details
Race
Human
Location
RimWorld
Source
Tynan's inner circle
Reward
Happiness
Related
Calming bliss
ID
Phoebe_ID

Speaking generally, a template is any wiki page whose content is designed to be transcluded (embedded) inside other pages. Templates follow a convention that the name is prefixed with Template:, assigning it to that namespace.

Templates in the page source[edit]

When editing wiki pages, it is likely you might encounter something like this:

{{navbar example}}

Or perhaps something more complex like this:

{{Infobox example
| name     = Phoebe
| image    = Phoebe friendly.png
| race     = Human
| location = RimWorld
| source   = Tynan's inner circle
| reward   = Happiness
| related  = Calming bliss
| ID       = Phoebe_ID
}}

These are examples of templates being used on these wiki pages. The first is using [[Template:navbar example]], the second is using [[Template:Infobox example]]. The double curly brackets, {{ and }} usually mean that a template is being used there, but unfortunately, double curly brackets also have other uses in wikitext, which can cause some confusion.

How to tell if it's a template[edit]

Let's look at our examples above again.

{{Infobox example
| name     = Phoebe
| image    = Phoebe friendly.png
| race     = Human
| location = RimWorld
| source   = Tynan's inner circle
| reward   = Happiness
| related  = Calming bliss
| ID       = Phoebe_ID
}}

In this case, we have a definite clue because the first thing after the name other than just space is a pipe character: (|). This is definitely a template. If it were a colon instead, (:), then it would not be a template, but some kind of magic word.

{{navbar example}}

Unfortunately, this one doesn't offer any definite clues right off the bat. If you aren't sure, there are a few ways to make a pretty good guess:

  • One clue that it is a template is that it isn't in all capital letters. Virtually all magic words that don't require a colon are typed in all caps.
  • To be sure, when editing a page, you should see "Templates used on this page" at the bottom of the screen under the "Save page" and other buttons. If it's listed there, it's definitely a template.
  • If it isn't a documented magic word, it's almost certainly a template.

Basic transclusion[edit]

Transclusion is by far the most common way to use templates.

  • {{Name}} — as described above, this link will be dynamically replaced by the current content of [[Template:Name]] at the time the page with the template link is loaded. The page's source will be unchanged.

In fact, an ordinary wiki page can also be used as a template, simply by specifying the namespace in which it resides, so:

  • {{Template:Pagename}} includes [[Template:Pagename]]
  • {{Foo:Pagename}} includes [[Foo:Pagename]]
  • {{:Pagename}} includes [[Pagename]]
    • {{SUBST::Pagename}} replaces itself with the contents of [[Pagename]]

If no such namespace exists, the full title is assumed to be a template:

  • {{Foo:Bar}} includes [[Template:Foo:Bar]]

There are other ways of using templates, but these are useful only in special situations. Most editors will never have any use for these special functions, so they are explained only at the bottom of this page.

Template documentation[edit]

Many template authors provide documentation for how to use specific templates. This can usually be found on the template page itself. If you are editing a page using a particular template, one way you can usually get to the template page quickly is by using the "Templates used on this page" section at the bottom of the edit page.

Unfortunately, many templates are not documented. In this case, you can try looking for examples of the template being used on other pages. From the template page, try clicking "What links here" in the "Tools" menu in the sidebar to find other pages where the template is used. If it's not documented, consider writing your own template documentation.

It can help to understand how to write templates. Once you do, you may be able to figure out a template simply by opening it for editing and looking at its source. However, templates can be very complex and may use advanced wiki features or specific extensions, like any other wiki page. If all else fails, never hesitate to ask for assistance from the staff or wiki community.

Alternate ways to use templates[edit]

In addition to standard transclusion, templates can be used in other pages in these ways:

  • {{subst:Name}} — when this template link is used, it will be replaced once and for all with the content of [[Template:Name]] as of the time the page with the link is saved; a copy of the contents of [[Template:Name]] will be substituted for the template link. The contents are then a part of the including page, and can be edited normally, separately from the original. Changes to the source template page will not be propagated to the page with the template link.
  • {{safesubst:Name}} — this is for special cases where a template may be designed to work both through transclusion and substitution. For example, say you used a template {{Firstname}} within [[Template:Name]]. If you use {{subst:Name}}, the {{Firstname}} will be saved on the page. If you try to change it to {{subst:Firstname}} inside [[Template:Name]], then it'd be substituted inside the template. safesubst: doesn't substitute until the template containing it is used with subst:.
  • {{msgnw:Name}} includes the template in a form that displays it as raw wiki syntax (the way <nowiki> does) when the page containing it is fetched.

See also[edit]