Slugger
Dead simple string slugification (a. la. django) for node and the broswer.
Install / Use
/learn @HenrikJoreteg/SluggerREADME
slugger
Dead simple slugification for node and browser.
What it does:
Converts any string into a url friendly version:
slugger('Hello yOu CRAZY Swede!'); // returns 'hello-you-crazy-swede'
// optionally maintain case
slugger('Hello yOu CRAZY Swede!', {maintainCase: true}); // returns 'Hello-yOu-CRAZY-Swede'
// optionally use a different replacement character
slugger('Hello yOu CRAZY Swede!', {replacement: '_'}); // returns 'hello_you_crazy_swede'
// optionally trim to max length while not breaking any words
slugger('Hello yOu CRAZY Swede!', {smartTrim: 9}); // returns 'hello-you'
// optionally allow additional characters
// just pass string of characters that would normally be removed
// that you want to allow.
slugger('Hello yOu CRAZY Swede!', {alsoAllow: "!&"}); // returns 'hello-you-crazy-swede!'
// decodes URI components by default, so {decode: true} is not required
slugger('boo%20boo') // returns 'boo-boo';
// now without decode
slugger('boo%20boo', {decode: false}) // returns boo20boo;
That's all there is to it!
Installing
npm install slugger
Or just grab the slugger.js file and drop it into your project.
It also plays nicely with: https://github.com/henrikjoreteg/clientmodules
Why did I write this when there's already https://github.com/dodo/node-slug ?
Because I wanted something simpler that didn't try to do anything with special characters or unicode and I wanted something that worked well in the browser or node.
Tests?
Just run npm test
Changelog
- 0.1.0 - Adding option to allow other characters
Dig it?
Then you should probably follow @HenrikJoreteg on twitter.
License
MIT
Related Skills
node-connect
348.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
348.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
348.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
