Windows users must use Windows Subsystem for Linux
-
-
-
-
-## Installation
-
-Add **@roots/bud** as a development dependency using your choice of package manager.
-
-```bash npm2yarn
-npm install @roots/bud --save-dev
-```
-
-:::info
-
-If you are using pnpm add `--public-hoist-pattern=*` to the installation command and [use our .pnpmfile.cjs compatibility shim](/guides/general-use/pnpm#pnpmfilecjs-compatibilty-shim).
-
-:::
-
-## Usage
-
-If your project's entrypoint is located at `./src/index.(js|css)` you can now compile it using the [bud build](./cli/build/index.mdx) command.
-No configuration is required. The bundled code will be output to `./dist/main.(js|css)`.
-
-For information on customizing the build for your application see the [configuration basics](configure) guide.
-
-## Adding features
-
-**bud.js** is built modularly. This means features can be added as needed by adding extensions to your project.
-
-The [configuration basics](configure) guide has more information on how to add extensions, but most of them start and end with installing a package.
-
-For example, you can add swc and postcss support by
-installing [@roots/bud-swc](/extensions/bud-swc) and [@roots/bud-postcss](/extensions/bud-postcss/):
-
-```bash npm2yarn
-npm install @roots/bud-swc @roots/bud-postcss --save-dev
-```
-
-Consult the [extensions directory](/extensions/) for available first-party extensions.
-
-## Upgrading bud.js
-
-In general, all dependencies with the `@roots/*` namespace should share the same version.
-
-To make it easy to keep versions in sync you can use the [bud upgrade](./cli/index.mdx) command.
-
-```bash npm2yarn
-npm run bud upgrade
-```
diff --git a/sources/@repo/docs/content/guides/cli/build/development.mdx b/sources/@repo/docs/content/learn/cli/build/development.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/build/development.mdx
rename to sources/@repo/docs/content/learn/cli/build/development.mdx
diff --git a/sources/@repo/docs/content/guides/cli/build/index.mdx b/sources/@repo/docs/content/learn/cli/build/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/build/index.mdx
rename to sources/@repo/docs/content/learn/cli/build/index.mdx
diff --git a/sources/@repo/docs/content/guides/cli/build/production.mdx b/sources/@repo/docs/content/learn/cli/build/production.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/build/production.mdx
rename to sources/@repo/docs/content/learn/cli/build/production.mdx
diff --git a/sources/@repo/docs/content/guides/cli/clean.mdx b/sources/@repo/docs/content/learn/cli/clean.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/clean.mdx
rename to sources/@repo/docs/content/learn/cli/clean.mdx
diff --git a/sources/@repo/docs/content/guides/cli/doctor.mdx b/sources/@repo/docs/content/learn/cli/doctor.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/doctor.mdx
rename to sources/@repo/docs/content/learn/cli/doctor.mdx
diff --git a/sources/@repo/docs/content/guides/cli/index.mdx b/sources/@repo/docs/content/learn/cli/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/index.mdx
rename to sources/@repo/docs/content/learn/cli/index.mdx
diff --git a/sources/@repo/docs/content/guides/cli/repl.mdx b/sources/@repo/docs/content/learn/cli/repl.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/repl.mdx
rename to sources/@repo/docs/content/learn/cli/repl.mdx
diff --git a/sources/@repo/docs/content/learn/cli/upgrade.mdx b/sources/@repo/docs/content/learn/cli/upgrade.mdx
new file mode 100644
index 0000000000..5d561afe46
--- /dev/null
+++ b/sources/@repo/docs/content/learn/cli/upgrade.mdx
@@ -0,0 +1,10 @@
+---
+title: bud upgrade
+description: The `bud upgrade` command
+sidebar_label: bud upgrade
+---
+
+import CodeBlock from '@theme/CodeBlock'
+import Output from '!!raw-loader!@site/generated/cli/upgrade.help.md'
+
+{Output}
diff --git a/sources/@repo/docs/content/guides/cli/view.mdx b/sources/@repo/docs/content/learn/cli/view.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/cli/view.mdx
rename to sources/@repo/docs/content/learn/cli/view.mdx
diff --git a/sources/@repo/docs/content/guides/comparison.mdx b/sources/@repo/docs/content/learn/comparison.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/comparison.mdx
rename to sources/@repo/docs/content/learn/comparison.mdx
diff --git a/sources/@repo/docs/content/learn/config/assets.mdx b/sources/@repo/docs/content/learn/config/assets.mdx
new file mode 100644
index 0000000000..8440ef9547
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/assets.mdx
@@ -0,0 +1,56 @@
+---
+title: Assets
+sidebar_label: Assets
+---
+
+:::info No need to copy imported assets
+
+If you are already including assets by importing them in a script or stylesheet, you do not need
+to copy them explicitly.
+
+For example, given this stylesheet, copying `@src/fonts/MyFont.woff2` would be unnecessary:
+
+```js title='index.css'
+@font-face {
+ font-family: 'MyFont';
+ src: url(@src/fonts/MyFont.woff2) format('woff2');
+}
+```
+
+:::
+
+The [bud.assets](/reference/bud.assets) function is used to copy files to the output directory.
+
+The simplest way to use it is to pass an array of directories (relative to [your project `@src` directory](#project-paths)) you would like to copy:
+
+```js title=bud.config.js
+export default async bud => {
+ bud.assets(['images', 'fonts'])
+}
+```
+
+If you want more control over the directory being output to, you can use an array of from/to pairs:
+
+```js title=bud.config.js
+export default async bud => {
+ bud.assets([
+ ['images', 'assets/images'], // from `@src/images` to `@dist/assets/images`
+ ['fonts', 'assets/fonts'], // from `@src/fonts` to `@dist/assets/fonts`
+ ])
+}
+```
+
+For complete control, you can pass an object:
+
+```js title=bud.config.js
+export default async bud => {
+ bud.assets({
+ from: bud.path(`@src`, 'images'),
+ to: bud.path(`@dist`, 'images', `@name`), // `@name` is the filename (including hash if applicable)
+ context: bud.path(`@src`),
+ noErrorOnMissing: true,
+ toType: `template`,
+ })
+```
+
+You can learn more about this and other details in the [bud.assets documentation](/reference/bud.assets).
diff --git a/sources/@repo/docs/content/learn/config/entrypoints.mdx b/sources/@repo/docs/content/learn/config/entrypoints.mdx
new file mode 100644
index 0000000000..fb9d93a3c9
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/entrypoints.mdx
@@ -0,0 +1,47 @@
+---
+title: Entrypoints
+sidebar_label: Entrypoints
+---
+
+bud.js uses the concept of "entrypoints" to group application scripts and styles. Entrypoints are defined using [bud.entry](/reference/bud.entry).
+
+You can think of an entrypoint as a "page" in your application. Each entrypoint will have its own output file.
+
+:::info
+
+If your application's entrypoint is located at `@src/index.js` then you don't need to do anything. bud.js will automatically
+detect this and create an entrypoint for you.
+
+:::
+
+If you only have a single entrypoint then it is enough to just pass the filename:
+
+```js title=bud.config.js
+export default async bud => {
+ bud.entry('app') // src/app.js
+}
+```
+
+If you have more than one file to include in the bundle, you can use an array:
+
+```js title=bud.config.js
+export default async bud => {
+ bud.entry(['app.js', 'global.css'])
+}
+```
+
+If you have additional entrypoints you may call [bud.entry](/reference/bud.entry) multiple times.
+
+But, it might be preferable to use an object:
+
+```js title=bud.config.js
+export default async bud => {
+ bud.entry({
+ app: ['app.js', 'global.css'],
+ landing: ['landing.js', 'landing.css'],
+ })
+}
+```
+
+There is still more that this function can do, but for our overview this is more than enough. You can learn more about this and
+other details in the [bud.entry documentation](/reference/bud.entry).
diff --git a/sources/@repo/docs/content/guides/general-use/alternative-config-syntax.mdx b/sources/@repo/docs/content/learn/config/files/bud.config.mdx
similarity index 52%
rename from sources/@repo/docs/content/guides/general-use/alternative-config-syntax.mdx
rename to sources/@repo/docs/content/learn/config/files/bud.config.mdx
index d912d6849b..075f652759 100644
--- a/sources/@repo/docs/content/guides/general-use/alternative-config-syntax.mdx
+++ b/sources/@repo/docs/content/learn/config/files/bud.config.mdx
@@ -1,43 +1,103 @@
---
-title: Alternative config syntaxes
-description: Configure bud.js with typescript, yml or json
-sidebar_label: Alternative config syntaxes
+title: bud.config
+sidebar_label: bud.config.ts
+description: Used to configure bud.js
---
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
-import CodeBlock from '@theme/CodeBlock'
-import YML from '!!raw-loader!@site/../../../examples/config-yml/bud.config.yml'
-In addition to `.js`, `.cjs` and `.mjs` configurations, **bud.js** supports configuration files authored with TypeScript, [json5](https://json5.org/) and yml.
+bud.js config files are the most straight forward way of interfacing with bud.js.
-## TypeScript
+- The file name should include `bud` in the name.
+- The module should be located in the project root or the `./config` directory.
+- The module can be written in JavaScript, TypeScript, YML or JSON5.
+- JavaScript and TypeScript configurations can either export a configuration function or import bud and use it directly.
-You can use TypeScript to configure your build regardless of if you are using TypeScript in your project. The config file is not typechecked.
+:::info esbuild-wasm
-You can import the `Bud` types from `@roots/bud`.
+By default bud.js uses [esbuild-wasm](https://www.npmjs.com/package/esbuild-wasm) to transpile the config file when authored with TypeScript.
+
+If you prefer you can install [esbuild](https://www.npmjs.com/package/esbuild) and it will be preferred.
+
+The esbuild team advises that using esbuild is faster than esbuild-wasm, but the benefit of esbuild-wasm is that it doesn't need to be built during installation.
+
+:::
-```ts
+## Example configurations
+
+
+
+
+```js title=bud.config.ts
import type {Bud} from '@roots/bud'
export default async (bud: Bud) => {
- // configure bud
+ bud.entry(`app`, [`app.js`, `app.css`])
}
```
-By default bud.js uses [esbuild-wasm](https://www.npmjs.com/package/esbuild-wasm) to transpile the config file when authored with TypeScript.
+
+
+
+
+```js title=bud.config.js
+/** @param {import('@roots/bud').Bud} bud */
+export default async bud => {
+ bud.entry(`app`, [`app.js`, `app.css`])
+}
+```
+
+
+
+
+
+```yml title=bud.config.yml
+entry: ['app', ['app.js', 'app.css']]
+```
+
+
+
+
+
+```json title=bud.config.json
+{
+ "entry": ["app", ["app.js", "app.css"]]
+}
+```
+
+
+
+
+## Importing bud directly
+
+As mentioned above, you can also elect to import bud directly and use it in your configuration.
+
+```ts title=bud.config.ts
+import {bud} from '@roots/bud'
+
+bud.entry(`app`, [`app.js`, `app.css`])
+```
+
+## Using multiple configuration files
+
+It is possible to create more than one bud.js configuration file.
+
+When more than one configuration file is present they are execuetd in the following order:
-If you prefer you can install [esbuild](https://www.npmjs.com/package/esbuild) and it will be used instead automatically.
+1. `bud.*` - the standard, base configuration.
+2. `bud.local.*` - local configuration.
+3. `bud.{production,development}.*` - mode specific configuration. Applied when `bud.mode` matches.
+4. `bud.{production,development}.local.*` - mode specific local configuration. Applied when `bud.mode` matches.
-The esbuild team advises that using esbuild is faster than esbuild-wasm, but the benefit of esbuild-wasm is that it doesn't need to be compiled during installation.
-Additionally, results of the transform are cached, so either way the transformer is only invoked a single time.
-In our testing the extra installation time outweighs the performance gains.
+You may want to add `bud.local.*` to your `.gitignore` file. This way contributors to your project can make specific overrides using `bud.local.*` files
+without affecting the base configuration kept in source control.
-## YML
+## Configuring bud.js with YML
Each key is a reference to a `Bud` call. The supplied values are the arguments to that call.
-For instance, the equivalent of the following call to [bud.entry](/docs/bud.entry):
+For instance, the equivalent of the following call to [bud.entry](/reference/bud.entry):
```js
bud.entry('app', 'app.js')
@@ -108,7 +168,7 @@ webpackConfig: >
=> config => ({...config, parallelism: 1})
```
-[bud.tap](/docs/bud.tap) and [bud.tapAsync](/docs/bud.tapAsync) can be helpful for dynamic configuration and work like this:
+[bud.tap](/reference/bud.tap) and [bud.tapAsync](/reference/bud.tapAsync) can be helpful for dynamic configuration and work like this:
```yml
tap: >
@@ -127,9 +187,9 @@ tapAsync: >
If you're doing a lot of this remember that you can create JS configurations in addition to the yml one.
-## JSON
+## Configuring bud.js with JSON
-JSON works by the same rules as yml and you can use json5 syntax (comments, non-quoted keys).
+JSON uses the same rules as yml. You can use JSON5 syntax (comments, non-quoted keys) similar to what is supported in `tsconfig.json`.
```json
{
diff --git a/sources/@repo/docs/content/learn/config/files/env.mdx b/sources/@repo/docs/content/learn/config/files/env.mdx
new file mode 100644
index 0000000000..835c106741
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/files/env.mdx
@@ -0,0 +1,6 @@
+---
+title: .env
+sidebar_label: .env
+---
+
+You can access environment variables set in a `.env` file in your project root using [bud.env](/reference/bud.env).
diff --git a/sources/@repo/docs/content/learn/config/files/package.mdx b/sources/@repo/docs/content/learn/config/files/package.mdx
new file mode 100644
index 0000000000..41e73394a6
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/files/package.mdx
@@ -0,0 +1,118 @@
+---
+title: package.json
+sidebar_label: package.json
+---
+
+Your project `package.json` has bud.js specific fields that can be used to configure your project.
+
+## JSON schema
+
+To make sure your `package.json` is valid, you can add the bud.js schema to your `package.json`: `https://bud.js.org/bud.package.json`. This is totally optional.
+
+```json title=package.json
+{
+ "name": "my-project",
+ "$schema": "https://bud.js.org/bud.package.json",
+ "devDependencies": {
+ "@roots/bud": "latest"
+ }
+}
+```
+
+## bud.js fields
+
+bud.js specific fields are added to the top-level `bud` key in your `package.json`.
+
+### bud.extensions.discover
+
+Disable extension autoload by setting `bud.extensions.discover` to `false`.
+
+```json title=package.json
+{
+ "name": "my-project",
+ "$schema": "https://bud.js.org/bud.package.json",
+ "bud": {
+ "extensions": {
+ "discover": false
+ }
+ },
+ "devDependencies": {
+ "@roots/bud": "latest"
+ }
+}
+```
+
+### bud.extensions.allowlist
+
+Allow only specified extensions to autoload by setting `bud.extensions.allowlist`.
+
+```json title=package.json
+{
+ "name": "my-project",
+ "$schema": "https://bud.js.org/bud.package.json",
+ "bud": {
+ "extensions": {
+ "allowlist": ["@roots/bud-babel"]
+ }
+ },
+ "devDependencies": {
+ "@roots/bud": "latest",
+ "@roots/bud-babel": "latest",
+ "@roots/bud-postcss": "latest"
+ }
+}
+```
+
+### bud.extensions.denylist
+
+Prevent particular extensions from autoloading by setting `bud.extensions.denylist`.
+
+```json title=package.json
+{
+ "name": "my-project",
+ "$schema": "https://bud.js.org/bud.package.json",
+ "bud": {
+ "extensions": {
+ "denylist": ["@roots/bud-postcss"]
+ }
+ },
+ "devDependencies": {
+ "@roots/bud": "latest",
+ "@roots/bud-babel": "latest",
+ "@roots/bud-postcss": "latest"
+ }
+}
+```
+
+## Multi-instance configurations
+
+If you are using bud.js in a multi-instance configuration, you can key the options by the instance names.
+
+Any top-level options will be applied to all instances, with instance-specific options taking precedence.
+
+```json title=package.json
+{
+ "name": "my-project",
+ "$schema": "https://bud.js.org/bud.package.json",
+ "bud": {
+ "extensions": {
+ "discover": false
+ },
+ "instance-a": {
+ "extensions": {
+ "allowlist": ["@roots/bud-swc"]
+ }
+ },
+ "instance-b": {
+ "extensions": {
+ "allowlist": ["@roots/bud-babel"]
+ }
+ }
+ },
+ "devDependencies": {
+ "@roots/bud": "latest",
+ "@roots/bud-babel": "latest",
+ "@roots/bud-swc": "latest"
+ }
+}
+```
diff --git a/sources/@repo/docs/content/learn/config/files/tsconfig.mdx b/sources/@repo/docs/content/learn/config/files/tsconfig.mdx
new file mode 100644
index 0000000000..f944c1a29a
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/files/tsconfig.mdx
@@ -0,0 +1,56 @@
+---
+title: tsconfig.json
+sidebar_label: tsconfig.json
+---
+
+You can enhance your developer experience in vscode and other editors by creating a `tsconfig.json` file.
+
+There are base configs provided by **@roots/bud** for you to extend:
+
+- [@roots/bud/config/jsconfig.json](https://github.com/roots/bud/tree/main/sources/@roots/bud/config/jsconfig.json)
+- [@roots/bud/config/tsconfig.json](https://github.com/roots/bud/tree/main/sources/@roots/bud/config/tsconfig.json)
+
+### Example tsconfig.json
+
+```json title=tsconfig.json
+{
+ "extends": "@roots/bud/config/tsconfig.json",
+ "compilerOptions": {
+ "baseUrl": "./src",
+ "outDir": "./dist",
+ "paths": {
+ "@src/*": ["./src/*"]
+ },
+ "types": [
+ "node",
+ "webpack/module",
+ "@roots/bud",
+ "@roots/bud-postcss",
+ "@roots/bud-react",
+ "@roots/bud-swc",
+ "@roots/bud-tailwindcss"
+ ]
+ },
+ "files": ["bud.config.ts"],
+ "include": ["src"],
+ "exclude": ["node_modules", "dist"],
+ "bud": {
+ "useCompilerOptions": false
+ }
+}
+```
+
+### Tips
+
+- Add any bud extensions you are using to `compilerOptions.types` so that you're IDE can will pick up on the types. We also recommend adding `node` and `webpack/module` to this array.
+- Add any [aliases](/reference/bud.alias) you are using to `compilerOptions.paths` so that your IDE can resolve them.
+- Make sure `bud.config.js` is included in the `include` array so that your IDE will apply discovered types to the config file.
+
+### bud.useCompilerOptions
+
+If you enable `bud.useCompilerOptions` in your `tsconfig.json` file then **@roots/bud** will apply certain options from `compilerOptions` to the bud config.
+
+- `compilerOptions.baseUrl` will set the `@src` path.
+- `compilerOptions.outDir` will set the `@dist` path.
+- `compilerOptions.paths` will create bud paths and aliases.
+- `include` will call `bud.compilePaths` on the supplied values.
diff --git a/sources/@repo/docs/content/learn/config/optimization.mdx b/sources/@repo/docs/content/learn/config/optimization.mdx
new file mode 100644
index 0000000000..ba68e7aac4
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/optimization.mdx
@@ -0,0 +1,53 @@
+---
+title: Optimization
+sidebar_label: Optimization
+---
+
+## File hashing
+
+Use the [bud.hash](/reference/bud.hash) function to generate a hash for each file in the bundle. This hash will be added to outputted files.
+
+```js title=bud.config.js
+export default async bud => {
+ bud.hash()
+}
+```
+
+## Minimizing code
+
+Use the [bud.minimize](/reference/bud.minimize) function to run your application code through a minifier.
+
+```js title=bud.config.js
+export default async bud => {
+ bud.minimize()
+}
+```
+
+## Creating a runtime
+
+You may create an application runtime using [bud.runtime](/reference/bud.runtime). Using the `single` option is probably
+the simplest and best solution for most applications:
+
+```js title=bud.config.js
+export default async bud => {
+ bud.runtime('single')
+}
+```
+
+## Creating a vendor chunk
+
+You can perform general code splitting with [bud.splitChunks](/reference/bud.splitChunks).
+
+```js title=bud.config.js
+export default async bud => {
+ bud.splitChunks()
+}
+```
+
+## Optimizing images
+
+You can optimize images using the [@roots/bud-imagemin extension](/extensions/bud-imagemin).
+
+```sh npm2yarn
+npm install @roots/bud-imagemin --save-dev
+```
diff --git a/sources/@repo/docs/content/learn/config/paths.mdx b/sources/@repo/docs/content/learn/config/paths.mdx
new file mode 100644
index 0000000000..7dec4761d5
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/paths.mdx
@@ -0,0 +1,50 @@
+---
+title: Paths
+sidebar_label: Paths
+---
+
+## Setting application paths
+
+[bud.setPath](/reference/bud.setPath) is used to set project source and output paths.
+
+```js title=bud.config.js
+export default async bud => {
+ /* Set the source path.*/
+ bud.setPath('@src', 'source')
+ /* Set the output path.*/
+ bud.setPath('@dist', 'build')
+}
+```
+
+The `@src` and `@dist` handles are special handles associated with the input and output base directories.
+
+## Referencing application paths
+
+Once set, paths can be referenced using [bud.path](/reference/bud.path).
+
+```js title=bud.config.js
+export default async bud => {
+ bud.path('@src') // absolute path to source directory
+ bud.path('@dist') // absolute path to output directory
+}
+```
+
+## Globbing
+
+[bud.glob](/reference/bud.glob) can be used to construct a list of files matching a given pattern.
+
+This function is asychronous.
+
+```js title=bud.config.js
+export default async bud => {
+ await bud.glob('@src', '**/*.js') // returns an array of absolute paths
+}
+```
+
+There is a synchronous version available as well: [bud.globSync](/reference/bud.globSync).
+
+```js title=bud.config.js
+export default async bud => {
+ bud.globSync('@src', '**/*.js') // returns an array of absolute paths
+}
+```
diff --git a/sources/@repo/docs/content/learn/config/server.mdx b/sources/@repo/docs/content/learn/config/server.mdx
new file mode 100644
index 0000000000..9f3f392d77
--- /dev/null
+++ b/sources/@repo/docs/content/learn/config/server.mdx
@@ -0,0 +1,58 @@
+---
+title: Development server
+description: Development server
+slug: dev-server
+sidebar_label: Development server
+---
+
+## Setting the dev URL
+
+Use [bud.setUrl](/reference/bud.setUrl) to set the development server URL.
+
+```js title=bud.config.js
+export default async bud => {
+ bud.setUrl(3030) // Deltron zero hero not no small feat
+}
+```
+
+## Setting the proxy URL
+
+Use [bud.setProxyUrl](/reference/bud.setProxyUrl) to set the development server proxy URL.
+
+```js title=bud.config.js
+export default async bud => {
+ bud.setProxyUrl(`http://example.test`)
+}
+```
+
+## Setting public URLs
+
+You can use [bud.setPublicUrl](/reference/bud.setPublicUrl) and [bud.setPublicProxyUrl](/reference/bud.setPublicProxyUrl) to set the public URL of the development server.
+
+This is useful in containerized development environments like Docker where the internal URL is different from the external URL.
+
+Here is an example of what this might look like, but it is going to depend heavily on your setup:
+
+```js title=bud.config.js
+bud
+ .setUrl(3000)
+ .setPublicUrl(`http://example.test:3000`)
+ .setProxyUrl(8080)
+ .setPublicProxyUrl(`http://example.test`)
+```
+
+## Advanced configuration
+
+The development server can be configured with [bud.serve](/reference/bud.serve). This is primarily used to handle
+configuring bud.js to use an [SSL certificate](/reference/bud.serve#ssl), but it exposes all node options so the possibilities
+are really only limited by the runtime.
+
+```js title=bud.config.js
+export default async bud => {
+ bud.serve({
+ url: new URL(`https://example.test`)
+ cert: `/path/to/example.test.crt`,
+ key: `/path/to/example.test.key`,
+ })
+}
+```
diff --git a/sources/@repo/docs/content/guides/extending/decorators.mdx b/sources/@repo/docs/content/learn/extending/decorators.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/extending/decorators.mdx
rename to sources/@repo/docs/content/learn/extending/decorators.mdx
diff --git a/sources/@repo/docs/content/guides/extending/index.mdx b/sources/@repo/docs/content/learn/extending/index.mdx
similarity index 96%
rename from sources/@repo/docs/content/guides/extending/index.mdx
rename to sources/@repo/docs/content/learn/extending/index.mdx
index d6fd819034..9f77c28f55 100644
--- a/sources/@repo/docs/content/guides/extending/index.mdx
+++ b/sources/@repo/docs/content/learn/extending/index.mdx
@@ -4,7 +4,7 @@ description: Overview of instantiating bud.js directly from Node
sidebar_label: Extending
---
-You can add additional functionality to **bud.js** using the extensions API.
+You can add additional functionality to **bud.js** by writing a bud.js extension.
## Extension shape
@@ -44,12 +44,9 @@ export default class MyExtension extends Extension {
}
```
-A `label` is not strictly required but extensions without a `label` will have a unique id generated for them. Because this id is generated there is no
-straight forward way to reference the extension from the outside.
-
### dependsOn
-Extensions may depend on other other extensions. For instance, if you are authoring an extension that manages postcss plugins then your extension
+Extensions may depend on other other extensions. For instance, if you are authoring an extension that manages PostCSS plugins then your extension
depends on the presence of `@roots/bud-postcss`. To ensure dependencies are available, you may list their `label`s in a `dependsOn` public property.
The `dependsOn` property is expressed as a `Set`:
diff --git a/sources/@repo/docs/content/guides/extending/lifecycle.mdx b/sources/@repo/docs/content/learn/extending/lifecycle.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/extending/lifecycle.mdx
rename to sources/@repo/docs/content/learn/extending/lifecycle.mdx
diff --git a/sources/@repo/docs/content/guides/extending/packaging.mdx b/sources/@repo/docs/content/learn/extending/packaging.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/extending/packaging.mdx
rename to sources/@repo/docs/content/learn/extending/packaging.mdx
diff --git a/sources/@repo/docs/content/guides/general-use/compiler-sources.mdx b/sources/@repo/docs/content/learn/general-use/compiler-sources.mdx
similarity index 95%
rename from sources/@repo/docs/content/guides/general-use/compiler-sources.mdx
rename to sources/@repo/docs/content/learn/general-use/compiler-sources.mdx
index ede4df550a..c72b3dafc7 100644
--- a/sources/@repo/docs/content/guides/general-use/compiler-sources.mdx
+++ b/sources/@repo/docs/content/learn/general-use/compiler-sources.mdx
@@ -6,7 +6,7 @@ sidebar_label: Adding compiler sources
sidebar_position: 5
---
-By default, **bud.js** only resolves source code from [the `@src` directory](/docs/bud.path).
+By default, **bud.js** only resolves source code from [the `@src` directory](/reference/bud.path).
Nearly all of the modules you install will have been compiled before they are published. It's almost always a waste to run this code through Babel or whatever other compiler you may be using.
@@ -23,7 +23,7 @@ Common examples:
:::info bud.compilePaths
-There is a function to simplify this available in bud@6.9.0: [bud.compilePaths](/docs/bud.compilePaths).
+There is a function to simplify this available in bud@6.9.0: [bud.compilePaths](/reference/bud.compilePaths).
:::
diff --git a/sources/@repo/docs/content/guides/general-use/customizing-loaders.mdx b/sources/@repo/docs/content/learn/general-use/customizing-loaders.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/general-use/customizing-loaders.mdx
rename to sources/@repo/docs/content/learn/general-use/customizing-loaders.mdx
diff --git a/sources/@repo/docs/content/guides/general-use/esmodules.mdx b/sources/@repo/docs/content/learn/general-use/esmodules.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/general-use/esmodules.mdx
rename to sources/@repo/docs/content/learn/general-use/esmodules.mdx
diff --git a/sources/@repo/docs/content/guides/general-use/extensions.mdx b/sources/@repo/docs/content/learn/general-use/extensions.mdx
similarity index 84%
rename from sources/@repo/docs/content/guides/general-use/extensions.mdx
rename to sources/@repo/docs/content/learn/general-use/extensions.mdx
index cd056d401d..f663bdbb1d 100644
--- a/sources/@repo/docs/content/guides/general-use/extensions.mdx
+++ b/sources/@repo/docs/content/learn/general-use/extensions.mdx
@@ -7,7 +7,7 @@ sidebar_label: Extensions
## Register an extension
-Extensions included in `package.json` are automatically instantiated. You can also add extensions using [bud.use](/docs/bud.use).
+Extensions included in `package.json` are automatically instantiated. You can also add extensions using [bud.use](/reference/bud.use).
However, you can choose to use the bud.js extensions API directly.
@@ -127,17 +127,17 @@ bud.extensions
## Built-in extensions
-| label | description | exposed |
-| ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ------- |
-| @roots/bud-extensions/cdn | Adds remote import functionality | bud.cdn |
-| @roots/bud-extensions/esm | Adds ESM support functionality | bud.esm |
-| @roots/bud-extensions/clean-webpack-plugin | Cleans output directory on build | |
-| @roots/bud-extensions/copy-webpack-plugin | Copies assets (used by [bud.assets](/docs/bud.assets)) | |
-| @roots/bud-extensions/fix-style-only-entrypoints | Removes JS output from entrypoints which only contain CSS | |
-| @roots/bud-extensions/html-webpack-plugin | HTML functionality (used by [bud.html](/docs/bud.html)) | |
-| @roots/bud-extensions/interpolate-html-webpack-plugin | Adds `create-react-app`-like template variable support for HTML files | |
-| @roots/bud-extensions/mini-css-extract-plugin | Optimized CSS loading | |
-| @roots/bud-extensions/webpack-define-plugin | Defines variables which can be used in the application (used by [bud.define](/docs/bud.define)) | |
-| @roots/bud-extensions/webpack-hot-module-replacement-plugin | Adds HMR support | |
-| @roots/bud-extensions/webpack-manifest-plugin | Emits `manifest.json` | |
-| @roots/bud-extensions/webpack-provide-plugin | Provides import(s) globally to the application | |
+| label | description | exposed |
+| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------- |
+| @roots/bud-extensions/cdn | Adds remote import functionality | bud.cdn |
+| @roots/bud-extensions/esm | Adds ESM support functionality | bud.esm |
+| @roots/bud-extensions/clean-webpack-plugin | Cleans output directory on build | |
+| @roots/bud-extensions/copy-webpack-plugin | Copies assets (used by [bud.assets](/reference/bud.assets)) | |
+| @roots/bud-extensions/fix-style-only-entrypoints | Removes JS output from entrypoints which only contain CSS | |
+| @roots/bud-extensions/html-webpack-plugin | HTML functionality (used by [bud.html](/reference/bud.html)) | |
+| @roots/bud-extensions/interpolate-html-webpack-plugin | Adds `create-react-app`-like template variable support for HTML files | |
+| @roots/bud-extensions/mini-css-extract-plugin | Optimized CSS loading | |
+| @roots/bud-extensions/webpack-define-plugin | Defines variables which can be used in the application (used by [bud.define](/reference/bud.define)) | |
+| @roots/bud-extensions/webpack-hot-module-replacement-plugin | Adds HMR support | |
+| @roots/bud-extensions/webpack-manifest-plugin | Emits `manifest.json` | |
+| @roots/bud-extensions/webpack-provide-plugin | Provides import(s) globally to the application | |
diff --git a/sources/@repo/docs/content/learn/general-use/managing-dependencies.mdx b/sources/@repo/docs/content/learn/general-use/managing-dependencies.mdx
new file mode 100644
index 0000000000..fa75debee5
--- /dev/null
+++ b/sources/@repo/docs/content/learn/general-use/managing-dependencies.mdx
@@ -0,0 +1,30 @@
+---
+title: Managing dependencies
+description: Managing dependencies
+slug: managing-dependencies
+sidebar_label: Managing dependencies
+---
+
+bud.js extensions usually come with everything you need to use a particular tool in your application. But, sometimes your application's needs will be in conflict with the defaults that ship with bud.js.
+
+A common example of this is Vue 2 vs Vue 3. **@roots/bud-vue** supports Vue 3 by default, but if you need/want to use Vue 2, you can. You'll just need to override some of the peer dependencies in order to do so.
+
+:::info Be careful
+
+Once you start overriding dependencies, you're on your own. It's hard enough to manage dependencies in a single project, let alone a monorepo, so our bandwidth to help will be limited.
+
+:::
+
+## Overriding peer dependencies
+
+There isn't an API to manage dependency overrides per se, we just use the module resolution features built into npm and yarn to make it possible for you to customize your dependencies as needed. To do so you will just install the needed overrides in your project.
+
+## Example: Using Vue 2 instead of Vue 3
+
+A Vue 3 project can just install **@roots/bud** and **@roots/bud-vue** and everything should be perfectly set up. But, at least for now, in order to use Vue 2, you'll need to override the peer dependencies that **@roots/bud-vue** ships with:
+
+- vue (2.6.14)
+- vue-template-compiler (2.6.14)
+- vue-loader (15.9.4)
+
+Installation
diff --git a/sources/@repo/docs/content/guides/general-use/multi-instance.mdx b/sources/@repo/docs/content/learn/general-use/multi-instance.mdx
similarity index 90%
rename from sources/@repo/docs/content/guides/general-use/multi-instance.mdx
rename to sources/@repo/docs/content/learn/general-use/multi-instance.mdx
index 543c2c5cdc..f9838aacdb 100644
--- a/sources/@repo/docs/content/guides/general-use/multi-instance.mdx
+++ b/sources/@repo/docs/content/learn/general-use/multi-instance.mdx
@@ -17,7 +17,7 @@ different build requirements for different application components — it is
## Creating child instances
-To create a new child instance, we can use [bud.make](/docs/bud.make).
+To create a new child instance, we can use [bud.make](/reference/bud.make).
The simplest implementation sets the `label` of the compiler with a `string`, and provides a configuration callback:
@@ -38,14 +38,14 @@ export default async bud => {
}
```
-See the [bud.make](/docs/bud.make) documentation for more information.
+See the [bud.make](/reference/bud.make) documentation for more information.
## Using the `--target` flag
The other benefit is a potentially massive workflow improvement. Let's say that we have to work on the `theme` more often than the `plugin`.
With the above config we don't have to rebuild the `plugin` code again just to work on our `theme` code.
-We can use the `bud` cli to only run the compiler we need using [the `--target` flag](/guides/cli/build).
+We can use the `bud` cli to only run the compiler we need using [the `--target` flag](/learn/cli/build).
```sh
$ yarn bud build --target theme
@@ -62,7 +62,7 @@ $ yarn bud build --target theme --target plugin
By default, all extensions will be applied to all compilers in the project.
If the extensions differ between compilers you can either use the `--no-discovery` flag or set the
-[`bud.extensions.discovery` property in your root package.json to `false`](/guides/general-use/config-layers)
+[`bud.extensions.discovery` property in your root package.json to `false`](/learn/config/files/package)
to prevent extensions from being automatically injected.
Then, you can manually load the extensions on a per-compiler basis:
@@ -91,9 +91,9 @@ Any configuration of the development server should be done in the parent context
This includes:
-- [bud.serve](/docs/bud.serve)
-- [bud.proxy](/docs/bud.proxy)
-- [bud.watch](/docs/bud.watch)
+- [bud.serve](/reference/bud.serve)
+- [bud.proxy](/reference/bud.proxy)
+- [bud.watch](/reference/bud.watch)
```ts title=bud.config.js
export default async bud => {
diff --git a/sources/@repo/docs/content/guides/general-use/node-api.mdx b/sources/@repo/docs/content/learn/general-use/node-api.mdx
similarity index 72%
rename from sources/@repo/docs/content/guides/general-use/node-api.mdx
rename to sources/@repo/docs/content/learn/general-use/node-api.mdx
index 6c5948a21a..552d56184c 100644
--- a/sources/@repo/docs/content/guides/general-use/node-api.mdx
+++ b/sources/@repo/docs/content/learn/general-use/node-api.mdx
@@ -9,7 +9,7 @@ import Code from '@theme/CodeBlock'
:::note Work-in-progress
-These docs are incomplete. Check out the [examples directory](https://github.com/roots/bud/tree/main/examples) in the **bud.js** repo for living examples.
+This is a work-in-progress.
:::
diff --git a/sources/@repo/docs/content/guides/general-use/pnpm.mdx b/sources/@repo/docs/content/learn/general-use/pnpm.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/general-use/pnpm.mdx
rename to sources/@repo/docs/content/learn/general-use/pnpm.mdx
diff --git a/sources/@repo/docs/content/guides/general-use/remote-sources.mdx b/sources/@repo/docs/content/learn/general-use/remote-sources.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/general-use/remote-sources.mdx
rename to sources/@repo/docs/content/learn/general-use/remote-sources.mdx
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-emotion.mdx b/sources/@repo/docs/content/learn/getting-started/adding-emotion.mdx
new file mode 100644
index 0000000000..3a06e13908
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-emotion.mdx
@@ -0,0 +1,30 @@
+---
+title: Adding Emotion
+description: How to get started with Emotion
+sidebar_label: Adding Emotion
+---
+
+## Installing bud.js dependencies
+
+To get started with Emotion, install the [@roots/bud-emotion](/extensions/bud-emotion) extension to your project along with a compatible compiler:
+
+- [@roots/bud-babel](/extensions/bud-babel)
+- [@roots/bud-swc](/extensions/bud-swc)
+
+We recommend using [@roots/bud-swc](/extensions/bud-swc):
+
+```bash npm2yarn
+npm install @roots/bud-swc @roots/bud-emotion --save-dev
+```
+
+## Installing production dependencies
+
+Emotion requires the several packages to be installed in your project.
+
+We will try and resolve them for you but it is a good idea to install them as explicit dependencies:
+
+```bash npm2yarn
+npm install @emotion/css @emotion/react @emotion/styled --save
+```
+
+See the [Emotion documentation](https://emotion.sh/docs/install) for more information.
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-eslint.mdx b/sources/@repo/docs/content/learn/getting-started/adding-eslint.mdx
new file mode 100644
index 0000000000..1cf41fad4d
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-eslint.mdx
@@ -0,0 +1,25 @@
+---
+title: Adding Eslint
+description: How to get started with Eslint
+sidebar_label: Adding Eslint
+---
+
+## Installing bud.js dependencies
+
+To get started with Eslint, install the [@roots/bud-eslint](/extensions/bud-eslint) extension to your project.
+
+```bash npm2yarn
+npm install @roots/bud-eslint --save-dev
+```
+
+If you want to extend one of our first party configurations, you'll also want to install `@roots/eslint-config`:
+
+```bash npm2yarn
+npm install @roots/eslint-config --save-dev
+```
+
+## Configuring eslint
+
+Once you've installed the extension you can configure it either in your [bud.config file](/learn/config/files/bud.config) or in a separate `.eslintrc.js` file.
+
+For more information on configuring eslint refer to the [@roots/bud-eslint documentation](/extensions/bud-eslint).
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-postcss.mdx b/sources/@repo/docs/content/learn/getting-started/adding-postcss.mdx
new file mode 100644
index 0000000000..ccc7c7258b
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-postcss.mdx
@@ -0,0 +1,17 @@
+---
+title: Adding PostCSS
+description: How to get started with PostCSS
+sidebar_label: Adding PostCSS
+---
+
+## Installing bud.js dependencies
+
+To get started with PostCSS, install the [@roots/bud-postcss](/extensions/bud-postcss) extension.
+
+```sh npm2yarn
+npm install @roots/bud-swc --save-dev
+```
+
+## Configuration
+
+No configuration is required. If you need to further customize PostCSS for your application, reference the [@roots/bud-postcss documentation](/extensions/bud-postcss).
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-react.mdx b/sources/@repo/docs/content/learn/getting-started/adding-react.mdx
new file mode 100644
index 0000000000..5be81e082c
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-react.mdx
@@ -0,0 +1,36 @@
+---
+title: Adding React
+description: How to get started with React
+sidebar_label: Adding React
+---
+
+## Installing bud.js dependencies
+
+To get started with React, install the [@roots/bud-react](/extensions/bud-react) extension to your project along with a compatible compiler:
+
+- [@roots/bud-babel](/extensions/bud-babel)
+- [@roots/bud-esbuild](/extensions/bud-esbuild)
+- [@roots/bud-swc](/extensions/bud-swc)
+- [@roots/bud-typescript](/extensions/bud-typescript)
+
+We recommend using [@roots/bud-swc](/extensions/bud-swc):
+
+```bash npm2yarn
+npm install @roots/bud-swc @roots/bud-typescript --save-dev
+```
+
+If you need to further customize React for your application, reference the [@roots/bud-react documentation](/extensions/bud-react).
+
+## Installing production dependencies
+
+React requires installing `react` and `react-dom` as production dependencies.
+
+We will try and resolve them for you but it is a good idea to install them as explicit dependencies:
+
+```bash npm2yarn
+npm install react react-dom --save
+```
+
+## Configuration
+
+No configuration is required. If you need to customize the provided defaults refer to the [@roots/bud-react documentation](/extensions/bud-react).
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-sass.mdx b/sources/@repo/docs/content/learn/getting-started/adding-sass.mdx
new file mode 100644
index 0000000000..1c7fb19b2c
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-sass.mdx
@@ -0,0 +1,15 @@
+---
+title: Adding Sass
+description: How to get started with Sass
+sidebar_label: Adding Sass
+---
+
+## Installing bud.js dependencies
+
+To get started with Sass, install the [@roots/bud-sass](/extensions/bud-sass) extension.
+
+```sh npm2yarn
+npm install @roots/bud-swc --save-dev
+```
+
+If you need to further customize Sass for your application, reference the [@roots/bud-sass documentation](/extensions/bud-sass).
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-stylelint.mdx b/sources/@repo/docs/content/learn/getting-started/adding-stylelint.mdx
new file mode 100644
index 0000000000..d33d7ec82e
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-stylelint.mdx
@@ -0,0 +1,19 @@
+---
+title: Adding Stylelint
+description: How to get started with Stylelint
+sidebar_label: Adding Stylelint
+---
+
+## Installing bud.js dependencies
+
+To get started with Stylelint, install the [@roots/bud-stylelint](/extensions/bud-stylelint) extension to your project.
+
+```bash npm2yarn
+npm install @roots/bud-stylelint --save-dev
+```
+
+## Configuring stylelint
+
+Once you've installed the extension you can configure it either in your bud.config file or in a separate .stylelintrc.js file.
+
+For more information on configuring stylelint refer to the [@roots/bud-stylelint documentation](/extensions/bud-stylelint).
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-tailwindcss.mdx b/sources/@repo/docs/content/learn/getting-started/adding-tailwindcss.mdx
new file mode 100644
index 0000000000..06696c5402
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-tailwindcss.mdx
@@ -0,0 +1,21 @@
+---
+title: Adding TailwindCSS
+description: How to get started with TailwindCSS
+sidebar_label: Adding TailwindCSS
+---
+
+## Installing bud.js dependencies
+
+To get started with TailwindCSS, install the [@roots/bud-tailwindcss](/extensions/bud-tailwindcss) extension to your project along with [@roots/bud-postcss](/extensions/bud-postcss).
+
+```sh npm2yarn
+npm install @roots/bud-postcss @roots/bud-tailwindcss --save-dev
+```
+
+## Configuration
+
+No configuration is required. If you need to customize your TailwindCSS configuration, you can do so by creating a `tailwind.config.js` file in your project.
+
+Refer to the [TailwindCSS docs](https://tailwindcss.com/docs/configuration) for general information on configuring TailwindCSS.
+
+You can refer to the [@roots/bud-tailwindcss documentation](/extensions/bud-tailwindcss) for more information on bud specific concerns.
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-typescript.mdx b/sources/@repo/docs/content/learn/getting-started/adding-typescript.mdx
new file mode 100644
index 0000000000..33def81186
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-typescript.mdx
@@ -0,0 +1,41 @@
+---
+title: Adding TypeScript
+description: How to get started with TypeScript
+sidebar_label: Adding TypeScript
+---
+
+## Installing bud.js dependencies
+
+There are a few options to add support for TypeScript to your application. We recommend the [@roots/bud-swc extension](/extensions/bud-swc).
+
+```sh npm2yarn
+npm install @roots/bud-swc --save-dev
+```
+
+## Other options
+
+### @roots/bud-typescript
+
+[@roots/bud-typescript](/extensions/bud-typescript) adds TypeScript support using the [official TypeScript compiler](https://www.typescriptlang.org/).
+The extension supports JavaScript and TypeScript with zero configuration.
+
+```sh npm2yarn
+npm install @roots/bud-typescript --save-dev
+```
+
+If you want to do type checking during compilation this is probably the best option.
+
+### @roots/bud-esbuild
+
+:::info Experimental
+
+This extension should be considered experimental. Not all features may work. In particular hot module replacement.
+
+:::
+
+[@roots/bud-esbuild](/extensions/bud-esbuild) adds TypeScript support using [esbuild](https://esbuild.github.io/).
+The extension supports JavaScript and TypeScript with zero configuration.
+
+```sh npm2yarn
+npm install @roots/bud-esbuild --save-dev
+```
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-vue.mdx b/sources/@repo/docs/content/learn/getting-started/adding-vue.mdx
new file mode 100644
index 0000000000..90982edf06
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-vue.mdx
@@ -0,0 +1,43 @@
+---
+title: Adding Vue
+description: How to get started with Vue
+sidebar_label: Adding Vue
+---
+
+## Installing bud.js dependencies
+
+To get started with Vue, install the [@roots/bud-vue](/extensions/bud-vue) extension to your project.
+
+```bash npm2yarn
+npm install @roots/bud-vue --save-dev
+```
+
+If you need to further customize Vue for your application, reference the [@roots/bud-vue documentation](/extensions/bud-vue).
+
+## Installing production dependencies
+
+Vue requires installing `vue` as production dependencies.
+
+We will try and resolve this for you but it is a good idea to install it as an explicit dependency:
+
+```bash npm2yarn
+npm install vue --save
+```
+
+## Configuration
+
+No configuration is required.
+
+### Using Vue 2 instead of Vue 3
+
+A Vue 3 project can just install **@roots/bud** and **@roots/bud-vue** and everything should be perfectly set up. But, at least for now, in order to use Vue 2, you'll need to override the peer dependencies that **@roots/bud-vue** ships with:
+
+- vue (2.6.14)
+- vue-template-compiler (2.6.14)
+- vue-loader (15.9.4)
+
+```sh npm2yarn
+npm install vue@2.6.14 vue-template-compiler@2.6.14 vue-loader@15.9.4 --save-dev
+```
+
+If you need to further customize the provided defaults refer to the [@roots/bud-vue documentation](/extensions/bud-vue).
diff --git a/sources/@repo/docs/content/learn/getting-started/adding-wordpress-support.mdx b/sources/@repo/docs/content/learn/getting-started/adding-wordpress-support.mdx
new file mode 100644
index 0000000000..227d3a9d4e
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/adding-wordpress-support.mdx
@@ -0,0 +1,34 @@
+---
+title: Adding WordPress support
+description: How to get started with WordPress
+sidebar_label: Adding WordPress support
+---
+
+## Installing bud.js dependencies
+
+To get started with WordPress, install the [@roots/bud-preset-wordpress preset](/extensions/bud-preset-wordpress) along with a compatible compiler:
+
+- [@roots/bud-babel](/extensions/bud-babel)
+- [@roots/bud-esbuild](/extensions/bud-esbuild)
+- [@roots/bud-swc](/extensions/bud-swc)
+- [@roots/bud-typescript](/extensions/bud-typescript)
+
+We recommend using [@roots/bud-swc](/extensions/bud-swc):
+
+```bash npm2yarn
+npm install @roots/bud-preset-wordpress @roots/bud-swc --save-dev
+```
+
+## Included extensions
+
+The [@roots/bud-preset-wordpress preset](/extensions/bud-preset-wordpress) includes the following extensions:
+
+- [@roots/bud-react](/extensions/bud-react)
+- @roots/bud-wordpress-dependencies
+- @roots/bud-wordpress-externals
+- @roots/bud-wordpress-theme-json
+- @roots/wordpress-hmr
+
+## Configuration
+
+For more information on configuring WordPress, see the [@roots/bud-preset-wordpress documentation](/extensions/bud-preset-wordpress).
diff --git a/sources/@repo/docs/content/guides/create-bud-app.mdx b/sources/@repo/docs/content/learn/getting-started/create-bud-app.mdx
similarity index 99%
rename from sources/@repo/docs/content/guides/create-bud-app.mdx
rename to sources/@repo/docs/content/learn/getting-started/create-bud-app.mdx
index b11544788c..a0fb3f27b5 100644
--- a/sources/@repo/docs/content/guides/create-bud-app.mdx
+++ b/sources/@repo/docs/content/learn/getting-started/create-bud-app.mdx
@@ -2,7 +2,6 @@
title: create-bud-app
description: Create a new project using our convenient CLI
sidebar_label: create-bud-app
-slug: create-bud-app
---
## Overview
diff --git a/sources/@repo/docs/content/learn/getting-started/index.mdx b/sources/@repo/docs/content/learn/getting-started/index.mdx
new file mode 100644
index 0000000000..35999f7629
--- /dev/null
+++ b/sources/@repo/docs/content/learn/getting-started/index.mdx
@@ -0,0 +1,63 @@
+---
+title: Installation
+description: Installing bud.js
+sidebar_label: Installation
+---
+
+**bud.js** is a web-focused build tool with add-on support for Babel, React, PostCSS, Sass, Typescript, esbuild, ESLint, Prettier, and more.
+
+## Requirements
+
+
+
+
+
Node LTS
+
yarn, npm or pnpm
+
Windows users must use Windows Subsystem for Linux
+
+
+
+
+## Creating a new project
+
+The easiest way to get started with bud.js is to use the [create-bud-app command](/learn/getting-started/create-bud-app).
+
+```bash
+npx create-bud-app my-app
+```
+
+## Adding to an existing project
+
+Add **@roots/bud** as a development dependency using your choice of package manager.
+
+```bash npm2yarn
+npm install @roots/bud --save-dev
+```
+
+:::info
+
+If you are using pnpm add `--public-hoist-pattern=*` to the installation command and [use our .pnpmfile.cjs compatibility shim](/learn/general-use/pnpm#pnpmfilecjs-compatibilty-shim).
+
+:::
+
+## Building your project
+
+If your project's entrypoint is located at `./src/index.js` you can now compile it using the [bud build](/cli/build/index.mdx) command.
+
+```bash npm2yarn
+npm run bud build
+```
+
+No configuration is required. The bundled code will be output to `./dist/*`.
+
+If your application entrypoint is not located at `./src/index.js`, you can learn about how to configure it with [bud.entry](/reference/bud.entry) it in the [Entrypoints guide](/learn/config/entrypoints).
+
+## Upgrading bud.js
+
+In general, all dependencies with the `@roots/*` namespace should share the same version.
+
+To make it easy to keep versions in sync you can use the [bud upgrade](/cli/upgrade.mdx) command.
+
+```bash npm2yarn
+npm run bud upgrade
+```
diff --git a/sources/@repo/docs/content/guides/modules/css-modules.mdx b/sources/@repo/docs/content/learn/modules/css-modules.mdx
similarity index 100%
rename from sources/@repo/docs/content/guides/modules/css-modules.mdx
rename to sources/@repo/docs/content/learn/modules/css-modules.mdx
diff --git a/sources/@repo/docs/content/guides/modules/js-modules.mdx b/sources/@repo/docs/content/learn/modules/js-modules.mdx
similarity index 96%
rename from sources/@repo/docs/content/guides/modules/js-modules.mdx
rename to sources/@repo/docs/content/learn/modules/js-modules.mdx
index 7afa60e62e..962f7dfd6d 100644
--- a/sources/@repo/docs/content/guides/modules/js-modules.mdx
+++ b/sources/@repo/docs/content/learn/modules/js-modules.mdx
@@ -60,8 +60,8 @@ You can import css using the `import` keyword.
import '@src/styles/app.css'
```
-This is essentially the same as adding the css file to the [bud.entry](/docs/bud.entry) call in your
-[bud.config.js file](../configure). But, when considered alongside [dynamic imports](#dynamic-imports) it is much more powerful.
+This is essentially the same as adding the css file to the [bud.entry](/reference/bud.entry) call in your
+[bud.config.js file](/learn/config/files/bud.config). But, when considered alongside [dynamic imports](#dynamic-imports) it is much more powerful.
### Conditional css
diff --git a/sources/@repo/docs/content/guides/modules/static-assets.mdx b/sources/@repo/docs/content/learn/modules/static-assets.mdx
similarity index 93%
rename from sources/@repo/docs/content/guides/modules/static-assets.mdx
rename to sources/@repo/docs/content/learn/modules/static-assets.mdx
index 6b395cd799..9394014040 100644
--- a/sources/@repo/docs/content/guides/modules/static-assets.mdx
+++ b/sources/@repo/docs/content/learn/modules/static-assets.mdx
@@ -14,7 +14,7 @@ It is straight forward to reference assets from application scripts and styleshe
### With an alias
You can use aliases to reference common directories. **bud.js** comes configured with a built-in `@src` alias, but more can easily be added.
-See the [bud.alias documentation](/docs/bud.alias) for more information on this function.
+See the [bud.alias documentation](/reference/bud.alias) for more information on this function.
@@ -66,7 +66,7 @@ body {
### Using an absolute path
-Assets can be referenced using an absolute path. The root url is [the @src directory](/docs/bud.path).
+Assets can be referenced using an absolute path. The root url is [the @src directory](/reference/bud.path).
diff --git a/sources/@repo/docs/content/pages/index.tsx b/sources/@repo/docs/content/pages/index.tsx
index d718e9fab3..9273f5d843 100644
--- a/sources/@repo/docs/content/pages/index.tsx
+++ b/sources/@repo/docs/content/pages/index.tsx
@@ -1,16 +1,38 @@
-/* eslint-disable simple-import-sort/imports */
+import Link from '@docusaurus/Link'
+import styles from '@site/src/components/mast/index.module.css'
+import {Sponsors} from '@site/src/components/sponsors'
import Layout from '@theme/Layout'
+import clsx from 'clsx'
import React from 'react'
-import {Features} from '@site/src/components/features'
-import {Mast} from '@site/src/components/mast'
-import {Sponsors} from '@site/src/components/sponsors'
-
const Home = () => {
return (
-
-
+
+
+
+ Configurable, extensible build tools for modern single and
+ multi-page web applications
+
+
+
+
+ Get started{` `}→
+
+
+
+ API reference{` `}→
+
+
+
+
+
)
diff --git a/sources/@repo/docs/content/docs/bud.after.mdx b/sources/@repo/docs/content/reference/bud.after.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.after.mdx
rename to sources/@repo/docs/content/reference/bud.after.mdx
diff --git a/sources/@repo/docs/content/docs/bud.alias.mdx b/sources/@repo/docs/content/reference/bud.alias.mdx
similarity index 92%
rename from sources/@repo/docs/content/docs/bud.alias.mdx
rename to sources/@repo/docs/content/reference/bud.alias.mdx
index f8ff707702..dd7597d5a3 100644
--- a/sources/@repo/docs/content/docs/bud.alias.mdx
+++ b/sources/@repo/docs/content/reference/bud.alias.mdx
@@ -5,7 +5,7 @@ description: Register shorthand for resolving modules
**bud.alias** is a helper function for creating aliases. Unlike paths, aliases may be used in your application scripts and stylesheets.
-**Aliases must be absolute**, so it makes sense to use [bud.path](/docs/bud.path) when defining them:
+**Aliases must be absolute**, so it makes sense to use [bud.path](/reference/bud.path) when defining them:
```ts
bud.alias('@components', bud.path('@src/components'))
@@ -36,7 +36,7 @@ Out-of-the-box you can reference your source directory with `@src` and output di
## Naming aliases
-The naming of **bud.alias** handles is not restrictive the way it is with [bud.path](/docs/bud.path). You are free to start an alias with any character you like.
+The naming of **bud.alias** handles is not restrictive the way it is with [bud.path](/reference/bud.path). You are free to start an alias with any character you like.
One popular convention is to reference the source directory with `@`:
diff --git a/sources/@repo/docs/content/docs/bud.assets/index.mdx b/sources/@repo/docs/content/reference/bud.assets/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.assets/index.mdx
rename to sources/@repo/docs/content/reference/bud.assets/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.bundle.mdx b/sources/@repo/docs/content/reference/bud.bundle.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.bundle.mdx
rename to sources/@repo/docs/content/reference/bud.bundle.mdx
diff --git a/sources/@repo/docs/content/docs/bud.compilePaths/index.mdx b/sources/@repo/docs/content/reference/bud.compilePaths/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.compilePaths/index.mdx
rename to sources/@repo/docs/content/reference/bud.compilePaths/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.config/index.mdx b/sources/@repo/docs/content/reference/bud.config/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.config/index.mdx
rename to sources/@repo/docs/content/reference/bud.config/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.copyDir/index.mdx b/sources/@repo/docs/content/reference/bud.copyDir/index.mdx
similarity index 83%
rename from sources/@repo/docs/content/docs/bud.copyDir/index.mdx
rename to sources/@repo/docs/content/reference/bud.copyDir/index.mdx
index 8c59656f3e..842d47f7da 100644
--- a/sources/@repo/docs/content/docs/bud.copyDir/index.mdx
+++ b/sources/@repo/docs/content/reference/bud.copyDir/index.mdx
@@ -18,5 +18,5 @@ import Usage from '@site/../../@roots/bud-api/docs/copyDir/usage.md'
## Related
-- [bud.copyFile](/docs/bud.copyFile)
-- [bud.assets](/docs/bud.assets)
+- [bud.copyFile](/reference/bud.copyFile)
+- [bud.assets](/reference/bud.assets)
diff --git a/sources/@repo/docs/content/docs/bud.copyFile/index.mdx b/sources/@repo/docs/content/reference/bud.copyFile/index.mdx
similarity index 83%
rename from sources/@repo/docs/content/docs/bud.copyFile/index.mdx
rename to sources/@repo/docs/content/reference/bud.copyFile/index.mdx
index 02ac004453..489b9238dd 100644
--- a/sources/@repo/docs/content/docs/bud.copyFile/index.mdx
+++ b/sources/@repo/docs/content/reference/bud.copyFile/index.mdx
@@ -18,5 +18,5 @@ import Usage from '@site/../../@roots/bud-api/docs/copyFile/usage.md'
## Related
-- [bud.copyDir](/docs/bud.copyDir)
-- [bud.assets](/docs/bud.assets)
+- [bud.copyDir](/reference/bud.copyDir)
+- [bud.assets](/reference/bud.assets)
diff --git a/sources/@repo/docs/content/docs/bud.define/index.mdx b/sources/@repo/docs/content/reference/bud.define/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.define/index.mdx
rename to sources/@repo/docs/content/reference/bud.define/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.devtool.mdx b/sources/@repo/docs/content/reference/bud.devtool.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.devtool.mdx
rename to sources/@repo/docs/content/reference/bud.devtool.mdx
diff --git a/sources/@repo/docs/content/docs/bud.entry/index.mdx b/sources/@repo/docs/content/reference/bud.entry/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.entry/index.mdx
rename to sources/@repo/docs/content/reference/bud.entry/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.env.mdx b/sources/@repo/docs/content/reference/bud.env.mdx
similarity index 97%
rename from sources/@repo/docs/content/docs/bud.env.mdx
rename to sources/@repo/docs/content/reference/bud.env.mdx
index 5788a6357c..ee450700c3 100644
--- a/sources/@repo/docs/content/docs/bud.env.mdx
+++ b/sources/@repo/docs/content/reference/bud.env.mdx
@@ -25,7 +25,7 @@ bud.env.is('APP_ENV', 'production')
## Accessing env values from within a template
-Values defined in the application `.env` file are available within HTML templates ([see **bud.html** for more information on HTML templating](/docs/bud.html)).
+Values defined in the application `.env` file are available within HTML templates ([see **bud.html** for more information on HTML templating](/reference/bud.html)).
## Accessing env values from within the application
diff --git a/sources/@repo/docs/content/docs/bud.experiments.mdx b/sources/@repo/docs/content/reference/bud.experiments.mdx
similarity index 87%
rename from sources/@repo/docs/content/docs/bud.experiments.mdx
rename to sources/@repo/docs/content/reference/bud.experiments.mdx
index d4cbaa8bd9..7452bc1473 100644
--- a/sources/@repo/docs/content/docs/bud.experiments.mdx
+++ b/sources/@repo/docs/content/reference/bud.experiments.mdx
@@ -13,13 +13,13 @@ a PR that implements the change you would like to see.
:::info
-If you want to configure `buildHttp` you should consider using [the `bud.http` interface](/guides/general-use/esmodules).
+If you want to configure `buildHttp` you should consider using [the `bud.http` interface](/learn/general-use/esmodules).
:::
:::info
-If you want to configure `outputModule` you should consider using [the `bud.esm` interface](/guides/general-use/esmodules).
+If you want to configure `outputModule` you should consider using [the `bud.esm` interface](/learn/general-use/esmodules).
:::
diff --git a/sources/@repo/docs/content/docs/bud.externals.mdx b/sources/@repo/docs/content/reference/bud.externals.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.externals.mdx
rename to sources/@repo/docs/content/reference/bud.externals.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/copy.mdx b/sources/@repo/docs/content/reference/bud.fs/copy.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/copy.mdx
rename to sources/@repo/docs/content/reference/bud.fs/copy.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/dir.mdx b/sources/@repo/docs/content/reference/bud.fs/dir.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/dir.mdx
rename to sources/@repo/docs/content/reference/bud.fs/dir.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/exists.mdx b/sources/@repo/docs/content/reference/bud.fs/exists.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/exists.mdx
rename to sources/@repo/docs/content/reference/bud.fs/exists.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/find.mdx b/sources/@repo/docs/content/reference/bud.fs/find.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/find.mdx
rename to sources/@repo/docs/content/reference/bud.fs/find.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/index.mdx b/sources/@repo/docs/content/reference/bud.fs/index.mdx
similarity index 87%
rename from sources/@repo/docs/content/docs/bud.fs/index.mdx
rename to sources/@repo/docs/content/reference/bud.fs/index.mdx
index 27194c146d..ce0774173c 100644
--- a/sources/@repo/docs/content/docs/bud.fs/index.mdx
+++ b/sources/@repo/docs/content/reference/bud.fs/index.mdx
@@ -20,11 +20,11 @@ await source.write(`hello.txt`, `hello world`) // write `hello world` to src/hel
## bud.fs.json
-Utilities for reading and writing json. See [bud.fs.json documentation](/docs/bud.fs/yml) for more information.
+Utilities for reading and writing json. See [bud.fs.json documentation](/reference/bud.fs/yml) for more information.
## bud.fs.yml
-Utilities for reading and writing yml. See [bud.fs.yml documentation](/docs/bud.fs/yml) for more information.
+Utilities for reading and writing yml. See [bud.fs.yml documentation](/reference/bud.fs/yml) for more information.
## bud.fs.s3
@@ -46,4 +46,4 @@ bud.fs
.upload()
```
-[See bud.fs.s3 documentation](/docs/bud.fs/s3) for more information on how to use these features.
+[See bud.fs.s3 documentation](/reference/bud.fs/s3) for more information on how to use these features.
diff --git a/sources/@repo/docs/content/docs/bud.fs/inspect.mdx b/sources/@repo/docs/content/reference/bud.fs/inspect.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/inspect.mdx
rename to sources/@repo/docs/content/reference/bud.fs/inspect.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/inspectTree.mdx b/sources/@repo/docs/content/reference/bud.fs/inspectTree.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/inspectTree.mdx
rename to sources/@repo/docs/content/reference/bud.fs/inspectTree.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/json.mdx b/sources/@repo/docs/content/reference/bud.fs/json.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/json.mdx
rename to sources/@repo/docs/content/reference/bud.fs/json.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/list.mdx b/sources/@repo/docs/content/reference/bud.fs/list.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/list.mdx
rename to sources/@repo/docs/content/reference/bud.fs/list.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/move.mdx b/sources/@repo/docs/content/reference/bud.fs/move.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/move.mdx
rename to sources/@repo/docs/content/reference/bud.fs/move.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/read.mdx b/sources/@repo/docs/content/reference/bud.fs/read.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/read.mdx
rename to sources/@repo/docs/content/reference/bud.fs/read.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/delete.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/delete.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/delete.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/delete.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/exists.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/exists.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/exists.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/exists.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/index.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/index.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/list.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/list.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/list.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/list.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/read.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/read.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/read.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/read.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/setBucket.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/setBucket.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/setBucket.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/setBucket.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/setCredentials.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/setCredentials.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/setCredentials.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/setCredentials.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/setEndpoint.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/setEndpoint.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/setEndpoint.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/setEndpoint.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/setPublic.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/setPublic.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/setPublic.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/setPublic.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/setRegion.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/setRegion.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/setRegion.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/setRegion.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/s3/write.mdx b/sources/@repo/docs/content/reference/bud.fs/s3/write.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/s3/write.mdx
rename to sources/@repo/docs/content/reference/bud.fs/s3/write.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/symlink.mdx b/sources/@repo/docs/content/reference/bud.fs/symlink.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/symlink.mdx
rename to sources/@repo/docs/content/reference/bud.fs/symlink.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/write.mdx b/sources/@repo/docs/content/reference/bud.fs/write.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/write.mdx
rename to sources/@repo/docs/content/reference/bud.fs/write.mdx
diff --git a/sources/@repo/docs/content/docs/bud.fs/yml.mdx b/sources/@repo/docs/content/reference/bud.fs/yml.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.fs/yml.mdx
rename to sources/@repo/docs/content/reference/bud.fs/yml.mdx
diff --git a/sources/@repo/docs/content/docs/bud.get.mdx b/sources/@repo/docs/content/reference/bud.get.mdx
similarity index 82%
rename from sources/@repo/docs/content/docs/bud.get.mdx
rename to sources/@repo/docs/content/reference/bud.get.mdx
index 72549f5cd8..29834b7b1e 100644
--- a/sources/@repo/docs/content/docs/bud.get.mdx
+++ b/sources/@repo/docs/content/reference/bud.get.mdx
@@ -46,6 +46,6 @@ export default async bud =>
## Related
-| Utility | Description |
-| -------------------------- | ----------------------- |
-| [bud.make](/docs/bud.make) | Create a child compiler |
+| Utility | Description |
+| ------------------------------- | ----------------------- |
+| [bud.make](/reference/bud.make) | Create a child compiler |
diff --git a/sources/@repo/docs/content/docs/bud.glob.mdx b/sources/@repo/docs/content/reference/bud.glob.mdx
similarity index 91%
rename from sources/@repo/docs/content/docs/bud.glob.mdx
rename to sources/@repo/docs/content/reference/bud.glob.mdx
index b95b5f379f..855988232b 100644
--- a/sources/@repo/docs/content/docs/bud.glob.mdx
+++ b/sources/@repo/docs/content/reference/bud.glob.mdx
@@ -3,7 +3,7 @@ title: bud.glob
description: Globbing function
---
-Glob for matching files. This function is asynchronous but there is a synchronous version provided by [bud.globSync](/docs/bud.globSync)
+Glob for matching files. This function is asynchronous but there is a synchronous version provided by [bud.globSync](/reference/bud.globSync)
## Usage
@@ -25,7 +25,7 @@ or:
const results = await bud.glob(['**/*.json', '**/*.yml'])
```
-This function is compatible with the base handles used with [bud.path](/docs/bud.path).
+This function is compatible with the base handles used with [bud.path](/reference/bud.path).
So, the following would search for `js` files within the **@src** directory:
diff --git a/sources/@repo/docs/content/docs/bud.globSync.mdx b/sources/@repo/docs/content/reference/bud.globSync.mdx
similarity index 88%
rename from sources/@repo/docs/content/docs/bud.globSync.mdx
rename to sources/@repo/docs/content/reference/bud.globSync.mdx
index 245a82528e..e4053126ca 100644
--- a/sources/@repo/docs/content/docs/bud.globSync.mdx
+++ b/sources/@repo/docs/content/reference/bud.globSync.mdx
@@ -3,7 +3,7 @@ title: bud.globSync
description: Globbing function
---
-Glob for matching files. This function is synchronous but there is an asynchronous version provided by [bud.glob](/docs/bud.glob). The asynchronous version should be preferred.
+Glob for matching files. This function is synchronous but there is an asynchronous version provided by [bud.glob](/reference/bud.glob). The asynchronous version should be preferred.
## Usage
@@ -25,7 +25,7 @@ or:
const results = bud.globSync(['**/*.json', '**/*.yml'])
```
-This function is compatible with the base handles used with [bud.path](/docs/bud.path).
+This function is compatible with the base handles used with [bud.path](/reference/bud.path).
So, the following would search for `js` files within the **@src** directory:
diff --git a/sources/@repo/docs/content/docs/bud.hash.mdx b/sources/@repo/docs/content/reference/bud.hash.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.hash.mdx
rename to sources/@repo/docs/content/reference/bud.hash.mdx
diff --git a/sources/@repo/docs/content/docs/bud.hooks/index.mdx b/sources/@repo/docs/content/reference/bud.hooks/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.hooks/index.mdx
rename to sources/@repo/docs/content/reference/bud.hooks/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.html/index.mdx b/sources/@repo/docs/content/reference/bud.html/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.html/index.mdx
rename to sources/@repo/docs/content/reference/bud.html/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.make.mdx b/sources/@repo/docs/content/reference/bud.make.mdx
similarity index 87%
rename from sources/@repo/docs/content/docs/bud.make.mdx
rename to sources/@repo/docs/content/reference/bud.make.mdx
index 207092182d..ef6f122caf 100644
--- a/sources/@repo/docs/content/docs/bud.make.mdx
+++ b/sources/@repo/docs/content/reference/bud.make.mdx
@@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem'
Create a new, configurable instance of bud.js.
-For more context on how this might be useful check out [the guide on multi-instance configurations](/guides/general-use/multi-instance).
+For more context on how this might be useful check out [the guide on multi-instance configurations](/learn/general-use/multi-instance).
## Usage
@@ -47,7 +47,7 @@ export default async bud => {
When loading output from multiple instances on a single page you need to be aware of the potential for runtime conflicts.
-If you are using the [bud.runtime](/docs/bud.runtime) function, you likely want to use the value `single` (the default value).
+If you are using the [bud.runtime](/reference/bud.runtime) function, you likely want to use the value `single` (the default value).
Beyond that, it may be helpful to know that each instance of bud.js declares all previous instances as _dependencies_. So, in the above examples,
`compiler-a` would be a dependency of `compiler-b`. If you added another instance, `compiler-c`, it would be dependent on both `compiler-a` and `compiler-b`.
@@ -86,8 +86,8 @@ bud.get('compiler-c').hooks.on('build.dependencies', ['compiler-a'])
Related:
-- [bud.get](/docs/bud.get)
+- [bud.get](/reference/bud.get)
Guides:
-- [multi-instance guide](/guides/general-use/multi-instance)
+- [multi-instance guide](/learn/general-use/multi-instance)
diff --git a/sources/@repo/docs/content/docs/bud.minimize/index.mdx b/sources/@repo/docs/content/reference/bud.minimize/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.minimize/index.mdx
rename to sources/@repo/docs/content/reference/bud.minimize/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.mode/bud.isDevelopment.mdx b/sources/@repo/docs/content/reference/bud.mode/bud.isDevelopment.mdx
similarity index 62%
rename from sources/@repo/docs/content/docs/bud.mode/bud.isDevelopment.mdx
rename to sources/@repo/docs/content/reference/bud.mode/bud.isDevelopment.mdx
index fd4e7ec141..529496b155 100644
--- a/sources/@repo/docs/content/docs/bud.mode/bud.isDevelopment.mdx
+++ b/sources/@repo/docs/content/reference/bud.mode/bud.isDevelopment.mdx
@@ -5,7 +5,7 @@ description: Property that is `true` when bud.mode is `development`
# bud.isDevelopment
-**Boolean** property which is `true` when [bud.mode](/docs/bud.mode/) is `development`
+**Boolean** property which is `true` when [bud.mode](/reference/bud.mode/) is `development`
## Usage
@@ -15,7 +15,7 @@ Very useful in conditionals:
export default async bud => bud.isDevelopment && bud.devtool('source-map')
```
-Pairs well with [bud.when](/docs/bud.when):
+Pairs well with [bud.when](/reference/bud.when):
```js {2} title=bud.config.js
export default async bud =>
@@ -24,5 +24,5 @@ export default async bud =>
## See also
-- [bud.mode](/docs/bud.mode/)
-- [bud.isProduction](/docs/bud.mode/bud.isProduction)
+- [bud.mode](/reference/bud.mode/)
+- [bud.isProduction](/reference/bud.mode/bud.isProduction)
diff --git a/sources/@repo/docs/content/docs/bud.mode/bud.isProduction.mdx b/sources/@repo/docs/content/reference/bud.mode/bud.isProduction.mdx
similarity index 60%
rename from sources/@repo/docs/content/docs/bud.mode/bud.isProduction.mdx
rename to sources/@repo/docs/content/reference/bud.mode/bud.isProduction.mdx
index fa284ef04f..8a98ba07c6 100644
--- a/sources/@repo/docs/content/docs/bud.mode/bud.isProduction.mdx
+++ b/sources/@repo/docs/content/reference/bud.mode/bud.isProduction.mdx
@@ -5,7 +5,7 @@ description: Property that is `true` when bud.mode is `production`
# bud.isProduction
-**Boolean** property which is `true` when [bud.mode](/docs/bud.mode/) is `production`
+**Boolean** property which is `true` when [bud.mode](/reference/bud.mode/) is `production`
## Usage
@@ -15,7 +15,7 @@ Very useful in conditionals:
export default async bud => bud.isProduction && bud.devtool('source-map')
```
-Pairs well with [bud.when](/docs/bud.when):
+Pairs well with [bud.when](/reference/bud.when):
```js {2} title=bud.config.js
bud.when(bud.isProduction, bud => bud.minify())
@@ -23,5 +23,5 @@ bud.when(bud.isProduction, bud => bud.minify())
## See also
-- [bud.mode](/docs/bud.mode/)
-- [bud.isDevelopment](/docs/bud.mode/bud.isDevelopment)
+- [bud.mode](/reference/bud.mode/)
+- [bud.isDevelopment](/reference/bud.mode/bud.isDevelopment)
diff --git a/sources/@repo/docs/content/docs/bud.mode/index.mdx b/sources/@repo/docs/content/reference/bud.mode/index.mdx
similarity index 55%
rename from sources/@repo/docs/content/docs/bud.mode/index.mdx
rename to sources/@repo/docs/content/reference/bud.mode/index.mdx
index 21e894c69d..a7c03f163f 100644
--- a/sources/@repo/docs/content/docs/bud.mode/index.mdx
+++ b/sources/@repo/docs/content/reference/bud.mode/index.mdx
@@ -7,7 +7,7 @@ Specify if a build is being run in a `production` or `development` context.
**bud.mode** will always be either `production` or `development`.
-When running bud [using the cli](/guides/cli/):
+When running bud [using the cli](/learn/cli/):
-- [bud build production](/guides/cli/build) will always run in `production`.
-- [bud build development](/guides/cli/build) will always run in `development`.
+- [bud build production](/learn/cli/build) will always run in `production`.
+- [bud build development](/learn/cli/build) will always run in `development`.
diff --git a/sources/@repo/docs/content/docs/bud.path.mdx b/sources/@repo/docs/content/reference/bud.path.mdx
similarity index 86%
rename from sources/@repo/docs/content/docs/bud.path.mdx
rename to sources/@repo/docs/content/reference/bud.path.mdx
index 961985700d..7a9402db91 100644
--- a/sources/@repo/docs/content/docs/bud.path.mdx
+++ b/sources/@repo/docs/content/reference/bud.path.mdx
@@ -28,6 +28,15 @@ The following is a table containing `string` values which fulfill a special role
| **@storage** | cache/artifact storage directory | `./.budfiles` |
| **@modules** | modules directory | `./node_modules` |
+:::note
+
+The `@storage` path is used to store cache and artifact files. It should not be set with `bud.setPath`. There is a lot of logic
+that depends on this path being set, and much of it executes before any user configuration files are loaded.
+
+If you want to customize the storage path, you should use the **--storage** flag instead.
+
+:::
+
When one of these handles is used at **the beginning of a string path** (or the first segment in a multi-segment path), the path will be
prefixed with the corresponding directory.
diff --git a/sources/@repo/docs/content/docs/bud.pipe.mdx b/sources/@repo/docs/content/reference/bud.pipe.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.pipe.mdx
rename to sources/@repo/docs/content/reference/bud.pipe.mdx
diff --git a/sources/@repo/docs/content/docs/bud.provide/index.mdx b/sources/@repo/docs/content/reference/bud.provide/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.provide/index.mdx
rename to sources/@repo/docs/content/reference/bud.provide/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.proxy/index.mdx b/sources/@repo/docs/content/reference/bud.proxy/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.proxy/index.mdx
rename to sources/@repo/docs/content/reference/bud.proxy/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.proxy/modifying-the-response-body.mdx b/sources/@repo/docs/content/reference/bud.proxy/modifying-the-response-body.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.proxy/modifying-the-response-body.mdx
rename to sources/@repo/docs/content/reference/bud.proxy/modifying-the-response-body.mdx
diff --git a/sources/@repo/docs/content/docs/bud.proxy/options.mdx b/sources/@repo/docs/content/reference/bud.proxy/options.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.proxy/options.mdx
rename to sources/@repo/docs/content/reference/bud.proxy/options.mdx
diff --git a/sources/@repo/docs/content/docs/bud.publicPath.mdx b/sources/@repo/docs/content/reference/bud.publicPath.mdx
similarity index 66%
rename from sources/@repo/docs/content/docs/bud.publicPath.mdx
rename to sources/@repo/docs/content/reference/bud.publicPath.mdx
index 788ab86bdd..879291ee84 100644
--- a/sources/@repo/docs/content/docs/bud.publicPath.mdx
+++ b/sources/@repo/docs/content/reference/bud.publicPath.mdx
@@ -5,7 +5,7 @@ description: Get the application public path.
Get the application public path.
-To set the path itself you may use [bud.setPublicPath](/docs/bud.setPublicPath).
+To set the path itself you may use [bud.setPublicPath](/reference/bud.setPublicPath).
## Usage
diff --git a/sources/@repo/docs/content/docs/bud.runtime.mdx b/sources/@repo/docs/content/reference/bud.runtime.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.runtime.mdx
rename to sources/@repo/docs/content/reference/bud.runtime.mdx
diff --git a/sources/@repo/docs/content/docs/bud.serve/index.mdx b/sources/@repo/docs/content/reference/bud.serve/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.serve/index.mdx
rename to sources/@repo/docs/content/reference/bud.serve/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.serve/setting-options.mdx b/sources/@repo/docs/content/reference/bud.serve/setting-options.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.serve/setting-options.mdx
rename to sources/@repo/docs/content/reference/bud.serve/setting-options.mdx
diff --git a/sources/@repo/docs/content/docs/bud.serve/setting-the-origin.mdx b/sources/@repo/docs/content/reference/bud.serve/setting-the-origin.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.serve/setting-the-origin.mdx
rename to sources/@repo/docs/content/reference/bud.serve/setting-the-origin.mdx
diff --git a/sources/@repo/docs/content/docs/bud.setPath.mdx b/sources/@repo/docs/content/reference/bud.setPath.mdx
similarity index 83%
rename from sources/@repo/docs/content/docs/bud.setPath.mdx
rename to sources/@repo/docs/content/reference/bud.setPath.mdx
index 22aae75b5a..417ac03f15 100644
--- a/sources/@repo/docs/content/docs/bud.setPath.mdx
+++ b/sources/@repo/docs/content/reference/bud.setPath.mdx
@@ -3,7 +3,7 @@ title: bud.setPath
description: Set application paths
---
-You can use **bud.setPath** to set a [bud.path](/docs/bud.path) handle. This documentation probably makes more sense if you've read the [bud.path](/docs/bud.path) documentation.
+You can use **bud.setPath** to set a [bud.path](/reference/bud.path) handle. This documentation probably makes more sense if you've read the [bud.path](/reference/bud.path) documentation.
## Defining new handles
diff --git a/sources/@repo/docs/content/docs/bud.setProxyUrl/index.mdx b/sources/@repo/docs/content/reference/bud.setProxyUrl/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.setProxyUrl/index.mdx
rename to sources/@repo/docs/content/reference/bud.setProxyUrl/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.setPublicPath.mdx b/sources/@repo/docs/content/reference/bud.setPublicPath.mdx
similarity index 77%
rename from sources/@repo/docs/content/docs/bud.setPublicPath.mdx
rename to sources/@repo/docs/content/reference/bud.setPublicPath.mdx
index c7f72fb600..2f753403b4 100644
--- a/sources/@repo/docs/content/docs/bud.setPublicPath.mdx
+++ b/sources/@repo/docs/content/reference/bud.setPublicPath.mdx
@@ -5,7 +5,7 @@ description: Set the public path.
Set the public path. By default the public path will be `''` in production and `/` in development.
-To get the value set by this function you should use [publicPath](/docs/bud.publicPath)
+To get the value set by this function you should use [publicPath](/reference/bud.publicPath)
## Usage
@@ -23,14 +23,6 @@ bud.setPublicPath(publicPath => {
})
```
-## Environment variable
-
-You may set the public path using an environment variable: `APP_PUBLIC_PATH`.
-
-```env
-APP_PUBLIC_PATH=/assets/
-```
-
## CLI
You may set the public path using the CLI using the `--publicPath` flag:
diff --git a/sources/@repo/docs/content/docs/bud.setPublicProxyUrl/index.mdx b/sources/@repo/docs/content/reference/bud.setPublicProxyUrl/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.setPublicProxyUrl/index.mdx
rename to sources/@repo/docs/content/reference/bud.setPublicProxyUrl/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.setPublicUrl/index.mdx b/sources/@repo/docs/content/reference/bud.setPublicUrl/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.setPublicUrl/index.mdx
rename to sources/@repo/docs/content/reference/bud.setPublicUrl/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.setUrl/index.mdx b/sources/@repo/docs/content/reference/bud.setUrl/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.setUrl/index.mdx
rename to sources/@repo/docs/content/reference/bud.setUrl/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.sh.mdx b/sources/@repo/docs/content/reference/bud.sh.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.sh.mdx
rename to sources/@repo/docs/content/reference/bud.sh.mdx
diff --git a/sources/@repo/docs/content/docs/bud.splitChunks.mdx b/sources/@repo/docs/content/reference/bud.splitChunks.mdx
similarity index 71%
rename from sources/@repo/docs/content/docs/bud.splitChunks.mdx
rename to sources/@repo/docs/content/reference/bud.splitChunks.mdx
index 70f87a7c54..928f1de984 100644
--- a/sources/@repo/docs/content/docs/bud.splitChunks.mdx
+++ b/sources/@repo/docs/content/reference/bud.splitChunks.mdx
@@ -13,4 +13,4 @@ bud.splitChunks()
## Options
-[bud.splitChunks](/docs/bud.splitChunks) takes any parameter Webpack does.
+[bud.splitChunks](/reference/bud.splitChunks) takes any parameter Webpack does.
diff --git a/sources/@repo/docs/content/docs/bud.tap.mdx b/sources/@repo/docs/content/reference/bud.tap.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.tap.mdx
rename to sources/@repo/docs/content/reference/bud.tap.mdx
diff --git a/sources/@repo/docs/content/docs/bud.tapAsync.mdx b/sources/@repo/docs/content/reference/bud.tapAsync.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.tapAsync.mdx
rename to sources/@repo/docs/content/reference/bud.tapAsync.mdx
diff --git a/sources/@repo/docs/content/docs/bud.use.mdx b/sources/@repo/docs/content/reference/bud.use.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.use.mdx
rename to sources/@repo/docs/content/reference/bud.use.mdx
diff --git a/sources/@repo/docs/content/docs/bud.watch/index.mdx b/sources/@repo/docs/content/reference/bud.watch/index.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.watch/index.mdx
rename to sources/@repo/docs/content/reference/bud.watch/index.mdx
diff --git a/sources/@repo/docs/content/docs/bud.when.mdx b/sources/@repo/docs/content/reference/bud.when.mdx
similarity index 100%
rename from sources/@repo/docs/content/docs/bud.when.mdx
rename to sources/@repo/docs/content/reference/bud.when.mdx
diff --git a/sources/@repo/docs/netlify.toml b/sources/@repo/docs/netlify.toml
index e987186deb..74e453db4a 100644
--- a/sources/@repo/docs/netlify.toml
+++ b/sources/@repo/docs/netlify.toml
@@ -16,8 +16,26 @@
force = true
[[redirects]]
- from = "https://bud.js.org/docs/bud.template"
- to = "https://bud.js.org/docs/bud.html"
+ from = "https://bud.js.org/blog/tags/release"
+ to = "https://bud.js.org/releases"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/blog/*"
+ to = "https://bud.js.org/releases/:splat"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/guides/general-use/multi-compiler"
+ to = "https://bud.js.org/guides/general-use/multi-instance"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/guides/general-use/transpiler-sources"
+ to = "https://bud.js.org/guides/general-use/compiler-sources"
status = 301
force = true
@@ -26,3 +44,45 @@
to = "https://bud.js.org/extensions/bud-preset-wordpress"
status = 301
force = true
+
+[[redirects]]
+ from = "https://bud.js.org/packages/wordpress-hmr"
+ to = "https://bud.js.org/extensions/bud-preset-wordpress"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/guides/*"
+ to = "https://bud.js.org/learn/:splat"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/docs/bud.template"
+ to = "https://bud.js.org/reference/bud.html"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/docs/general-use/alternative-config-syntax"
+ to = "https://bud.js.org/learn/config/files/bud.config"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/docs/general-use/config-layers"
+ to = "https://bud.js.org/learn/config/files/bud.config"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/docs/general-use/extensions"
+ to = "https://bud.js.org/learn/config/extensions"
+ status = 301
+ force = true
+
+[[redirects]]
+ from = "https://bud.js.org/docs/*"
+ to = "https://bud.js.org/reference/:splat"
+ status = 301
+ force = true
diff --git a/sources/@repo/docs/sidebars/docs.cjs b/sources/@repo/docs/sidebars/docs.cjs
deleted file mode 100644
index 0bd4f3ae76..0000000000
--- a/sources/@repo/docs/sidebars/docs.cjs
+++ /dev/null
@@ -1,21 +0,0 @@
-module.exports = {
- sidebar: [
- {
- collapsed: false,
- collapsible: false,
- items: [
- {
- dirName: `.`,
- type: `autogenerated`,
- },
- ],
- label: `Configuration API`,
- link: {
- description: `Configuration API Reference`,
- slug: `/config`,
- type: `generated-index`,
- },
- type: `category`,
- },
- ],
-}
diff --git a/sources/@repo/docs/sidebars/guides.cjs b/sources/@repo/docs/sidebars/learn.cjs
similarity index 50%
rename from sources/@repo/docs/sidebars/guides.cjs
rename to sources/@repo/docs/sidebars/learn.cjs
index cc2910b54d..177481bcc8 100644
--- a/sources/@repo/docs/sidebars/guides.cjs
+++ b/sources/@repo/docs/sidebars/learn.cjs
@@ -1,20 +1,49 @@
module.exports = {
sidebar: [
- `index`,
- `create-bud-app`,
{
+ collapsed: false,
items: [
- `configure/bud.config.js`,
- `configure/paths`,
- `configure/assets`,
- `configure/optimizing`,
- `configure/extensions`,
- `configure/editor-integration`,
+ `getting-started/index`,
+ `getting-started/create-bud-app`,
+ `getting-started/adding-typescript`,
+ `getting-started/adding-postcss`,
+ `getting-started/adding-sass`,
+ `getting-started/adding-react`,
+ `getting-started/adding-tailwindcss`,
+ `getting-started/adding-emotion`,
+ `getting-started/adding-eslint`,
+ `getting-started/adding-stylelint`,
+ `getting-started/adding-vue`,
+ `getting-started/adding-wordpress-support`,
],
- label: `Project config`,
+ label: `Getting started`,
+ type: `category`,
+ },
+ {
+ items: [
+ {
+ items: [
+ `config/files/bud.config`,
+ `config/files/tsconfig`,
+ `config/files/package`,
+ `config/files/env`,
+ ],
+ label: `Files`,
+ link: {
+ slug: `/config/files`,
+ type: `generated-index`,
+ },
+ type: `category`,
+ },
+ `config/paths`,
+ `config/entrypoints`,
+ `config/assets`,
+ `config/optimization`,
+ `config/server`,
+ ],
+ label: `Configuring bud.js`,
link: {
- description: `Get started configuring bud.js`,
- slug: `/configure`,
+ slug: `/config`,
type: `generated-index`,
},
type: `category`,
@@ -25,10 +54,10 @@ module.exports = {
`modules/css-modules`,
`modules/static-assets`,
],
- label: `Modules`,
+ label: `Source modules`,
link: {
- description: `Using JS, CSS and static assets in your application code.`,
- slug: `/guides/modules`,
+ description: `Learn about the features available to your application in the context of your source code.`,
+ slug: `/learn/modules`,
type: `generated-index`,
},
type: `category`,
@@ -47,6 +76,7 @@ module.exports = {
`cli/clean`,
`cli/doctor`,
`cli/repl`,
+ `cli/upgrade`,
],
label: `CLI`,
link: {
@@ -57,17 +87,13 @@ module.exports = {
},
{
items: [
- `general-use/development-server`,
`general-use/customizing-loaders`,
`general-use/compiler-sources`,
- `general-use/alternative-config-syntax`,
- `general-use/config-layers`,
- `general-use/extensions`,
`general-use/multi-instance`,
`general-use/node-api`,
`general-use/esmodules`,
+ `general-use/extensions`,
`general-use/remote-sources`,
- `general-use/managing-dependencies`,
`general-use/pnpm`,
],
label: `Going deeper`,
diff --git a/sources/@repo/docs/sidebars/reference.cjs b/sources/@repo/docs/sidebars/reference.cjs
new file mode 100644
index 0000000000..94d21eeb31
--- /dev/null
+++ b/sources/@repo/docs/sidebars/reference.cjs
@@ -0,0 +1,8 @@
+module.exports = {
+ items: [
+ {
+ dirName: `.`,
+ type: `autogenerated`,
+ },
+ ],
+}
diff --git a/sources/@repo/docs/src/components/blockquote/blockquote.component.tsx b/sources/@repo/docs/src/components/blockquote/blockquote.component.tsx
deleted file mode 100644
index a5d1ed93c2..0000000000
--- a/sources/@repo/docs/src/components/blockquote/blockquote.component.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react'
-
-export const Component = ({children, cite, src}) => {
- return (
-