{"id":16163960,"url":"https://github.com/rawleyfowler/sluj","last_synced_at":"2025-07-15T18:37:32.953Z","repository":{"id":40258237,"uuid":"493063911","full_name":"rawleyfowler/sluj","owner":"rawleyfowler","description":"Sluj, the small but mighty slug encoding library for Clojure","archived":false,"fork":false,"pushed_at":"2022-11-04T01:40:27.000Z","size":301,"stargazers_count":37,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T12:45:51.363Z","etag":null,"topics":["clojure","slug","slugifier","slugify","sluj","url","web"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rawleyfowler.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-17T02:13:02.000Z","updated_at":"2025-01-27T05:13:44.000Z","dependencies_parsed_at":"2023-01-20T23:17:05.612Z","dependency_job_id":null,"html_url":"https://github.com/rawleyfowler/sluj","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawleyfowler%2Fsluj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawleyfowler%2Fsluj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawleyfowler%2Fsluj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rawleyfowler%2Fsluj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rawleyfowler","download_url":"https://codeload.github.com/rawleyfowler/sluj/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243955040,"owners_count":20374368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojure","slug","slugifier","slugify","sluj","url","web"],"created_at":"2024-10-10T02:44:52.870Z","updated_at":"2025-03-18T22:31:23.884Z","avatar_url":"https://github.com/rawleyfowler.png","language":"Clojure","readme":"# Sluj\nSluj is a very small library for converting strings of UTF-16 text to slugs. A slug is a piece of text that is URL safe. Sluj can translate a wide variety of characters, including but not limited to cyrillic, and japanese characters.\n\nThis library adheres to the following:\n\u003cul\u003e\n    \u003cli\u003e\n        \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc3986\"\u003eRFC 3986\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n        Dependency-less\n    \u003c/li\u003e\n\u003c/ul\u003e\n\nShout out to [Trott/slug](https://github.com/Trott/slug) for inspiring me to make this over a rainy weekend.\n\n## Clojars\n![Clojars Project](https://img.shields.io/clojars/v/com.github.rawleyfowler/sluj.svg)\n\nThis project is available on [Clojars](https://clojars.org/com.github.rawleyfowler/sluj/), and you can add it to your lein project via:\n```clojure\n[com.github.rawleyfowler/sluj \"1.0.2\"]\n```\n\n## Why?\nCurrently the most starred Slug clojure project is abandoned by the maintainer, plus it has dependencies. I thought that I could make it better, so I set out on this project.\n\n## Contributing\nParticularly looking for contributions to the locale settings of the project, as there is no way I could create a locale for every alphabet myself. Also, the library needs a little work in the multi-byte characters department.\n\n## Examples\n```clojure\n;; Simple examples\n(sluj \"Hey it's me!\") ;; =\u003e hey-its-me\n(sluj \"25 ways to pet a cat\") ;; =\u003e 25-ways-to-pet-a-cat\n\n;; UTF-16 examples\n(sluj \"I ♥ Unicode!\") ;; =\u003e i-unicode\n(sluj \"I ♥ Unicode!\" :♥ \"love\") ;; =\u003e i-love-unicode\n\n(sluj \"Turn this ship 200°!\") ;; =\u003e turn-this-ship-200\n(sluj \"Turn this ship 200 °!\" :° \"degrees\") ;; =\u003e turn-this-ship-200-degrees\n\n;; Non english characters\n;; These were made with google translate, sorry in advanced.\n;; Default locale is Russian for Cyrillics\n(sluj \"маленький подъезд\") ;; =\u003e malenkij-poduezd\n\n;; Change the locale if you wish\n(sluj \"маленький подъезд\" :locale \"bg\") ;; =\u003e malenykiy-podaezd\n\n;; Change sparator\n(sluj \"hi mom\" :separator \"%\") ;; =\u003e hi%mom\n\n;; Pass the charmap as a argument\n(sluj \"I have weird characters ☢ ♥\" :charmap {:♥ \"heart\" :☢ :radiate}) ;; =\u003e i-have-weird-characters-radiate-heart\n;; Alternatively\n(sluj \"I have weird characters ☢ ♥\" :♥ \"heart\" :☢ \"radiate\") ;; =\u003e i-have-weird-characters-radiate-heart\n\n;; Change the casing\n(sluj \"make me upper\" :casing \"upper\") ;; =\u003e MAKE-ME-UPPER\n```\n## License\nThis project is licensed via the MIT license. Please read through the `LICENSE` file at the root of the project for more information.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawleyfowler%2Fsluj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frawleyfowler%2Fsluj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawleyfowler%2Fsluj/lists"}