Here some examples how to use a slugger.
A slugger is threadsafe. That’s the reason why you always build a new slugger, if you want to change the options it uses. For more detailed examples see the unit tests in src/main/tests.
Generate a default slug:
final Slug slugger = Slug.Builder.newBuiler().create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !"); // Output: schoener-titel-laesst-gruessen-bel-ete System.out.println(slug);
Asterisk as separator:
final Slug slugger = Slug.Builder.newBuiler() .separator("*") .create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !"); // Output: schoener*titel*laesst*gruessen*bel*ete System.out.println(slug);
Underscore as separator:
final Slug slugger = Slug.Builder.newBuiler() .separator("_") .create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !"); // Output: schoener_titel_laesst_gruessen_bel_ete System.out.println(slug);
Allow URI characters with slash:
final Slug slugger = Slug.Builder.newBuiler() .uric(true) .create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !"); // Output: schoener-titel-laesst-gruessen?-bel-ete System.out.println(slug);
Allow URI characters without slash:
final Slug slugger = Slug.Builder.newBuiler() .uricNoSlash(true) .create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !"); // Output: schoener-titel-laesst-gruessen?-bel-ete System.out.println(slug);
Allow mark characters:
final Slug slugger = Slug.Builder.newBuiler() .mark(true) .create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !"); // Output: schoener-titel-laesst-gruessen!-bel-ete-! System.out.println(slug); final Slug slugger = Slug.Builder.newBuiler().create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !", { truncate: 20 }); System.out.println(slug); // Output: schoener-titel
final Slug slugger = Slug.Builder.newBuiler() .maintainCase(true) .create(); final String slug = slugger.get("Schöner Titel läßt grüßen!? Bel été !"); System.out.println(slug); // Output: Schoener-Titel-laesst-gruessen-Bel-ete
German symbols:
final Slug slugger = Slug.Builder.newBuiler() .lang(Language.GERMAN) .create(); final String slug = slugger.get("Äpfel ♥ Birnen!"); System.out.println(slug); // Output: aepfel-liebe-birnen
English symbols (is default, just to clarify):
final Slug slugger = Slug.Builder.newBuiler() .lang(Language.ENGLISH) .create(); final String slug = slugger.get("Apple ♥ Pear!"); System.out.println(slug); // Output: apple-love-pear
Do not replace any symbols by language:
final Slug slugger = Slug.Builder.newBuiler() .lang(Language.NONE) .create(); final String slug = slugger.get("Apple ♥ Pear!"); System.out.println(slug); // Output: apple-pear
Custom symbol replacement:
final Map<String, String> custom = new HashMap<>(); custom.put("♥", " doo "); final Slug slugger = Slug.Builder.newBuiler() .custom(custom) .create(); final String slug = slugger.get("Foo ♥ Bar * Baz"); // Output: foo-doo-bar-baz System.out.println(slug);
Allow mark characters:
final Map<String, String> custom = new HashMap<>(); custom.put("*", "Boo"); final Slug slugger = Slug.Builder.newBuiler() .mark(true) .custom(custom) .create(); final String slug = slugger.get("Foo & Bar | (Baz) * Doo"); // Output: foo-and-bar-or-(baz)-boo-doo System.out.println(slug);
Multiple words:
final Map<String, String> custom = new HashMap<>(); custom.put("and", "und"); custom.put("or", ""); final Slug slugger = Slug.Builder.newBuiler() .custom(custom) .create(); final String slug = slugger.get("Foo and Bar or Baz"; // Output: foo-und-bar-baz System.out.println(slug);
Replace currency symbols:
final Slug slugger = Slug.Builder.newBuiler().create(); final String slug = slugger.get("NEXUS4 only $299"); // Output: nexus-4-only-usd299 System.out.println(slug); final Slug slugger = Slug.Builder.newBuiler() .maintin(case) .create(); final String slug = slugger.get("NEXUS4 only €299"; // Output: NEXUS-4-only-EUR299 System.out.println(slug);
Uppercase title words:
final Slug slugger = Slug.Builder.newBuiler() .titleCase(true) .create(); final String slug = slugger.get("Don't drink and drive"); // Output: Don-t-Drink-And-Drive System.out.println(slug);
Exclude words:
final Set<String> titleCaseExclude = new HashSet<>(); titleCaseExclude.add("and"); final Slug slugger = Slug.Builder.newBuiler() .titleCaseExclude(titleCaseExclude) .create(); final String slug = slugger.get("Don\"t drink and drive"); // Output: Don-t-Drink-and-Drive System.out.println(slug);