URLify
This node library simplifies converting utf8 strings to ASCII strings which can be used as readable URL-segments
If you're happily using node-urlify, please leave an entry at the wiki. Thank you!
Installation
Node
Browser
# git clone git://github.com/Gottox/node-urlify.git
# cd node-urlify
# make build
This compiles a browserbuild version to dist/urlify.js
Usage
Node
var urlify = require('urlify').create(options); urlify(text);
Browser
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script type="text/javascript" src="dist/urlify.js"></script> </head> <body> <script type="text/javascript"> var urlify = Urlify.create(options); document.write(urlify(text)); </script> </body> </html>
options(optional) is a config map and can contain the following:addEToUmlautsdefault:falsereplaces 'ä', 'ö', and 'ü' with 'ae', 'oe', and 'ue' instead of 'a', 'o', and 'u'.szToSsdefault:trueif true replaces 'ß' with 'ss', otherwise with 'sz'.spacesdefault:"_"replaces whitespace characters with this character.toLowerdefault:falseconverts all uppercase ASCII characters to lowercase.nonPrintabledefault:"_"replaces other non-ASCII characters with this character.trimdefault:falsereplaces multiple whitespaces/non-ASCII characters by one placeholder.failureOutputdefault:"non-printable"returned result if output is reduced to an empty string.extendStringdefault:falseIf true, extends String object with urlify method. So after calling the constructor, you can use"Hello World".urlify()
- returns: a configured function:
function(string, options)stringmay a string to be urlifiedoptionsoverwrite above options.extendStringhas no effect.
If extendString is true, you may also use "Hello World".urlify()
to urlify strings.
Example
var urlify = require('urlify').create({ addEToUmlauts:true, szToSs:true, spaces:"_", nonPrintable:"_", trim:true }); urlify("das eiskalte Händchen") // 'das_eiskalte_Haendchen' urlify("das eiskalte Händchen", { addEToUmlauts:false }) // 'das_eiskalte_Handchen' urlify("Heiße Suppe") // 'Heisse_Suppe' urlify("Heiße Suppe", { szToSs:false }) // 'Heisze_Suppe' urlify("Soon!") // 'Soon' urlify("This is very important!!! Please read!!!") // 'This_is_very_important_Please_read'
Tests
The tests are based on expect.js by learnBoost.
To run the tests in node use
To run them in your browser use
make test-browser <browser> http://127.0.0.1:3000
