{"id":13477485,"url":"https://github.com/garywill/BigSearch","last_synced_at":"2025-03-27T05:31:52.373Z","repository":{"id":37597430,"uuid":"261625097","full_name":"garywill/BigSearch","owner":"garywill","description":"Browser extension. Definitly more than a GET/POST sender. Handily use search engines via a Flexible Tool! UI has Vimium-like feature 🌐🔍 (Pure-client. No 3rd-party server needed) 大术专搜 既专又广 手敲几下 纵横去往","archived":false,"fork":false,"pushed_at":"2025-01-30T14:30:28.000Z","size":731,"stargazers_count":253,"open_issues_count":13,"forks_count":16,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-20T23:04:57.982Z","etag":null,"topics":["browser","browser-extension","chrome-addon","chrome-extension","cross-browser","firefox","firefox-addon","firefox-extension","firefox-webextension","librewolf","metasearch","metasearch-engine","multi-search","multiple-searching","search-engine","search-history","search-tool","vimium","web-search","webextension"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/garywill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-06T01:45:29.000Z","updated_at":"2025-02-15T23:17:32.000Z","dependencies_parsed_at":"2024-02-25T06:56:57.990Z","dependency_job_id":"6711304c-5129-4822-bebd-18616389a0fa","html_url":"https://github.com/garywill/BigSearch","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garywill%2FBigSearch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garywill%2FBigSearch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garywill%2FBigSearch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garywill%2FBigSearch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/garywill","download_url":"https://codeload.github.com/garywill/BigSearch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245791679,"owners_count":20672666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","browser-extension","chrome-addon","chrome-extension","cross-browser","firefox","firefox-addon","firefox-extension","firefox-webextension","librewolf","metasearch","metasearch-engine","multi-search","multiple-searching","search-engine","search-history","search-tool","vimium","web-search","webextension"],"created_at":"2024-07-31T16:01:43.454Z","updated_at":"2025-03-27T05:31:51.970Z","avatar_url":"https://github.com/garywill.png","language":"JavaScript","readme":"[![firefox](https://img.shields.io/amo/v/big-search?style=flat-square\u0026color=success)](https://addons.mozilla.org/firefox/addon/big-search/) [![chrome](https://img.shields.io/chrome-web-store/v/ojcnjeigmgjaiolalpapfnmmhdmpjhfb?style=flat-square\u0026color=success)](https://chrome.google.com/webstore/detail/big-search/ojcnjeigmgjaiolalpapfnmmhdmpjhfb)\n\n\u003c!--readme_lang_switch begin--\u003e\nEnglish | [中文](https://github.com/garywill/BigSearch/blob/master/src/README_zh.md)\n\u003c!--readme_lang_switch end--\u003e\n\n# Big Search\n\nHandily use / switch **any one** or **multiple** (uninterruptedly) **search engines** (or search any websites).\n\nFriendly to novices, satisfying to experts. For daily, entertainment \u0026 work.\n\nIncludes **basic features** that a multi-engine web search tool should have:\n- Built-in Google,DuckDuckGo,Youtube,eBay,Github etc\n- GET/POST\n- Custom engines\n\nand so on. \u003cins\u003e\u003cu\u003e**Besides** above basic features, it **can also**✨: \u003c/u\u003e\u003c/ins\u003e\n- 🖋️ Single-line or **multi-line** text\n- ⌨️ Every search step can be done by just keyboard, without mouse. It's UI has built-in **Vimium-like** feature. Keys can quickly call different search engines ([details](#vem-feature-built-in-vimium-like))\n- 🖥️ Desktop (browser extension / web app) and mobile (web app)\n- 🔎 **Even works with** websites that **don't** provide GET/POST interface (so-called **In-page-Ajax-render** websites) (see [FAQ](#FAQ) below)\n- 🔎 Do many operations at once by one button. Cross-engine search calling\n- 💪 User **JSON programatical** advanced customization (**GUI** easy editing also). **Great flexibility**  in engine data \u0026 search method ([details](#Specification-of-Editing-Engines-Data-and-Special-Search-Methods))\n\nand so on... Go on for readme\n\n![signboard](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/signboard.jpg)\n\n\u003cp align=\"center\"\u003e\nSearch everywhere 🗺️ for everything 👨‍💻. Breadth \u0026 Focus.\u003cbr\u003e\n\u003c/p\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eTable of Contents\u003c/b\u003e\u003c/summary\u003e\n\n\u003c!--ts--\u003e\n   * [Start to Install \u0026amp; Use](#start-to-install--use)\n   * [Basic Screenshots, Demo, Video](#basic-screenshots-demo-video)\n   * [Features](#features)\n      * [Basic](#basic)\n      * [More](#more)\n      * [Even more: What's special about it](#even-more-whats-special-about-it)\n      * [Vem feature (built-in Vimium-like)](#vem-feature-built-in-vimium-like)\n      * [Safety \u0026amp; Privacy](#safety--privacy)\n   * [FAQ](#faq)\n         * [Q: What is \"In-page-Ajax-render\" ?](#q-what-is-in-page-ajax-render-)\n   * [List of engines](#list-of-engines)\n   * [Similar tools \u0026amp; methods comparison](#similar-tools--methods-comparison)\n   * [How to edit search engines (GUI or JSON)](#how-to-edit-search-engines-gui-or-json)\n      * [Examples](#examples)\n         * [Short Format](#short-format)\n         * [Full Format](#full-format)\n      * [Specification of Editing Engines Data and Special Search Methods](#specification-of-editing-engines-data-and-special-search-methods)\n         * [Specifications](#specifications)\n         * [Instructions for searching In-page-Ajax-render websites](#instructions-for-searching-in-page-ajax-render-websites)\n   * [For Developers](#for-developers)\n\u003c!--te--\u003e\n\n\u003c/details\u003e\n\n## Start to Install \u0026 Use\n\nWays to use:\n\n1. Browser extension (**recommended**)\n   - [Firefox Addon ![](https://img.shields.io/amo/v/big-search?style=flat-square\u0026color=success)](https://addons.mozilla.org/firefox/addon/big-search/)\n   - [Chrome Addon ![](https://img.shields.io/chrome-web-store/v/ojcnjeigmgjaiolalpapfnmmhdmpjhfb?style=flat-square\u0026color=success)](https://chrome.google.com/webstore/detail/big-search/ojcnjeigmgjaiolalpapfnmmhdmpjhfb) or [download .crx](https://gitlab.com/garywill/releaseapps-dl/-/tree/main). For: Google Chrome, Microsoft Edge, Brave, Vivaldi, Opera etc.\n\n2. [Web App ![](https://img.shields.io/website?down_message=repairing\u0026style=flat-square\u0026up_color=blue\u0026url=http%3A%2F%2Facsearch.atwebpages.com)](http://acsearch.atwebpages.com): For demo purpose. Web app can't function fully like extension. Web app can be used on mobile browsers.\n   \n\n## Basic Screenshots, Demo, Video\n\n| Use Extension   |  Breadth \u0026 Focus   | UI style choosable               |  \n| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |\n| ![en](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/en.png) | ![breadth](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/breadth.jpg)  | ![themes](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/themes.jpg)   | \n| Context selection search | Different UI adaptions                                                       | Vem (Vimium-like)  |\n| ![context](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/context.png) | ![3ui](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/3ui.webp) | ![vem](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/vem.webp) |\n| Edit search engines  | Special search methods, flexibility \u0026 extensibility |  | \n| ![edit](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/edit.png) | ![edit-add](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/edit-add.png) |  | \n\n![demo_gif](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/demo.gif)\n\n[Video of full introduction \u0026 instructions (Youtube)](https://youtu.be/u_DT7gpliKM) (choose the chapter you want to watch): \n\n## Features\n\n### Basic\n\n- 🔎 Use **any** search engines or inquery websites (multiple uninterruptedly) from one UI. Any that support GET/POST. (60+ built-in)\n- 🔎 **User** custom search engine ([details](#How-to-edit-search-engines-GUI-or-JSON)) (syncronizable in extension)\n- 🔎 Use **browser-installed** search engines (browser extension, so can directly use those you've added into browser, Firefox only)\n\n### More\n\n- 🖋️ Single-line or **multi-line** text input \u0026 send\n  \u003e Useful when e.g. want to translate article\n- 🗂️ Search engines **categorization**\n- 📋 Save (locally), **reuse** and manage search history (won't save when in incognito mode). Reusing method: double-click behavior\n  - In single-line edit: replace input box text\n  - In multi-line edit: insert to cursor\n- 🖱️ Quickly use **selected text** (single-line or multi-line) as search term\n  \u003e - No in Firefox incognito mode ([bug 1380812](https://bugzilla.mozilla.org/show_bug.cgi?id=1380812))\n- ⌨️ Configurable **keyboard shortcuts**. Default keys (may need changing manually):\n  - Open popup. Firefox: `Ctrl+Alt+S`   Chrome \u0026 others:`Ctrl+Shift+S` \n  - Set selected text as search term. Firefox: `Ctrl+Alt+D`  Chrome \u0026 others:`Ctrl+Shift+D`\n  \u003e [change on Firefox](https://bug1303384.bmoattachments.org/attachment.cgi?id=9051647) | change on Chrome: `chrome://extensions/shortcuts` \n- 🖥️ UI adapted multiply: **Desktop** (browser extension or web app) and **mobile** (web app only). Extention can show UI in: toolbar button popup UI, standalond tab, or sidebar (browser native)\n\n### Even more: What's special about it\n\n- ⌨️ Vem feature: Built-in **Vimium-like** feature. You can use keys to quickly call different search engines ([details](#vem-feature-built-in-vimium-like))\n- 🔎 **Even works with** websites that **don't** provide GET/POST interface (so-called In-page-Ajax-render websites) ([details](#Instructions-for-searching-In-page-Ajax-render-websites))\n- 🔎 Do many operations at once by one button\n- ✨ Good-looking, powerful \u0026 **lightweight** ([details](#Third-party-libraries-and-components-used))\n- 💪 User **JSON programatical** advanced customization (**GUI** easy editing also). Both built-in \u0026 user-defined search engines data use same format ([details](#Specification-of-Editing-Engines-Data-and-Special-Search-Methods)). **Great flexibility**  in engine data \u0026 search method:\n  - 🔲 **Multiple buttons** for **one engine**: more than one operations for one engine. (Buttons inherit data from engine. Some key-value data ​​in button can override the ones in engine name)\n  - 📞 **Cross-engine** use: Call another engine (or it's certain button action) to do the action\n  - 🔏 String-formatting or character-replacing user's input, according to engine's need. And, charset specifying.\n  - 🔎 Combining above two to search websites that don't provide search\n\n### Vem feature (built-in Vimium-like)\n\nIf you've used `!bang` or omnibox, they require you to memorize codes.\n\nWhile, Big Search's Vem mode **visually** gives you convinience \u0026 ability to use keyboard to (uninterruptedly) click different search engines' different buttons. Press `Shift+Enter` to enter Vem mode\n\n![vem](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/vemgif.gif)\n\n| Key | Function |\n| --- | --- |\n| `Shift+Enter` | Finish input and enter Vem mode (used when not in Vem mode) |\n| `Shift+Enter` | Opposite to above (used when in Vem mode) |\n| `I` | Quit Vem mode and focus inputbox |\n| `1` - `9` | Switch catagory (in Vem mode) |\n| `A` - `Z` | Press corresponding button (in Vem mode) |\n| `J` \u0026 `K` | Scroll table down/up |\n| more to be added ... |  |\n\n\u003e Above key bindings are not formally determined. May change in the future according to user feedback\n\nNote if new engines added, button sequence may change, so as button key (`A` - `Z`).\n  \n### Safety \u0026 Privacy\n\n- 🛡️ **No injection** to web (except when searching In-page-Ajax-render websites)\n- 🛡️ **Client side** functions and includes data fully. No necessary 3rd-party server. Completely **no** collecting user data\n- 🛡️ User custom engine GUI editor is used online (to shrink extension size). If you want extreme security, you can choose to disable communication between them, and use manual edit.\n\n## FAQ\n\n#### Q: What is \"In-page-Ajax-render\" ?\n\nA: \n\nGeneral GET/POST search flow is:\n1. You input search term and click search button\n1. Your browser loads the search term into a GET/POST query then sends it to target URL you specify\n1. Your browser opens a new tab and loads the HTML responded by the target website\n\nBig Search's In-page-Ajax-render search is:\n1. You input search term and click search button\n1. Your browser opens target website page you specified (search term not sent)\n1. Big Search injects a simple JS to the page, filling your search term into the text box on page (according to css selector you specified). Then JS triggers clicking the submit button (also according to css selector you specified) action\n1. The website page itself then uses Ajax to fetch search results, then your browser renders them on page\n\nThe In-page-Ajax-render search feature can be used to search websites that do not provide GET/POST search interface to public (e.g. SPA websites), or those who require random token assigned at a search entrance form.\n\n\"In-page-Ajax-render\" is short for \"**In-page**-submit-form-via-**Ajax**-then-XHR-gets-search-result-then-**render**-and-show-in-page-without-web-frame-navigation\"\n\n\u003e This part is also explained in the video description\n\n## List of engines\n\n60+ , currently. [See list of build-in search engines](https://github.com/garywill/BigSearch/blob/list/list.md#list-of-build-in-search-engines-in-big-search)\n\n## Similar tools \u0026 methods comparison\n\n[Comparison of open source web searching (multi-engines) tools](https://github.com/garywill/BigSearch/blob/list/list.md)\n\nExperienced users may prefer intuitive horizontal comparison to quickly know what's special. (Also know about others btw)\n\n## How to edit search engines (GUI or JSON)\n\n[Online GUI engine-editing tool (link 1)](https://garywill.github.io/BigSearch/editengine.html) ([link 2](http://acsearch.atwebpages.com/editengine.php)) \n\nGenerally, use above GUI editor. If you don't want to use GUI (e.g. you are advanced user and want to use advanced features), please go on and read below.\n\nBig Search users can edit search engines programatically. Following paragraphs of this section are about JSON-format engine data specification. For both:\n\n1. User-defined private engines\n2. Big Search built-in search engines (`enginesdata.js`)\n\n### Examples\n\n#### Short Format\n\nYou only need to write very simple JSON and have basic HTTP knowledge on `GET Method`.\n\n```json\n{\n    \"Google\": \"https://www.google.com/search?q={0}\",\n    \"Yahoo Search\": \"https://search.yahoo.com/search?q={0}\"\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eMore about short format\u003c/summary\u003e\n\nAlthough above is simple and correct, if you're programmer it's not recommended to use display name as key. We should at least, for example:\n\n```json\n{\n    \"yahoo\": {\n        \"dname\": \"Yahoo Search\",\n        \"full_url\": \"https://search.yahoo.com/search?q={0}\"\n    }\n}\n```\n\n\u003c/details\u003e\n\n#### Full Format\n\nUsing full format you have opportunity to use all the features of this tool.\n\nAlso, mixing short formatted and full formatted elements is supported.\n\n\u003cdetails\u003e\n\u003csummary\u003eFull format examples\u003c/summary\u003e\n\n```json\n{\n    \"yahoo\": {\n        \"dname\": \"Yahoo Search\",\n        \"addr\": \"https://search.yahoo.com\",\n        \"action\": \"https://search.yahoo.com/search\",\n        \"kw_key\": \"q\"\n    },\n\n    \"google\": {\n        \"dname\": \"Google\",\n        \"addr\": \"https://www.google.com\",\n        \"action\": \"https://www.google.com/search\",\n        \"kw_key\": \"q\",\n        \"btns\": {\n            \"search\": {\n                \"label\": \"Google Search\"\n            },\n            \"lucky\": {\n                \"label\": \"I'm Feeling Lucky\",\n                \"params\": [\n                    {\"key\":\"btnI\", \"val\": \"1\"}\n                ]\n            }\n        }\n    },\n\n    \"label_mbap\" : { \"lstr\": \"Cross-engine\" },\n    \"itunesapps\": {\n        \"dname\": \"iTunes Apps (Google)\",\n        \"addr\": \"https://www.apple.com/itunes/charts/free-apps/\",\n        \"btns\": {\n            \"search_apps\": {\n                \"label\": \"Search Apps\",\n                \"kw_format\": \"{0} site:apple.com/*app\",\n                \"use_other_engine\": {\n                    \"engine\": \"google\",\n                    \"btn\": \"search\"\n                }\n            }\n        }\n    },\n\n    \"label_usaj\": { \"lstr\": \"Search In-page-Ajax-render web\" },\n    \"chrome_ext_dev\": {\n        \"dname\": \"Chrome Ext Dev Doc\",\n        \"addr\": \"https://developer.chrome.com/docs/extensions/reference/\",\n        \"action\": \"https://developer.chrome.com/docs/extensions/reference/\",\n        \"ajax\": \".search-box__input\"\n    },\n\n    \"label_many\": { \"lstr\": \"Many Engines at once\" },\n    \"many_once\" : {\n        \"dname\": \"Many Engines at once\",\n        \"btns\": {\n            \"gg_ddg\": {\n                \"label\": \"Google + DDG\",\n                \"use_other_engine\": [\"google\", \"duckduckgo\"]\n            }\n        }\n    }\n}\n```\n\n\u003e This part is also explained in the video description\n\n\u003c/details\u003e\n\n### Specification of Editing Engines Data and Special Search Methods\n\n#### Specifications\n\nIn JSON format.\n\nEngine data in full format can contain following key-values (special search methods included):\n\n\u003cdetails\u003e\n\u003csummary\u003eSpecifications\u003c/summary\u003e\n\n```yaml\n// # Some key-value ​​in the button can override the key-value in the engine name\n{\n    \"engine_name\": {\n        \"dname\": \"Engine display name\",\n        \"addr\": \"Homepage URL\",  // # optional\n        \"tip\": \"Engine tip text\", // # optional\n        \n        \"action\": \"form action url\",\n        // # For example, https://search-engine.com/search?q=input_content,\n        // # The action is https://search-engine.com/search\n        \"kw_key\": \"The key name of the keyword in the query string\", // # In above example, it is q\n        \n        \"full_url\": \"http://www.example.com/search/{0}\", // # optional. Only when GET method. Will override above two. The entire url \n        \n        \"method\": \"get/post\", // # optional. default is get\n        \n        \"charset\": \"UTF-8/gb2312/gb18030/big5/iso-xxxx....\", // # optional. default UTF-8 (NOTICE: full_url not compatible with this\n        \n        \"allow_referer\": false, // # false(default)/true optional\n        \n        \"kw_replace\": [[\" \", \"-\"]], // # Optional, characters that need to be replaced in the search term. In this example, replace spaces with '-'\n        \"kw_format\": \"formatted string with {0}\", // # optional. {0} is like %s\n\n        \"params\":[ // # Optional, the key/value other than the keyword in the query string required for this operation. POST method may need\n            {\"key\": \"key\", \"val\": \"value\"},\n            // # For example, https://search-engine.com/search?q=input_content\u0026option=searchall\n            // # so {key: \"option\", val: \"searchall\"},\n        ],\n        \n        \"use_other_engine\": {   // # optional, use another engine to do the operation.\n            \"dbname\": \"bigsearch/user/browser\",   // # Optional. Where the engines database come from (3 available databases): BigSearch build-in database (default) / User custom database / Browser-installed database\n            \"engine\": \"engine name\", \n            \"btn\": \"button name\"   // # Optional. Absence will make fallback to the first button\n            // # this entire object can be simplified to an engine name string\n        },\n        // #  (if use array here, then do many operations at once)\n        \n        \"ajax\": ......  // # Optional. Read the In-page-Ajax-render websites instructions\n            \n        \"btns\": { // # optional. If there is no such item, a \"Search\" button is displayed, and clicking the button will do the default action\n            \"Button name\": {\n                \"label\": \"Button display text\",\n                \"btn_tip\": \"Tip text\", // # optional\n                \n                \"...\" : \"...\" // # here in a btn can be key-value pairs, which will override those in engine\n            },\n            ....\n        }\n    },\n}\n```\n\n\u003e This part is also explained in the video description\n\n\u003c/details\u003e\n\n#### Instructions for searching In-page-Ajax-render websites\n\nSome websites doesn't provide GET/POST search (or not respond results in HTML). Visitor need to open their page then input, they then show results via Ajax on their page. (see [FAQ](#FAQ))\n\nBig Search can deal with such In-page-Ajax-render websites (by injecting js to your browser web, to automate inputting, clicking, form submitting). And easy to configure:\n\n\nEg 1: Specify the css selector of input box. It will automatically input search term and trigger pressing Enter event.\n\n```json\n\"ajax\": \"#search-box-input\"\n```\n\nEg 2: Delay 2s -\u003e Input -\u003e Delay 1s -\u003e Trigger clicking button event\n\n```json\n\"ajax\": [2000, \"#search-box-input\", 1000, \"#submit-button\"]\n```\n\n\u003e This part is also explained in the video description\n\n## For Developers\n\n\u003e We encourage user to submit their customized search engines data to source code after they format as JSON (submit to file `enginesdata.js`)\n\n### What's Next Step\n\nThis tool still can be improved to do something more:\n\n- Omnibox\n- Be compatible with others e.g. OpenSearch. Add or convert by 1-click\n\n### Technical Diagram\n\n\u003cdetails\u003e\n\n![tech_diagram](https://gitlab.com/garywill/bigSearch/-/raw/screenshot/tech.png)\n\n\u003c/details\u003e\n\n### Third-party libraries and components used\n\n**Fast** and **lightweight**: NO heavy framework or library dependencies. Although it has UI themes of both simplicify \u0026 fancy, all main features and UI are pure JS + CSS. ![](https://img.shields.io/github/languages/code-size/garywill/BigSearch)\n\n\u003cdetails\u003e\n\n- [LZ-UTF8.js](https://github.com/rotemdan/lzutf8.js) (38kB not minified. Data compression library, only for user-custom engines sync)\n  \n  ```\n  Copyright (c) 2021, Rotem Dan\n  Released under the MIT license.\n  ```\n  \n- [Foggy Lake](https://www.pexels.com/photo/foggy-lake-2166695/) (37kB webp. Default background photo)\n  \n  by Quang Nguyen Vinh\n  \n\n- [Unicons icon](https://github.com/Iconscout/unicons) (svg)\n  \n  Unicons by [Iconscout](https://iconscout.com/)\n  \n\u003c/details\u003e\n\n### Globalization\n\n\u003cdetails\u003e\n\nBecause there are currently only 2 languages supported, no framework used yet, only a simple function to implement multi-language. \n\nFor strings that you want it to be multi-language (it's okay to leave it English only, also), use JS function `i18n()`, whose input parameters can be:\n\n- An array of strings (for only Chinese and English 2 languages). `[0]` is Chinese, `[1]` is English\n- An Object like `{zh: \"This is Chinese, en: \"This is English\", fr: \"This is French\"}`\n\nIt will return a string of the corresponding language\n\nIf you want to add a search engine that only targets users in a certain language, you can use `visible_lang` to make it visible only to a certain language.\n\n\u003c/details\u003e\n\n### History, Code Status, and License\n\n\u003cdetails\u003e\n\nA part of the code of this tool can be traced back to around 2008. Web app published to be usable to the public on Internet in 2015. Not until early 2020s, I found webExtension and JS standarized, so made this tool a browser extension and setup a Github repo for it. (Yes it's developed slowly and gently, not full-time.)\n\nSome code has been ever (and may still getting) refactored. Although there's still some some aged parts, this tool has **always been modern, handy \u0026 useful**.\n\nCode is licensed under AGPL.\n\n[Change log](https://addons.mozilla.org/firefox/addon/big-search/versions/) \n\n\u003c/details\u003e\n","funding_links":[],"categories":["JavaScript","搜索增强","[](#table-of-contents) Table of contents","chrome-extension"],"sub_categories":["[](#universal-search-tools)Universal search tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarywill%2FBigSearch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgarywill%2FBigSearch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarywill%2FBigSearch/lists"}