makeSlug method

String makeSlug(
  1. String text, {
  2. String separator = '-',
})

Implementation

String makeSlug(String text, {String separator = '-'}) {
  Map<String, String> chars = _latinMap();
  chars.addAll(_greekMap());
  chars.addAll(_turkishMap());
  chars.addAll(_russianMap());
  chars.addAll(_ukrainianMap());
  chars.addAll(_czechMap());
  chars.addAll(_polishMap());
  chars.addAll(_latvianMap());
  chars.addAll(_currencyMap());
  chars.addAll(_symbolsMap());
  chars.addAll(_vietnameseMap());
  String slug = '';
  text = text.toLowerCase();
  for (var i = 0; i < text.length; i++) {
    var char = text[i];
    if (chars[char] != null) {
      slug += chars[char]!;
    } else {
      slug += char;
    }
  }
  slug = slug.replaceAll(RegExp(r"[^A-Za-z0-9]"), " ");
  //Remove multiple white space
  slug = slug.replaceAll(RegExp(' +'), ' ');
  //Remove whitespace from first and last
  slug = slug.trim();
  slug = slug.replaceAll(RegExp(r"\s+"), separator);
  return slug;
}