Skip to content

slugify/slugify

Repository files navigation

Slugify

GitHub license javadoc

Description

Small utility library for generating speaking URLs.

Usage Examples

Slugify is published in the Maven Central Repository: Click here

Basic

final Slugify slg = Slugify.builder().build();
final String result = slg.slugify("Hello, world!");
// result: hello-world

Underscore Separator

final Slugify slg = Slugify.builder().underscoreSeparator(true).build();
final String result = slg.slugify("Hello, world!");
// result: hello_world

Case Sensitive

final Slugify slg = Slugify.builder().lowerCase(false).build();
final String result = slg.slugify("Hello, world!");
// result: Hello-world

Specifying a Locale

final Slugify slg = Slugify.builder().locale(Locale.GERMAN).build();
final String result = slg.slugify("ä");
// result: ae

Custom Replacements

final Slugify slg = Slugify.builder()
    // provided as a map
    .customReplacements(Map.of("Foo", "Hello", "bar", "world"))
    // provided as single key-value
    .customReplacement("Foo", "Hello")
    .customReplacement("bar", "world")
    .build();

final String result = slg.slugify("Foo, bar!");
// result: hello-world

Transliteration

Requirements

Gradle 6+

For Gradle 6+ users there's a feature variant which can be used as follows:

capabilities {
    requireCapability('com.github.slugify:slugify-transliterator')
}

For more information about feature variants please check the section Modeling feature variants and optional dependencies of gradle's user guide.

Other

Manually add the optional dependency com.ibm.icu:icu4j to your project.

Usage Example

final Slugify slg = Slugify.builder().transliterator(true).build();
final String result = slg.slugify("Б");
// result: b