User:Pharap/Wiki Improvement Proposals: Difference between revisions
(Rename 'Implementation Details' sections to 'Implementation'.) |
(Add 'Tool pages' list to 'Incomplete Proposals'.) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
=== Inline D'ni Dictionary Template === | === Inline D'ni Dictionary Template === | ||
{{ | |||
User:Pharap/Templates/Improvement Proposal Box | |||
|reference=IP-001 | |||
|type=Template | |||
|status=Unimplemented | |||
}} | |||
==== Summary ==== | ==== Summary ==== | ||
The wiki has [[Dictionary:Full_Word_List|an extensive dictionary]] which at the moment isn't being particularly well leveraged from within templates and articles. I propose to change that by adding some templates that could make use of the dictionary in conjuction with the D'ni rendering capabilities of the wiki to provide rendered D'ni with hover text that provides information from the D'ni dictionary. | |||
Notably, the hover text would be able display the three main ways of writing that word ([[Dnifont]], [[OTS]], and [[NTS]]), as well as the IPA pronunciation of the word. | |||
==== Reasoning ==== | ==== Reasoning ==== | ||
This feature would make it easier to provide more linguistic information with less markup | This feature would make it easier to provide more linguistic information with less markup and less effort. | ||
The primary way of implementing this template (see [[#Example|Example]] below) would allow using the name of the dictionary entry, which is likely easier for those who are not well-versed in Dnifont. However, a secondary implementation supporting Dnifont may be provided. | |||
Having the IPA pronunciation | Having the IPA pronunciation would be particularly useful considering how many pages currently feature rendered Dnifont and OTS-style words but lack any corresponding IPA. The presence of IPA would be incredibly useful for readers who understand the meaning of the IPA symbols, as it would help them to know how to pronounce the various D'ni words and names that crop up throughout the wiki. | ||
==== Example ==== | ==== Example ==== | ||
A usage like <code><nowiki>{{D'ni | A usage like <code><nowiki>{{D'ni word OTS|Teledahn}}</nowiki></code> could appear as thus: {{User:Pharap/Templates/D'ni word OTS|Teledahn}}. | ||
Hence one would only need to remember the name of the dictionary entry and the template | Hence one would only need to remember the name of the dictionary entry, and the template will generate all relevant information as part of the hover text. | ||
Alternatively, a | Alternatively, a variant like <code><nowiki>{{D'ni word Dnifont|teleDan}}</nowiki></code> accepting Dnifont could also be permitted, as well as possibly a form that could accept either argument, such as <code><nowiki>{{D'ni word|ots=Teledahn}}</nowiki></code> and <code><nowiki>{{D'ni dict|dnifont=teleDan}}</nowiki></code>, perhaps even having <code><nowiki>{{D'ni word|Teledahn}}</nowiki></code> be treated as <code><nowiki>{{D'ni word|ots=Teledahn}}</nowiki></code>. | ||
Ideally the | Ideally the hover text would be better formatted, more like the <nowiki>[[Has length::30 cm]]</nowiki> property from the Semantic MediaWiki addons: [[Has length::30 cm]], but I have yet to investigate how that might be achieved. | ||
==== Implementation ==== | ==== Implementation ==== | ||
As a proof of concept, I have implemented all the aforementioned templates: | |||
* A template that accepts a [[Dictionary:Full Word List|Dictionary]] page name: | |||
As a proof of concept, I have implemented | ** <code><nowiki>{{</nowiki>[[User:Pharap/Templates/D'ni word OTS]]<nowiki>|</nowiki>Teledahn<nowiki>}}</nowiki></code> → {{User:Pharap/Templates/D'ni word OTS|Teledahn}} | ||
* A template that accepts [[Dnifont]]: | * A template that accepts [[Dnifont]]: | ||
** <code>{{ | ** <code><nowiki>{{</nowiki>[[User:Pharap/Templates/D'ni word Dnifont]]<nowiki>|</nowiki>teleDan<nowiki>}}</nowiki></code> → {{User:Pharap/Templates/D'ni word Dnifont|teleDan}} | ||
* A template that accepts | * A template that accepts either: | ||
** <code>{{ | ** <code><nowiki>{{</nowiki>[[User:Pharap/Templates/D'ni word]]<nowiki>|</nowiki>Teledahn<nowiki>}}</nowiki></code> → {{User:Pharap/Templates/D'ni word|Teledahn}} | ||
** <code><nowiki>{{</nowiki>[[User:Pharap/Templates/D'ni word]]<nowiki>|</nowiki>ots=Teledahn<nowiki>}}</nowiki></code> → {{User:Pharap/Templates/D'ni word|ots=Teledahn}} | |||
** <code><nowiki>{{</nowiki>[[User:Pharap/Templates/D'ni word]]<nowiki>|</nowiki>dnifont=teleDan<nowiki>}}</nowiki></code> → {{User:Pharap/Templates/D'ni word|dnifont=teleDan}} | |||
Discovering how to implement this solution took me quite a lot of research as at first I didn't know about the existance of the [[Property:OTS|OTS]], [[Property:NTS|NTS]], and [[Property:IPA|IPA]] properties, as their existence was somewhat buried in the [[Module:Dict D'ni|Dict D'ni]] module and {{tl|IPA}} template respectively. After figuring those out I managed to discover some modules that support the '<code>dnifont2ots</code>' and '<code>dnifont2nts</code>' functions. | |||
It also took me a while to realise that the syntax <code><nowiki>[[Property::Value]]</nowiki></code> can be used to declare a value for a property in the same way as <code><nowiki>{{#set: Property=Value}}</nowiki></code>, and that consequently the following two lines of the D'ni Dict module are producing two properties: | |||
* <code><nowiki>output = output..'* [[OTS]]: [[OTS::'..dnifont2ots(args['dnifont'])..']]\n'</nowiki></code> | * <code><nowiki>output = output..'* [[OTS]]: [[OTS::'..dnifont2ots(args['dnifont'])..']]\n'</nowiki></code> | ||
* <code><nowiki>output = output..'* [[NTS]]: [[NTS::'..dnifont2nts(args['dnifont'])..']] '</nowiki></code> | * <code><nowiki>output = output..'* [[NTS]]: [[NTS::'..dnifont2nts(args['dnifont'])..']] '</nowiki></code> | ||
Line 56: | Line 58: | ||
In the case of the {{tl|IPA}} template, I simply hadn't peeked at its source. At one point I had separately thought of the possibility of including such a property in the {{tl|IPA}} template, but for a while after I had simply presumed that it wouldn't be there and hadn't thought to check until I ended up looking at the source by chance when editing my User page and noticing the property's presence. | In the case of the {{tl|IPA}} template, I simply hadn't peeked at its source. At one point I had separately thought of the possibility of including such a property in the {{tl|IPA}} template, but for a while after I had simply presumed that it wouldn't be there and hadn't thought to check until I ended up looking at the source by chance when editing my User page and noticing the property's presence. | ||
After getting a working prototype, I went back and refined the templates several times, including changes such as adding a <code>link</code> parameter, changing how I was using the 'dnifont2ots' facilities (due to discovering a second module with the same functionality), and splitting the hover text over multiple lines. | |||
=== Apocrypha Banner === | |||
{{ | |||
User:Pharap/Templates/Improvement Proposal Box | |||
{{ | |reference=IP-002 | ||
|type=Template | |||
|status=Unimplemented | |||
== | }} | ||
==== Summary ==== | ==== Summary ==== | ||
Line 91: | Line 88: | ||
| issue = is [[GoArch:Apocrypha|apocrypha]]. It should be considered [[GoArch:Canon policy|non-canon]] and may consist of fan-created content. | | issue = is [[GoArch:Apocrypha|apocrypha]]. It should be considered [[GoArch:Canon policy|non-canon]] and may consist of fan-created content. | ||
| small = {{#if:{{{sect|{{{section|{{{1|}}}}}}}}}|{{#if:{{{small|{{{left|}}}}}}|left}} }} | | small = {{#if:{{{sect|{{{section|{{{1|}}}}}}}}}|{{#if:{{{small|{{{left|}}}}}}|left}} }} | ||
| sect = {{{1|}}} | | sect = {{{sect|{{{section|{{{1|}}}}}}}}} | ||
}} | }} | ||
Line 107: | Line 104: | ||
| issue = is [[GoArch:Apocrypha|apocrypha]]. It should be considered [[GoArch:Canon policy|non-canon]] and may consist of fan-created content. | | issue = is [[GoArch:Apocrypha|apocrypha]]. It should be considered [[GoArch:Canon policy|non-canon]] and may consist of fan-created content. | ||
| small = {{#if:{{{sect|{{{section|{{{1|}}}}}}}}}|{{#if:{{{small|{{{left|}}}}}}|left}} }} | | small = {{#if:{{{sect|{{{section|{{{1|}}}}}}}}}|{{#if:{{{small|{{{left|}}}}}}|left}} }} | ||
| sect = {{{1|}}} | | sect = {{{sect|{{{section|{{{1|}}}}}}}}} | ||
}} | }} | ||
<noinclude> | <noinclude> | ||
Line 118: | Line 115: | ||
This template currently includes no documentation, though if any were needed it should simply be a matter of adapting the documentation provided for the {{tlx|OOC}} or {{tlx|Unexplored Branches}} templates. | This template currently includes no documentation, though if any were needed it should simply be a matter of adapting the documentation provided for the {{tlx|OOC}} or {{tlx|Unexplored Branches}} templates. | ||
=== | === Hover Text Template === | ||
{{ | |||
User:Pharap/Templates/Improvement Proposal Box | |||
|reference=IP-003 | |||
|type=Template | |||
|status=Unimplemented | |||
}} | |||
==== Summary ==== | ==== Summary ==== | ||
I propose | I propose introducing a <code><nowiki>{{hover text}}</nowiki></code> template like [https://en.uesp.net/ UESP]'s <code><nowiki>{{</nowiki>[https://en.uesp.net/wiki/Template:Hover hover]<nowiki>}}</nowiki></code> template, which is itself based on Wikimedia's <code><nowiki>{{</nowiki>[https://meta.wikimedia.org/wiki/Template:H:title?useskin=vector H:title]<nowiki>}}</nowiki></code>. | ||
==== Reasoning ==== | ==== Reasoning ==== | ||
This new template would be useful for adding contextual information as a basic tooltip, and could be used as a base for building further, more complex templates. | |||
==== Example ==== | ==== Example ==== | ||
* <code><nowiki>{{Hover text|This is the hovertext|This is the main text}}</nowiki></code> → {{User:Pharap/Templates/Hover text|This is the hover text|This is the main text}} | |||
< | * <code><nowiki>{{Hover text|This is the hovertext|This is the main text|dotted=no}}</nowiki></code> → {{User:Pharap/Templates/Hover text|This is the hover text|This is the main text|dotted=no}} | ||
< | |||
</nowiki></ | ==== Implementation ==== | ||
The easiest way to impelement this would be with a <code>title</code> attribute on a <code>span</code> element. There may, however, be a better, more sophisticated, or more semantically correct way to implement the template. Fortunately, it can be amended after-the-fact if necessary. | |||
Additionally, the text would be underlined with a <span style="bottom-border: 1px dotted">dotted line</span> to highlight the fact the user can hover over it, and the cursor could be optionally changed to the <span style="cursor: help">help cursor</span>. | |||
By default, the first parameter would be the hover text and the second parameter would be the main text. A <code>dotted</code> parameter would be used to disable the dotted line. | |||
See <code><nowiki>{{</nowiki>[[User:Pharap/Templates/Hover text]]<nowiki>}}</nowiki></code> for a functional implementation. | |||
=== Abbreviation Template === | |||
{{ | |||
User:Pharap/Templates/Improvement Proposal Box | |||
|reference=IP-004 | |||
|type=Template | |||
|status=Unimplemented | |||
}} | |||
==== Summary ==== | |||
This would function very much like the [[#Hover Template|aforementioned <code><nowiki>{{hover}}</nowiki></code> template]], but would instead rely on the <code><nowiki><abbr></nowiki></code> HTML element. | |||
==== Reasoning ==== | |||
While the observable functionality is identical to <code><nowiki>{{hover}}</nowiki></code>, there would be a distinct semantic difference that may be of use to external tools, or perhaps to screenreaders. | |||
Note, from [https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr#attributes Mozilla's documentation]: | |||
<blockquote> | |||
<blockquote>< | The title attribute has a specific semantic meaning when used with the <abbr> element; it must contain a full human-readable description or expansion of the abbreviation. This text is often presented by browsers as a tooltip when the mouse cursor is hovered over the element. | ||
</blockquote> | |||
==== Example ==== | |||
* Dictionary Abbreviations: | |||
** {{User:Pharap/Templates/Abbreviation|full=noun|abbreviation=n.}} | |||
** {{User:Pharap/Templates/Abbreviation|full=adjective|abbreviation=adj.}} | |||
** {{User:Pharap/Templates/Abbreviation|full=preposition|abbreviation=prep.}} | |||
** {{User:Pharap/Templates/Abbreviation|full=prefix|abbreviation=pre.}} | |||
** {{User:Pharap/Templates/Abbreviation|full=suffix|abbreviation=suf.}} | |||
==== Implementation ==== | ==== Implementation ==== | ||
The implementation would use the <code><nowiki><abbr></nowiki></code> {{User:Pharap/Templates/Abbreviation|abbreviation=HTTP|full=HyperText Markup Language}} element and its <code>title</code> attribute. | |||
See <code><nowiki>{{</nowiki>[[User:Pharap/Templates/Abbreviation]]<nowiki>}}</nowiki></code> for a functional implementation. | |||
=== Sic Template === | |||
{{ | |||
User:Pharap/Templates/Improvement Proposal Box | |||
|reference=IP-005 | |||
|type=Template | |||
|status=Unimplemented | |||
}} | |||
==== Summary ==== | |||
At the moment the {{tl|sic}} template merely produces a box with a link to Wikipedia, roughly appearing as [''[[w:sic|sic]]'']. The template accepts word fragments, but doesn't do anything useful with them. | |||
I would like to propose an alternative implementation of {{tl|sic}} that would be based on [https://en.uesp.net/wiki/Main_Page UESP]'s [https://en.uesp.net/wiki/Template:Sic implementation] of {{tl|sic}}. Specifically, it would accept the verbatim text and a corrected form, and provide the corrected form as hover text that appears when the incorrect word is hovered over with the reader's cursor. | |||
(A surplus of examples can be found in the [https://en.uesp.net/wiki/Bloodmoon:Airship_Captain%27s_Journal Bloodmoon:Airship Captain's Journal] article.) | |||
I would also propose that the revised {{tl|sic}} link to an internal article on the wiki rather than externally linking to Wikipedia, to avoid the generation of the <span class="extiw" style="padding: 8px;"></span> icon, which clutters the page. The most obvious candidate at the moment would be the [[GoArch:Style_guide#Quotations|Quotations]] section of the style guide. | |||
==== Reasoning ==== | |||
Merely highlighting that a word is incorrect is of limited use and provides only half the information necessary to understand the problem, relying on the reader to inuit both what the problem actually is and what the correct text should be. | |||
Providing a correction not only informs the reader of what the text should have said, but helps them to recognise why the incorrect text is incorrect. | |||
==== Example ==== | |||
Examples: | |||
* <code><nowiki>{{User:Pharap/Templates/Sic|Whark|Wahrk}}</nowiki></code> → {{User:Pharap/Templates/Sic|Whark|Wahrk}} | |||
* <code><nowiki>{{User:Pharap/Templates/Sic|Ghen|Gehn}}</nowiki></code> → {{User:Pharap/Templates/Sic|Ghen|Gehn}} | |||
* "<code><nowiki>{{User:Pharap/Templates/Sic|Muphry|Murphy|link=no}}'s law</nowiki></code>" → "{{User:Pharap/Templates/Sic|Muphry|Murphy|link=no}}'s law" | |||
To provide a more concrete example, [[Reference:Gehn, Lab journal|Gehn's Lab Journal]] incorrectly says "discreet" instead of "discrete", and at present that looks like discreet {{sic|[discrete]}}. With the proposed change, it would appear as (something more like) {{User:Pharap/Templates/Sic|discreet|discrete}}. | |||
==== Implementation ==== | |||
A functional implementation can be viewed at <code><nowiki>{{</nowiki>[[User:Pharap/Templates/Sic]]<nowiki>}}</nowiki></code>. | |||
=== IPA Hover Guides === | === IPA Hover Guides === | ||
{{ | |||
User:Pharap/Templates/Improvement Proposal Box | |||
|reference=IP-006 | |||
|type=Module | |||
|status=Unimplemented | |||
}} | |||
==== Summary ==== | ==== Summary ==== | ||
Line 194: | Line 258: | ||
The whole thing would be wrapped in a <code>span</code> element with its <code>style</code> attribute set to produce a dotted line, and that would be bookended by forward slashes. | The whole thing would be wrapped in a <code>span</code> element with its <code>style</code> attribute set to produce a dotted line, and that would be bookended by forward slashes. | ||
=== Add a <code>quote</code> Parameter to {{tlx|cite journal}} === | |||
==== Summary ==== | |||
I propose to add a <code>quote</code> parameter to the {{tlx|cite journal}} template so that references may include specific quotes relevant to the claim being supported by the citation. | |||
==== Reasoning ==== | |||
The intent of such a quotation would be to make it easier to verify claims as readers would not have to (for example) go hunting through entire journals just to find the one sentence that supports the claim made in the article. | |||
==== Example ==== | |||
The <code>quote</code> parameter could then be used as thus: | |||
<pre><nowiki> | |||
<ref name="Tay">{{cite journal|author=Catherine|journal=Personal journal|journal-page=Reference:Catherine, personal journal (Riven)|game=Riven|quote=They have named it "Tay"}}</ref> | |||
</nowiki></pre> | |||
Producing an output of: | |||
<blockquote><samp>Catherine, ''Personal journal''. Riven. "They have named it "Tay""</samp></blockquote> | |||
The presence or absence of quote marks and/or the style of the quote marks would be up for discussion. | |||
Should anyone find the nesting of the same style of quotes unsatisfactory, I ''believe'' it should be possible to enforce the inner quotes being made a different style. | |||
==== Implementation ==== | |||
This proposal could be implemented by simply adding <code><nowiki>{{#if:{{{quote|}}}| "{{{quote}}}"|}}</nowiki></code> to the existing template, such that it becomes: | |||
<pre><nowiki> | |||
{{{author}}}. ''{{{journal-nolink|[[{{{journal-page|Reference:{{{author}}}, {{{journal}}}}}}|{{{journal}}}]]}}}''. {{{game-nolink|[[{{{game-page|{{{game}}}}}}|{{{game}}}]]}}}.{{#if:{{{quote|}}}| "{{{quote}}}"|}}<noinclude>{{documentation}}</noinclude> | |||
</nowiki></pre> | |||
The documentation for the template could be ammended with: | |||
<pre><nowiki> | |||
"quote": | |||
{ | |||
"label": "Quote", | |||
"description": "A selected quote from the referenced journal. The chosen quote should be relevant to the article content that makes use of the citation. If omitted, no quote is included in the reference.", | |||
"example": "They have named it \"Tay\"", | |||
"type": "string" | |||
} | |||
</nowiki></pre> | |||
As well as the addition of <code>"quote"</code> to the end of the <code>paramOrder</code> array. | |||
Note: In regards to enforcing that nested quotes use a different style, I don't believe templates alone are capable of text replacement that sophisticated, though it's possible they support some sort of regex-replacement feature that I'm unaware of at the time of writing. To support such a feature would, I believe, require a Lua module. I haven't researched that as I'm presuming it won't be an issue, but should it be an issue I have sufficient experience with Lua and parsing that I'm confident I could make a good go of it. | |||
== Incomplete Proposals == | == Incomplete Proposals == | ||
* Add a | * Add a template that marks a name as being based on conjecture rather than in-game evidence. | ||
* Further proposals for adding <code>quote</code> parameters to other <code>cite</code> templates, such as {{tlx|cite dialog}}. | * Further proposals for adding <code>quote</code> parameters to other <code>cite</code> templates, such as {{tlx|cite dialog}}. | ||
* Add an <code>access-date</code> parameter to the {{tlx|cite forum post}} template. | * Add an <code>access-date</code> parameter to the {{tlx|cite forum post}} template. | ||
* Add relevant details to <code>Reference:</code> pages that archive forum posts such that they can be properly cited with a {{tlx|cite forum post}}. In particular, the original forum post URL would be useful - the reference page should be considered the archived form if no [http://web.archive.org/ Wayback Machine] page exists. | * Add relevant details to <code>Reference:</code> pages that archive forum posts such that they can be properly cited with a {{tlx|cite forum post}}. In particular, the original forum post URL would be useful - the reference page should be considered the archived form if no [http://web.archive.org/ Wayback Machine] page exists. | ||
* | * Allow {{tl|infobox person}} to automatically add a person to [[:Category:Humans]] with <code><nowiki><includeonly>{{#ifeq: {{{race|}}}|Human|[[Category:Humans]]}}</includeonly></nowiki></code>. | ||
* Tool pages | |||
*** | ** A D'ni clock | ||
** | ** D'ni rendering from input | ||
** D'ni keyboard |
Latest revision as of 04:47, 3 February 2024
Improvement Proposals[edit | edit source]
Inline D'ni Dictionary Template[edit | edit source]
Reference | IP-001 |
Type | Template |
Status | Unimplemented |
Summary[edit | edit source]
The wiki has an extensive dictionary which at the moment isn't being particularly well leveraged from within templates and articles. I propose to change that by adding some templates that could make use of the dictionary in conjuction with the D'ni rendering capabilities of the wiki to provide rendered D'ni with hover text that provides information from the D'ni dictionary.
Notably, the hover text would be able display the three main ways of writing that word (Dnifont, OTS, and NTS), as well as the IPA pronunciation of the word.
Reasoning[edit | edit source]
This feature would make it easier to provide more linguistic information with less markup and less effort.
The primary way of implementing this template (see Example below) would allow using the name of the dictionary entry, which is likely easier for those who are not well-versed in Dnifont. However, a secondary implementation supporting Dnifont may be provided.
Having the IPA pronunciation would be particularly useful considering how many pages currently feature rendered Dnifont and OTS-style words but lack any corresponding IPA. The presence of IPA would be incredibly useful for readers who understand the meaning of the IPA symbols, as it would help them to know how to pronounce the various D'ni words and names that crop up throughout the wiki.
Example[edit | edit source]
A usage like {{D'ni word OTS|Teledahn}}
could appear as thus: .
Hence one would only need to remember the name of the dictionary entry, and the template will generate all relevant information as part of the hover text.
Alternatively, a variant like {{D'ni word Dnifont|teleDan}}
accepting Dnifont could also be permitted, as well as possibly a form that could accept either argument, such as {{D'ni word|ots=Teledahn}}
and {{D'ni dict|dnifont=teleDan}}
, perhaps even having {{D'ni word|Teledahn}}
be treated as {{D'ni word|ots=Teledahn}}
.
Ideally the hover text would be better formatted, more like the [[Has length::30 cm]] property from the Semantic MediaWiki addons: 30 cm0.0622 sp <br />11.801 in <br />0.983 ft <br />0.3 m <br />, but I have yet to investigate how that might be achieved.
Implementation[edit | edit source]
As a proof of concept, I have implemented all the aforementioned templates:
- A template that accepts a Dictionary page name:
{{User:Pharap/Templates/D'ni word OTS|Teledahn}}
→
- A template that accepts Dnifont:
{{User:Pharap/Templates/D'ni word Dnifont|teleDan}}
→
- A template that accepts either:
{{User:Pharap/Templates/D'ni word|Teledahn}}
→{{User:Pharap/Templates/D'ni word|ots=Teledahn}}
→{{User:Pharap/Templates/D'ni word|dnifont=teleDan}}
→
Discovering how to implement this solution took me quite a lot of research as at first I didn't know about the existance of the OTS, NTS, and IPA properties, as their existence was somewhat buried in the Dict D'ni module and {{IPA}} template respectively. After figuring those out I managed to discover some modules that support the 'dnifont2ots
' and 'dnifont2nts
' functions.
It also took me a while to realise that the syntax [[Property::Value]]
can be used to declare a value for a property in the same way as {{#set: Property=Value}}
, and that consequently the following two lines of the D'ni Dict module are producing two properties:
output = output..'* [[OTS]]: [[OTS::'..dnifont2ots(args['dnifont'])..']]\n'
output = output..'* [[NTS]]: [[NTS::'..dnifont2nts(args['dnifont'])..']] '
Specifically:
- If the expression
dnifont2ots(args['dnifont'])
were to produceteledahn
then the output* [[OTS]]: [[OTS::teledahn]]
would be inserted into the page. - If the expression
dnifont2nts(args['dnifont'])
were to produceteledan
then the output* [[NTS]]: [[NTS::teledan]]
would be inserted into the page.
In the case of the {{IPA}} template, I simply hadn't peeked at its source. At one point I had separately thought of the possibility of including such a property in the {{IPA}} template, but for a while after I had simply presumed that it wouldn't be there and hadn't thought to check until I ended up looking at the source by chance when editing my User page and noticing the property's presence.
After getting a working prototype, I went back and refined the templates several times, including changes such as adding a link
parameter, changing how I was using the 'dnifont2ots' facilities (due to discovering a second module with the same functionality), and splitting the hover text over multiple lines.
Apocrypha Banner[edit | edit source]
Reference | IP-002 |
Type | Template |
Status | Unimplemented |
Summary[edit | edit source]
At the moment, apocrypha articles using the {{apocrypha}}
template are marked with a small badge at the top right of the page which is unobvious and easily overlooked.
I propose that instead of (or in addition to) a small badge, apocrypha articles be marked with a large banner at the top of the page as is done with both Out-of-Cavern artices (e.g. Riven (game)) via the {{OOC}}
tag and Unexplored Branches articles (e.g. Chiso Preniv) via the {{Unexplored Branches}}
tag.
Reasoning[edit | edit source]
The reasoning behind this suggestion is to make apocrypha articles more obvious and less likely to be mistaken for 'official' content, particularly in cases where particularly well-made apocrypha with similar quality and/or appearance to official content might easily be mistaken for official content if one has overlooked the badge.
Example[edit | edit source]
The banner by including the {{apocrypha}}
template would appear as thus:
The badge on the top right of the page could appear as it currently does or be omitted.
Implementation[edit | edit source]
The change could be enacted by the use of an {{ambox}}
template.
<indicator name="apocrypha">[[File:Apocrypha.png|30px|link=GoArch:Apocrypha]]</indicator><includeonly>[[Category:Apocrypha]]</includeonly> {{ambox | type=notice | image=[[File:Apocrypha.png|50px]] | issue = is [[GoArch:Apocrypha|apocrypha]]. It should be considered [[GoArch:Canon policy|non-canon]] and may consist of fan-created content. | small = {{#if:{{{sect|{{{section|{{{1|}}}}}}}}}|{{#if:{{{small|{{{left|}}}}}}|left}} }} | sect = {{{sect|{{{section|{{{1|}}}}}}}}} }} <noinclude> '''This template is for indicating that an article is about a non-canon subject. Non-canon subjects include: * Fan-created content, such as the [[Lara Documents]] or fan-created Ages * Material from the Dark Horse comics * Ret-conned content from the Myst novels (such as [[Tadjinar]])</noinclude>
This template currently includes no documentation, though if any were needed it should simply be a matter of adapting the documentation provided for the {{OOC}}
or {{Unexplored Branches}}
templates.
Hover Text Template[edit | edit source]
Reference | IP-003 |
Type | Template |
Status | Unimplemented |
Summary[edit | edit source]
I propose introducing a {{hover text}}
template like UESP's {{hover}}
template, which is itself based on Wikimedia's {{H:title}}
.
Reasoning[edit | edit source]
This new template would be useful for adding contextual information as a basic tooltip, and could be used as a base for building further, more complex templates.
Example[edit | edit source]
{{Hover text|This is the hovertext|This is the main text}}
→ This is the main text{{Hover text|This is the hovertext|This is the main text|dotted=no}}
→ This is the main text
Implementation[edit | edit source]
The easiest way to impelement this would be with a title
attribute on a span
element. There may, however, be a better, more sophisticated, or more semantically correct way to implement the template. Fortunately, it can be amended after-the-fact if necessary.
Additionally, the text would be underlined with a dotted line to highlight the fact the user can hover over it, and the cursor could be optionally changed to the help cursor.
By default, the first parameter would be the hover text and the second parameter would be the main text. A dotted
parameter would be used to disable the dotted line.
See {{User:Pharap/Templates/Hover text}}
for a functional implementation.
Abbreviation Template[edit | edit source]
Reference | IP-004 |
Type | Template |
Status | Unimplemented |
Summary[edit | edit source]
This would function very much like the aforementioned {{hover}}
template, but would instead rely on the <abbr>
HTML element.
Reasoning[edit | edit source]
While the observable functionality is identical to {{hover}}
, there would be a distinct semantic difference that may be of use to external tools, or perhaps to screenreaders.
Note, from Mozilla's documentation:
The title attribute has a specific semantic meaning when used with the element; it must contain a full human-readable description or expansion of the abbreviation. This text is often presented by browsers as a tooltip when the mouse cursor is hovered over the element.
Example[edit | edit source]
- Dictionary Abbreviations:
- n.
- adj.
- prep.
- pre.
- suf.
Implementation[edit | edit source]
The implementation would use the <abbr>
HTTP element and its title
attribute.
See {{User:Pharap/Templates/Abbreviation}}
for a functional implementation.
Sic Template[edit | edit source]
Reference | IP-005 |
Type | Template |
Status | Unimplemented |
Summary[edit | edit source]
At the moment the {{sic}} template merely produces a box with a link to Wikipedia, roughly appearing as [sic]. The template accepts word fragments, but doesn't do anything useful with them.
I would like to propose an alternative implementation of {{sic}} that would be based on UESP's implementation of {{sic}}. Specifically, it would accept the verbatim text and a corrected form, and provide the corrected form as hover text that appears when the incorrect word is hovered over with the reader's cursor.
(A surplus of examples can be found in the Bloodmoon:Airship Captain's Journal article.)
I would also propose that the revised {{sic}} link to an internal article on the wiki rather than externally linking to Wikipedia, to avoid the generation of the icon, which clutters the page. The most obvious candidate at the moment would be the Quotations section of the style guide.
Reasoning[edit | edit source]
Merely highlighting that a word is incorrect is of limited use and provides only half the information necessary to understand the problem, relying on the reader to inuit both what the problem actually is and what the correct text should be.
Providing a correction not only informs the reader of what the text should have said, but helps them to recognise why the incorrect text is incorrect.
Example[edit | edit source]
Examples:
{{User:Pharap/Templates/Sic|Whark|Wahrk}}
→ Whark [sic]{{User:Pharap/Templates/Sic|Ghen|Gehn}}
→ Ghen [sic]- "
{{User:Pharap/Templates/Sic|Muphry|Murphy|link=no}}'s law
" → "Muphry's law"
To provide a more concrete example, Gehn's Lab Journal incorrectly says "discreet" instead of "discrete", and at present that looks like discreet [discrete] [sic]. With the proposed change, it would appear as (something more like) discreet [sic].
Implementation[edit | edit source]
A functional implementation can be viewed at {{User:Pharap/Templates/Sic}}
.
IPA Hover Guides[edit | edit source]
Reference | IP-006 |
Type | Module |
Status | Unimplemented |
Summary[edit | edit source]
Wikipedia has an {{IPAc-en}} template that produces IPA that provides a pronunciation guide when hovering over the individual characters. For example, the Basalt page features examples such as /ˈbæsɔːlt/ where hovering over the 'b' gives "'b' in 'buy'", hovering over the 'æ' gives "'a' in 'bad'", hovering over the 's' gives "'s' in 'sigh'", et cetera.
It would be useful if similar functionality could be reproduced on this wiki.
Reasoning[edit | edit source]
It would provide a useful starting point for people who aren't familiar with IPA and are trying to understand how to pronounce various names and D'ni words.
Example[edit | edit source]
A hypothetical {{IPAc-en|t|ɛ|.|l|ɛ|.|d|ɑ|n}} would give /tɛ.lɛ.dɑn/.
Implementation[edit | edit source]
Despite being used as a template, this would be best implemented as a module.
The exact implementation is currently to be confirmed, but the general idea is simple enough:
- Each numbered parameter will be examined.
- The specific IPA character will be looked up in a table of tooltips.
- If a corresponding piece of tooltip text was found:
- The character will be inserted into the page surrounded by a
span
with thetitle
set to whatever the found tooltip was. - Otherwise, the character will be inserted without any additional processing.
- The character will be inserted into the page surrounded by a
The whole thing would be wrapped in a span
element with its style
attribute set to produce a dotted line, and that would be bookended by forward slashes.
Add a quote
Parameter to {{cite journal}}
[edit | edit source]
Summary[edit | edit source]
I propose to add a quote
parameter to the {{cite journal}}
template so that references may include specific quotes relevant to the claim being supported by the citation.
Reasoning[edit | edit source]
The intent of such a quotation would be to make it easier to verify claims as readers would not have to (for example) go hunting through entire journals just to find the one sentence that supports the claim made in the article.
Example[edit | edit source]
The quote
parameter could then be used as thus:
<ref name="Tay">{{cite journal|author=Catherine|journal=Personal journal|journal-page=Reference:Catherine, personal journal (Riven)|game=Riven|quote=They have named it "Tay"}}</ref>
Producing an output of:
Catherine, Personal journal. Riven. "They have named it "Tay""
The presence or absence of quote marks and/or the style of the quote marks would be up for discussion.
Should anyone find the nesting of the same style of quotes unsatisfactory, I believe it should be possible to enforce the inner quotes being made a different style.
Implementation[edit | edit source]
This proposal could be implemented by simply adding {{#if:{{{quote|}}}| "{{{quote}}}"|}}
to the existing template, such that it becomes:
{{{author}}}. ''{{{journal-nolink|[[{{{journal-page|Reference:{{{author}}}, {{{journal}}}}}}|{{{journal}}}]]}}}''. {{{game-nolink|[[{{{game-page|{{{game}}}}}}|{{{game}}}]]}}}.{{#if:{{{quote|}}}| "{{{quote}}}"|}}<noinclude>{{documentation}}</noinclude>
The documentation for the template could be ammended with:
"quote": { "label": "Quote", "description": "A selected quote from the referenced journal. The chosen quote should be relevant to the article content that makes use of the citation. If omitted, no quote is included in the reference.", "example": "They have named it \"Tay\"", "type": "string" }
As well as the addition of "quote"
to the end of the paramOrder
array.
Note: In regards to enforcing that nested quotes use a different style, I don't believe templates alone are capable of text replacement that sophisticated, though it's possible they support some sort of regex-replacement feature that I'm unaware of at the time of writing. To support such a feature would, I believe, require a Lua module. I haven't researched that as I'm presuming it won't be an issue, but should it be an issue I have sufficient experience with Lua and parsing that I'm confident I could make a good go of it.
Incomplete Proposals[edit | edit source]
- Add a template that marks a name as being based on conjecture rather than in-game evidence.
- Further proposals for adding
quote
parameters to othercite
templates, such as{{cite dialog}}
. - Add an
access-date
parameter to the{{cite forum post}}
template. - Add relevant details to
Reference:
pages that archive forum posts such that they can be properly cited with a{{cite forum post}}
. In particular, the original forum post URL would be useful - the reference page should be considered the archived form if no Wayback Machine page exists. - Allow {{infobox person}} to automatically add a person to Category:Humans with
<includeonly>{{#ifeq: {{{race|}}}|Human|[[Category:Humans]]}}</includeonly>
. - Tool pages
- A D'ni clock
- D'ni rendering from input
- D'ni keyboard