From ae2c9560b71a95eba9066fc6092a8eec5f972ea7 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 10 Jun 2019 20:51:10 -0500 Subject: [PATCH] Fixed a lot of inline documentation Added proper DocFX integration --- IPA.Loader/.gitignore | 2 +- IPA.Loader/Config/Config.cs | 2 +- IPA.Loader/Config/IConfigProvider.cs | 5 ++ IPA.Loader/IPA.Loader.csproj | 5 -- IPA.Loader/Loader/Features/Feature.cs | 10 ++-- IPA.Loader/Loader/PluginLoader.cs | 13 ++++- IPA.Loader/Loader/PluginManager.cs | 3 ++ IPA.Loader/Logging/LogPrinter.cs | 1 + IPA.Loader/Logging/Logger.cs | 51 ++++++++++--------- .../Logging/Printers/ColoredConsolePrinter.cs | 2 + .../Printers/ColorlessConsolePrinter.cs | 1 + IPA.Loader/Logging/Printers/GZFilePrinter.cs | 5 +- .../Logging/Printers/GlobalLogFilePrinter.cs | 3 +- .../Logging/Printers/PluginLogFilePrinter.cs | 3 +- .../Logging/Printers/PluginSubLogPrinter.cs | 3 +- IPA.Loader/Logging/StandardLogger.cs | 4 +- IPA.Loader/Utilities/BeatSaber.cs | 11 +++- IPA.Loader/Utilities/Ref.cs | 21 +++++--- IPA.Loader/Utilities/ReflectionUtil.cs | 12 ++--- IPA.Loader/doc/.gitignore | 5 ++ IPA.Loader/doc/api/.gitignore | 5 ++ IPA.Loader/doc/api/index.md | 2 + IPA.Loader/doc/articles/intro.md | 1 + IPA.Loader/doc/articles/toc.yml | 2 + IPA.Loader/{ => doc}/docfx.json | 6 +-- IPA.Loader/doc/index.md | 4 ++ IPA.Loader/doc/toc.yml | 5 ++ 27 files changed, 126 insertions(+), 61 deletions(-) create mode 100644 IPA.Loader/doc/.gitignore create mode 100644 IPA.Loader/doc/api/.gitignore create mode 100644 IPA.Loader/doc/api/index.md create mode 100644 IPA.Loader/doc/articles/intro.md create mode 100644 IPA.Loader/doc/articles/toc.yml rename IPA.Loader/{ => doc}/docfx.json (89%) create mode 100644 IPA.Loader/doc/index.md create mode 100644 IPA.Loader/doc/toc.yml diff --git a/IPA.Loader/.gitignore b/IPA.Loader/.gitignore index 4378419e..8cdc97d8 100644 --- a/IPA.Loader/.gitignore +++ b/IPA.Loader/.gitignore @@ -6,4 +6,4 @@ /**/packages/ /**/bin/ /**/obj/ -_site +log.txt \ No newline at end of file diff --git a/IPA.Loader/Config/Config.cs b/IPA.Loader/Config/Config.cs index 3cb99a40..8cde00fb 100644 --- a/IPA.Loader/Config/Config.cs +++ b/IPA.Loader/Config/Config.cs @@ -118,7 +118,7 @@ namespace IPA.Config private static List, IConfigProvider>> configProviders = new List, IConfigProvider>>(); /// - /// Gets an using the specified list pf preferred config types. + /// Gets an using the specified list of preferred config types. /// /// the name of the mod for this config /// the preferred config types to try to get diff --git a/IPA.Loader/Config/IConfigProvider.cs b/IPA.Loader/Config/IConfigProvider.cs index 88f23efe..387c30c4 100644 --- a/IPA.Loader/Config/IConfigProvider.cs +++ b/IPA.Loader/Config/IConfigProvider.cs @@ -24,24 +24,29 @@ namespace IPA.Config /// /// Gets a dynamic object providing access to the configuration. /// + /// a dynamically bound object to use to access config values directly dynamic Dynamic { get; } #region State getters /// /// Returns if object has changed since the last save /// + /// if object has changed since the last save, else bool HasChanged { get; } /// /// Returns if the data in memory has been changed - notably including loads. /// + /// if the data in memory has been changed, else bool InMemoryChanged { get; set; } /// /// Will be set with the filename (no extension) to save to. When saving, the implementation should add the appropriate extension. Should error if set multiple times. /// + /// the extensionless filename to save to string Filename { set; } /// /// Gets the last time the config was modified. /// + /// the last time the config file was modified DateTime LastModified { get; } /// /// Saves configuration to file. Should error if not a root object. diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 3268c020..db2f9b50 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -113,11 +113,6 @@ - - 2.42.4 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - 1.9.1.8 diff --git a/IPA.Loader/Loader/Features/Feature.cs b/IPA.Loader/Loader/Features/Feature.cs index 21d3c3f0..effd5dae 100644 --- a/IPA.Loader/Loader/Features/Feature.cs +++ b/IPA.Loader/Loader/Features/Feature.cs @@ -18,7 +18,7 @@ namespace IPA.Loader.Features /// Note: When no parenthesis are provided, is an empty array. /// /// - /// This gets called BEFORE your Init method. + /// This gets called BEFORE *your* `Init` method. /// /// Returning does *not* prevent the plugin from being loaded. It simply prevents the feature from being used. /// @@ -39,6 +39,7 @@ namespace IPA.Loader.Features /// The message to be logged when the feature is not valid for a plugin. /// This should also be set whenever either or returns false. /// + /// the message to show when the feature is marked invalid public virtual string InvalidMessage { get; protected set; } /// @@ -53,21 +54,21 @@ namespace IPA.Loader.Features public virtual bool BeforeLoad(PluginLoader.PluginMetadata plugin) => true; /// - /// Called before a plugin's Init method is called. This will not be called if there is no Init method. This should never throw an exception. An exception will abort the loading of the plugin with an error. + /// Called before a plugin's `Init` method is called. This will not be called if there is no `Init` method. This should never throw an exception. An exception will abort the loading of the plugin with an error. /// /// the plugin to be initialized /// whether or not to call the Init method public virtual bool BeforeInit(PluginLoader.PluginInfo plugin) => true; /// - /// Called after a plugin has been fully initialized, whether or not there is an Init method. This should never throw an exception. + /// Called after a plugin has been fully initialized, whether or not there is an `Init` method. This should never throw an exception. /// /// the plugin that was just initialized /// the instance of the plugin being initialized public virtual void AfterInit(PluginLoader.PluginInfo plugin, IBeatSaberPlugin pluginInstance) => AfterInit(plugin); /// - /// Called after a plugin has been fully initialized, whether or not there is an Init method. This should never throw an exception. + /// Called after a plugin has been fully initialized, whether or not there is an `Init` method. This should never throw an exception. /// /// the plugin that was just initialized public virtual void AfterInit(PluginLoader.PluginInfo plugin) { } @@ -81,6 +82,7 @@ namespace IPA.Loader.Features /// /// Defines whether or not this feature will be accessible from the plugin metadata once loaded. /// + /// if this will be stored on the plugin metadata, otherwise protected internal virtual bool StoreOnPlugin => true; static Feature() diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index 92cbb5a3..62586fc7 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -35,37 +35,44 @@ namespace IPA.Loader /// /// The assembly the plugin was loaded from. /// + /// the loaded Assembly that contains the plugin main type public Assembly Assembly { get; internal set; } /// /// The TypeDefinition for the main type of the plugin. /// + /// the Cecil definition for the plugin main type public TypeDefinition PluginType { get; internal set; } /// /// The human readable name of the plugin. /// + /// the name of the plugin public string Name { get; internal set; } /// /// The BeatMods ID of the plugin, or null if it doesn't have one. /// + /// the updater ID of the plugin public string Id { get; internal set; } /// /// The version of the plugin. /// + /// the version of the plugin public Version Version { get; internal set; } /// /// The file the plugin was loaded from. /// + /// the file the plugin was loaded from public FileInfo File { get; internal set; } // ReSharper disable once UnusedAutoPropertyAccessor.Global /// /// The features this plugin requests. /// + /// the list of features requested by the plugin public IReadOnlyList Features => InternalFeatures; internal readonly List InternalFeatures = new List(); @@ -90,7 +97,10 @@ namespace IPA.Loader } } - /// + /// + /// Gets all of the metadata as a readable string. + /// + /// the readable printable metadata string public override string ToString() => $"{Name}({Id}@{Version})({PluginType?.FullName}) from '{Utils.GetRelativePath(File?.FullName, BeatSaber.InstallPath)}'"; } @@ -104,6 +114,7 @@ namespace IPA.Loader /// /// Metadata for the plugin. /// + /// the metadata for this plugin public PluginMetadata Metadata { get; internal set; } = new PluginMetadata(); } diff --git a/IPA.Loader/Loader/PluginManager.cs b/IPA.Loader/Loader/PluginManager.cs index 83ee8c3e..e677ed65 100644 --- a/IPA.Loader/Loader/PluginManager.cs +++ b/IPA.Loader/Loader/PluginManager.cs @@ -236,6 +236,7 @@ namespace IPA.Loader /// /// Gets a list of disabled BSIPA plugins. /// + /// a collection of all disabled plugins as public static IEnumerable DisabledPlugins => PluginLoader.DisabledPlugins.Concat(runtimeDisabled.Select(p => p.Metadata)); /// @@ -263,6 +264,7 @@ namespace IPA.Loader /// /// Gets a list of all BSIPA plugins. /// + /// a collection of all enabled plugins as s public static IEnumerable AllPlugins => BSMetas; /// @@ -281,6 +283,7 @@ namespace IPA.Loader /// /// An of old IPA plugins. /// + /// all legacy plugin instances [Obsolete("I mean, IPlugin shouldn't be used, so why should this? Not renaming to extend support for old plugins.")] public static IEnumerable Plugins => _ipaPlugins; private static List _ipaPlugins; diff --git a/IPA.Loader/Logging/LogPrinter.cs b/IPA.Loader/Logging/LogPrinter.cs index a03aee44..57a58f4f 100644 --- a/IPA.Loader/Logging/LogPrinter.cs +++ b/IPA.Loader/Logging/LogPrinter.cs @@ -10,6 +10,7 @@ namespace IPA.Logging /// /// Provides a filter for which log levels to allow through. /// + /// the level to filter to public abstract Logger.LogLevel Filter { get; set; } /// diff --git a/IPA.Loader/Logging/Logger.cs b/IPA.Loader/Logging/Logger.cs index 8565bcd1..69fd3b64 100644 --- a/IPA.Loader/Logging/Logger.cs +++ b/IPA.Loader/Logging/Logger.cs @@ -43,6 +43,7 @@ namespace IPA.Logging /// /// The standard format for log messages. /// + /// the format for the standard loggers to print in public static string LogFormat { get; protected internal set; } = "[{3} @ {2:HH:mm:ss} | {1}] {0}"; /// @@ -174,97 +175,97 @@ namespace IPA.Logging /// /// Sends a debug message. - /// Equivalent to Log(Level.Debug, message); - /// + /// Equivalent to `Log(Level.Debug, message);` /// + /// /// the message to log public virtual void Debug(string message) => Log(Level.Debug, message); /// /// Sends an exception as a debug message. - /// Equivalent to Log(Level.Debug, e); - /// + /// Equivalent to `Log(Level.Debug, e);` /// + /// /// the exception to log public virtual void Debug(Exception e) => Log(Level.Debug, e); /// /// Sends an info message. - /// Equivalent to Log(Level.Info, message). - /// + /// Equivalent to `Log(Level.Info, message);` /// + /// /// the message to log public virtual void Info(string message) => Log(Level.Info, message); /// /// Sends an exception as an info message. - /// Equivalent to Log(Level.Info, e); - /// + /// Equivalent to `Log(Level.Info, e);` /// + /// /// the exception to log public virtual void Info(Exception e) => Log(Level.Info, e); - + /// /// Sends a notice message. - /// Equivalent to Log(Level.Notice, message). - /// + /// Equivalent to `Log(Level.Notice, message);` /// + /// /// the message to log public virtual void Notice(string message) => Log(Level.Notice, message); /// /// Sends an exception as a notice message. - /// Equivalent to Log(Level.Notice, e); - /// + /// Equivalent to `Log(Level.Notice, e);` /// + /// /// the exception to log public virtual void Notice(Exception e) => Log(Level.Notice, e); /// /// Sends a warning message. - /// Equivalent to Log(Level.Warning, message). - /// + /// Equivalent to `Log(Level.Warning, message);` /// + /// /// the message to log public virtual void Warn(string message) => Log(Level.Warning, message); /// /// Sends an exception as a warning message. - /// Equivalent to Log(Level.Warning, e); - /// + /// Equivalent to `Log(Level.Warning, e);` /// + /// /// the exception to log public virtual void Warn(Exception e) => Log(Level.Warning, e); /// /// Sends an error message. - /// Equivalent to Log(Level.Error, message). - /// + /// Equivalent to `Log(Level.Error, message);` /// + /// /// the message to log public virtual void Error(string message) => Log(Level.Error, message); /// /// Sends an exception as an error message. - /// Equivalent to Log(Level.Error, e); - /// + /// Equivalent to `Log(Level.Error, e);` /// + /// /// the exception to log public virtual void Error(Exception e) => Log(Level.Error, e); /// /// Sends a critical message. - /// Equivalent to Log(Level.Critical, message). - /// + /// Equivalent to `Log(Level.Critical, message);` /// + /// /// the message to log public virtual void Critical(string message) => Log(Level.Critical, message); /// /// Sends an exception as a critical message. - /// Equivalent to Log(Level.Critical, e); - /// + /// Equivalent to `Log(Level.Critical, e);` /// + /// /// the exception to log public virtual void Critical(Exception e) => Log(Level.Critical, e); } diff --git a/IPA.Loader/Logging/Printers/ColoredConsolePrinter.cs b/IPA.Loader/Logging/Printers/ColoredConsolePrinter.cs index 2cab7277..338940eb 100644 --- a/IPA.Loader/Logging/Printers/ColoredConsolePrinter.cs +++ b/IPA.Loader/Logging/Printers/ColoredConsolePrinter.cs @@ -13,10 +13,12 @@ namespace IPA.Logging.Printers /// /// A filter for this specific printer. /// + /// the filter to apply to this printer public override Logger.LogLevel Filter { get => filter; set => filter = value; } /// /// The color to print messages as. /// + /// the color to print this message as public ConsoleColor Color { get; set; } = Console.ForegroundColor; /// diff --git a/IPA.Loader/Logging/Printers/ColorlessConsolePrinter.cs b/IPA.Loader/Logging/Printers/ColorlessConsolePrinter.cs index de346b70..70087bfa 100644 --- a/IPA.Loader/Logging/Printers/ColorlessConsolePrinter.cs +++ b/IPA.Loader/Logging/Printers/ColorlessConsolePrinter.cs @@ -10,6 +10,7 @@ namespace IPA.Logging.Printers /// /// A filter for this specific printer. /// + /// the filter level for this printer public override Logger.LogLevel Filter { get; set; } /// diff --git a/IPA.Loader/Logging/Printers/GZFilePrinter.cs b/IPA.Loader/Logging/Printers/GZFilePrinter.cs index 319548e6..0eafa958 100644 --- a/IPA.Loader/Logging/Printers/GZFilePrinter.cs +++ b/IPA.Loader/Logging/Printers/GZFilePrinter.cs @@ -26,14 +26,15 @@ namespace IPA.Logging.Printers /// /// The that writes to the GZip file. /// + /// the writer to the underlying filestream protected StreamWriter FileWriter; private FileStream fstream; /// - /// Gets the for the file to write to without the .gz extension. + /// Gets the for the file to write to. /// - /// + /// the file to write to protected abstract FileInfo GetFileInfo(); private const string latestFormat = "_latest{0}"; diff --git a/IPA.Loader/Logging/Printers/GlobalLogFilePrinter.cs b/IPA.Loader/Logging/Printers/GlobalLogFilePrinter.cs index bd36be90..30c27acf 100644 --- a/IPA.Loader/Logging/Printers/GlobalLogFilePrinter.cs +++ b/IPA.Loader/Logging/Printers/GlobalLogFilePrinter.cs @@ -11,6 +11,7 @@ namespace IPA.Logging.Printers /// /// Provides a filter for this specific printer. /// + /// the filter level for this printer public override Logger.LogLevel Filter { get; set; } = Logger.LogLevel.All; /// @@ -29,7 +30,7 @@ namespace IPA.Logging.Printers /// /// Gets the for the target file. /// - /// + /// the target file to write to protected override FileInfo GetFileInfo() { var logsDir = new DirectoryInfo("Logs"); diff --git a/IPA.Loader/Logging/Printers/PluginLogFilePrinter.cs b/IPA.Loader/Logging/Printers/PluginLogFilePrinter.cs index 34148b52..f4b61bea 100644 --- a/IPA.Loader/Logging/Printers/PluginLogFilePrinter.cs +++ b/IPA.Loader/Logging/Printers/PluginLogFilePrinter.cs @@ -11,6 +11,7 @@ namespace IPA.Logging.Printers /// /// Provides a filter for this specific printer. /// + /// the filter level for this printer public override Logger.LogLevel Filter { get; set; } = Logger.LogLevel.All; private string name; @@ -18,7 +19,7 @@ namespace IPA.Logging.Printers /// /// Gets the for the target file. /// - /// + /// the file to write to protected override FileInfo GetFileInfo() { var logsDir = new DirectoryInfo(Path.Combine("Logs", name)); diff --git a/IPA.Loader/Logging/Printers/PluginSubLogPrinter.cs b/IPA.Loader/Logging/Printers/PluginSubLogPrinter.cs index 60151b3e..09a6d0ea 100644 --- a/IPA.Loader/Logging/Printers/PluginSubLogPrinter.cs +++ b/IPA.Loader/Logging/Printers/PluginSubLogPrinter.cs @@ -11,6 +11,7 @@ namespace IPA.Logging.Printers /// /// Provides a filter for this specific printer. /// + /// the filter for this printer public override Logger.LogLevel Filter { get; set; } = Logger.LogLevel.All; private string name; @@ -19,7 +20,7 @@ namespace IPA.Logging.Printers /// /// Gets the for the target file. /// - /// + /// the file to write to protected override FileInfo GetFileInfo() { var logsDir = new DirectoryInfo(Path.Combine("Logs", mainName, name)); diff --git a/IPA.Loader/Logging/StandardLogger.cs b/IPA.Loader/Logging/StandardLogger.cs index 3465925b..e0b4b12f 100644 --- a/IPA.Loader/Logging/StandardLogger.cs +++ b/IPA.Loader/Logging/StandardLogger.cs @@ -79,12 +79,13 @@ namespace IPA.Logging /// /// The for writing directly to the console window, or stdout if no window open. /// + /// a for the current primary text output public static TextWriter ConsoleWriter { get; internal set; } = Console.Out; /// /// Adds to the default printer pool that all printers inherit from. Printers added this way will be passed every message from every logger. /// - /// + /// the printer to add internal static void AddDefaultPrinter(LogPrinter printer) { defaultPrinters.Add(printer); @@ -96,6 +97,7 @@ namespace IPA.Logging /// /// All levels defined by this filter will be sent to loggers. All others will be ignored. /// + /// the global filter level public static LogLevel PrintFilter { get; set; } = LogLevel.All; private readonly List printers = new List(); diff --git a/IPA.Loader/Utilities/BeatSaber.cs b/IPA.Loader/Utilities/BeatSaber.cs index 60aa8310..0cdfeefc 100644 --- a/IPA.Loader/Utilities/BeatSaber.cs +++ b/IPA.Loader/Utilities/BeatSaber.cs @@ -13,8 +13,9 @@ namespace IPA.Utilities { private static Version _gameVersion; /// - /// Provides the current game version + /// Provides the current game version. /// + /// the SemVer version of the game public static Version GameVersion => _gameVersion ?? (_gameVersion = new Version(Application.version, true)); /// @@ -35,12 +36,14 @@ namespace IPA.Utilities /// /// Gets the type of this installation of Beat Saber /// + /// the type of release this is public static Release ReleaseType => (_releaseCache ?? (_releaseCache = FindSteamVRAsset() ? Release.Steam : Release.Oculus)).Value; private static string _installRoot; /// - /// The path to the Beat Saber install dir + /// Gets the path to the Beat Saber install directory. /// + /// the path of the game install directory public static string InstallPath { get @@ -54,18 +57,22 @@ namespace IPA.Utilities /// /// The path to the `Libs` folder. Use only if necessary. /// + /// the path to the library directory public static string LibraryPath => Path.Combine(InstallPath, "Libs"); /// /// The path to the `Libs\Native` folder. Use only if necessary. /// + /// the path to the native library directory public static string NativeLibraryPath => Path.Combine(LibraryPath, "Native"); /// /// The directory to load plugins from. /// + /// the path to the plugin directory public static string PluginsPath => Path.Combine(InstallPath, "Plugins"); /// /// The path to the `UserData` folder. /// + /// the path to the user data directory public static string UserDataPath => Path.Combine(InstallPath, "UserData"); private static bool FindSteamVRAsset() diff --git a/IPA.Loader/Utilities/Ref.cs b/IPA.Loader/Utilities/Ref.cs index bcb1ff62..6ede2194 100644 --- a/IPA.Loader/Utilities/Ref.cs +++ b/IPA.Loader/Utilities/Ref.cs @@ -31,6 +31,7 @@ namespace IPA.Utilities /// /// The value of the reference /// + /// the value wrapped by this public T Value { get @@ -45,6 +46,7 @@ namespace IPA.Utilities /// /// An exception that was generated while creating the value. /// + /// the error held in this public Exception Error { get @@ -93,8 +95,12 @@ namespace IPA.Utilities { if (Error != null) throw Error; } - - /// + + /// + /// Compares the wrapped object to the other object. + /// + /// the object to compare to + /// the value of the comparison public int CompareTo(T other) { if (Value is IComparable compare) @@ -102,11 +108,12 @@ namespace IPA.Utilities return Equals(Value, other) ? 0 : -1; } - /// - public int CompareTo(Ref other) - { - return CompareTo(other.Value); - } + /// + /// Compares the wrapped object to the other wrapped object. + /// + /// the wrapped object to compare to + /// the value of the comparison + public int CompareTo(Ref other) => CompareTo(other.Value); } internal static class ExceptionUtilities diff --git a/IPA.Loader/Utilities/ReflectionUtil.cs b/IPA.Loader/Utilities/ReflectionUtil.cs index dc5638e2..922be878 100644 --- a/IPA.Loader/Utilities/ReflectionUtil.cs +++ b/IPA.Loader/Utilities/ReflectionUtil.cs @@ -75,7 +75,7 @@ namespace IPA.Utilities } /// - /// Copies a component of type originalType to a component of overridingType on the destination GameObject. + /// Copies a component to a component of on the destination . /// /// the original component /// the new component's type @@ -98,9 +98,9 @@ namespace IPA.Utilities } /// - /// A generic version of CopyComponent. - /// + /// A generic version of . /// + /// /// the overriding type /// the original component /// the destination game object @@ -133,9 +133,9 @@ namespace IPA.Utilities } /// - /// Calls an instance method on a type specified by functionClass and dependency. - /// + /// Calls an instance method on a type specified by and . /// + /// /// the type name /// the assembly the type is in /// the name of the method to call @@ -178,8 +178,8 @@ namespace IPA.Utilities /// /// Calls an instance method on a new object. - /// /// + /// /// the return type /// the object type /// the name of the method to call diff --git a/IPA.Loader/doc/.gitignore b/IPA.Loader/doc/.gitignore new file mode 100644 index 00000000..3653286c --- /dev/null +++ b/IPA.Loader/doc/.gitignore @@ -0,0 +1,5 @@ +/_site +/**/DROP/ +/**/TEMP/ +/**/packages/ +/**/bin/ \ No newline at end of file diff --git a/IPA.Loader/doc/api/.gitignore b/IPA.Loader/doc/api/.gitignore new file mode 100644 index 00000000..e8079a3b --- /dev/null +++ b/IPA.Loader/doc/api/.gitignore @@ -0,0 +1,5 @@ +############### +# temp file # +############### +*.yml +.manifest diff --git a/IPA.Loader/doc/api/index.md b/IPA.Loader/doc/api/index.md new file mode 100644 index 00000000..78dc9c00 --- /dev/null +++ b/IPA.Loader/doc/api/index.md @@ -0,0 +1,2 @@ +# PLACEHOLDER +TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*! diff --git a/IPA.Loader/doc/articles/intro.md b/IPA.Loader/doc/articles/intro.md new file mode 100644 index 00000000..c0478ced --- /dev/null +++ b/IPA.Loader/doc/articles/intro.md @@ -0,0 +1 @@ +# Add your introductions here! diff --git a/IPA.Loader/doc/articles/toc.yml b/IPA.Loader/doc/articles/toc.yml new file mode 100644 index 00000000..ff89ef1f --- /dev/null +++ b/IPA.Loader/doc/articles/toc.yml @@ -0,0 +1,2 @@ +- name: Introduction + href: intro.md diff --git a/IPA.Loader/docfx.json b/IPA.Loader/doc/docfx.json similarity index 89% rename from IPA.Loader/docfx.json rename to IPA.Loader/doc/docfx.json index 1da08fbf..b4f482b7 100644 --- a/IPA.Loader/docfx.json +++ b/IPA.Loader/doc/docfx.json @@ -3,10 +3,10 @@ { "src": [ { + "src": "..", "files": [ "**.csproj" - ], - "src": "Z:\\Users\\aaron\\Source\\Repos\\IPA-Reloaded-BeatSaber\\IPA.Loader" + ] } ], "dest": "api", @@ -41,7 +41,7 @@ "overwrite": [ { "files": [ - "apidoc/**.md" + "override/**.md" ], "exclude": [ "obj/**", diff --git a/IPA.Loader/doc/index.md b/IPA.Loader/doc/index.md new file mode 100644 index 00000000..3ae25063 --- /dev/null +++ b/IPA.Loader/doc/index.md @@ -0,0 +1,4 @@ +# This is the **HOMEPAGE**. +Refer to [Markdown](http://daringfireball.net/projects/markdown/) for how to write markdown files. +## Quick Start Notes: +1. Add images to the *images* folder if the file is referencing an image. diff --git a/IPA.Loader/doc/toc.yml b/IPA.Loader/doc/toc.yml new file mode 100644 index 00000000..59f80104 --- /dev/null +++ b/IPA.Loader/doc/toc.yml @@ -0,0 +1,5 @@ +- name: Articles + href: articles/ +- name: Api Documentation + href: api/ + homepage: api/index.md