Difference between revisions of "Modding:Mod compatibility/entry"
Jump to navigation
Jump to search
Pathoschild (talk | contribs) (→Usage: tweaks) |
Pathoschild (talk | contribs) (add more nuanced status defaults, derive it automatically in most cases) |
||
Line 8: | Line 8: | ||
! source | ! source | ||
! </noinclude> | ! </noinclude> | ||
− | |- id="{{{name}}}" {{#if:{{{nexus id|}}}|data-nexus-id="{{{nexus id|}}}"}} {{#if:{{{cf id|}}}|chucklefish-id="{{{cf id|}}}"}} data-status="{{{status|ok}}}" {{#if:{{{unofficial version|}}}|data-unofficial-version="{{{unofficial version}}}"}} {{#if:{{{github|}}}|data-github="{{{github}}}"}} {{#if:{{{source|}}}|data-custom-source="{{{source|}}}"}} style="line-height: 1em; {{#switch:{{{status|ok}}} |ok|optional=background: #9F9; |workaround=background: #CF9; |broken={{#if:{{{unofficial url|}}}|background: #CF9;|background: #F99;}} |obsolete|abandoned=background: #999}}" | + | |- id="{{{name}}}" {{#if:{{{nexus id|}}}|data-nexus-id="{{{nexus id|}}}"}} {{#if:{{{cf id|}}}|chucklefish-id="{{{cf id|}}}"}} data-status="{{{status|{{#if:{{{unofficial url|}}}|workaround|{{#if:{{{broke in|}}}|broken|ok}}}}}}}" {{#if:{{{unofficial version|}}}|data-unofficial-version="{{{unofficial version}}}"}} {{#if:{{{github|}}}|data-github="{{{github}}}"}} {{#if:{{{source|}}}|data-custom-source="{{{source|}}}"}} style="line-height: 1em; {{#switch:{{{status|{{#if:{{{unofficial url|}}}|workaround|{{#if:{{{broke in|}}}|broken|ok}}}}}}} |ok|optional=background: #9F9; |workaround=background: #CF9; |broken={{#if:{{{unofficial url|}}}|background: #CF9;|background: #F99;}} |obsolete|abandoned=background: #999}}" |
| {{#if:{{{nexus id|}}}|[{{nexus mod|{{{nexus id}}} {{{name|}}}]}}|{{#if:{{{cf id|}}}|[https://community.playstarbound.com/resources/{{urlencode:{{{cf id}}}}} {{{name}}}]|{{#if:{{{url|}}}|[{{{url}}} {{{name}}}]|{{{name}}}}}}}}}{{#if:{{{name2|}}}|<br /><small style="font-size:0.75em;">(aka {{{name2}}})</small>}} | | {{#if:{{{nexus id|}}}|[{{nexus mod|{{{nexus id}}} {{{name|}}}]}}|{{#if:{{{cf id|}}}|[https://community.playstarbound.com/resources/{{urlencode:{{{cf id}}}}} {{{name}}}]|{{#if:{{{url|}}}|[{{{url}}} {{{name}}}]|{{{name}}}}}}}}}{{#if:{{{name2|}}}|<br /><small style="font-size:0.75em;">(aka {{{name2}}})</small>}} | ||
| {{{author}}}{{#if:{{{author2|}}}|<br /><small style="font-size:0.75em;">(aka {{{author2}}})</small>}} | | {{{author}}}{{#if:{{{author2|}}}|<br /><small style="font-size:0.75em;">(aka {{{author2}}})</small>}} | ||
− | | {{#switch:{{{status|ok}}} |ok|optional=✓ |workaround=⚠ |broken={{#if:{{{#github|{{{source|}}}}}}|↻{{#if:{{{unofficial version|}}}|⚠|✖}}}} |obsolete|abandoned=✖}} {{#switch:{{{status|ok}}} | + | | {{#switch:{{{status|{{#if:{{{unofficial url|}}}|workaround|{{#if:{{{broke in|}}}|broken|ok}}}}}}} |ok|optional=✓ |workaround=⚠ |broken={{#if:{{{#github|{{{source|}}}}}}|↻{{#if:{{{unofficial version|}}}|⚠|✖}}}} |obsolete|abandoned=✖}} {{#switch:{{{status|{{#if:{{{unofficial url|}}}|workaround|{{#if:{{{broke in|}}}|broken|ok}}}}}}} |
|ok = {{#if:{{{summary|}}}|{{{summary}}}|use latest version.}} | |ok = {{#if:{{{summary|}}}|{{{summary}}}|use latest version.}} | ||
|optional = {{#if:{{{summary|}}}|{{{summary}}}|use optional download<ref name="optional-update" />.}} | |optional = {{#if:{{{summary|}}}|{{{summary}}}|use optional download<ref name="optional-update" />.}} | ||
|obsolete = {{#if:{{{summary|}}}|{{{summary}}}|obsolete.}} | |obsolete = {{#if:{{{summary|}}}|{{{summary}}}|obsolete.}} | ||
|abandoned = {{#if:{{{summary|}}}|{{{summary}}}|no longer maintained.}} | |abandoned = {{#if:{{{summary|}}}|{{{summary}}}|no longer maintained.}} | ||
− | |#default = broken{{#if:{{{unofficial url|}}}|, use [{{{unofficial url}}} unofficial update]{{#if:{{{unofficial version|}}}| (<small>{{{unofficial version}}}</small>)}}.|{{#if:{{{summary|}}}|, {{{summary}}}|{{#switch:{{{status|ok}}}|broken={{#if:{{{github|{{{source|}}}}}}|, not updated yet|, not open-source}}}}.}}}} | + | |#default = broken{{#if:{{{unofficial url|}}}|, use [{{{unofficial url}}} unofficial update]{{#if:{{{unofficial version|}}}| (<small>{{{unofficial version}}}</small>)}}.|{{#if:{{{summary|}}}|, {{{summary}}}|{{#switch:{{{status|{{#if:{{{unofficial url|}}}|workaround|{{#if:{{{broke in|}}}|broken|ok}}}}}}}|broken={{#if:{{{github|{{{source|}}}}}}|, not updated yet|, not open-source}}}}.}}}} |
}} | }} | ||
| <small>{{{broke in|}}}</small> | | <small>{{{broke in|}}}</small> | ||
Line 42: | Line 42: | ||
|nexus id = 541 | |nexus id = 541 | ||
|github = Pathoschild/StardewMods | |github = Pathoschild/StardewMods | ||
− | |||
|summary = | |summary = | ||
|broke in = Stardew Valley 1.2 | |broke in = Stardew Valley 1.2 | ||
− | |||
}} | }} | ||
</pre> | </pre> | ||
Line 54: | Line 52: | ||
|unofficial version = 1.18.2-unofficial.1-example | |unofficial version = 1.18.2-unofficial.1-example | ||
</pre> | </pre> | ||
+ | |||
+ | ===Other fields=== | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! field | ||
+ | ! purpose | ||
+ | |- | ||
+ | | <code>status</code> | ||
+ | | Whether the mod is compatible with the latest versions of Stardew Valley and SMAPI (see [[#Valid statuses]]). If not specified, it defaults to <code>workaround</code> if an unofficial URL is given, else <code>broken</code> if <code>broke in</code> is specified, else <code>ok</code>. | ||
+ | |- | ||
+ | | <code>cf id</code> | ||
+ | | The mod's ID in the Chucklefish mod repository. | ||
+ | |- | ||
+ | | <code>url</code> | ||
+ | | The arbitrary mod URL, if not on Nexus or Chucklefish. Avoid if possible, since this makes crossreferencing more difficult. | ||
+ | |- | ||
+ | | <code>source url</code> | ||
+ | | An arbitrary source code URL, if not on GitHub. Avoid if possible, since this makes crossreferencing more difficult. | ||
+ | |- | ||
+ | | <code>name2</code><br /><code>author2</code> | ||
+ | | Adds alternate mod and author names. | ||
+ | |- | ||
+ | | <code>hide-url</code> | ||
+ | | Use this instead of (<code>url</code>) to move it into a superscript link. Mainly useful for broken mods with a workaround, so players don't automatically click through to the old mod. | ||
+ | |- | ||
+ | | <code>links</code> | ||
+ | | A comma-delimited list of URLs to add as superscript links. Mainly useful for linking to pull requests. | ||
+ | |} | ||
+ | |||
===Valid statuses=== | ===Valid statuses=== | ||
Line 78: | Line 105: | ||
| <code>obsolete</code> | | <code>obsolete</code> | ||
| The mod is no longer needed and should be removed. | | The mod is no longer needed and should be removed. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
Revision as of 23:49, 18 May 2018
mod name | author | compatibility | broke in | source | |
---|---|---|---|---|---|
{{{name}}} | {{{author}}} | ✓ use latest version. | closed source |
Usage
Templates
For a compatible mod:
{{/entry |name = Lookup Anything |author = Pathoschild |nexus id = 541 |github = Pathoschild/StardewMods }}
For a broken mod:
{{/entry |name = Lookup Anything |author = Pathoschild |nexus id = 541 |github = Pathoschild/StardewMods |summary = |broke in = Stardew Valley 1.2 }}
For an unofficial update, use the broken-mod template and add these under the other fields:
|unofficial url = https://community.playstarbound.com/attachments/201345000 |unofficial version = 1.18.2-unofficial.1-example
Other fields
field | purpose |
---|---|
status
|
Whether the mod is compatible with the latest versions of Stardew Valley and SMAPI (see #Valid statuses). If not specified, it defaults to workaround if an unofficial URL is given, else broken if broke in is specified, else ok .
|
cf id
|
The mod's ID in the Chucklefish mod repository. |
url
|
The arbitrary mod URL, if not on Nexus or Chucklefish. Avoid if possible, since this makes crossreferencing more difficult. |
source url
|
An arbitrary source code URL, if not on GitHub. Avoid if possible, since this makes crossreferencing more difficult. |
name2 author2
|
Adds alternate mod and author names. |
hide-url
|
Use this instead of (url ) to move it into a superscript link. Mainly useful for broken mods with a workaround, so players don't automatically click through to the old mod.
|
links
|
A comma-delimited list of URLs to add as superscript links. Mainly useful for linking to pull requests. |
Valid statuses
status | description |
---|---|
ok
|
The mod is compatible. This is the default and doesn't need to be specified. Default summary: use latest version. |
optional
|
The mod is compatible, if you use an optional download on the mod page. Default summary: use optional download.[1] |
workaround
|
The mod isn't compatible, but the player can fix it or there's a good alternative. A summary should be provided manually. If you also set unofficial url and unofficial version, you can set this to broken instead. |
broken
|
The mod isn't compatible. The message depends on whether the source link is set.Default summary: broken, not updated yet or broken, not open-source. |
abandoned
|
The mod is no longer maintained by the author, and an unofficial update or continuation is unlikely. This should only be used when the author has definitively abandoned the mod (either explicitly, or by removing the mod page or downloads). Default summary: no longer maintained. |
obsolete
|
The mod is no longer needed and should be removed. |
Script
This script generates the template call when run from a Nexus or Chucklefish mod page.
switch(location.host)
{
case "www.nexusmods.com":
var url = location.origin + location.pathname.replace(/\/*$/, '');
var name = $(".header-name").text();
var author = $(".uploader a").text();
var author2 = $(".header-author strong").text();
break;
case "community.playstarbound.com":
var url = location.origin + location.pathname.replace(/\/*$/, '');
var name = $.trim($("h1:first").contents().first().text());
var author = $(".primaryContent[data-author]:first").attr("data-author");
break;
default:
throw `Unknown domain: ${location.host}`;
}
var template = `
{{/entry
|name = ${name}
|author = ${author}`;
if(author2 && author2 != author)
template += '\n' + ` |author2 = ${author2}`;
template += `
|url = ${url}
|status = ok
|summary =
|source =
}}
`;