> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# vsql_slugify extension for MySQL

> The vsql_slugify community extension turns arbitrary text into a URL-safe slug in MySQL, folding accents, lowercasing, and collapsing punctuation.

A slug is the readable part of a URL, and building one from a title means
folding accents, lowercasing, replacing punctuation with a separator, and
trimming the separators off the ends. `vsql_slugify` does that in SQL, which
means a generated column can hold the slug and keep it in step with the title.

|                              |                                                                           |
| ---------------------------- | ------------------------------------------------------------------------- |
| **Maintainer**               | [Anurag Ojha](https://github.com/intojhanurag)                            |
| **Source and documentation** | [intojhanurag/vsql-slugify](https://github.com/intojhanurag/vsql-slugify) |
| **License**                  | GPL-2.0                                                                   |

<Note>
  A third party writes and maintains this extension. VillageSQL does not build,
  test, or ship it, and the description below follows the maintainer's own
  documentation. Read that documentation before you rely on it.
</Note>

## Install

Build it from the repository, then install it into the server:

```sql theme={null}
INSTALL EXTENSION vsql_slugify;
```

## What it adds

| Function         | Returns | What it does                                                                                                                                    |
| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `slugify(value)` | text    | A URL-safe slug: accents folded, letters lowercased, runs of other characters collapsed to one separator, and separators trimmed from both ends |

The maintainer's documentation shows it used in a `STORED` generated column, so
the slug is computed when the row is written rather than on every read.

## See also

* [Generated columns](/docs/guides/generated-columns) — when a stored column beats a view
* [Available extensions](/docs/mysql-9.7/stable/extensions) — the full catalog
* [intojhanurag/vsql-slugify](https://github.com/intojhanurag/vsql-slugify) — source, examples, and the known limitations
