Skip to content
5 changes: 5 additions & 0 deletions .changeset/green-wasps-follow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"docs": minor
---

docs: add docs for the cli specifically
5 changes: 5 additions & 0 deletions .changeset/wide-lies-enter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"docs": minor
---

docs: add docs for the Links addon, Redirects addon and enhance the docs in general
105 changes: 57 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,59 @@
<div align="center">
<h1>Strapi Webtools</h1>
<p style="margin-top: 0;">Everything you need to build a website with Strapi CMS</p>

<a href="https://docs.pluginpal.io/webtools">Read the documentation</a>
<p>
<a href="https://www.npmjs.org/package/strapi-plugin-webtools">
<img src="https://img.shields.io/npm/v/strapi-plugin-webtools/latest.svg" alt="NPM Version" />
</a>
<a href="https://www.npmjs.org/package/strapi-plugin-webtools">
<img src="https://img.shields.io/npm/dm/strapi-plugin-webtools" alt="Monthly download on NPM" />
</a>
<a href="https://codecov.io/gh/pluginpal/strapi-webtools">
<img src="https://img.shields.io/github/actions/workflow/status/pluginpal/strapi-webtools/tests.yml?branch=master" alt="CI build status" />
</a>
<a href="https://codecov.io/gh/pluginpal/strapi-webtools">
<img src="https://codecov.io/gh/pluginpal/strapi-webtools/coverage.svg?branch=master" alt="codecov.io" />
</a>
</p>
<h1>Strapi Webtools</h1>
<p style="margin-top: 0;">Everything you need to build a website with Strapi CMS</p>
<p>
<a href="https://docs.pluginpal.io/webtools"><strong>Read the documentation →</strong></a>
</p>

<p>
<a href="https://www.npmjs.org/package/strapi-plugin-webtools">
<img src="https://img.shields.io/npm/v/strapi-plugin-webtools/latest.svg" alt="NPM Version" />
</a>
<a href="https://www.npmjs.org/package/strapi-plugin-webtools">
<img src="https://img.shields.io/npm/dm/strapi-plugin-webtools" alt="Monthly download on NPM" />
</a>
<a href="https://img.shields.io/github/actions/workflow/status/pluginpal/strapi-webtools/tests.yml?branch=master">
<img src="https://img.shields.io/github/actions/workflow/status/pluginpal/strapi-webtools/tests.yml?branch=master" alt="CI build status" />
</a>
<a href="https://codecov.io/gh/pluginpal/strapi-webtools">
<img src="https://codecov.io/gh/pluginpal/strapi-webtools/coverage.svg?branch=master" alt="codecov.io" />
</a>
</p>
</div>

---

## ✨ Features

- **Unique URLs** Every page will get their own unique path
- **Auto generated** Automatically generated based on a pattern
- **Flexible** Overwrite single URLs
- **Frontend router** Get any page by it's unique path from the public API
- **Auto slugify** The URLs will automatically be slugified to ensure valid paths
- Unique URLsEvery page gets its own unique path
- Auto-generated – Based on a configurable URL pattern
- Flexible – Override individual URLs when needed
- Frontend router – Fetch any page by its unique path via the public API
- Auto-slugify – Ensures valid, clean URL paths

## ⏳ Installation
## ✅ Requirements

[Read the Getting Started tutorial](https://docs.pluginpal.io/webtools) or follow the steps below:
- Node.js: >= 18.17
- Strapi: v5.x

### Installer wizard
## ⏳ Installation

To provide easy installation, this plugin comes with it's own installer wizard. It let's you interactively select which content types you want to enable and which addons you want to install. Making it easy to get started with Webtools!
Read the full Getting Started guide in the docs, or run the installer. The command below executes the Webtools installer (webtools-cli) in your current project directory:

```bash
npx webtools-cli install
```

### Enabling
The installer lets you:
- Enable Webtools for selected content types
- Optionally install addons (e.g. Sitemap)

Using the installer wizard you can easily enable Webtools for your content types. If there are still more content-types you want to enable, you can do that manually through the admin panel. Read more about how to do that in the [usage documentation](https://docs.pluginpal.io/webtools/usage).
> Keyboard shortcuts: Space (toggle), a (all), i (invert), Enter (confirm)

### Building
### Build the admin

After successful installation you have to rebuild the admin UI so it'll include this plugin. To rebuild and restart Strapi run:
After installation, rebuild the Strapi admin so it includes the plugin:

```bash
# using yarn
Expand All @@ -60,32 +65,36 @@ npm run build
npm run develop
```

Enjoy 🎉
## 🚀 Quick start

## 📓 Documentation
1) Enable Webtools for your content types (via the installer or Admin → Content-Type Builder)
2) Create URL patterns (Webtools → Patterns)
3) Bulk generate aliases (Webtools → All URLs)
4) Optionally set up the Sitemap addon (see docs)

The full documentation of this plugin can be found on it's dedicated documentation website.
Enjoy 🎉

- [Webtools core plugin](https://docs.pluginpal.io/webtools)
- [Webtools sitemap addon](https://docs.pluginpal.io/webtools/addons/sitemap)
## 📓 Documentation

- Core plugin: https://docs.pluginpal.io/webtools
- Sitemap addon: https://docs.pluginpal.io/webtools/addons/sitemap

## 🔌 Addons

Webtools can be extended by installing addons that hook into the core Webtools functionality. Read more about how addons work and how to install them in the [addons documentation](https://docs.pluginpal.io/webtools/addons).
Webtools can be extended with addons that hook into the core. Learn more: https://docs.pluginpal.io/webtools/addons

## 🔗 Links

- [PluginPal marketplace](https://www.pluginpal.io/plugin/webtools)
- [NPM package](https://www.npmjs.com/package/strapi-plugin-webtools)
- [GitHub repository](https://github.com/pluginpal/strapi-webtools)
- [Strapi marketplace](https://market.strapi.io/plugins/@pluginpal-webtools-core)
- PluginPal marketplace: https://www.pluginpal.io/plugin/webtools
- NPM package: https://www.npmjs.com/package/strapi-plugin-webtools
- GitHub repository: https://github.com/pluginpal/strapi-webtools
- Strapi marketplace: https://market.strapi.io/plugins/@pluginpal-webtools-core

## 🌎 Community support

- For general help using Strapi, please refer to [the official Strapi documentation](https://strapi.io/documentation/).
- You can contact me on the Strapi Discord [channel](https://discord.strapi.io/).
- For Strapi usage questions, see the official docs: https://strapi.io/documentation/
- Chat on Strapi Discord: https://discord.strapi.io/

## 📝 Resources
## 📝 License

- [MIT License](https://github.com/pluginpal/strapi-webtools/blob/master/LICENSE.md)
MIT https://github.com/pluginpal/strapi-webtools/blob/master/LICENSE.md
4 changes: 3 additions & 1 deletion packages/docs/docs/addons/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,7 @@ Webtools is all about tools to enhance your website management workflow in Strap
To enhance Webtools in a modular way, the core plugin allows addons to be registered to build upon it's functionalities. Addons are in Strapi terms just standalone plugins, but have `strapi-plugin-webtools` as a peer dependency. You will have to install each addon as you would normally install a plugin in to Strapi.

<CustomDocCardsWrapper>
<CustomDocCard emoji="🔀" title="Sitemap" description="The Sitemap addon can be used to generate a customizable sitemap using all your Webtools URL aliases" link="/webtools/addons/sitemap" />
<CustomDocCard emoji="🔌" title="Sitemap" description="The Sitemap addon can be used to generate a customizable sitemap using all your Webtools URL aliases" link="/webtools/addons/sitemap" />
<CustomDocCard emoji="🔀" title="Redirects" description="The Redirects addon can be used to manage your redirects in Strapi CMS." link="/webtools/addons/redirects" />
<CustomDocCard emoji="🔗" title="Links" description="The Links addon can be used create dynamic links from 1 page to another." link="/webtools/addons/links" />
</CustomDocCardsWrapper>
18 changes: 18 additions & 0 deletions packages/docs/docs/addons/links/api/links-format.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
sidebar_label: 'Links format'
displayed_sidebar: webtoolsLinksSidebar
slug: /addons/links/api/links-format
---

# Rewrite middleware

This plugin stores the internal links in a specific format. That format looks something like this:

```
wt-link://api::page.page/sp8bzbkn21pjy3m9wsf97dio
```

This makes it possible to fetch the page, and ultimately the URL alias of the document that you have linked to.

The plugin also provides a middleware which will rewrite these link formats to the actual link when you're using the Strapi API.

14 changes: 14 additions & 0 deletions packages/docs/docs/addons/links/getting-started/ckeditor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
sidebar_label: 'Ckeditor'
displayed_sidebar: webtoolsLinksSidebar
slug: /addons/links/ckeditor
---

# Ckeditor integration
This addon has an integration with [the Ckeditor plugin](https://github.com/nshenderov/strapi-plugin-ckeditor). If the Ckeditor plugin is installed this addon will replace the link button in the editor. With this new button you can create internal links in the ckeditor.

<img src="/webtools/img/assets/addons/links/ckeditor.png" alt="Ckeditor" />

If you click the link button it will open a modal in which you can manage your links.

<img src="/webtools/img/assets/addons/links/ckeditor-link-modal.png" alt="Ckeditor link modal" />
10 changes: 10 additions & 0 deletions packages/docs/docs/addons/links/getting-started/custom-field.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
sidebar_label: 'Custom field'
displayed_sidebar: webtoolsLinksSidebar
slug: /addons/links/custom-field
---

# Custom field
This addon introduces a new custom field which you can add to your content types. This field can be used in your content types to accommodate internal linking from one page to another.

<img src="/webtools/img/assets/addons/links/link-custom-field.png" alt="Link custom field" />
62 changes: 62 additions & 0 deletions packages/docs/docs/addons/links/getting-started/installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
sidebar_label: 'Installation'
displayed_sidebar: webtoolsLinksSidebar
slug: /addons/links/installation
---

# ⏳ Installation

:::prerequisites
Complete installation requirements are the exact same as for Strapi itself and can be found in the Strapi documentation.

**Additional Requirements:**
- **Node.js**: Version 18 or higher
- **Strapi**: Version 5.x
- **Webtools**: Version 1.x
:::

:::caution
This addon is part of the premium package of Webtools. You'll have to purchase a license key to download and use this package. Once you have your license key you can run the following command to setup your license in your project:

```
npx webtools-cli setup-license
```

To purchase a license, please visit the [PluginPal website](https://www.pluginpal.io/plugin/webtools).
:::

### Installation

After you've setup your license you can install the addon like so:

<Tabs groupId="yarn-npm">
<TabItem value="yarn" label="Yarn">
```
yarn add @pluginpal/webtools-addon-links
```
</TabItem>
<TabItem value="npm" label="NPM">
```
npm install @pluginpal/webtools-addon-links --save
```
</TabItem>
</Tabs>

After successful installation you have to rebuild the admin UI so it'll include this plugin. To rebuild and restart Strapi run:

<Tabs groupId="yarn-npm">
<TabItem value="yarn" label="Yarn">
```
yarn build
yarn develop
```
</TabItem>
<TabItem value="npm" label="NPM">
```
npm run build
npm run develop
```
</TabItem>
</Tabs>

Enjoy 🎉
23 changes: 23 additions & 0 deletions packages/docs/docs/addons/links/getting-started/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
sidebar_label: 'Introduction'
displayed_sidebar: webtoolsLinksSidebar
slug: /addons/links
---

# Webtools Links Add-on

The **Links add-on** for Webtools Pro provides a powerful custom field type that allows content creators to easily create internal links within their Strapi CMS content. This field type streamlines the process of linking to other content entries, pages, or sections within your application.

:::note
This plugin acts as an extension of the core `strapi-plugin-webtools`. Please install and configure that before proceeding.
:::

## Key Features

- **🔗 Internal Link Management** - Easy selection of internal content for linking
- **⚡ Custom field** - Add the link field to any content type
- **⚡ Ckeditor integration** - Integrate the dynamic links in to your ckeditor
- **🔍 Smart Search** - Find content quickly with built-in search functionality
- **📝 Content Type Support** - Works with all your custom content types
- **🎨 Intuitive UI** - Clean, user-friendly interface integrated with Strapi's design system

35 changes: 35 additions & 0 deletions packages/docs/docs/addons/links/getting-started/link-component.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
sidebar_label: 'Link component'
displayed_sidebar: webtoolsLinksSidebar
slug: /addons/links/link-component
---

# Link component
This addon provides a custom field for you to create internal linking. It's good to note that the custom field only provides you a way to set the URL value of a link. We recommend you to create a Component in your Strapi application which combines all the attributes needed to create a link. This can also include the link text and other possible attributes like target.

This component can then be used to as a reference field anywhere you need it.

<img src="/webtools/img/assets/addons/links/link-component.png" alt="Link component" />

The schema of this link component can look something like this:

```
{
"collectionName": "components_core_links",
"info": {
"displayName": "Link"
},
"options": {},
"attributes": {
"Text": {
"type": "string"
"required": true,
},
"Link": {
"type": "customField",
"required": true,
"customField": "plugin::webtools-addon-links.link"
}
}
}
```
Loading