Thanks to visit codestin.com
Credit goes to github.com

Skip to content

slugify.scm --- A simple slugification module for Guile Scheme

License

ayys/guile-slugify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slugify.scm 🐌

A simple Guile Scheme implementation of slugify, inspired by Django’s slugify.

Converts human-readable text into clean, lowercase, URL-safe identifiers.

✨ Features

  • Converts Unicode or ASCII strings into slugs
  • Optionally removes non-ASCII characters (NFKD + ASCII fallback)
  • Collapses whitespace and separators into a single character
  • Supports custom separator characters
  • Trims leading/trailing dashes or underscores

📦 Installation

Just copy slugify.scm into your project and (use-modules (slugify)).

If using as a library, ensure it's in your GUILE_LOAD_PATH:

export GUILE_LOAD_PATH="$GUILE_LOAD_PATH:$PWD"

API

(slugify str #:optional allow-unicode replacement)
Argument description
str Input string to slugify
allow-unicode If #f, normalize to ASCII (NFKD + strip accents)
replacement Char to use instead of - for word separation

Usage

(use-modules (slugify))

(slugify "Hello, World!")             ;; "hello-world"
(slugify "Café Déjà Vu" #f)           ;; "cafe-deja-vu"
(slugify "Café Déjà Vu" #t)           ;; "café-déjà-vu"
(slugify "foo bar" #t #\_)            ;; "foo_bar"
(slugify "你好")                       ;; "你好"

Running tests

guile -L . test-slugify.scm

About

slugify.scm --- A simple slugification module for Guile Scheme

Resources

License

Stars

Watchers

Forks

Packages

No packages published