From bae2b00bcac760d90be741929690bd05bba13618 Mon Sep 17 00:00:00 2001 From: meza <211977+meza@users.noreply.github.com> Date: Sat, 11 Jan 2025 23:14:15 +0000 Subject: [PATCH] docs: seo basics --- docs/.docusaurus/docusaurus.config.mjs | 78 ++++++++++++++++++++++++-- docs/.docusaurus/registry.js | 24 +++++--- docs/.docusaurus/routes.js | 35 ++++++++++++ docs/.docusaurus/routesChunkNames.json | 61 +++++++++++++++++--- docs/.docusaurus/site-metadata.json | 4 +- docs/docs/Quickstart.md | 54 +++++++++++++++++- docs/docusaurus.config.ts | 49 +++++++++++++++- 7 files changed, 275 insertions(+), 30 deletions(-) diff --git a/docs/.docusaurus/docusaurus.config.mjs b/docs/.docusaurus/docusaurus.config.mjs index fa49eab..e79f2cf 100644 --- a/docs/.docusaurus/docusaurus.config.mjs +++ b/docs/.docusaurus/docusaurus.config.mjs @@ -4,8 +4,9 @@ * Modify the docusaurus.config.js file at your site's root instead. */ export default { - "title": "My Site", - "favicon": "img/favicon.ico", + "title": "Stonecraft – Simplify Multi-Loader, Multi-Version Minecraft Mod Development", + "titleDelimiter": "–", + "favicon": "img/stonecraft@0.25x.png", "url": "https://stonecraft.meza.gg", "baseUrl": "/", "trailingSlash": false, @@ -34,7 +35,77 @@ export default { } ] ], + "headTags": [ + { + "tagName": "link", + "attributes": { + "rel": "canonical", + "href": "https://stonecraft.meza.gg" + } + }, + { + "tagName": "script", + "attributes": { + "type": "application/ld+json" + }, + "innerHTML": "{\"@context\":\"https://schema.org\",\"@type\":\"SoftwareApplication\",\"name\":\"Stonecraft\",\"description\":\"Stonecraft is a Gradle plugin that simplifies multi-loader, multi-version Minecraft mod development with Fabric, Forge, and NeoForge support.\",\"applicationCategory\":\"DeveloperTool\",\"operatingSystem\":\"Cross-platform\",\"url\":\"https://stonecraft.meza.gg/\",\"author\":{\"@type\":\"Person\",\"name\":\"Meza\"}}" + } + ], "themeConfig": { + "metadata": [ + { + "name": "description", + "content": "Stonecraft is a Gradle plugin that streamlines multi-loader, multi-version Minecraft mod development. Build Fabric, Forge, and NeoForge mods in a single codebase and simplify releases to Modrinth and CurseForge." + }, + { + "name": "keywords", + "content": "Minecraft modding, Gradle plugin, Fabric mod, Forge mod, NeoForge, multi-loader modding, Stonecutter, Architectury, Modrinth, CurseForge" + }, + { + "name": "og:title", + "content": "Stonecraft – Simplify Multi-Loader, Multi-Version Minecraft Mod Development" + }, + { + "name": "og:description", + "content": "Stonecraft is a Gradle plugin that streamlines multi-loader, multi-version Minecraft mod development. Build Fabric, Forge, and NeoForge mods in a single codebase and simplify releases to Modrinth and CurseForge." + }, + { + "name": "og:type", + "content": "website" + }, + { + "name": "og:url", + "content": "https://stonecraft.meza.gg" + }, + { + "name": "og:image", + "content": "https://stonecraft.meza.gg/img/stonecraft@0.5x.png" + }, + { + "name": "twitter:card", + "content": "summary_large_image" + }, + { + "name": "twitter:site", + "content": "@houseofmeza" + }, + { + "name": "twitter:creator", + "content": "@houseofmeza" + }, + { + "name": "twitter:image", + "content": "https://stonecraft.meza.gg/img/stonecraft@0.5x.png" + }, + { + "name": "twitter:title", + "content": "Stonecraft – Simplify Multi-Loader, Multi-Version Minecraft Mod Development" + }, + { + "name": "twitter:description", + "content": "Stonecraft is a Gradle plugin that streamlines multi-loader, multi-version Minecraft mod development. Build Fabric, Forge, and NeoForge mods in a single codebase and simplify releases to Modrinth and CurseForge." + } + ], "announcementBar": { "isCloseable": true, "id": "star", @@ -367,7 +438,6 @@ export default { "groupByYear": true } }, - "metadata": [], "tableOfContents": { "minHeadingLevel": 2, "maxHeadingLevel": 3 @@ -400,11 +470,9 @@ export default { "plugins": [], "themes": [], "scripts": [], - "headTags": [], "stylesheets": [], "clientModules": [], "tagline": "", - "titleDelimiter": "|", "noIndex": false, "markdown": { "format": "mdx", diff --git a/docs/.docusaurus/registry.js b/docs/.docusaurus/registry.js index 538e280..9ca3539 100644 --- a/docs/.docusaurus/registry.js +++ b/docs/.docusaurus/registry.js @@ -1,9 +1,17 @@ export default { - "09c03e3c": [() => import(/* webpackChunkName: "09c03e3c" */ "@site/docs/Stonecraft.md"), "@site/docs/Stonecraft.md", require.resolveWeak("@site/docs/Stonecraft.md")], - "17896441": [() => import(/* webpackChunkName: "17896441" */ "@theme/DocItem"), "@theme/DocItem", require.resolveWeak("@theme/DocItem")], - "22dd74f7": [() => import(/* webpackChunkName: "22dd74f7" */ "@generated/docusaurus-plugin-content-docs/default/p/index-466.json"), "@generated/docusaurus-plugin-content-docs/default/p/index-466.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/index-466.json")], - "351e6096": [() => import(/* webpackChunkName: "351e6096" */ "@site/docs/Quickstart.md"), "@site/docs/Quickstart.md", require.resolveWeak("@site/docs/Quickstart.md")], - "5e95c892": [() => import(/* webpackChunkName: "5e95c892" */ "@theme/DocsRoot"), "@theme/DocsRoot", require.resolveWeak("@theme/DocsRoot")], - "a7bd4aaa": [() => import(/* webpackChunkName: "a7bd4aaa" */ "@theme/DocVersionRoot"), "@theme/DocVersionRoot", require.resolveWeak("@theme/DocVersionRoot")], - "a94703ab": [() => import(/* webpackChunkName: "a94703ab" */ "@theme/DocRoot"), "@theme/DocRoot", require.resolveWeak("@theme/DocRoot")], - "aba21aa0": [() => import(/* webpackChunkName: "aba21aa0" */ "@generated/docusaurus-plugin-content-docs/default/__plugin.json"), "@generated/docusaurus-plugin-content-docs/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/__plugin.json")],}; + "__comp---theme-debug-config-23-a-2ff": [() => import(/* webpackChunkName: "__comp---theme-debug-config-23-a-2ff" */ "@theme/DebugConfig"), "@theme/DebugConfig", require.resolveWeak("@theme/DebugConfig")], + "__comp---theme-debug-contentba-8-ce7": [() => import(/* webpackChunkName: "__comp---theme-debug-contentba-8-ce7" */ "@theme/DebugContent"), "@theme/DebugContent", require.resolveWeak("@theme/DebugContent")], + "__comp---theme-debug-global-dataede-0fa": [() => import(/* webpackChunkName: "__comp---theme-debug-global-dataede-0fa" */ "@theme/DebugGlobalData"), "@theme/DebugGlobalData", require.resolveWeak("@theme/DebugGlobalData")], + "__comp---theme-debug-registry-679-501": [() => import(/* webpackChunkName: "__comp---theme-debug-registry-679-501" */ "@theme/DebugRegistry"), "@theme/DebugRegistry", require.resolveWeak("@theme/DebugRegistry")], + "__comp---theme-debug-routes-946-699": [() => import(/* webpackChunkName: "__comp---theme-debug-routes-946-699" */ "@theme/DebugRoutes"), "@theme/DebugRoutes", require.resolveWeak("@theme/DebugRoutes")], + "__comp---theme-debug-site-metadata-68-e-3d4": [() => import(/* webpackChunkName: "__comp---theme-debug-site-metadata-68-e-3d4" */ "@theme/DebugSiteMetadata"), "@theme/DebugSiteMetadata", require.resolveWeak("@theme/DebugSiteMetadata")], + "__comp---theme-doc-item-178-a40": [() => import(/* webpackChunkName: "__comp---theme-doc-item-178-a40" */ "@theme/DocItem"), "@theme/DocItem", require.resolveWeak("@theme/DocItem")], + "__comp---theme-doc-roota-94-67a": [() => import(/* webpackChunkName: "__comp---theme-doc-roota-94-67a" */ "@theme/DocRoot"), "@theme/DocRoot", require.resolveWeak("@theme/DocRoot")], + "__comp---theme-doc-version-roota-7-b-5de": [() => import(/* webpackChunkName: "__comp---theme-doc-version-roota-7-b-5de" */ "@theme/DocVersionRoot"), "@theme/DocVersionRoot", require.resolveWeak("@theme/DocVersionRoot")], + "__comp---theme-docs-root-5-e-9-0b6": [() => import(/* webpackChunkName: "__comp---theme-docs-root-5-e-9-0b6" */ "@theme/DocsRoot"), "@theme/DocsRoot", require.resolveWeak("@theme/DocsRoot")], + "__props---22-d-307": [() => import(/* webpackChunkName: "__props---22-d-307" */ "@generated/docusaurus-plugin-content-docs/default/p/index-466.json"), "@generated/docusaurus-plugin-content-docs/default/p/index-466.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/p/index-466.json")], + "__props---docusaurus-debug-content-3-c-0-be2": [() => import(/* webpackChunkName: "__props---docusaurus-debug-content-3-c-0-be2" */ "@generated/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json"), "@generated/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json", require.resolveWeak("@generated/docusaurus-plugin-debug/default/p/docusaurus-debug-content-0d5.json")], + "content---09-c-d3e": [() => import(/* webpackChunkName: "content---09-c-d3e" */ "@site/docs/Stonecraft.md"), "@site/docs/Stonecraft.md", require.resolveWeak("@site/docs/Stonecraft.md")], + "content---quickstart-351-aec": [() => import(/* webpackChunkName: "content---quickstart-351-aec" */ "@site/docs/Quickstart.md"), "@site/docs/Quickstart.md", require.resolveWeak("@site/docs/Quickstart.md")], + "plugin---aba-d70": [() => import(/* webpackChunkName: "plugin---aba-d70" */ "@generated/docusaurus-plugin-content-docs/default/__plugin.json"), "@generated/docusaurus-plugin-content-docs/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-content-docs/default/__plugin.json")], + "plugin---docusaurus-debugb-38-ad3": [() => import(/* webpackChunkName: "plugin---docusaurus-debugb-38-ad3" */ "@generated/docusaurus-plugin-debug/default/__plugin.json"), "@generated/docusaurus-plugin-debug/default/__plugin.json", require.resolveWeak("@generated/docusaurus-plugin-debug/default/__plugin.json")],}; diff --git a/docs/.docusaurus/routes.js b/docs/.docusaurus/routes.js index d38bf52..f16de37 100644 --- a/docs/.docusaurus/routes.js +++ b/docs/.docusaurus/routes.js @@ -2,6 +2,41 @@ import React from 'react'; import ComponentCreator from '@docusaurus/ComponentCreator'; export default [ + { + path: '/__docusaurus/debug', + component: ComponentCreator('/__docusaurus/debug', '5ff'), + exact: true + }, + { + path: '/__docusaurus/debug/config', + component: ComponentCreator('/__docusaurus/debug/config', '5ba'), + exact: true + }, + { + path: '/__docusaurus/debug/content', + component: ComponentCreator('/__docusaurus/debug/content', 'a2b'), + exact: true + }, + { + path: '/__docusaurus/debug/globalData', + component: ComponentCreator('/__docusaurus/debug/globalData', 'c3c'), + exact: true + }, + { + path: '/__docusaurus/debug/metadata', + component: ComponentCreator('/__docusaurus/debug/metadata', '156'), + exact: true + }, + { + path: '/__docusaurus/debug/registry', + component: ComponentCreator('/__docusaurus/debug/registry', '88c'), + exact: true + }, + { + path: '/__docusaurus/debug/routes', + component: ComponentCreator('/__docusaurus/debug/routes', '000'), + exact: true + }, { path: '/', component: ComponentCreator('/', '2e7'), diff --git a/docs/.docusaurus/routesChunkNames.json b/docs/.docusaurus/routesChunkNames.json index 3f80213..3256185 100644 --- a/docs/.docusaurus/routesChunkNames.json +++ b/docs/.docusaurus/routesChunkNames.json @@ -1,23 +1,66 @@ { + "/__docusaurus/debug-5ff": { + "__comp": "__comp---theme-debug-config-23-a-2ff", + "__context": { + "plugin": "plugin---docusaurus-debugb-38-ad3" + } + }, + "/__docusaurus/debug/config-5ba": { + "__comp": "__comp---theme-debug-config-23-a-2ff", + "__context": { + "plugin": "plugin---docusaurus-debugb-38-ad3" + } + }, + "/__docusaurus/debug/content-a2b": { + "__comp": "__comp---theme-debug-contentba-8-ce7", + "__context": { + "plugin": "plugin---docusaurus-debugb-38-ad3" + }, + "__props": "__props---docusaurus-debug-content-3-c-0-be2" + }, + "/__docusaurus/debug/globalData-c3c": { + "__comp": "__comp---theme-debug-global-dataede-0fa", + "__context": { + "plugin": "plugin---docusaurus-debugb-38-ad3" + } + }, + "/__docusaurus/debug/metadata-156": { + "__comp": "__comp---theme-debug-site-metadata-68-e-3d4", + "__context": { + "plugin": "plugin---docusaurus-debugb-38-ad3" + } + }, + "/__docusaurus/debug/registry-88c": { + "__comp": "__comp---theme-debug-registry-679-501", + "__context": { + "plugin": "plugin---docusaurus-debugb-38-ad3" + } + }, + "/__docusaurus/debug/routes-000": { + "__comp": "__comp---theme-debug-routes-946-699", + "__context": { + "plugin": "plugin---docusaurus-debugb-38-ad3" + } + }, "/-2e7": { - "__comp": "5e95c892", + "__comp": "__comp---theme-docs-root-5-e-9-0b6", "__context": { - "plugin": "aba21aa0" + "plugin": "plugin---aba-d70" } }, "/-20b": { - "__comp": "a7bd4aaa", - "__props": "22dd74f7" + "__comp": "__comp---theme-doc-version-roota-7-b-5de", + "__props": "__props---22-d-307" }, "/-314": { - "__comp": "a94703ab" + "__comp": "__comp---theme-doc-roota-94-67a" }, "/Quickstart-ece": { - "__comp": "17896441", - "content": "351e6096" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---quickstart-351-aec" }, "/-1e5": { - "__comp": "17896441", - "content": "09c03e3c" + "__comp": "__comp---theme-doc-item-178-a40", + "content": "content---09-c-d3e" } } \ No newline at end of file diff --git a/docs/.docusaurus/site-metadata.json b/docs/.docusaurus/site-metadata.json index 49e1b76..1707206 100644 --- a/docs/.docusaurus/site-metadata.json +++ b/docs/.docusaurus/site-metadata.json @@ -11,9 +11,9 @@ "name": "@docusaurus/plugin-content-pages", "version": "3.7.0" }, - "docusaurus-plugin-sitemap": { + "docusaurus-plugin-debug": { "type": "package", - "name": "@docusaurus/plugin-sitemap", + "name": "@docusaurus/plugin-debug", "version": "3.7.0" }, "docusaurus-plugin-svgr": { diff --git a/docs/docs/Quickstart.md b/docs/docs/Quickstart.md index c884493..655ae82 100644 --- a/docs/docs/Quickstart.md +++ b/docs/docs/Quickstart.md @@ -1,18 +1,66 @@ ## Quickstart +### Add the plugin to build.gradle[.kts] + +If you already use Architectury, make sure to add Stonecraft BEFORE the Architectury plugin. + +```kotlin +// build.gradle.kts +plugins { + id("gg.meza.stonecraft") version "1.0.0" +} +``` + +### Set up Stonecutter + +#### Setting up supported version + +Create a `settings.gradle[.kts]` file in your project root with the following content: + ```kotlin // settings.gradle.kts pluginManagement { repositories { - maven("https://maven.meza.gg/") + mavenCentral() + gradlePluginPortal() + maven("https://maven.kikugie.dev/releases") + } +} +plugins { + id("dev.kikugie.stonecutter") version "0.5" +} + +stonecutter { + centralScript = "build.gradle.kts" + kotlinController = true + shared { + fun mc(version: String, vararg loaders: String) { + // Make the relevant version directories named "1.20.2-fabric", "1.20.2-forge", etc. + for (it in loaders) vers("$version-$it", version) + } + + mc("1.21.3", "fabric", "forge", "neoforge") + mc("1.21.4", "fabric", "forge", "neoforge") + } + create(rootProject) } + +rootProject.name = "YourModName" + ``` +#### Setting up the stonecutter + +Create a `stonecutter.gradle[.kts]` file in your project root with the following content: + ```kotlin -// build.gradle.kts +// stonecutter.gradle.kts plugins { - id("gg.meza.stonecraft") version "1.0.0" + id("dev.kikugie.stonecutter") + id("gg.meza.stonecraft") } + +stonecutter active "1.21.4-fabric" /* [SC] DO NOT EDIT */ ``` diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index b3c5c94..c44622f 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -6,8 +6,9 @@ const lightTheme = themes.oneLight; const darkTheme = themes.vsDark; const config: Config = { - title: 'My Site', - favicon: 'img/favicon.ico', + title: 'Stonecraft – Simplify Multi-Loader, Multi-Version Minecraft Mod Development', + titleDelimiter: '–', + favicon: 'img/stonecraft@0.25x.png', url: 'https://stonecraft.meza.gg', baseUrl: '/', trailingSlash: false, @@ -34,8 +35,50 @@ const config: Config = { } satisfies Preset.Options, ], ], - + headTags: [ + { + tagName: 'link', + attributes: { + rel: 'canonical', + href: 'https://stonecraft.meza.gg', + } + }, + { + tagName: 'script', + attributes: { + type: 'application/ld+json', + }, + innerHTML: JSON.stringify({ + "@context": "https://schema.org", + "@type": "SoftwareApplication", + "name": "Stonecraft", + "description": "Stonecraft is a Gradle plugin that simplifies multi-loader, multi-version Minecraft mod development with Fabric, Forge, and NeoForge support.", + "applicationCategory": "DeveloperTool", + "operatingSystem": "Cross-platform", + "url": "https://stonecraft.meza.gg/", + "author": { + "@type": "Person", + "name": "Meza" + } + }), + } + ], themeConfig: { + metadata: [ + {name: 'description', content: 'Stonecraft is a Gradle plugin that streamlines multi-loader, multi-version Minecraft mod development. Build Fabric, Forge, and NeoForge mods in a single codebase and simplify releases to Modrinth and CurseForge.'}, + {name: 'keywords', content: 'Minecraft modding, Gradle plugin, Fabric mod, Forge mod, NeoForge, multi-loader modding, Stonecutter, Architectury, Modrinth, CurseForge'}, + {name: 'og:title', content: 'Stonecraft – Simplify Multi-Loader, Multi-Version Minecraft Mod Development'}, + {name: 'og:description', content: 'Stonecraft is a Gradle plugin that streamlines multi-loader, multi-version Minecraft mod development. Build Fabric, Forge, and NeoForge mods in a single codebase and simplify releases to Modrinth and CurseForge.'}, + {name: 'og:type', content: 'website'}, + {name: 'og:url', content: 'https://stonecraft.meza.gg'}, + {name: 'og:image', content: 'https://stonecraft.meza.gg/img/stonecraft@0.5x.png'}, + {name: 'twitter:card', content: 'summary_large_image'}, + {name: 'twitter:site', content: '@houseofmeza'}, + {name: 'twitter:creator', content: '@houseofmeza'}, + {name: 'twitter:image', content: 'https://stonecraft.meza.gg/img/stonecraft@0.5x.png'}, + {name: 'twitter:title', content: 'Stonecraft – Simplify Multi-Loader, Multi-Version Minecraft Mod Development'}, + {name: 'twitter:description', content: 'Stonecraft is a Gradle plugin that streamlines multi-loader, multi-version Minecraft mod development. Build Fabric, Forge, and NeoForge mods in a single codebase and simplify releases to Modrinth and CurseForge.'} + ], announcementBar: { isCloseable: true, id: 'star',