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

When you say........

......you don't believe in god, you admit there is a god to believe in This is the meme post that started this train of thought in my mind.   I have heard one of my classmates say a long time ago, if women truly believed that they were equal to men, then they would not fight for it. While I never accepted it, i didn't know how to speak against it either. but it was there, somewhere in my mind. I think i made some sense out of it, at last. This is stupidity. This is like saying 'If we Indians seriously believed that freedom was ours, we would never have had to fight for it'. The fight for independance was a fight to make the other party understand and/or accept your viewpoint. The first resonable method might be to consider the other person's viewpoint. And using that as a base point,then work, with suitable proof and arguments, raise, alter, or reconstruct their viewpoint to match ours. This method follows the logic that people can and will be fair in an...

Markov chain in JavaScript

I made a small Markov Chain joke generator during my coffee break sometime last week. This is in continuation to the last post, where we did a similar thing. I did this specifically to see how well it could be extended in a language which I have typically not used before for ML/NLP. Let me run you guys through it. First of all, the Markhov Chains need a bunch of data to tell it how exactly you want your sentences constructed. str_arr=[sentence1, sentence2,...] Next, we create a dictionary of all trigrams present across the sentences. To do this, we use all bigrams as keys, and the succeeding word as the corresponding values. The key-value pairs thus form a trigram. As an example, consider the sentence : “The man had a dog.” The dictionary for this sentence will have : [ {[The, man] : [had]}, {[man, had] : [a]}, {[had, a] : [dog]} ] Next up, using the dictionary that we just made to create sentences. Here we provide the first two words, and let the function work...