|
| 1 | +import { defineConfig } from "vitepress"; |
| 2 | + |
| 3 | +export default defineConfig({ |
| 4 | + title: "ModDota", |
| 5 | + description: "Community-driven Dota 2 modding resource", |
| 6 | + lang: "en-US", |
| 7 | + head: [["link", { rel: "icon", href: "/images/favicon.ico" }]], |
| 8 | + srcDir: "_articles", |
| 9 | + outDir: "build", |
| 10 | + cleanUrls: true, |
| 11 | + ignoreDeadLinks: [/\.fbx$/], |
| 12 | + |
| 13 | + markdown: { |
| 14 | + lineNumbers: true, |
| 15 | + }, |
| 16 | + |
| 17 | + themeConfig: { |
| 18 | + logo: "/images/logo.svg", |
| 19 | + |
| 20 | + nav: [ |
| 21 | + { |
| 22 | + text: "Lua API", |
| 23 | + link: "https://moddota.com/api/", |
| 24 | + }, |
| 25 | + { |
| 26 | + text: "Panorama API", |
| 27 | + link: "https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Panorama/Javascript/API", |
| 28 | + }, |
| 29 | + ], |
| 30 | + |
| 31 | + socialLinks: [{ icon: "discord", link: "https://discord.gg/gRmZgvz" }], |
| 32 | + |
| 33 | + sidebar: [ |
| 34 | + { text: "Getting Started", link: "/getting-started" }, |
| 35 | + { text: "Scripting Introduction", link: "/scripting-introduction" }, |
| 36 | + { |
| 37 | + text: "Typescript", |
| 38 | + collapsed: true, |
| 39 | + items: [ |
| 40 | + { text: "Introduction", link: "/scripting/Typescript/typescript-introduction" }, |
| 41 | + { text: "Ability", link: "/scripting/Typescript/typescript-ability" }, |
| 42 | + { text: "Modifier", link: "/scripting/Typescript/typescript-modifier" }, |
| 43 | + { text: "Events", link: "/scripting/Typescript/typescript-events" }, |
| 44 | + { text: "Tooltip Generator", link: "/scripting/Typescript/tooltip-generator" }, |
| 45 | + ], |
| 46 | + }, |
| 47 | + { |
| 48 | + text: "Abilities, items, modifiers", |
| 49 | + collapsed: true, |
| 50 | + items: [ |
| 51 | + { text: "Ability KeyValues", link: "/abilities/ability-keyvalues" }, |
| 52 | + { text: "Item KeyValues", link: "/abilities/item-keyvalues" }, |
| 53 | + { |
| 54 | + text: "The Importance of AbilityValues Values", |
| 55 | + link: "/abilities/the-importance-of-abilityvalues-values", |
| 56 | + }, |
| 57 | + { |
| 58 | + text: "Passing AbilityValues Values into Lua", |
| 59 | + link: "/abilities/passing-abilityvalues-values-into-lua", |
| 60 | + }, |
| 61 | + { text: "AbilityDuration Tooltips", link: "/abilities/abilityduration-tooltips" }, |
| 62 | + { text: "Simple Custom Ability", link: "/abilities/simple-custom-ability" }, |
| 63 | + { text: "Creating Innate Abilities", link: "/abilities/creating-innate-abilities" }, |
| 64 | + { text: "Making Any Ability Use Charges", link: "/abilities/making-any-ability-use-charges" }, |
| 65 | + { text: "Calling Spells with SetCursor", link: "/abilities/calling-spells-with-setcursor" }, |
| 66 | + { |
| 67 | + text: "Lua Abilities and Modifiers", |
| 68 | + link: "https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Lua_Abilities_and_Modifiers", |
| 69 | + }, |
| 70 | + { text: "Lua Item Tutorial", link: "/abilities/lua-item-tutorial" }, |
| 71 | + { |
| 72 | + text: "Lua Modifiers", |
| 73 | + collapsed: true, |
| 74 | + items: [ |
| 75 | + { text: "Extending Hero/NPC API", link: "/abilities/lua-modifiers/1" }, |
| 76 | + { text: "Linken's Sphere & Lotus Orb", link: "/abilities/lua-modifiers/2" }, |
| 77 | + { text: "Transformations", link: "/abilities/lua-modifiers/3" }, |
| 78 | + { text: "Enchanting Trees", link: "/abilities/lua-modifiers/4" }, |
| 79 | + { text: "Custom Barriers", link: "/abilities/lua-modifiers/5" }, |
| 80 | + ], |
| 81 | + }, |
| 82 | + { |
| 83 | + text: "Reutilizing Built-in Modifiers", |
| 84 | + link: "/abilities/reutilizing-built-in-modifiers", |
| 85 | + }, |
| 86 | + { |
| 87 | + text: "Datadriven", |
| 88 | + collapsed: true, |
| 89 | + items: [ |
| 90 | + { |
| 91 | + text: "Ability Events & Modifiers", |
| 92 | + link: "/abilities/datadriven/datadriven-ability-events-modifiers", |
| 93 | + }, |
| 94 | + { text: "All About the Target", link: "/abilities/datadriven/all-about-the-target" }, |
| 95 | + { |
| 96 | + text: "Channeling Animations", |
| 97 | + link: "/abilities/datadriven/channeling-animations", |
| 98 | + }, |
| 99 | + { |
| 100 | + text: "Invisibility Ability Example", |
| 101 | + link: "/abilities/datadriven/invisibility-ability-example", |
| 102 | + }, |
| 103 | + { |
| 104 | + text: "Illusion Ability Example", |
| 105 | + link: "/abilities/datadriven/illusion-ability-example", |
| 106 | + }, |
| 107 | + { |
| 108 | + text: "Rotate Ability Example", |
| 109 | + link: "/abilities/datadriven/rotate-ability-example", |
| 110 | + }, |
| 111 | + { |
| 112 | + text: "Point Channeling AoE Example", |
| 113 | + link: "/abilities/datadriven/point-channeling-aoe-ability-example", |
| 114 | + }, |
| 115 | + { |
| 116 | + text: "Hero & Creep Modifier Durations", |
| 117 | + link: "/abilities/datadriven/apply-hero-and-creep-modifier-durations", |
| 118 | + }, |
| 119 | + { |
| 120 | + text: "Physics Ability Example (Exorcism)", |
| 121 | + link: "/abilities/datadriven/physics-ability-example-exorcism", |
| 122 | + }, |
| 123 | + ], |
| 124 | + }, |
| 125 | + { |
| 126 | + text: "Modifier Properties in Tooltips", |
| 127 | + link: "/abilities/modifier-properties-in-tooltips", |
| 128 | + }, |
| 129 | + { text: "Server to Client", link: "/abilities/server-to-client" }, |
| 130 | + ], |
| 131 | + }, |
| 132 | + { |
| 133 | + text: "Units", |
| 134 | + collapsed: true, |
| 135 | + items: [ |
| 136 | + { text: "Unit KeyValues", link: "/units/unit-keyvalues" }, |
| 137 | + { text: "Unit Producing Buildings", link: "/units/unit-producing-buildings" }, |
| 138 | + { text: "Creating Units with a Duration", link: "/units/creating-units-with-a-duration" }, |
| 139 | + { text: "Adding a Simple AI to Units", link: "/units/adding-a-very-simple-ai-to-units" }, |
| 140 | + { text: "Simple Neutral AI", link: "/units/simple-neutral-ai" }, |
| 141 | + { |
| 142 | + text: "Creature AttachWearable Blocks", |
| 143 | + link: "/units/create-creature-attachwearable-blocks-directly-from-the-keyvalues", |
| 144 | + }, |
| 145 | + ], |
| 146 | + }, |
| 147 | + { |
| 148 | + text: "Scripting", |
| 149 | + collapsed: true, |
| 150 | + items: [ |
| 151 | + { text: "Custom Mana System", link: "/scripting/custom-mana-system" }, |
| 152 | + { text: "Item Restrictions/Requirements", link: "/scripting/item-restrictions-requirements" }, |
| 153 | + { text: "Item Drop System", link: "/scripting/item-drop-system" }, |
| 154 | + { text: "Making an RPG-like Looting Chest", link: "/scripting/making-a-rpg-like-looting-chest" }, |
| 155 | + { text: "Scripted Shop Spawning", link: "/scripting/scripted-shop-spawning" }, |
| 156 | + { text: "Lava Damage", link: "/scripting/lava-damage" }, |
| 157 | + { text: "Using Dota Filters", link: "/scripting/using-dota-filters" }, |
| 158 | + { text: "Particle Attachment", link: "/scripting/particle-attachment" }, |
| 159 | + { text: "Vector Math", link: "/scripting/vector-math" }, |
| 160 | + { |
| 161 | + text: "Precache: Fixing and Avoiding Issues", |
| 162 | + link: "/scripting/precache-fixing-and-avoiding-issues", |
| 163 | + }, |
| 164 | + { |
| 165 | + text: "Custom NetTables", |
| 166 | + link: "https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Custom_Nettables", |
| 167 | + }, |
| 168 | + { text: "Advanced Looting Chest", link: "/scripting/advanced-looting-chest" }, |
| 169 | + ], |
| 170 | + }, |
| 171 | + { |
| 172 | + text: "Panorama UI", |
| 173 | + collapsed: true, |
| 174 | + items: [ |
| 175 | + { |
| 176 | + text: "Introduction", |
| 177 | + link: "https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Panorama", |
| 178 | + }, |
| 179 | + { text: "Inclusive Panorama UI", link: "/panorama/inclusive-panorama-ui" }, |
| 180 | + { |
| 181 | + text: "Panorama UI with TypeScript", |
| 182 | + link: "/panorama/introduction-to-panorama-ui-with-typescript", |
| 183 | + }, |
| 184 | + { text: "Keybindings", link: "/panorama/keybindings" }, |
| 185 | + { text: "DOTAScenePanel", link: "/panorama/dotascenepanel" }, |
| 186 | + { text: "Button Examples", link: "/panorama/button-examples" }, |
| 187 | + { |
| 188 | + text: "Custom Game Setup", |
| 189 | + link: "https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Custom_Game_Setup", |
| 190 | + }, |
| 191 | + { text: "Hiding HUD with SetHUDVisible", link: "/panorama/hiding-hud-with-sethudvisible" }, |
| 192 | + { text: "Webpack", link: "/panorama/webpack" }, |
| 193 | + { text: "React", link: "/panorama/react" }, |
| 194 | + ], |
| 195 | + }, |
| 196 | + { |
| 197 | + text: "Assets", |
| 198 | + collapsed: true, |
| 199 | + items: [ |
| 200 | + { text: "Asset File Type Reference", link: "/assets/asset-file-type-reference" }, |
| 201 | + { |
| 202 | + text: "Maps", |
| 203 | + collapsed: true, |
| 204 | + items: [ |
| 205 | + { text: "Hammer Tutorials", link: "/assets/maps/hammer-tutorials" }, |
| 206 | + { |
| 207 | + text: "Making Skip/Clip Blocks from Models", |
| 208 | + link: "/assets/maps/making-skip-clip-blocks-out-of-models", |
| 209 | + }, |
| 210 | + ], |
| 211 | + }, |
| 212 | + { |
| 213 | + text: "Models", |
| 214 | + collapsed: true, |
| 215 | + items: [ |
| 216 | + { text: "MDL to VMDL Conversion", link: "/assets/models/mdl-to-vmdl-conversion" }, |
| 217 | + { |
| 218 | + text: "Adding Hitbox to Models Without a Bone", |
| 219 | + link: "/assets/models/adding-hitbox-to-models-without-a-bone", |
| 220 | + }, |
| 221 | + { |
| 222 | + text: "Importing Models & Material Editor", |
| 223 | + link: "/assets/models/importing-models-and-using-material-editor", |
| 224 | + }, |
| 225 | + { |
| 226 | + text: "Exporting Models & Materials/Textures", |
| 227 | + link: "/assets/models/exporting-models-and-materials-textures", |
| 228 | + }, |
| 229 | + { |
| 230 | + text: "Custom Hero Models & Animations", |
| 231 | + link: "/assets/models/custom-hero-models-materials-animations", |
| 232 | + }, |
| 233 | + ], |
| 234 | + }, |
| 235 | + { |
| 236 | + text: "Particles", |
| 237 | + collapsed: true, |
| 238 | + items: [ |
| 239 | + { text: "Particle Tutorial", link: "/assets/particles/particle-tutorial" }, |
| 240 | + { text: "Particle Basics", link: "/assets/particles/particle-basics" }, |
| 241 | + { text: "Chaos Wave Particle", link: "/assets/particles/chaos-wave-particle" }, |
| 242 | + { |
| 243 | + text: "Falling Cherry Blossom Petal", |
| 244 | + link: "/assets/particles/falling-cherry-blossom-petal-for-spring-mood-particle", |
| 245 | + }, |
| 246 | + { text: "Volcano Particle", link: "/assets/particles/volcano-particle" }, |
| 247 | + { text: "Status Effects", link: "/assets/particles/status-effects" }, |
| 248 | + ], |
| 249 | + }, |
| 250 | + { text: "Custom Sounds", link: "/assets/custom-sounds" }, |
| 251 | + { |
| 252 | + text: "Extracting & Compiling VTEX Files", |
| 253 | + link: "/assets/extracting-and-compiling-vtex-files", |
| 254 | + }, |
| 255 | + { text: "Custom Minimap Icons", link: "/assets/custom-minimap-icons" }, |
| 256 | + ], |
| 257 | + }, |
| 258 | + { |
| 259 | + text: "Tools", |
| 260 | + collapsed: true, |
| 261 | + items: [ |
| 262 | + { text: "Setting Up for Collaboration", link: "/tools/setting-up-for-collaboration" }, |
| 263 | + { text: "Useful Console Commands", link: "/tools/useful-console-commands" }, |
| 264 | + { text: "Setting Up with GitHub", link: "/tools/setting-up-your-addon-with-github" }, |
| 265 | + { text: "Combining KV Files Using #base", link: "/tools/combining-kv-files-using-base" }, |
| 266 | + { text: "Improving vConsole", link: "/tools/improvement-vConsole" }, |
| 267 | + { text: "GitHub Repos and Search", link: "/tools/github-repos-and-search" }, |
| 268 | + ], |
| 269 | + }, |
| 270 | + { text: "Contribute", link: "/contribute" }, |
| 271 | + ], |
| 272 | + |
| 273 | + externalLinkIcon: true, |
| 274 | + outline: [2, 3], |
| 275 | + |
| 276 | + editLink: { |
| 277 | + pattern: "https://github.com/ModDota/moddota.github.io/edit/source/_articles/:path", |
| 278 | + }, |
| 279 | + |
| 280 | + search: { |
| 281 | + provider: "local", |
| 282 | + }, |
| 283 | + }, |
| 284 | + |
| 285 | + vite: { |
| 286 | + publicDir: "../static", |
| 287 | + }, |
| 288 | + |
| 289 | + sitemap: { |
| 290 | + hostname: "https://moddota.com/", |
| 291 | + }, |
| 292 | +}); |
0 commit comments