6 ms·
JS Humanize (Give data a human touch)
If you are familiar with Django you are familiar with a nice set of template tags called "humanize". In essence it turns data such as "13 April 2012" into "2 days ago" or "1000000000" into "1.0 billion". JS Humanizer is a jQuery counterpart to the Django humanize template tags we wrote and thought that others might find it useful too.
- callumjones 14y agoIs it possible to have these in a stand alone library/namespace without the need for bringing the whole of jQuery with it? Not everyone uses jQuery in their JS application and it certainly would aid those who perform server-side JS.
- Groxx 14y agoIMO it's especially heinous because I didn't see a single piece of jQuery use in the code (I may have missed it, though). All they seem to be requiring jQuery for is to add to the $ namespace. That pedantry aside, it seems like a decent enough chunk of code, and it's very easy to read. More libraries should be this clean.
- TamDenholm 14y agoThis is perhaps an inelegant solution but i've found it useful sometimes, you can get standalone functions of most of these by using a JS port of PHP functions called phpjs (phpjs.org), while i understand PHP is as cool as toe fungus on HN right now, its a solution. EDIT: Actually having now looked at the code, it seems a lot of it is specifically using the phpjs library.
- chetan51 14y agoI've removed the jQuery dependency and submitted a pull request (https://github.com/milanvrekic/JS-humanize/pull/1 https://github.com/milanvrekic/JS-humanize/pull/1).
- mvrekic 14y agojQuery bit was originally intended to make it compatible with require.js loading; chetan51, Groxx - thanks for pointing it out. We removed that bit but we missed the dependancy, removed now thanks to chetan51
- dominicrodger 14y agoNice work! Might want to update the README - it's no longer a jQuery plugin.
- callumjones 14y agoSweet! Might be needing this library very soon!
- chris_wot 14y agoThis might need some internationalization support...
- pferreir 14y agoI totally agree. i.e. plural should be handled by i18n libraries. Same thing for the thousands separator, different locales use different separators/styles.
- alastairpat 14y agopferreir, just a heads-up - you've been hellbanned. This means all of your comments are automatically marked as [dead], but you can't see this.
- deleted 14y ago[deleted]
- pferreir 14y agoHellbanned? What is that supposed to mean? I don't remember having done anything wrong.
- Estragon 14y agoPferreir, hellbanning is where your posts appear normally when rendered for your account, but do not show up for anyone else. Try viewing this thread using a freshly created HN account. Don't know why this has happened to you...
- pferreir 14y agoThanks for the heads up. I mean, I noticed that I received some downvotes for a comment I made on a particular post: http://news.ycombinator.com/item?id=2849016 http://news.ycombinator.com/item?id=2849016 But nothing that justifies a ban. I am not a troll, let alone a recurrent one. Not to mention that the practice of hellbanning is highly unfair and misleading. Any clue on who I should contact to clear this out?
- alastairpat 14y ago
- whalesalad 14y agoThis is great! I love how it aligns with the Django templating system as well =) Although I do agree that this might be better off a something that is framework independent. A while ago I posted an example on Forrst of how you might write a simple and pure-js shorten function: https://forrst.com/posts/JavaScript_Shorten_Function-1up https://forrst.com/posts/JavaScript_Shorten_Function-1up
- sirn 14y agoNice idea, but seems to lack of any input escaping. => Humanize.truncatechars("<script>alert('yo');<\/script>", 30) "<script>alert('yo');</script>" => Humanize.linebreaks("<script>alert('yo');<\/script>") "<p><script>alert('yo');</script></p>" Bug filed.
- mvrekic 14y agoThanks. I am on it.
- ctz 14y agofilesizeformat (1234567890 = 1.15 Gb) This should be either 9.20 Gb or 1.15 GB.
- chrisbroadfoot 14y agoTwo things: 1) Gb should be GiB 2) it would be lovely to see some internationalisation support.
- mahmud 14y agoAll of them are built into Play Framework, fwiw.