Difference between revisions of "Template:comic"
(Trying FaviFakes improvements - see my talk page) |
(fix template for when the titletext parameter is specified without a value) |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 6: | Line 6: | ||
border: 1px solid #a2a9b1; color: black; font-size: 88%; | border: 1px solid #a2a9b1; color: black; font-size: 88%; | ||
line-height: 1.5em; margin: 0.5em 0 0.5em 1em; padding: 0.2em; | line-height: 1.5em; margin: 0.5em 0 0.5em 1em; padding: 0.2em; | ||
| − | text-align: center; width:98%; {{bodystyle|{{{bodystyle | + | text-align: center; width:98%; {{#if:{{{bodystyle|}}}|{{{bodystyle}}}|}}"><!-- |
Comic title in '''BOLD''' and in small caps, like on xkcd.com | Comic title in '''BOLD''' and in small caps, like on xkcd.com | ||
| Line 12: | Line 12: | ||
Display the original title and link to it just before the navigation | Display the original title and link to it just before the navigation | ||
| − | -->{{#if:{{{ | + | -->{{#if:{{{ogtitle|}}}|<tr><td style="padding-bottom:12px; padding-top:0px; font-size: 19px;" class="plainlinks"><!-- |
| − | + | Replace the default label for {{{ogtitle}}} (which is "Original title") with custom {{{ogttlabel}}} if | |
| − | |||
| − | Replace the default label for {{{ogtitle}}} (which is "Original title") with custom {{{ | ||
provided, and replace all spaces with s so it looks cute | provided, and replace all spaces with s so it looks cute | ||
| − | -->''[[LiveJournal#O{{!}}{{#if:{{{ | + | -->''[[LiveJournal#O{{!}}{{#if:{{{ogttlabel|}}}|{{#replace:{{{ogttlabel}}}| | }}|<span title="Learn why the original xkcd comics were in a different order!">Original title</span>}}]]:'' <!-- |
--><span style="font-variant: small-caps; font-weight: 800; font-size: 21px;">[{{{oglink|<span style="color:red"><br><br>ERROR: LINK MISSING.<br><br>PLEASE ADD <code><nowiki>|OGLINK=URL</nowiki></code> TO THE PAGE!</span><br><br>}}} {{{ogtitle}}}]</span></td></tr>}}<!-- | --><span style="font-variant: small-caps; font-weight: 800; font-size: 21px;">[{{{oglink|<span style="color:red"><br><br>ERROR: LINK MISSING.<br><br>PLEASE ADD <code><nowiki>|OGLINK=URL</nowiki></code> TO THE PAGE!</span><br><br>}}} {{{ogtitle}}}]</span></td></tr>}}<!-- | ||
| Line 28: | Line 26: | ||
--><ul style="text-align: center; margin-bottom: 10px;" class="no-link-underline"><!-- | --><ul style="text-align: center; margin-bottom: 10px;" class="no-link-underline"><!-- | ||
| − | Generate the |< and prev buttons, but only if {{{number}}} exists and is greater than | + | Generate the |< and prev buttons, but only if {{{number}}} exists and is greater than 0 |
-->{{#ifexpr:{{{number|-1}}}>1<!-- | -->{{#ifexpr:{{{number|-1}}}>1<!-- | ||
| Line 94: | Line 92: | ||
Comic number (plus one) is the latest, so don't show the buttons. | Comic number (plus one) is the latest, so don't show the buttons. | ||
| − | + | The spaces below are needed to make the other buttons look like they're centered even if a portion of the buttons are missing | |
-->| }}| }}<!-- | -->| }}| }}<!-- | ||
--></ul></td></tr><!-- | --></ul></td></tr><!-- | ||
| Line 119: | Line 117: | ||
}}<!-- | }}<!-- | ||
| − | + | Add the title text underneath the comic. | |
| − | --> | + | --><br /><span style="margin-top: 0.9em; margin-bottom: {{#if:{{{ognumber|}}}|0.5|0}}em; display:inline-block; font-size: 120%; <!-- |
Use the custom Title Text STYLE (ttstyle) if given | Use the custom Title Text STYLE (ttstyle) if given | ||
-->{{{ttstyle|}}}"><span class="plainlinks" title=""><!-- | -->{{{ttstyle|}}}"><span class="plainlinks" title=""><!-- | ||
| − | -->''[[Title text|Title text]]:''</span> {{{titletext}}}<!-- | + | -->''[[Title text|Title text]]:''</span> {{#if:{{{titletext|}}}|{{{titletext}}}|[[:Category:No title text|none]]}}<!-- |
| − | --></span> | + | --></span></td></tr><!--</table> |
Ok, the upper navigation bar is done! Now, let's make the lower WHITE navbar. | Ok, the upper navigation bar is done! Now, let's make the lower WHITE navbar. | ||
| Line 130: | Line 128: | ||
This is only displayed if {{{ognumber}}} is specified, otherwise it's replaced by the "gray" navbar (we'll make it below). | This is only displayed if {{{ognumber}}} is specified, otherwise it's replaced by the "gray" navbar (we'll make it below). | ||
This table will contain a table row (tr) and cell (td) | This table will contain a table row (tr) and cell (td) | ||
| − | + | --><tr><td><!-- | |
Now make an unordered list which will display as the navigation bar | Now make an unordered list which will display as the navigation bar | ||
| − | + | --><ul style="text-align: center; margin-top:2px; margin-bottom:{{#if:{{{ognumber|}}}|20px|10px}};" class="no-link-underline"><!-- | |
| − | Generate the |< and prev buttons, but only if {{{ognumber}}} IS GIVEN and is not | + | |
| − | -->{{#if:{{{ognumber|}}}|{{#ifexpr:{{{ognumber|1}}}!= | + | Generate the |< and prev buttons, but only if {{{ognumber}}} IS GIVEN and is not 1 |
| + | -->{{#if:{{{ognumber|}}}|{{#ifexpr:{{{ognumber|1}}}!=1<!-- | ||
| − | {{{ognumber}}} is given and not | + | {{{ognumber}}} is given and not 1, so make a list item and put a button in it that links to #7 |
-->|<li style="background-color: #FFFFF; | -->|<li style="background-color: #FFFFF; | ||
border: 1.5px solid #333333; border-radius: 3px 3px 3px 3px; box-shadow: 0 0 5px 0 gray; | border: 1.5px solid #333333; border-radius: 3px 3px 3px 3px; box-shadow: 0 0 5px 0 gray; | ||
display: inline; font-size: 16px; font-variant: small-caps; font-weight: 600; | display: inline; font-size: 16px; font-variant: small-caps; font-weight: 600; | ||
margin: 0 4px; padding: 1.5px 0;"><!-- | margin: 0 4px; padding: 1.5px 0;"><!-- | ||
| − | link to #1 | + | |
| + | Now link to #7. Why #7 and not #1? → see [[LiveJournal]] | ||
-->[[7: Girl sleeping (Sketch -- 11th grade Spanish class)|<span style="color: #6E7B91; padding: 0 12px; white-space: nowrap;" title="">|<</span>]]</li><!-- | -->[[7: Girl sleeping (Sketch -- 11th grade Spanish class)|<span style="color: #6E7B91; padding: 0 12px; white-space: nowrap;" title="">|<</span>]]</li><!-- | ||
| Line 154: | Line 154: | ||
-->[[{{{ogprev|<span style="color:red">ERROR: PREVIOUS NUMBER MISSING.<br><br>PLEASE ADD <code><nowiki>|OGPREV=NUMBER</nowiki></code> TO THE PAGE!<br><br> </span>}}}|<span style="color: #6E7B91; padding: 0 12px;" title="">< Prev #{{{ogprev}}}</span>]]</li><!-- | -->[[{{{ogprev|<span style="color:red">ERROR: PREVIOUS NUMBER MISSING.<br><br>PLEASE ADD <code><nowiki>|OGPREV=NUMBER</nowiki></code> TO THE PAGE!<br><br> </span>}}}|<span style="color: #6E7B91; padding: 0 12px;" title="">< Prev #{{{ogprev}}}</span>]]</li><!-- | ||
| − | {{{ognumber}}} is | + | {{{ognumber}}} is 1, so let's put non-breaking spaces here |
| − | -->| <!-- | + | -->| <!-- |
| − | -->}}}}<!-- | + | Close up shop-->}}}}<!-- |
Since we have {{{ognumber}}}, we need to say the original comic number at the center. | Since we have {{{ognumber}}}, we need to say the original comic number at the center. | ||
| − | -->{{#if:{{{ognumber|}}}|<!--{{#ifexpr:{{{ognumber|1}}}!= | + | -->{{#if:{{{ognumber|}}}|<!--{{#ifexpr:{{{ognumber|1}}}!=1|--><!-- |
| − | Ok | + | Ok {{ognumber}} is not 1, go wild! |
--><li style="background-color: #FFFFFF; | --><li style="background-color: #FFFFFF; | ||
border: 1.5px solid #333333; border-radius: 3px 3px 3px 3px; box-shadow: 0 0 5px 0 gray; | border: 1.5px solid #333333; border-radius: 3px 3px 3px 3px; box-shadow: 0 0 5px 0 gray; | ||
| Line 168: | Line 168: | ||
margin: 0 4px; padding: 1.5px 0;" class="plainlinks"><!-- | margin: 0 4px; padding: 1.5px 0;" class="plainlinks"><!-- | ||
| − | Depending on whether {{{ognumber}}} is | + | Depending on whether {{{ognumber}}} is 1 or not, toggle between using wide link mode or number link mode. |
Wide link mode requires {{{lappend}}} to be set, while {{{ldomain}}} can default to www | Wide link mode requires {{{lappend}}} to be set, while {{{ldomain}}} can default to www | ||
--><!-- | --><!-- | ||
NOT USING THESE - [{{#ifexpr:{{{number|-1}}}>=1 | NOT USING THESE - [{{#ifexpr:{{{number|-1}}}>=1 | ||
| − | |||
NOT USING THESE - Comic number is probably valid, use number link mode | NOT USING THESE - Comic number is probably valid, use number link mode | ||
|https://xkcd.com/{{{number}}} | |https://xkcd.com/{{{number}}} | ||
| − | |||
NOT USING THESE - Comic number is invalid or doesn't exist, use wide link mode | NOT USING THESE - Comic number is invalid or doesn't exist, use wide link mode | ||
| − | |https://{{{ldomain|www}}}.xkcd.com/{{{lappend}}}}} | + | |https://{{{ldomain|www}}}.xkcd.com/{{{lappend}}}}} (This would need another two curly because added another IF statement) |
| − | Ok now generate the number, with ognote if it exists | + | Ok now generate the number, with ognote if it exists, or else it defaults to "(Original Order)" |
| − | -->[[LiveJournal#G|<span style="color: #6E7B91; padding: 0 12px;" title=" | + | -->[[LiveJournal#G|<span style="color: #6E7B91; padding: 0 12px;" title="Click to learn why the original xkcd comics were in a different order!"><!-- |
Add ognote in parenthesis | Add ognote in parenthesis | ||
| Line 190: | Line 188: | ||
Check if this is 55 (which is the latest LiveJournal comic). If it is 55, then don't display the "Next" and >| buttons. | Check if this is 55 (which is the latest LiveJournal comic). If it is 55, then don't display the "Next" and >| buttons. | ||
| − | + | Why #52 and not #LATESTCOMIC? → see [[LiveJournal]] | |
| − | -->|{{#ifexpr: | + | -->|{{#ifexpr:52-{{{ognumber|1}}}>0<!-- |
| − | + | {{ognumber}} IS NOT 52, generate the Next and >| buttons | |
-->|<li style="background-color: #FFFFF; | -->|<li style="background-color: #FFFFF; | ||
border: 1.5px solid #333333; border-radius: 3px 3px 3px 3px; box-shadow: 0 0 5px 0 gray; | border: 1.5px solid #333333; border-radius: 3px 3px 3px 3px; box-shadow: 0 0 5px 0 gray; | ||
| Line 208: | Line 206: | ||
Comic number (plus one) is the latest, so don't show the buttons | Comic number (plus one) is the latest, so don't show the buttons | ||
| − | -->| }}|}}</ul></td></tr><!-- | + | The spaces below are needed to make the other buttons look like they're centered even if a portion of the buttons are missing |
| + | -->| }}|}}</ul></td></tr><!-- | ||
| − | Ok, that row's done. But it'll be hidden if the comic is one of the first | + | Ok, that row's done. But it'll be hidden if the comic is one of the first xkcd comics. |
| − | So let's make the lower GRAY row. This is hidden if {{{ognumber}}} is specified, because it's replaced by the "white" navbar above. | + | So, let's make the lower GRAY row. This is hidden if {{{ognumber}}} is specified, because it's replaced by the "white" navbar above. |
This will be shown on almost all comics. | This will be shown on almost all comics. | ||
This table will contain a table row (tr) and cell (td) | This table will contain a table row (tr) and cell (td) | ||
| Line 246: | Line 245: | ||
margin: 0 4px; padding: 1.5px 0;" class="plainlinks"><!-- | margin: 0 4px; padding: 1.5px 0;" class="plainlinks"><!-- | ||
| − | Generate the RANDOM COMIC LINK in the center | + | Generate the RANDOM COMIC LINK in the center. |
| − | -->[[Special: | + | The "Category:All pages" includes all comics, including the extra ones. |
| + | -->[[Special:RandomInCategory/All pages|<span style="color: #FFFFFF; padding: 0 12px;" title=""><!-- | ||
-->Random Explanation</span>]]</li><!-- | -->Random Explanation</span>]]</li><!-- | ||
| Line 270: | Line 270: | ||
-->[[{{LATESTCOMIC}}{{!}}<span style="color: #FFFFFF; padding: 0 12px; white-space: nowrap;" title="">>|</span>]]</li><!-- | -->[[{{LATESTCOMIC}}{{!}}<span style="color: #FFFFFF; padding: 0 12px; white-space: nowrap;" title="">>|</span>]]</li><!-- | ||
| − | + | Instead here the comic number (plus one) is the latest, so don't show the Next buttons (there are no next comics) | |
| − | + | The spaces below are needed to make the other buttons look like they're centered even if a portion of the buttons are missing | |
| + | -->| }}| }}<!-- | ||
Here {{{number}}} doesn't exist or is less than 1; just put nothing here | Here {{{number}}} doesn't exist or is less than 1; just put nothing here | ||
| Line 289: | Line 290: | ||
Don't try to categorise the Main Page nor the extra comics | Don't try to categorise the Main Page nor the extra comics | ||
| − | -->|{{#ifeq:{{FULLPAGENAME}}|{{int:mainpage}}||{{#ifeq:{{{extra|}}}|yes|[[Category:Extra comics]]|<!-- | + | -->|{{#ifeq:{{FULLPAGENAME}}|{{int:mainpage}}||{{#ifeq:{{{extra|}}}|yes|[[Category:Extra comics]][[Category:All pages]]|<!-- |
Alright, start putting it in the appropriate date categories | Alright, start putting it in the appropriate date categories | ||
| − | -->[[Category:All comics]]{{#if:{{{date|}}}|[[Category:Comics from {{#time:Y|{{{date}}}}}]] | + | -->[[Category:All comics]][[Category:All pages]]<!-- |
| − | -->[[Category:Comics from {{#time:F|{{{date}}}}}]] | + | -->{{#if:{{{date|}}}|[[Category:Comics from {{#time:Y|{{{date}}}}}]] <!-- Years |
| − | -->[[Category:{{#time:l|{{{date}}}}} comics]] | + | -->[[Category:Comics from {{#time:F|{{{date}}}}}]] <!-- Months |
| + | -->[[Category:{{#time:l|{{{date}}}}} comics]] <!-- Weekdays | ||
-->}}}}}}|}}<!-- | -->}}}}}}|}}<!-- | ||
--></includeonly><noinclude><!-- | --></includeonly><noinclude><!-- | ||
| − | + | DOCUMENTATION-->{{:Template:comic/doc}}[[Category:Templates]]</noinclude> | |
Latest revision as of 15:09, 4 July 2025
The template {{comic}} has an associated sandbox, available at Template:comic/sandbox.
This is the basic infobox-style header template used to display xkcd comics on their own pages, including the comic number (with external link to xkcd), publication date, title, comic image, and title text.
Usage
{{comic
| number =
| date =
| title =
| ognumber =
| oglink =
| ogttlabel =
| ogtitle =
| ogprev =
| ognote =
| ognext =
| before =
| image =
| custom =
| imagesize =
| noexpand =
| titletext =
| ttstyle =
| bodystyle =
| bodyclass =
| extra =
| ldomain =
| lappend =
}}
The new parameters are undocumented! There's some info about them in the code.ogttlabel = optional ognumber = ogprev = required if ognumber given, otherwise throws an error ognote = optional ognext = required if ognumber given, otherwise throws an error |
| Parameter | Usage | Description |
|---|---|---|
number
|
Required in normal circumstances | The comic's basic information. In normal circumstances, these should always be defined. |
title
|
Required in normal circumstances | |
image
|
Required in normal circumstances | |
date
|
Optional; omit if unreleased or undated | The date the comic was first published and should be written in the form mmmm d, yyyy. (Full month name, day number without digit padding, 4-digit year. Example: January 1, 2006). If the comic has no date or has not been released, it should be omitted.
|
ognumber
|
Optional; only used for early comics | Must always be used together for the early xkcd comics, not when Randall changes the title of an existing comic. Note that if ognumber is given, some parameters are required.
|
oglink
| ||
ogtitle
| ||
before
|
Optional; used for long comics | Used to insert text before the comic, usually to insert a link to skip to the explanation on extremely large comics like 1732: Earth Temperature Timeline or for the comic itself if it's just text like Blue Eyes. The text provided to this parameter is placed on the line between the title and the image. This parameter is optional. The wikitext used to jump to the ==Explanation== is [[#Explanation|↓ Skip to explanation ↓]].
|
imagesize
|
Optional; limits image display size | Limits the size of the image in pixels.
Note that, if the |
noexpand
|
Optional; used when imagesize limits display | Boolean to hide the "Click to enlarge" button, usually when using imagesize.
|
custom
|
Optional; overrides image | Replaces the comic image with custom text or content. |
titletext
|
Optional; sets title text | Sets the title text of the comic. |
ttstyle
|
Optional; styles title text | Sets the CSS style of the titletext span element.
|
bodystyle
|
Optional; sets wrapper style | Sets the inline CSS style of the outer comic container. |
bodyclass
|
Optional; sets wrapper class | Sets the HTML class attribute of the outer comic container. |
extra
|
Optional; boolean | When set to yes, adds the page to the Extra comics category.
|
lappend
|
Required if number is missing
|
The part of the link appended to xkcd.com/ in "wide link mode". Required when number is not set.
|
ldomain
|
Optional; changes link domain | Sets the subdomain for the link (e.g., blog for blog.xkcd.com). Defaults to www. For example, if the link is to a blog post (blog.xkcd.com), ldomain should be set to blog. The resulting link when using lappend and optionally ldomain is:
|
Example 1
| Suspension Bridge |
Title text: As a first step, they can put in a secondary deck, to help drivers try it out and find out how fun the jumps are. After a while no one will use the old flat deck and they can remove it. |
The example above is produced by the following code:
{{comic
| number = 3048
| date = February 7, 2025
| title = Suspension Bridge
| image = suspension_bridge_2x.png
| imagesize = 362x365px
| noexpand = true
| titletext = As a first step, they can put in a secondary deck, to help drivers try it out and find out how fun the jumps are. After a while no one will use the old flat deck and they can remove it.
}}
Example 2
| Pi Equals |
| Original title: Pi equals |
![]() Title text: My most famous drawing, and one of the first I did for the site |
The example above is produced by the following code:
{{comic
| ognumber = 10
| ognumber = 10
| date = September 30, 2005
| title = Pi Equals
| oglink = https://web.archive.org/web/20070927001941/http://xkcd-drawings.livejournal.com/?skip=40#:~:text=8%3A44%20pm-,Pi%20equals,-(4%20Comments
| ogtitle = Pi equals
| image = pi.jpg
| titletext = My most famous drawing, and one of the first I did for the site
}}
Tests
| Air Fact |
Title text: 'Wow, that must be why you swallow so many of them per year!' 'No, that's spiders. You swallow WAY more ants.' |
| Suspension Bridge |
Title text: As a first step, they can put in a secondary deck, to help drivers try it out and find out how fun the jumps are. After a while no one will use the old flat deck and they can remove it. |
| Pi Equals |
| Libehuornel title: Hello there |
![]() Title text: My most famous drawing, and one of the first I did for the site |
| Pi Equals |
| Original title: Pi equals |
![]() Title text: My most famous drawing, and one of the first I did for the site |

