Skip to main content

Wicktionary Bookmarklet

A bookmarklet is defined by Wictionary as "A small piece of JavaScript code stored as a URL within a bookmark". I have been using bookmarklets to make my life easier from a long time.

Some that I use regularly are

  1. [Read Now] : This makes it really easy for me to read pages which are unreadable.
  2. [Google Translate] : Translates pages
  3. [Mobilise This] : Formats the page for mobile viewing by Google.
  4. [Acronym lookup] : This helps me find the meanings for abbreviations.
The links in [] brackets are bookmarklets. Just drag them to your bookmark bar.

I picked these up from these two pages. There is also a whole website dedicated to them bookmarklets.

As a developer, what i like about bookmarklets is that they are coded in JavaScript and i can meddle with them till my heart's content, without worrying about breaking anything.

However, i wanted a bookmarklet that would allow me to look up meaning of words. Wiktionary was my open dictionary of choice. They did have bookmarklets, but I didn't like the way the current page was replaced by the relevant wiktionary entry. Also i didn't know what was going on inside the bookmarklet. So i wanted to (a). know what was going on? ,and (b). open the wiktionary entry in a new page.

The code of the official wiktionary bookmarklet was taken and then made into a human readable form.

javascript:(function(){
q=window.getSelection().toString();
if(!q)q=prompt('Wiktionary:');
if(q)location.href='http://en.wiktionary.org/w/wiki.phtml?search='+encodeURI(q);
})()

The first line defines that the string is a bit of javascript code. The way the function is defined; it is called an anonymous function. This is to ensure that the function does not return an undefined value ( discussed here ).

In the second line, the selected text is added as the value of a variable q after making it into a string (.toString()). The 3rd line asks us which word we want the meaning for (prompt('Wiktionary:')) if no text has been selected (if(!q)).

The 4th line: Since now the text has been selected (or entered). The relevant webpage is opened.

After doing some googling, i came up with this page that explained how the Window.open function worked just the way i wanted it to. So I changed the 4th line and my final code was:

javascript:(function(){
Q=window.getSelection().toString();
if(!Q){Q=prompt('Wiktionary:')}
if(Q){window.open('http://en.wiktionary.org/w/wiki.phtml?search='+encodeURI(Q)+'')}
})()

The website minifyjavascript.com runs a javascript minifying service. Using this I minified my code and now, proudly present the [Wiktionary] bookmarklet, featuring opening the meaning of the selected (or entered) word using wiktionary in a new browser window. Do drag away to the (bookmark) bar and use for your pleasure.

Comments

  1. Hi Trs,
    Well written article. This was a very interesting concept. Im hoping to modify ur bookmarklet and experiment with it.. definitely made browsing the net easier.. :)

    ReplyDelete
    Replies
    1. Thanks a lot dude.

      For starters, Do try looking at coding a bookmarklet for http://www.indiabookstore.net . it compares book prices including flipkart which both junglee and google dont do (a real chore, doing that). That would be really nice.

      Delete

Post a Comment

Popular posts from this blog

In the right direction, perhaps ?

i've been toying around with a PHP framework called symfony . actually i wanted to know what MVC ( Model-View-Controller ) was, and i am really comfortable with PHP, so downloaded a copy and made a sandbox on my xampp htdocs directory. after i started playing around it just hit me that how much programming has simplified over the 12 years since i wrote my "hello world" program in c. where 150 people were needed to code a simple website back then, that too in about a year, now things can be done with just one or two programmers in about a fortnight. i think thats awesome. computers are finally doing what they were invented to do - to reduce human work. one really interesting thing is the askeet tutorial. here they guide you through making a replica of their site over 24 days, with each tutorial taking not more than one and a half hours to completely understand and implement. Also the symfony site itself is created on symfony, and that's really cool. ok, what hit me

a keeper from kiterunner

today was watching kiterunner. awesome movie. it was this dialog that hit me hard - "Now, no matter what the mullah teaches, there is only one sin, only one. And that is theft. Every other sin is a variation of theft... When you kill a man, you steal a life. You steal his wife's right to a husband, rob his children of a father. When you tell a lie, you steal someone's right to the truth. When you cheat, you steal the right to fairness... There is no act more wretched than stealing, Amir."

Mind and Friendships

This post seems to be ( atleast in my mind ) a long one. but before i write about the topic of the blog post, i would like to describe my opinions of connected topics which will lead to the actual post. First let us look at the growth of the mind as a graph covering fixed points, each of which are a topic of knowledge. A person's mind, at the beginning of life is like a line ( connecting 2 points, hunger and mother's breast ) which comes into existence only at some points and otherwise is simply a blank. after a few months, the lines become more permanent and stressed. after some more time, as the child grows and learns and understands more things, some more points add to this. if we imagine our mind to be the space enclosed in these points, then we would have a multidimensional graph. (think a really very weirdly shaped object.). However, the " The mind, once expanded to the dimensions of larger ideas, never returns to its original size. " - Oliver Wendell