-
Notifications
You must be signed in to change notification settings - Fork 324
[Documentation] Adding Playground CLI page and removing wp-now references #2337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
52840dd
Adding new intro page
fellyph b5636e5
Adding notice for wp-now deprecation
fellyph 29f171f
Updating readme file
fellyph db73d54
adding new page playground cli
fellyph 6ccad1a
Updating resource page
fellyph b8bf493
Updating build page
fellyph 93db410
Updating contributor day page
fellyph 9c95326
Updating for developers page
fellyph 4042682
Updating the theme developers' page
fellyph 4af1927
Re-ordering text
fellyph bc7119e
adding animated gif for the page and fixing command blocks
fellyph d646818
fixing command blocks
fellyph 426c768
re-ordering content, fixing typos and add manual mounting scenarios.
fellyph dc5871d
Merge branch 'trunk' into adding-playground-cli-page
fellyph 2077f2d
Merge branch 'trunk' into adding-playground-cli-page
fellyph 790a950
Update packages/docs/site/docs/developers/05-local-development/01-wp-…
fellyph 3113774
Update packages/docs/site/docs/developers/05-local-development/04-wp-…
fellyph 4bc48f2
Update packages/docs/site/docs/developers/05-local-development/04-wp-…
fellyph e6ff7e6
Update packages/docs/site/docs/developers/05-local-development/04-wp-…
fellyph 7f660a0
Update packages/docs/site/docs/developers/05-local-development/04-wp-…
fellyph e991da6
Update packages/docs/site/docs/main/contributing/contributor-day.md
fellyph edc73be
Update packages/docs/site/docs/developers/05-local-development/04-wp-…
fellyph a6271dc
Merge branch 'trunk' into adding-playground-cli-page
fellyph 66f261f
Merge branch 'trunk' into adding-playground-cli-page
fellyph ef6ac78
Update packages/docs/site/docs/developers/05-local-development/04-wp-…
fellyph d5f9a3f
Update packages/docs/site/docs/developers/05-local-development/04-wp-…
fellyph 9ba0af7
applying suggestion for clarity on this paragraph
fellyph 038dfe4
Merge branch 'trunk' into adding-playground-cli-page
fellyph 40e6918
Moving npx-wp-playground-server to the static image folder
fellyph 83429af
moving gif to the developers folder
fellyph 895a433
Merge branch 'trunk' into adding-playground-cli-page
fellyph 9a51c6b
Removing wp-now from the documentation sidebar
fellyph File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
124 changes: 124 additions & 0 deletions
124
packages/docs/site/docs/developers/05-local-development/04-wp-playground-cli.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
--- | ||
title: Playground CLI | ||
slug: /developers/local-development/wp-playground-cli | ||
--- | ||
|
||
# Playground CLI | ||
|
||
[@wp-playground/cli](https://www.npmjs.com/package/@wp-playground/cli) is a command-line tool that simplifies the WordPress development and testing flow. | ||
Playground CLI supports auto-mounting a directory with a plugin, theme, or WordPress installation. But if you need flexibility, the CLI supports mounting commands to personalize your local environment. | ||
|
||
**Key features:** | ||
|
||
- **Quick Setup**: Set up a local WordPress environment in seconds. | ||
- **Flexibility**: Allows for configuration to adapt to different scenarios. | ||
- **Simple Environment**: No extra configuration, just a compatible Node version, and you are ready to use it. | ||
|
||
## Requirements | ||
|
||
The Playground CLI requires Node.js 20.18 or higher, which is the recommended Long-Term Support (LTS) version. You can download it from the [Node.js website](https://nodejs.org/en/download). | ||
|
||
## Quickstart | ||
|
||
Running the Playground CLI is as simple as go to a command-line and run: | ||
|
||
```bash | ||
npx @wp-playground/cli@latest server | ||
``` | ||
|
||
 | ||
|
||
With the previous command, you only get a fresh WordPress instance to test. Most of the developers want to see their work running. If this is your case, test a plugin or a theme. You can run the CLI on your project folder and run the Playground CLI with the `--auto-mount` flag: | ||
|
||
```bash | ||
cd my-plugin-or-theme-directory | ||
npx @wp-playground/cli@latest server --auto-mount | ||
``` | ||
|
||
### Choosing a WordPress and PHP Version | ||
|
||
By default, the CLI loads the latest stable version of WordPress and PHP 8.0 due to its improved performance. To specify your preferred versions, you can use the flag `--wp=<version>` and `--php=<version>`: | ||
|
||
```bash | ||
npx @wp-playground/cli@latest server --wp=6.8 --php=8.4 | ||
``` | ||
|
||
### Loading Blueprints | ||
|
||
One way to take your Playground CLI development experience to the next level is to integrate with [Blueprints](/blueprints/getting-started/). For those unfamiliar with this technology, it allows developers to configure the initial state for their WordPress Playground instances. | ||
|
||
Using the `--blueprint=<blueprint-address>` flag, developers can run a Playground with a custom initial state. We’ll use the example below to do this. | ||
|
||
**(my-blueprint.json)** | ||
|
||
```bash | ||
{ | ||
"landingPage": "/wp-admin/options-general.php?page=akismet-key-config", | ||
"login": true, | ||
"plugins": [ | ||
"hello-dolly", | ||
"https://raw.githubusercontent.com/adamziel/blueprints/trunk/docs/assets/hello-from-the-dashboard.zip" | ||
] | ||
} | ||
``` | ||
|
||
CLI command loading a blueprint: | ||
|
||
```bash | ||
npx @wp-playground/cli@latest server --blueprint=my-blueprint.json | ||
``` | ||
|
||
### Mounting folders manually | ||
|
||
Some projects have a specific structure that requires a custom configuration; for example, your repository contains all the files in the `/wp-content/` folder. So in this scenario, you can specify to the Playground CLI that it will mount your project from that folder using the `--mount` flag. | ||
|
||
```bash | ||
npx @wp-playground/cli@latest server --mount=.:/wordpress/wp-content/plugins/MY-PLUGIN-DIRECTORY | ||
``` | ||
|
||
### Mounting before WordPress installation | ||
|
||
Consider mounting your WordPress project files before the WordPress installation begins. This approach is beneficial if you want to override the Playground boot process, as it can help connect Playground with `WP-CLI`. The `--mount-before-install` flag supports this process. | ||
|
||
```bash | ||
npx @wp-playground/cli@latest server --mount-before-install=.:/wordpress/ | ||
``` | ||
|
||
:::info | ||
On Windows, the path format `/host/path:/vfs/path` can cause issues. To resolve this, use the flags `--mount-dir` and `--mount-dir-before-install`. These flags let you specify host and virtual file system paths in an alternative format`"/host/path"` `"/vfs/path"`. | ||
::: | ||
|
||
## Command and Arguments | ||
|
||
Playground CLI is simple, configurable, and unopinionated. You can set it up according | ||
to your unique WordPress setup. With the Playground CLI, you can use the following top-level commands: | ||
|
||
- **`server`**: (Default) Starts a local WordPress server. | ||
- **`run-blueprint`**: Executes a Blueprint file without starting a web server. | ||
- **`build-snapshot`**: Builds a ZIP snapshot of a WordPress site based on a Blueprint. | ||
|
||
The `server` command supports the following optional arguments: | ||
|
||
- `--port=<port>`: The port number for the server to listen on. Defaults to 9400. | ||
- `--outfile`: When building, write to this output file. | ||
- `--wp=<version>`: The version of WordPress to use. Defaults to the latest. | ||
- `--auto-mount`: Automatically mount the current directory (plugin, theme, wp-content, etc.). | ||
- `--mount=<mapping>`: Manually mount a directory (can be used multiple times). Format: `"/host/path:/vfs/path"`. | ||
- `--mount-before-install`: Mount a directory to the PHP runtime before WordPress installation (can be used multiple times). Format: `"/host/path:/vfs/path"`. | ||
fellyph marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- `--mount-dir`: Mount a directory to the PHP runtime (can be used multiple times). Format: `"/host/path"` `"/vfs/path"`. | ||
- `--mount-dir-before-install`: Mount a directory before WordPress installation (can be used multiple times). Format: `"/host/path"` `"/vfs/path"` | ||
- `--blueprint=<path>`: The path to a JSON Blueprint file to execute. | ||
- `--blueprint-may-read-adjacent-files`: Consent flag: Allow "bundled" resources in a local blueprint to read files in the same directory as the blueprint file. | ||
- `--login`: Automatically log the user in as an administrator. | ||
- `--skip-wordpress-setup`: Do not download or install WordPress. Useful if you are mounting a full WordPress directory. | ||
- `--skip-sqlite-setup`: Do not set up the SQLite database integration. | ||
- `--quiet`: Do not output logs and progress messages. | ||
- `--debug`: Print the PHP error log if an error occurs during boot. | ||
|
||
## Need some help with the CLI? | ||
|
||
With the Playground CLI, you can use the `--help` to get some support about the available commands. | ||
|
||
```bash | ||
npx @wp-playground/cli@latest --help | ||
``` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -193,7 +193,7 @@ Here’s an example of a **[plugin that generates Custom Post Types](https://raw | |
|
||
From a plugins' folder in your local development environment, you can quickly load locally a Playground instance with that plugin loaded and activated. | ||
|
||
Use the [`wp-now` command](/developers/local-development/wp-now) from your plugin's root directory using your preferred command line program. | ||
Use the [`@wp-playground/cli` command](/developers/local-development/wp-playground-cli) from your plugin's root directory using your preferred command line program. | ||
|
||
With [Visual Studio Code](https://code.visualstudio.com/) IDE, you can also use the [Visual Studio Code extension](/developers/local-development/vscode-extension) while working in the root directory of your plugin. | ||
|
||
|
@@ -202,7 +202,7 @@ For example: | |
```bash | ||
git clone [email protected]:wptrainingteam/devblog-dataviews-plugin.git | ||
cd devblog-dataviews-plugin | ||
npx @wp-now/wp-now start | ||
npx @wp-playground/cli server --auto-mount | ||
``` | ||
|
||
### See your local changes in a Playground instance and directly create PRs in a GitHub repo with your changes | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -214,14 +214,14 @@ The ["Stylish Press"](https://github.com/WordPress/blueprints/tree/trunk/bluepri | |
|
||
### Local theme development and testing with Playground | ||
|
||
From the root folder of a block theme's code, you can quickly load locally a Playground instance with that theme loaded and activated. You can do that by launching, in a theme directory, the [`wp-now` command](/developers/local-development/wp-now) from your preferred command line program or the [Visual Code Studio extension](/developers/local-development/vscode-extension) from the [Visual Studio Code](https://code.visualstudio.com/) IDE. | ||
From the root folder of a block theme's code, you can quickly load locally a Playground instance with that theme loaded and activated. You can do that by launching, in a theme directory, the [`@wp-playground/cli` command](/developers/local-development/wp-playground-cli) from your preferred command line program or the [Visual Code Studio extension](/developers/local-development/vscode-extension) from the [Visual Studio Code](https://code.visualstudio.com/) IDE. | ||
|
||
For example: | ||
|
||
``` | ||
git clone [email protected]:WordPress/community-themes.git | ||
cd community-themes/blue-note | ||
npx @wp-now/wp-now start | ||
npx @wp-playground/cli server --auto-mount | ||
``` | ||
|
||
### Design your theme using the WordPress UI and save your changes as Pull Requests | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+23.8 KB
packages/docs/site/static/img/developers/npx-wp-playground-server.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there something in Docusaurus that would enable us to auto-generate this section? I'm concerned about it getting outdated.