Coder Social home page Coder Social logo

sveinki / contextsearch Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cjscheller/contextsearch

0.0 1.0 0.0 6.21 MB

Firefox add-on to search selected text in a web page using your favorite search engines from a context menu or from a grid of icons.

License: Other

HTML 5.94% JavaScript 85.19% CSS 8.87%

contextsearch's Introduction

Context Search

Firefox add-on to search selected text in a web page using your favorite search engines.

How does it work

  • Select some text on a webpage
  • Right click (or Alt-click) on a selection
  • A context menu (or a grid of icons) appears, displaying the list of search engines chosen in the extension's preferences
  • Click on the search engine with which you’d like to search for the selected text

The search results will appear as defined in the extension's preferences page.

The extension includes an Image analysis tool. To analyse an image, right-click on the image and select: "Image analysis...". If present, the EXIF tags will appear in the sidebar along with a color histogram and color palette. A map will also show where the image was taken and in which direction if the GPS data is available.

Managing search engines

To manage your favorite search engines, you can go to the preferences page of Context Search. You can reach this page by opening the extensions page (Addon Manager) where all your add-ons are listed and then clicking on the "Preferences" button.

How to define a search engine

  1. The checkbox at the start of a line determines whether the search engine should appear in the context menu.
  2. The next item on the line contains the name of the search engine and is followed by a keyword.
  3. This keyword is used in the url address bar (or omnibox) after the word “cs “ and before the search terms (e.g. to search for linux using the search engine Wikipedia, you would type: ‘cs w linux’, where w is the keyword assigned to Wikipedia).
  4. The second checkbox specifies whether you’d like to use the search engine in a “multi-search”. A “multi-search” is a search performed using multiple search engines and can be selected in the context menu.
  5. The checkbox is followed by the search query string. This is the generic url you would use to perform a search. Search query strings may contain the parameters %s or {searchTerms} where you'd like your search terms to appear, i.e. the selected text.
  6. Click on and drag the move icon to the left of the trash icon to move each search engine up or down in the list.
  7. Click on the trash icon to remove a search engine from the list.

The 'Reset' button will re-load the default list of search engines and their associated favicons.

You can also import a JSON file containing your own list of search engines. It is strongly recommended to export your customized list of search engines as a backup in case anything goes wrong.

How to add a search engine to your custom list

  • visit mycroftproject.com and right-click on the main link of a listed search engine
  • use the page action (i.e. Context Search icon in the address bar) to add a search engine if the website supports open search
  • add a search engine manually via the Options page (you can test the query string before adding the search engine)

How to perform a search in the omnibox

In the omnibox (or url address bar), type 'cs ' (without the quotes, and where cs stands for Context Search) followed by the keyword you have chosen for your seaarch engine in the extension's preferences, e.g. 'w ' (again without quotes) for Wikipedia, followed by your search term(s). The dot ('.') and the exclamation mark ('!') are reserved keywords.

Here are some examples:

cs w atom will search for the word 'atom' in Wikipedia.

cs . will open the Options page

cs ! cold fusion will perform a multi-search for the search terms 'cold fusion'

The main structure of a JSON file containing the search engines

{
  "id": {
    "index": 0,
    "name": "search engine's name",
    "keyword": "keyword to be used in an omnibox search",
    "multitab": "takes the value true or false depending on whether this search engine should be included in a multi-search or not",
    "url": "search engine query string (without the search terms)",
    "show": "takes the value true if the search engine is to be shown in the context menu or false if not",
    "base64": "a base 64 string representation of the search engine's favicon" 
  }
}

Here is an example of a JSON file containing 3 search engines:

{
  "bing": {
    "index": 0,
    "name": "Bing",
    "keyword": "b",
    "multitab": false,
    "url": "https://www.bing.com/search?q=",
    "show": true,
    "base64": ""
  },
  "google": {
    "index": 1,
    "name": "Google",
    "keyword": "g",
    "multitab": false,
    "url": "https://www.google.com/search?q=",
    "show": true,
    "base64": ""
  },
  "yahoo": {
    "index": 2,
    "name": "Yahoo!",
    "keyword": "y",
    "multitab": false,
    "url": "https://search.yahoo.com/search?p=",
    "show": true,
    "base64": ""
  }  
}

It is not required to provide the base 64 string representation of any search engine's favicon. This string will automatically be loaded for you.

The Firefox add-on may be found here: https://addons.mozilla.org/firefox/addon/contextual-search/

Special thanks to the following contributors for the translations

  • Geoffrey De Belie for the Dutch translation
  • Krzysztof Galazka for the Polish translation
  • Sergio Tombesi for the Italian and Spanish translations
  • Fushan Wen for the Chinese translation

Code made by others used in this extension

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.