urlify

simplifies converting utf8 strings to ASCII strings which can be used as readable URL-segments.

npm install urlify
2 downloads in the last day
41 downloads in the last week
236 downloads in the last month

Flattr this git repo

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

# npm install urlify

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:
    • 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 urlified
    • options overwrite above options. extendString has 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

make test

To run them in your browser use

make test-browser
<browser> http://127.0.0.1:3000
npm loves you