Difference between revisions of "Modding:Mod compatibility/entry"

From Stardew Valley Wiki
Jump to navigation Jump to search
m (tweak 'not open-source' text)
(+ more machine-parseable parameters (nexus id, chucklefish id, github))
Line 8: Line 8:
 
! source
 
! source
 
! &nbsp;</noinclude>
 
! &nbsp;</noinclude>
|- id="{{{name}}}" data-status="{{{status|ok}}}" {{#if:{{{source|}}}|data-has-source}} style="line-height: 1em; {{#switch:{{{status|ok}}} |ok|optional=background: #9F9; |workaround=background: #CF9; |broken|soon-official=background: #F99; |obsolete=background: #999}}"
+
|- id="{{{name}}}" {{#if:{{{nexus id|}}}|nexus-id="{{{nexus id|}}}"}} {{#if:{{{chucklefish id|}}}|chucklefish-id="{{{chucklefish id|}}}"}} data-status="{{{status|ok}}}" {{#if:{{{github|{{{source|}}}}}}|data-has-source}} style="line-height: 1em; {{#switch:{{{status|ok}}} |ok|optional=background: #9F9; |workaround=background: #CF9; |broken|soon-official=background: #F99; |obsolete=background: #999}}"
| {{#if:{{{url|}}}|[{{{url}}} {{{name}}}]|{{{name}}}}}{{#if:{{{name2|}}}|<br /><small style="font-size:0.75em;">(aka {{{name2}}})</small>}}
+
| {{#if:{{{nexus id|}}}|[{{nexus url|{{{nexus id}}}}}|{{#if:{{{chucklefish id|}}}|https://community.playstarbound.com/resources/{{urlencode:{{{chucklefish id}}}}}|{{#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=⚠ |soon-official=↻ |broken={{#if:{{{source|}}}|↻|✖}}|obsolete=✖}} {{#switch:{{{status|ok}}}
+
| {{#switch:{{{status|ok}}} |ok|optional=✓ |workaround=⚠ |soon-official=↻ |broken={{#if:{{{#github|{{{source|}}}}}}|↻|✖}}|obsolete=✖}} {{#switch:{{{status|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.}}
   |#default = broken{{#if:{{{summary|}}}|, {{{summary}}}|{{#switch:{{{status|ok}}}|broken={{#if:{{{source|}}}|, not updated yet|, not open-source}}|soon-official=, author will update it soon}}.}}
+
   |#default = broken{{#if:{{{summary|}}}|, {{{summary}}}|{{#switch:{{{status|ok}}}|broken={{#if:{{{github|{{{source|}}}}}}|, not updated yet|, not open-source}}|soon-official=, author will update it soon}}.}}
 
}}
 
}}
 
| <small>{{{broke in|}}}</small>
 
| <small>{{{broke in|}}}</small>
| {{#if:{{{source|}}}|[{{{source}}} source]|<span style="color: red; font-size: 0.85em; opacity: 0.5;">closed source</span>}}
+
| {{#if:{{{github|}}}|[https://github.com/{{{github}}} source]|{{#if:{{{source|}}}|[{{{source}}} source]|<span style="color: red; font-size: 0.85em; opacity: 0.5;">closed source</span>}}}}
 
| {{#if:{{{hide-url|}}}|&#32;[{{{hide-url}}} <sup>o</sup>]}}{{#if:{{{links|}}}|&#32;{{#arraydefine:linkArray|{{{links}}}}}{{#arrayprint:linkArray|&#32;|@@@@|<sup>[@@@@ {{#expr:{{#arraysearch:linkArray|@@@@}} + 1}}]</sup>}}}}<noinclude>
 
| {{#if:{{{hide-url|}}}|&#32;[{{{hide-url}}} <sup>o</sup>]}}{{#if:{{{links|}}}|&#32;{{#arraydefine:linkArray|{{{links}}}}}{{#arrayprint:linkArray|&#32;|@@@@|<sup>[@@@@ {{#expr:{{#arraysearch:linkArray|@@@@}} + 1}}]</sup>}}}}<noinclude>
 
|}
 
|}
Line 28: Line 28:
 
   |name    = Lookup Anything
 
   |name    = Lookup Anything
 
   |author  = Pathoschild
 
   |author  = Pathoschild
   |url      = http://www.nexusmods.com/stardewvalley/mods/541
+
   |nexus id = 541
   |source   = https://github.com/Pathoschild/StardewMods
+
   |github   = Pathoschild/StardewMods
 
}}
 
}}
 
</pre>
 
</pre>
Line 38: Line 38:
 
   |name    = Lookup Anything
 
   |name    = Lookup Anything
 
   |author  = Pathoschild
 
   |author  = Pathoschild
   |url      = http://www.nexusmods.com/stardewvalley/mods/541
+
   |nexus id = 541
   |source   = https://github.com/Pathoschild/StardewMods
+
   |github   = Pathoschild/StardewMods
 
   |status  = broken
 
   |status  = broken
 
   |summary  =  
 
   |summary  =  
Line 46: Line 46:
 
}}
 
}}
 
</pre>
 
</pre>
 +
 +
Alternative options:
 +
* can replace <tt>nexus id</tt> with <tt>chucklefish id</tt> or <tt>url</tt>;
 +
* can replace <tt>github</tt> with <tt>source url</tt>.
  
 
Valid statuses:
 
Valid statuses:

Revision as of 05:51, 18 May 2018

Usage

For a compatible mod:

{{/entry
  |name     = Lookup Anything
  |author   = Pathoschild
  |nexus id = 541
  |github   = Pathoschild/StardewMods
}}

For a mod with a non-OK status:

{{/entry
  |name     = Lookup Anything
  |author   = Pathoschild
  |nexus id = 541
  |github   = Pathoschild/StardewMods
  |status   = broken
  |summary  = 
  |broke in = Stardew Valley 1.2
  |links    = <!-- any comma-separated URLs to pull requests, discussions, etc -->
}}

Alternative options:

  • can replace nexus id with chucklefish id or url;
  • can replace github with source url.

Valid statuses:

status meaning default summary
ok The mod is compatible. This is the default and doesn't need to be specified. use latest version.
optional The mod is compatible, if you use an optional download on the mod page. use optional download.[1]
workaround The mod isn't compatible, but the player can fix it or there's a good alternative.
soon-official The mod isn't compatible, but the author has said they'll update it. author will update it soon.
broken The mod isn't compatible. The message depends on whether the source link is set. broken, not updated yet.
broken, not open-source.
obsolete The mod is no longer needed and should be removed.

Other fields:

  • |name2=name and |author2=name add also-known-as lines for the mod name & author respectively.
  • |hide-url=URL (replacing |url=) moves the URL into a superscript link. Mainly useful for broken mods with a workaround, so players don't automatically click through to the old mod.
  • |links=URLs adds superscript links (comma-separated). Mainly useful for linking to pull requests.

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  = 
}}
`;