Easy Gravatar for your Meteor App
Inside your project folder run
$ meteor add jparker:gravatar
The following methods under the Gravatar
namespace will be available
on both the client and server:
-
cleanString(string)
: Remove starting and trailing whitespaces and lowercase the input string -
isHash(string)
: check if a string matches the MD5 format: 32 chars string containing letters froma
tof
and digits from0
to9
-
hash(string)
: takes an input and runs it throughCryptoJS.MD5
to get the MD5 hash back. -
imageUrl(string, object)
: computes the URL for the avatar, given an email or an MD5 hash and a set of options to be passed to the Gravatar API.
See the documented code for more details.
See the test file for more examples of input -> output.
var email = 'email@example.com';
var options = {
secure: true // choose between `http://www.gravatar.com`
// and `https://secure.gravatar.com`
// default is `false`
};
var md5Hash = Gravatar.hash(email);
// 5658ffccee7f0ebfda2b226238b1eb6e
var url = Gravatar.imageUrl(email, options);
// https://secure.gravatar.com/avatar/5658ffccee7f0ebfda2b226238b1eb6e
var url2 = Gravatar.imageUrl(md5Hash, options);
// https://secure.gravatar.com/avatar/5658ffccee7f0ebfda2b226238b1eb6e
options
may contain key:value
pairs of parameters to be added to the URL. For a list of parameters available, see Gravatar's documentation
// Example:
var url = Gravatar.imageUrl('email@example.com', {
size: 34,
default: 'mm'
});
// http://www.gravatar.com/avatar/5658ffccee7f0ebfda2b226238b1eb6e?size=34&default=mm
Some users prefer to include address tags in their email when they sign up for services - for example joe+games@gmail.com
, or joe+thisnewservice@fastmail.com
. Most of the time they won't bother setting a gravatar for the new email address, so you'd normally get a palceholder image or 404 from Gravatar.
To address this problem, you can look at idorecall:email-normalize
.
Previously this was included but as
email-normalize
seems to be unmaintained I decided to drop the dependency and give full controll back to the developer. I believe a package like this one should do one thing well and one thing only.
- Based on Tom Coleman's work