From d30070704a38394fdd24988bc2e23796aa7c482a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Valderrama?= Date: Wed, 19 Jun 2024 14:15:23 +0200 Subject: [PATCH] chore: update doc --- docs/create-angular-plugin.md | 27 ++++++++++++++++----------- docs/create-plugin.md | 25 ++++++++++++++----------- docs/images/plugin-menu.png | Bin 0 -> 35340 bytes docs/publish-package.md | 2 ++ 4 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 docs/images/plugin-menu.png diff --git a/docs/create-angular-plugin.md b/docs/create-angular-plugin.md index 13b711e..961928b 100644 --- a/docs/create-angular-plugin.md +++ b/docs/create-angular-plugin.md @@ -1,6 +1,12 @@ # Creating a Plugin -This guide walks you through the steps to create an Angular plugin. +This guide walks you through the steps to create an Angular plugin for our platform. You'll start by setting up the basic structure, configuring necessary files, and then running a local server to preview your plugin. + +If you prefer to create the plugin without a specific framework there's also [Creating a Plugin](./create-plugin.md). + +Keep in mind that this guide is for creating a plugin **inside `penpot-plugins` monorepo**. If you want to create a plugin outside our environment you can check the [Penpot Plugin Starter Template](https://github.com/penpot/penpot-plugin-starter-template) or the documentation at [Create a Plugin](https://help.penpot.app/technical-guide/plugins/create-a-plugin/). + +Let's dive in. ### Step 1: Initialize the Plugin @@ -58,6 +64,8 @@ Add the default port to the `serve.configurations.development` task: } ``` +For choosing the port go check the Sample Plugins table at the [README](../README.md) so your plugin doesn't use a duplicate port. We're using the range 4300-4399. + ### Step 4: Modify TypeScript Configuration Create ``tsconfig.plugin.json` next to the `tsconfig.json`: @@ -118,11 +126,13 @@ This will run two tasks: `serve`, the usual Angular server, and `buildPlugin`, w ### Step 8: Load the Plugin in Penpot -Finally, to load your plugin into Penpot, execute the following command in the browser's console devtools: +To load your plugin into Penpot you can use the shortcut `Ctrl + Alt + P` to directly open the Plugin manager modal. There you need to provide the plugin's manifest URL (example: `http://plugin.example/manifest.json`) for the installation. If there's no issues the plugin will be installed and then you would be able to open it whenever you like. -```typescript -ɵloadPluginByUrl('http://localhost:4201/assets/manifest.json'); -``` +You can also open the Plugin manager modal via: + +- Menu + + ![Penpot's menu image](./images/plugin-menu.png) ### Step 9: Build plugin @@ -134,9 +144,4 @@ npx nx run example-plugin:build For more detailed information on plugin development, check out our guides: -- [Plugin Usage Documentation](docs/plugin-usage.md) -- [Create API Documentation](docs/create-api.md) - -### Using a Starter Template - -If you prefer to kickstart your plugin development, consider using the [Penpot Plugin Starter Template](https://github.com/penpot/penpot-plugin-starter-template). It's a template designed to streamline the creation process for Penpot plugins. +- [Plugin Usage Documentation](,/plugin-usage.md) diff --git a/docs/create-plugin.md b/docs/create-plugin.md index f2b4c1f..2d1ca08 100644 --- a/docs/create-plugin.md +++ b/docs/create-plugin.md @@ -1,6 +1,12 @@ # Creating a Plugin -This guide walks you through the steps to create a plugin for our platform. You'll start by setting up the basic structure, configuring necessary files, and then running a local server to preview your plugin. Let's dive in. +This guide walks you through the steps to create a plugin for our platform. You'll start by setting up the basic structure, configuring necessary files, and then running a local server to preview your plugin. + +If you prefer to create the plugin with angular, there's also a [Creating a Plugin (angular)](./create-angular-plugin.md). + +Keep in mind that this guide is for creating a plugin **inside `penpot-plugins` monorepo**. If you want to create a plugin outside our environment you can check the [Penpot Plugin Starter Template](https://github.com/penpot/penpot-plugin-starter-template) or the documentation at [Create a Plugin](https://help.penpot.app/technical-guide/plugins/create-a-plugin/). + +Let's dive in. ### Step 1: Initialize the Plugin @@ -77,19 +83,16 @@ Add these options to the end of the `eslint.config.js` file to allow linting wit ### Step 7: Load the Plugin in Penpot -Finally, to load your plugin into Penpot, execute the following command in the browser's console devtools: +To load your plugin into Penpot you can use the shortcut `Ctrl + Alt + P` to directly open the Plugin manager modal. There you need to provide the plugin's manifest URL (example: `http://plugin.example/manifest.json`) for the installation. If there's no issues the plugin will be installed and then you would be able to open it whenever you like. -```typescript -ɵloadPluginByUrl('http://localhost:4201/manifest.json'); -``` +You can also open the Plugin manager modal via: + +- Menu + + ![Penpot's menu image](./images/plugin-menu.png) ### Learn More About Plugin Development For more detailed information on plugin development, check out our guides: -- [Plugin Usage Documentation](docs/plugin-usage.md) -- [Create API Documentation](docs/create-api.md) - -### Using a Starter Template - -If you prefer to kickstart your plugin development, consider using the [Penpot Plugin Starter Template](https://github.com/penpot/penpot-plugin-starter-template). It's a template designed to streamline the creation process for Penpot plugins. +- [Create API Documentation](./create-api.md) diff --git a/docs/images/plugin-menu.png b/docs/images/plugin-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..61f3b25b6bdf4cb27358a16df8e6d6a3db54ef86 GIT binary patch literal 35340 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 A4*&oF literal 0 HcmV?d00001 diff --git a/docs/publish-package.md b/docs/publish-package.md index ed2e77a..4763ebf 100644 --- a/docs/publish-package.md +++ b/docs/publish-package.md @@ -1,5 +1,7 @@ # Publishing Packages +- DEPRECATED - + ## Introduction This guide details the process of publishing `plugin-types` and `plugins-styles` packages, which are essential for plugin development. To facilitate testing and distribution, we leverage npm for publishing and Verdaccio for setting up a local registry. Below is a walkthrough for publishing these packages, setting up a local registry, and managing releases.