group technical docs, add general shortcut for mod build package docs (#651)
This commit is contained in:
parent
a352b1101c
commit
1dde811c36
|
@ -10,7 +10,7 @@
|
|||
|
||||
<!-- if game path is invalid, show one user-friendly error instead of a slew of reference errors -->
|
||||
<Target Name="ValidateInstallPath" AfterTargets="BeforeBuild">
|
||||
<Error Condition="!Exists('$(GamePath)')" Text="Failed to find the game install path automatically. You can specify where to find it; see https://smapi.io/buildmsg/custom-game-path." />
|
||||
<Error Condition="!Exists('$(GamePath)')" Text="Failed to find the game install path automatically. You can specify where to find it; see https://smapi.io/package/custom-game-path." />
|
||||
</Target>
|
||||
|
||||
<!-- copy files into game directory and enable debugging -->
|
||||
|
|
|
@ -38,16 +38,16 @@ doesn't change any of your game files. It serves eight main purposes:
|
|||
something goes wrong. (Via the bundled SaveBackup mod.)_
|
||||
|
||||
## Documentation
|
||||
Have questions? Come [chat on Discord](https://discord.gg/KCJHWhX) with SMAPI developers and other
|
||||
modders!
|
||||
Have questions? Come [chat on Discord](https://stardewvalleywiki.com/Modding:Community) with SMAPI
|
||||
developers and other modders!
|
||||
|
||||
### For players
|
||||
* [Player guide](https://stardewvalleywiki.com/Modding:Player_Guide)
|
||||
|
||||
### For modders
|
||||
* [Modding documentation](https://stardewvalleywiki.com/Modding:Index)
|
||||
* [Mod build configuration](mod-build-config.md)
|
||||
* [Mod build configuration](technical/mod-package.md)
|
||||
* [Release notes](release-notes.md)
|
||||
|
||||
### For SMAPI developers
|
||||
* [Technical docs](technical-docs.md)
|
||||
* [Technical docs](technical/smapi.md)
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
← [README](README.md)
|
||||
|
||||
# Release notes
|
||||
## 3.0 (upcoming release)
|
||||
These changes have not been released yet.
|
||||
|
@ -674,7 +676,7 @@ Released 14 October 2017 for Stardew Valley 1.2.30–1.2.33.
|
|||
|
||||
* **Command-line install**
|
||||
For power users and mod managers, the SMAPI installer can now be scripted using command-line arguments
|
||||
(see [technical docs](technical-docs.md#command-line-arguments)).
|
||||
(see [technical docs](technical/smapi.md#command-line-arguments)).
|
||||
|
||||
### Change log
|
||||
For players:
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
← [SMAPI](../README.md)
|
||||
|
||||
The **mod build package** is an open-source NuGet package which automates the MSBuild configuration
|
||||
for SMAPI mods and related tools. The package is fully compatible with Linux, Mac, and Windows.
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
@ -1,10 +1,10 @@
|
|||
← [README](README.md)
|
||||
← [README](../README.md)
|
||||
|
||||
This file provides more technical documentation about SMAPI. If you only want to use or create
|
||||
mods, this section isn't relevant to you; see the main README to use or create mods.
|
||||
|
||||
This document is about SMAPI itself; see also [mod build package](mod-build-config.md) and
|
||||
[web services](web-services.md).
|
||||
This document is about SMAPI itself; see also [mod build package](mod-package.md) and
|
||||
[web services](web.md).
|
||||
|
||||
# Contents
|
||||
* [Customisation](#customisation)
|
||||
|
@ -102,4 +102,4 @@ on the wiki for the first-time setup.
|
|||
4. Zip the two folders.
|
||||
|
||||
## Release notes
|
||||
See [release notes](release-notes.md).
|
||||
See [release notes](../release-notes.md).
|
|
@ -1,3 +1,5 @@
|
|||
← [README](../README.md)
|
||||
|
||||
**SMAPI.Web** contains the code for the `smapi.io` website, including the mod compatibility list
|
||||
and update check API.
|
||||
|
|
@ -96,7 +96,7 @@ namespace SMAPI.ModBuildConfig.Analyzer.Tests
|
|||
DiagnosticResult expected = new DiagnosticResult
|
||||
{
|
||||
Id = "AvoidImplicitNetFieldCast",
|
||||
Message = $"This implicitly converts '{expression}' from {fromType} to {toType}, but {fromType} has unintuitive implicit conversion rules. Consider comparing against the actual value instead to avoid bugs. See https://smapi.io/buildmsg/avoid-implicit-net-field-cast for details.",
|
||||
Message = $"This implicitly converts '{expression}' from {fromType} to {toType}, but {fromType} has unintuitive implicit conversion rules. Consider comparing against the actual value instead to avoid bugs. See https://smapi.io/package/avoid-implicit-net-field-cast for details.",
|
||||
Severity = DiagnosticSeverity.Warning,
|
||||
Locations = new[] { new DiagnosticResultLocation("Test0.cs", NetFieldAnalyzerTests.SampleCodeLine, NetFieldAnalyzerTests.SampleCodeColumn + column) }
|
||||
};
|
||||
|
@ -138,7 +138,7 @@ namespace SMAPI.ModBuildConfig.Analyzer.Tests
|
|||
DiagnosticResult expected = new DiagnosticResult
|
||||
{
|
||||
Id = "AvoidNetField",
|
||||
Message = $"'{expression}' is a {netType} field; consider using the {suggestedProperty} property instead. See https://smapi.io/buildmsg/avoid-net-field for details.",
|
||||
Message = $"'{expression}' is a {netType} field; consider using the {suggestedProperty} property instead. See https://smapi.io/package/avoid-net-field for details.",
|
||||
Severity = DiagnosticSeverity.Warning,
|
||||
Locations = new[] { new DiagnosticResultLocation("Test0.cs", NetFieldAnalyzerTests.SampleCodeLine, NetFieldAnalyzerTests.SampleCodeColumn + column) }
|
||||
};
|
||||
|
|
|
@ -67,7 +67,7 @@ namespace SMAPI.ModBuildConfig.Analyzer.Tests
|
|||
DiagnosticResult expected = new DiagnosticResult
|
||||
{
|
||||
Id = "AvoidObsoleteField",
|
||||
Message = $"The '{oldName}' field is obsolete and should be replaced with '{newName}'. See https://smapi.io/buildmsg/avoid-obsolete-field for details.",
|
||||
Message = $"The '{oldName}' field is obsolete and should be replaced with '{newName}'. See https://smapi.io/package/avoid-obsolete-field for details.",
|
||||
Severity = DiagnosticSeverity.Warning,
|
||||
Locations = new[] { new DiagnosticResultLocation("Test0.cs", ObsoleteFieldAnalyzerTests.SampleCodeLine, ObsoleteFieldAnalyzerTests.SampleCodeColumn + column) }
|
||||
};
|
||||
|
|
|
@ -135,22 +135,22 @@ namespace StardewModdingAPI.ModBuildConfig.Analyzer
|
|||
private readonly DiagnosticDescriptor AvoidImplicitNetFieldCastRule = new DiagnosticDescriptor(
|
||||
id: "AvoidImplicitNetFieldCast",
|
||||
title: "Netcode types shouldn't be implicitly converted",
|
||||
messageFormat: "This implicitly converts '{0}' from {1} to {2}, but {1} has unintuitive implicit conversion rules. Consider comparing against the actual value instead to avoid bugs. See https://smapi.io/buildmsg/avoid-implicit-net-field-cast for details.",
|
||||
messageFormat: "This implicitly converts '{0}' from {1} to {2}, but {1} has unintuitive implicit conversion rules. Consider comparing against the actual value instead to avoid bugs. See https://smapi.io/package/avoid-implicit-net-field-cast for details.",
|
||||
category: "SMAPI.CommonErrors",
|
||||
defaultSeverity: DiagnosticSeverity.Warning,
|
||||
isEnabledByDefault: true,
|
||||
helpLinkUri: "https://smapi.io/buildmsg/avoid-implicit-net-field-cast"
|
||||
helpLinkUri: "https://smapi.io/package/avoid-implicit-net-field-cast"
|
||||
);
|
||||
|
||||
/// <summary>The diagnostic info for an avoidable net field access.</summary>
|
||||
private readonly DiagnosticDescriptor AvoidNetFieldRule = new DiagnosticDescriptor(
|
||||
id: "AvoidNetField",
|
||||
title: "Avoid Netcode types when possible",
|
||||
messageFormat: "'{0}' is a {1} field; consider using the {2} property instead. See https://smapi.io/buildmsg/avoid-net-field for details.",
|
||||
messageFormat: "'{0}' is a {1} field; consider using the {2} property instead. See https://smapi.io/package/avoid-net-field for details.",
|
||||
category: "SMAPI.CommonErrors",
|
||||
defaultSeverity: DiagnosticSeverity.Warning,
|
||||
isEnabledByDefault: true,
|
||||
helpLinkUri: "https://smapi.io/buildmsg/avoid-net-field"
|
||||
helpLinkUri: "https://smapi.io/package/avoid-net-field"
|
||||
);
|
||||
|
||||
|
||||
|
|
|
@ -27,11 +27,11 @@ namespace StardewModdingAPI.ModBuildConfig.Analyzer
|
|||
["AvoidObsoleteField"] = new DiagnosticDescriptor(
|
||||
id: "AvoidObsoleteField",
|
||||
title: "Reference to obsolete field",
|
||||
messageFormat: "The '{0}' field is obsolete and should be replaced with '{1}'. See https://smapi.io/buildmsg/avoid-obsolete-field for details.",
|
||||
messageFormat: "The '{0}' field is obsolete and should be replaced with '{1}'. See https://smapi.io/package/avoid-obsolete-field for details.",
|
||||
category: "SMAPI.CommonErrors",
|
||||
defaultSeverity: DiagnosticSeverity.Warning,
|
||||
isEnabledByDefault: true,
|
||||
helpLinkUri: "https://smapi.io/buildmsg/avoid-obsolete-field"
|
||||
helpLinkUri: "https://smapi.io/package/avoid-obsolete-field"
|
||||
)
|
||||
};
|
||||
|
||||
|
|
|
@ -16,9 +16,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<None Include="..\..\build\find-game-folder.targets" Link="build\find-game-folder.targets" />
|
||||
<None Include="..\..\docs\mod-build-config.md">
|
||||
<Link>mod-build-config.md</Link>
|
||||
</None>
|
||||
<None Include="..\..\docs\technical\mod-package.md" Link="mod-build-config.md" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
<Target Name="BeforeBuild">
|
||||
<Error Condition="'$(OS)' != 'OSX' AND '$(OS)' != 'Unix' AND '$(OS)' != 'Windows_NT'" Text="The mod build package doesn't recognise OS type '$(OS)'." />
|
||||
|
||||
<Error Condition="!Exists('$(GamePath)')" Text="The mod build package can't find your game folder. You can specify where to find it; see https://smapi.io/buildmsg/custom-game-path." />
|
||||
<Error Condition="!Exists('$(GamePath)')" Text="The mod build package can't find your game folder. You can specify where to find it; see https://smapi.io/package/custom-game-path." />
|
||||
<Error Condition="!Exists('$(GamePath)\$(GameExecutableName).exe')" Text="The mod build package found a game folder at $(GamePath), but it doesn't contain the $(GameExecutableName) file. If this folder is invalid, delete it and the package will autodetect another game install path." />
|
||||
<Error Condition="!Exists('$(GamePath)\StardewModdingAPI.exe')" Text="The mod build package found a game folder at $(GamePath), but it doesn't contain SMAPI. You need to install SMAPI before building the mod." />
|
||||
</Target>
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<repository type="git" url="https://github.com/Pathoschild/SMAPI" />
|
||||
<projectUrl>https://github.com/Pathoschild/SMAPI/blob/develop/docs/mod-build-config.md#readme</projectUrl>
|
||||
<projectUrl>https://smapi.io/package/readme</projectUrl>
|
||||
<iconUrl>https://raw.githubusercontent.com/Pathoschild/SMAPI/develop/src/SMAPI.ModBuildConfig/assets/nuget-icon.png</iconUrl>
|
||||
<description>Automates the build configuration for crossplatform Stardew Valley SMAPI mods. For SMAPI 2.11 or later.</description>
|
||||
<description>Automates the build configuration for crossplatform Stardew Valley SMAPI mods. For SMAPI 3.0 or later.</description>
|
||||
<releaseNotes>
|
||||
3.0.0:
|
||||
- Updated for SMAPI 3.0 and Stardew Valley 1.4.
|
||||
|
|
|
@ -162,7 +162,7 @@ namespace StardewModdingAPI.Web
|
|||
|
||||
// shortcut redirects
|
||||
redirects.Add(new RedirectToUrlRule(@"^/3\.0\.?$", "https://stardewvalleywiki.com/Modding:Migrate_to_SMAPI_3.0"));
|
||||
redirects.Add(new RedirectToUrlRule(@"^/buildmsg(?:/?(.*))$", "https://github.com/Pathoschild/SMAPI/blob/develop/docs/mod-build-config.md#$1"));
|
||||
redirects.Add(new RedirectToUrlRule(@"^/(?:buildmsg|package)(?:/?(.*))$", "https://github.com/Pathoschild/SMAPI/blob/develop/docs/technical/mod-package.md#$1")); // buildmsg deprecated, remove when SDV 1.4 is released
|
||||
redirects.Add(new RedirectToUrlRule(@"^/compat\.?$", "https://mods.smapi.io"));
|
||||
redirects.Add(new RedirectToUrlRule(@"^/docs\.?$", "https://stardewvalleywiki.com/Modding:Index"));
|
||||
redirects.Add(new RedirectToUrlRule(@"^/install\.?$", "https://stardewvalleywiki.com/Modding:Player_Guide/Getting_Started#Install_SMAPI"));
|
||||
|
|
|
@ -35,11 +35,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{09CF91E5
|
|||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{EB35A917-67B9-4EFA-8DFC-4FB49B3949BB}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\docs\mod-build-config.md = ..\docs\mod-build-config.md
|
||||
..\docs\README.md = ..\docs\README.md
|
||||
..\docs\release-notes.md = ..\docs\release-notes.md
|
||||
..\docs\technical-docs.md = ..\docs\technical-docs.md
|
||||
..\docs\web-services.md = ..\docs\web-services.md
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "technical", "technical", "{5947303D-3512-413A-9009-7AC43F5D3513}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\docs\technical\mod-package.md = ..\docs\technical\mod-package.md
|
||||
..\docs\technical\smapi.md = ..\docs\technical\smapi.md
|
||||
..\docs\technical\web.md = ..\docs\technical\web.md
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Internal", "Internal", "{82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11}"
|
||||
|
@ -135,6 +139,7 @@ Global
|
|||
{F4453AB6-D7D6-447F-A973-956CC777968F} = {4B1CEB70-F756-4A57-AAE8-8CD78C475F25}
|
||||
{09CF91E5-5BAB-4650-A200-E5EA9A633046} = {86C452BE-D2D8-45B4-B63F-E329EB06CEDA}
|
||||
{EB35A917-67B9-4EFA-8DFC-4FB49B3949BB} = {86C452BE-D2D8-45B4-B63F-E329EB06CEDA}
|
||||
{5947303D-3512-413A-9009-7AC43F5D3513} = {EB35A917-67B9-4EFA-8DFC-4FB49B3949BB}
|
||||
{85208F8D-6FD1-4531-BE05-7142490F59FE} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11}
|
||||
{680B2641-81EA-467C-86A5-0E81CDC57ED0} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11}
|
||||
{AA95884B-7097-476E-92C8-D0500DE9D6D1} = {82D22ED7-A0A7-4D64-8E92-4B6A5E74ED11}
|
||||
|
|
Loading…
Reference in New Issue