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!
# npm install urlify
# git clone git://github.com/Gottox/node-urlify.git
# cd node-urlify
# make build
This compiles a browserbuild version to dist/urlify.js
var urlify = require('urlify').create(options);
urlify(text);
<!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:addEToUmlauts
default:false
replaces 'ä', 'ö', and 'ü' with 'ae', 'oe', and 'ue' instead of 'a', 'o', and 'u'.szToSs
default:true
if true replaces 'ß' with 'ss', otherwise with 'sz'.spaces
default:"_"
replaces whitespace characters with this character.toLower
default:false
converts all uppercase ASCII characters to lowercase.nonPrintable
default:"_"
replaces other non-ASCII characters with this character.trim
default:false
replaces multiple whitespaces/non-ASCII characters by one placeholder.failureOutput
default:"non-printable"
returned result if output is reduced to an empty string.extendString
default:false
If 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)
string
may a string to be urlifiedoptions
overwrite above options.extendString
has no effect.
If extendString
is true
, you may also use "Hello World".urlify()
to urlify strings.
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'
The tests are based on expect.js by learnBoost.
To run the tests in node use
make test
To run them in your browser use
make test-browser
<browser> http://127.0.0.1:3000