User:Bongolium500/Sandbox 5
Here are some attempts at making more detailed source refences. A quite random example has been chosen to be used here.
A comparison of all 3 can be found 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.
Example
([[PROSE]]: ''[[Our Tune (short story)|]]'' {{exsource|id=1|anthology=Iris: Fifteen (anthology)|series=Iris Wildthyme (series)|publisher=Obverse Books|year=2013}})
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)}}}})