Skip to content

mlesniew/PicoSlugify

Repository files navigation

PicoSlugify

A lightweight Arduino framework library for converting strings into URL-friendly slugs.

Features

  • Simple and fast slug generation
  • Removes special characters and spaces
  • Converts to lowercase
  • Converts Unicode characters to their closest ASCII equivalent

Usage

PicoSlugify is super easy to use. Include the header, call a function, done!

slugify(...)

#include <Arduino.h>
#include <PicoSlugify.h>

void setup() {
    Serial.begin(115200);
    Serial.println(PicoSlugify::slugify("Zażółć gęślą jaźń", '-'));
    // zazolc-gesla-jazn
}

isSlug(...)

#include <Arduino.h>
#include <PicoSlugify.h>

void setup() {
    Serial.begin(115200);
    Serial.println(PicoSlugify::isSlug("already-slug-123", '-'));  // 1
    Serial.println(PicoSlugify::isSlug("Not a slug", '-'));        // 0
}

unidecode(...)

#include <Arduino.h>
#include <PicoSlugify.h>

void setup() {
    Serial.begin(115200);
    Serial.println(PicoSlugify::unidecode("Grüße aus Łódź"));
    // Gruse aus Lodz
}

Language support

Language mapping is controlled with preprocessor flags set in your platformio.ini.

  • By default, support for German and Polish is enabled.
  • To take full control, disable defaults in project settings:
[env:your_env]
build_flags =
    -D PICOSLUGIFY_UNIDECODE_DISABLE_DEFAULT
  • Then enable only the languages you want:
[env:your_env]
build_flags =
    -D PICOSLUGIFY_UNIDECODE_DISABLE_DEFAULT
    -D PICOSLUGIFY_UNIDECODE_GERMAN
    ; -D PICOSLUGIFY_UNIDECODE_POLISH

Currently supported languages:

  • German (PICOSLUGIFY_UNIDECODE_GERMAN)
  • Polish (PICOSLUGIFY_UNIDECODE_POLISH)

Examples

  • examples/Slugify — demonstrates slugify(...)
  • examples/Unidecode — demonstrates string-level unidecode(...)
  • examples/IsSlug — demonstrates isSlug(...)

About

Lightweight slugify and unidecode library for the Arduino framework

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors