npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

strapi-plugin-auto-slug-manager-a-mi13

v1.1.0

Published

Universal auto slug generator for all Strapi content types with full Rich Text support (Blocks + Classic)

Readme

Strapi Plugin Auto Slug Manager

🔗 Universal auto slug generator for all Strapi content types with Rich Text support

✨ Features

  • Universal - Works with ANY content type that has a slug field
  • Rich Text Support - Extracts text from both Rich Text Blocks (new editor) and classic Rich Text (HTML) fields
  • Multiple Field Types - Supports string, Rich Text Blocks, and classic Rich Text fields
  • Cyrillic Support - Proper transliteration of Russian/Cyrillic characters
  • Smart Uniqueness - Automatically adds suffixes (-1, -2, -3) for unique slugs
  • Auto-discovery - Automatically finds and processes all content types with slug fields
  • Configurable - Update existing slugs or keep them unchanged
  • Admin Panel - Beautiful settings interface with real-time configuration
  • Zero Configuration - Works out of the box with sensible defaults
  • 🌐 Multi-locale Support - Choose from 8 different locales for transliteration (ru, en, de, fr, es, it, pl, tr)
  • 🎛️ Easy Configuration - Change locale directly from admin panel without code editing

🚀 Installation

npm install strapi-plugin-auto-slug-manager-a-mi13
# or
yarn add strapi-plugin-auto-slug-manager-a-mi13

⚙️ Configuration

Add the plugin to your config/plugins.js or config/plugins.ts:

module.exports = {
  'auto-slug-manager': {
    enabled: true,
    config: {
      enabled: true,                    // Enable/disable plugin globally
      sourceField: 'title',             // Primary field to generate slug from
      fallbackField: 'name',            // Fallback field if primary is empty
      handleRichText: true,             // Process Rich Text (blocks) fields
      addSuffixForUnique: true,         // Add suffixes for uniqueness
      supportCyrillic: true,            // Support Cyrillic transliteration
      updateExistingSlugs: true,        // Update existing slugs when title changes
      slugifyOptions: {
        lower: true,
        strict: true,
        locale: 'ru'
      }
    }
  }
};

📖 Usage

  1. Add a slug field to any content type in your Strapi schema
  2. Create or edit entries - slugs will be automatically generated from title or name fields
  3. Rich Text support - Works with both regular string fields and Rich Text editor fields

Example Content Type Schema

{
  "kind": "collectionType",
  "collectionName": "articles",
  "info": {
    "singularName": "article",
    "pluralName": "articles",
    "displayName": "Articles"
  },
  "attributes": {
    "title": {
      "type": "blocks"
    },
    "slug": {
      "type": "uid",
      "targetField": "title"
    }
  }
}

🎯 How it Works

  1. Auto-discovery: Plugin scans all content types for slug fields
  2. Lifecycle hooks: Registers beforeCreate and beforeUpdate hooks
  3. Smart text extraction: Automatically detects and processes different field types:
    • String fields → direct text extraction
    • Rich Text Blocks → extracts text from JSON structure
    • Classic Rich Text → strips HTML tags and extracts clean text
  4. Slug generation: Uses slugify with Cyrillic support
  5. Uniqueness check: Ensures all slugs are unique within the content type

🔧 API Endpoints

The plugin provides API endpoints for managing settings:

  • GET /auto-slug-manager/settings - Get current settings
  • PUT /auto-slug-manager/settings - Update settings
  • GET /auto-slug-manager/status - Get plugin status and discovered content types

📝 Field Types Supported

Rich Text Blocks (New Editor)

{
  "title": [
    {
      "type": "paragraph",
      "children": [
        {
          "type": "text",
          "text": "My Article Title"
        }
      ]
    }
  ]
}

Rich Text (Classic Editor)

{
  "title": "<h1>My Article Title</h1><p>Some description</p>"
}

Regular String

{
  "title": "My Article Title"
}

All three will generate: my-article-title

🌍 Multi-locale Support

The plugin supports 8 different locales for transliteration. You can change the locale directly from the admin panel:

Available Locales

| Locale | Language | Example | |--------|----------|---------| | ru | Russian | Моя статьяmoya-statya | | en | English | My Articlemy-article | | de | German | Mein Artikelmein-artikel | | fr | French | Mon Articlemon-article | | es | Spanish | Mi Artículomi-articulo | | it | Italian | Il Mio Articoloil-mio-articolo | | pl | Polish | Mój Artykułmoj-artykul | | tr | Turkish | Benim Makalembenim-makalem |

How to Change Locale

  1. Go to Admin Panel → Settings → Auto Slug Manager
  2. Find "🔧 Настройки генерации слагов" section
  3. Select your preferred locale from the dropdown
  4. Click "Сохранить настройки"

Examples

Russian locale (ru):

  • Моя статьяmoya-statya
  • Тестовая записьtestovaya-zapis

English locale (en):

  • My Articlemy-article
  • Test Entrytest-entry

🔧 Development

# Clone the repository
git clone https://github.com/A-mi13/strapi-plugin-auto-slug-manager
cd strapi-plugin-auto-slug-manager

# Install dependencies
npm install

# Build the plugin
npm run build

🤝 Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

📄 License

MIT License - see LICENSE file for details.

🐛 Issues

Found a bug? Please create an issue on GitHub.

📦 Related


Made with ❤️ for the Strapi community