User:Bongolium500/Sandbox 5

From Tardis Wiki, the free Doctor Who reference

Here are some attempts at making more detailed source refences. A quite random example has been chosen to be used here.

A comparison of most variations can be found here. However, due to a lack of parity between extensions on this and the test wiki, some functionality only works on Tardis and so, where possible, templates are shown here.

Current

Her birthday was the 16th of August. (PROSE: Our Tune)

Her birthday was the 16th of August. ([[PROSE]]: [[Our Tune (short story)|]])

Method One - Collapsible

V1 - Manual

Her birthday was the 16th of August. (PROSE: Our Tune + Part of Iris: Fifteen from Iris Wildthyme published by Obverse Books in 2013.)

Her birthday was the 16th of August. ([[PROSE]]: ''[[Our Tune (short story)|Our Tune]]'' <sup><span class="mw-customtoggle-Our_Tune">+</span> <span class="mw-collapsible mw-collapsed" id="mw-customcollapsible-Our_Tune">Part of ''[[Iris: Fifteen (anthology)|Iris: Fifteen]]'' from ''[[Iris Wildthyme (series)|]]'' published by [[Obverse Books]] in [[2013 (releases)|2013]].</span></sup>)

Issues

According to MediaWiki's website, this can be confusing for users using a screen reader. Every collapsible is open for a short amount of time while the page loads before closing which, on a larger page using this a lot, would cause the page to jump a lot.

As a Template

<sup><span class="mw-customtoggle-{{{id|}}}">+</span> <span class="mw-collapsible mw-collapsed" id="mw-customcollapsible-{{{id|}}}">{{#if:{{{anthology|}}}|Part of ''[[{{{anthology|}}}|{{dau|{{{anthology}}}}}]]'' {{#if:{{{series|}}}|from ''[[{{{series|}}}|{{dau|{{{series}}}}}]]''}} {{#if:{{{series#|}}}|[[series {{{series#}}} ({{{series}}})|series {{{series#|}}}]]}} {{#if:{{{publisher|}}}|published}}{{#if:{{{network|}}}|first broadcast}}|{{#if:{{{series|}}}|Part of ''[[{{{series|}}}|{{dau|{{{series}}}}}]]'' {{#if:{{{series#|}}}|[[series {{{series#}}} ({{{series}}})|series {{{series#|}}}]]}} {{#if:{{{publisher|}}}|published}}{{#if:{{{network|}}}|first broadcast}}|{{#if:{{{publisher|}}}|Published}}{{#if:{{{network|}}}|First broadcast}}}}}} {{#if:{{{publisher|}}}|by [[{{{publisher}}}|{{dau|{{{publisher}}}}}]]}}{{#if:{{{network|}}}|on [[{{{network}}}|{{dau|{{{network}}}}}]]}} {{#if:{{{year|}}}|in [[{{{year}}} (releases)|{{{year}}}]]}}.</span></sup>
Usage
{{exsource|id=|anthology=|series=|publisher=|year=}}

Anthology and series are optional. ID, publisher and year are required. Please do not link. Please include dab terms for anthology, series and publisher but not year. The ID can be any string. However, it must not be used for this template anywhere else on the page.

Examples
([[PROSE]]: ''[[Our Tune (short story)|]]'' {{exsource|id=1|anthology=Iris: Fifteen (anthology)|series=Iris Wildthyme (series)|publisher=Obverse Books|year=2013}})

(PROSE: Our Tune + Part of the series Iris Wildthyme published by Obverse Books in 2013.)

([[TV]: ''[[Rose (TV story)|]]'' {{exsource|id=1|series=Doctor Who|year=2005}})

(TV: Rose + Part of the series Doctor Who released in 2005.)

V2 - Automated

This should be visually identical to the above. However, it needs a fair amount of prior work to function correctly. Therefore, it does not work at all in its current state. There is more information on this in this section.

Her birthday was the 16th of August. (PROSE: Our Tune + Part of [[Iris: Fifteen (anthology)]] from [[Iris Wildthyme]] published by [[]] in [[]].)

Her birthday was the 16th of August. ([[PROSE]]: ''[[Our Tune (short story)|Our Tune]]'' <sup><span class="mw-customtoggle-Our_Tune">+</span> <span class="mw-collapsible mw-collapsed" id="mw-customcollapsible-Our_Tune">Part of ''{{da|{{#show:Our Tune (short story)|?anthology}}}}'' from ''{{da|{{#show:Our Tune (short story)|?series}}}}'' published by ''{{da|{{#show:Our Tune (short story)|?publisher}}}}'' in ''{{da|{{#show:Our Tune (short story)|?year}}}}''.</span></sup>)

Issues

According to MediaWiki's website, this can be confusing for users using a screen reader. Every collapsible is open for a short amount of time while the page loads before closing which, on a larger page using this a lot, would cause the page to jump a lot.

For this to work at all, a lot of prior work needs to be done with Semantic MediaWiki annotations. By far the best solution (in terms of future-proofing and best practises) is too update Infobox Story. However, this would require changing every page using this template which is, well, a lot. It might be possible to do this without changing every page, but it wouldn't be as good. Having said all of this, I 100% think putting in this work would be worth it as it would make some other cool stuff possible as well.

As a Template

{{Dai|{{{s|}}}}} <sup><span class="mw-customtoggle-{{{id|}}}">+</span> <span class="mw-collapsible mw-collapsed" id="mw-customcollapsible-{{{id|}}}">{{#if:{{#show:{{{s|}}}|?anthology}}|Part of ''[[{{#show:{{{s|}}}|?anthology|link=none}}|{{dau|{{#show:{{{s|}}}|?anthology|link=none}}}}]]'' {{#if:{{#show:{{{s|}}}|?series}}|from ''[[{{#show:{{{s|}}}|?series|link=none}}|{{dau|{{#show:{{{s|}}}|?series|link=none}}}}]]''}} {{#if:{{#show:{{{s|}}}|?series number|link=none}}|[[series {{#show:{{{s|}}}|?series number|link=none}} ({{#show:{{{s|}}}|?series|link=none}})|series {{#show:{{{s|}}}|?series number|link=none}}]]}} {{#if:{{#show:{{{s|}}}|?publisher}}|published}}{{#if:{{#show:{{{s|}}}|?premiere network}}|broadcast}}|{{#if:{{#show:{{{s|}}}|?series|link=none}}|Part of ''[[{{#show:{{{s|}}}|?series|link=none}}|{{dau|{{#show:{{{s|}}}|?series|link=none}}}}]]'' {{#if:{{#show:{{{s|}}}|?series number}}|[[series {{#show:{{{s|}}}|?series number|link=none}} ({{#show:{{{s|}}}|?series|link=none}})|series {{#show:{{{s|}}}|?series number|link=none}}]]}} {{#if:{{#show:{{{s|}}}|?publisher}}|published}}{{#if:{{#show:{{{s|}}}|?premiere network}}|broadcast}}|{{#if:{{#show:{{{s|}}}|?publisher}}|Published}}{{#if:{{#show:{{{s|}}}|?premiere network}}|Broadcast}}}}}} {{#if:{{#show:{{{s|}}}|?publisher}}|by [[{{#show:{{{s|}}}|?publisher|link=none}}|{{dau|{{#show:{{{s|}}}|?publisher|link=none}}}}]]}}{{#if:{{#show:{{{s|}}}|?premiere network}}|by [[{{#show:{{{s|}}}|?premiere network|link=none}}|{{dau|{{#show:{{{s|}}}|?premiere network|link=none}}}}]]}} {{#if:{{#show:{{{s|}}}|?year}}|in [[{{#show:{{{s|}}}|?year|link=none}}|{{dau|{{#show:{{{s|}}}|?year|link=none}}}}]]}}.</span></sup>
Usage
{{exs|s=|id=}}

Both arguments here are required. S is the story being used as a source. Please give it unlinked and with dab terms. ID can be any string of text. It must not be used with this template anywhere else on the page.

Example
([[PROSE]]: {{exs|s=Our Tune (short story)|id=1}})

V3 - Automatic With Manual Overrides

In theory, this template will produce identical results to the above 2. In fact, at its most basic, it is the above. However, it also allows for manual overrides to the automatically generated details.

Due to its nature, it will only work fully as a template and, as such, I cannot show it in non-template form.

Issues

According to MediaWiki's website, this can be confusing for users using a screen reader. Every collapsible is open for a short amount of time while the page loads before closing which, on a larger page using this a lot, would cause the page to jump a lot.

For this to work at all, a lot of prior work needs to be done with Semantic MediaWiki annotations. By far the best solution (in terms of future-proofing and best practises) is too update Infobox Story. However, this would require changing every page using this template which is, well, a lot. It might be possible to do this without changing every page, but it wouldn't be as good. Having said all of this, I 100% think putting in this work would be worth it as it would make some other cool stuff possible as well. Additionally, it is worth noting this template could still be used in manual mode

As a Template

{{Dai|{{{s|}}}}} <sup><span class="mw-customtoggle-{{{id|}}}">+</span> <span class="mw-collapsible mw-collapsed" id="mw-customcollapsible-{{{id|}}}">{{#if:{{{anthology|{{#show:{{{s|}}}|?anthology}}}}}|Part of ''[[{{{anthology|{{#show:{{{s|}}}|?anthology|link=none}}}}}|{{dau|{{{anthology|{{#show:{{{s|}}}|?anthology|link=none}}}}}}}]]'' {{#if:{{{series|{{#show:{{{s|}}}|?series}}}}}|from ''[[{{{series|{{#show:{{{s|}}}|?series|link=none}}}}}|{{dau|{{{series|{{#show:{{{s|}}}|?series|link=none}}}}}}}]]''}} {{#if:{{{series#|{{#show:{{{s|}}}|?series number|link=none}}}}}|[[series {{{series#|{{#show:{{{s|}}}|?series number|link=none}}}}} ({{{series|{{#show:{{{s|}}}|?series|link=none}}}}})|series {{{series#|{{#show:{{{s|}}}|?series number|link=none}}}}}]]}} {{#if:{{{publisher|{{#show:{{{s|}}}|?publisher|link=none}}}}}|published}}{{#if:{{{network|{{#show:{{{s|}}}|?premiere network|link=none}}}}}|first broadcast}}|{{#if:{{{series|{{#show:{{{s|}}}|?series|link=none}}}}}|Part of ''[[{{{series|{{#show:{{{s|}}}|?series|link=none}}}}}|{{dau|{{{series|{{#show:{{{s|}}}|?series|link=none}}}}}}}]]'' {{#if:{{{series#|{{#show:{{{s|}}}|?series number|link=none}}}}}|[[series {{{series#|{{#show:{{{s|}}}|?series number|link=none}}}}} ({{{series|{{#show:{{{s|}}}|?series|link=none}}}}})|series {{{series#|{{#show:{{{s|}}}|?series number|link=none}}}}}]]}} {{#if:{{{publisher|{{#show:{{{s|}}}|?publisher|link=none}}}}}|published}}{{#if:{{{network|{{#show:{{{s|}}}|?premiere network|link=none}}}}}|first broadcast}}|{{#if:{{{publisher|}}}|Published}}{{#if:{{{network|{{#show:{{{s|}}}|?premiere network|link=none}}}}}|First broadcast}}}}}} {{#if:{{{publisher|{{#show:{{{s|}}}|?publisher|link=none}}}}}|by [[{{{publisher|{{#show:{{{s|}}}|?publisher|link=none}}}}}|{{dau|{{{publisher|{{#show:{{{s|}}}|?publisher|link=none}}}}}}}]]}}{{#if:{{{network|{{#show:{{{s|}}}|?premiere network|link=none}}}}}|on [[{{{network|{{#show:{{{s|}}}|?premiere network|link=none}}}}}|{{dau|{{{network|{{#show:{{{s|}}}|?premiere network|link=none}}}}}}}]]}} {{#if:{{{year|{{#show:{{{s|}}}|?year|link=none}}}}}|in [[{{{year|{{#show:{{{s|}}}|?year|link=none}}}}}|{{dau|{{{year|{{#show:{{{s|}}}|?year|link=none}}}}}}}]]}}.</span></sup>
Usage
{{exts|s=|id=|anthology=|series=|publisher=|year=}}

S and ID are required. S is the story being used as a source. Please give it unlinked and with dab terms. ID can be any string of text. It must not be used with this template anywhere else on the page. Anthology, series, publisher and year are optional. They should only be used if the relevant Semantic MediaWiki annotations are incorrect or not present. In theory, they should never need using. The one exception I can think of is year, which could be used when the specific instance of a story being referenced had a minor change that didn't warrant a new page. Anthology, series, publisher and year must be unlinked with dab terms (for year this is (releases)).

Example

Fully automatic:

([[PROSE]]: {{exst|s=Our Tune (short story)|id=1}})

Fully manual:

([[PROSE]]: {{exst|s=Our Tune (short story)|id=1|anthology=Iris: Fifteen (anthology)|series=Iris Wildthyme (series)|publisher=Obverse Books|year=2013 (releases)}}}})

Method Two - Tooltip

V1 - Manual

Her birthday was the 16th of August. (PROSE: Our Tune ·)

Her birthday was the 16th of August. ([[PROSE]]: ''[[Our Tune (short story)|Our Tune]]'' <span title="Part of Iris: Fifteen from Iris Wildthyme published by Obverse Books in 2013.">·</span>)

Issues

This does not work at all on mobile, even if you are on desktop view. Links can't be included, nor can text be italicised.