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

From Stardew Valley Wiki
Jump to navigation Jump to search
(+ attributes for scripting)
(+ script)
Line 62: Line 62:
 
* <code>|hide-url=URL</code> (replacing <code>|url=</code>) 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.
 
* <code>|hide-url=URL</code> (replacing <code>|url=</code>) 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.
 
* <code>|link1=URL</code> and <code>|link2=URL</code> adds superscript links. Mainly useful for linking to pull requests.
 
* <code>|link1=URL</code> and <code>|link2=URL</code> adds superscript links. Mainly useful for linking to pull requests.
 +
 +
==Script==
 +
This script generates the template call when run from a Nexus or Chucklefish mod page.
 +
<source lang="javascript">
 +
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  =
 +
}}
 +
`;
 +
</source>
  
 
[[Category:Modding]]</noinclude>
 
[[Category:Modding]]</noinclude>

Revision as of 00:50, 19 July 2017

Usage

Basic fields:

{{/entry
  |name    = Lookup Anything
  |author  = Pathoschild
  |url     = http://www.nexusmods.com/stardewvalley/mods/541
  |status  = ok
  |summary = 
  |source  = https://github.com/Pathoschild/StardewMods
}}

Valid statuses:

status meaning default summary
ok The mod is compatible with SMAPI 2.0. use latest version.
workaround The mod isn't compatible with SMAPI 2.0, but the player can fix it or there's a good alternative.
soon The mod isn't compatible with SMAPI 2.0, but it's open-source so an unofficial update will be prepared soon (if the author doesn't update it first). update coming soon.
soon-official The mod isn't compatible with SMAPI 2.0, but the author has said they'll update it. author will update it soon.
broken The mod isn't compatible with SMAPI 2.0, isn't open-source, and there's no indication that the author will update it 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.
  • |link1=URL and |link2=URL adds superscript links. 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  = 
}}
`;