Skip to content

Latest commit

 

History

History
79 lines (64 loc) · 2.28 KB

README.md

File metadata and controls

79 lines (64 loc) · 2.28 KB

Slugify

GitHub license javadoc

MODIFICATION

  • Eliminate icu library (20Mb) to use use core features, not intended to be used with non ascii characters.

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