{"id":13455660,"url":"https://github.com/hoothin/SearchJumper","last_synced_at":"2025-03-24T08:34:14.987Z","repository":{"id":37622472,"uuid":"494306244","full_name":"hoothin/SearchJumper","owner":"hoothin","description":"Yet another awesome browser extension for switching search engines, search everything (selection text / image / link / find in page) on any engine with a simple right click or a variety of menus and shortcuts. Build with React \u0026 Material-UI. (WIP).","archived":false,"fork":false,"pushed_at":"2024-10-25T08:15:43.000Z","size":59736,"stargazers_count":791,"open_issues_count":31,"forks_count":43,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-10-29T17:30:57.761Z","etag":null,"topics":["add-on","browser-extension","chrome-extension","context-search","firefox-addon","google-search","highlight","image-search","material-ui","open-source","productivity","reactjs","reverse-image-search","search-engine","selection-search","site-search","userscript","webextension","websearch"],"latest_commit_sha":null,"homepage":"https://hoothin.github.io/SearchJumper","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hoothin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"hoothin","custom":["https://paypal.me/hoothin","https://afdian.com/a/hoothin"]}},"created_at":"2022-05-20T03:22:27.000Z","updated_at":"2024-10-29T06:42:45.000Z","dependencies_parsed_at":"2024-01-07T13:22:09.515Z","dependency_job_id":"d39e3ee7-5588-47b1-bee9-31c011c915ab","html_url":"https://github.com/hoothin/SearchJumper","commit_stats":{"total_commits":1173,"total_committers":3,"mean_commits":391.0,"dds":0.01449275362318836,"last_synced_commit":"ef9bc2c179577b085da6fb792aec148bd60ce993"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoothin%2FSearchJumper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoothin%2FSearchJumper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoothin%2FSearchJumper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoothin%2FSearchJumper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hoothin","download_url":"https://codeload.github.com/hoothin/SearchJumper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245191602,"owners_count":20575247,"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":["add-on","browser-extension","chrome-extension","context-search","firefox-addon","google-search","highlight","image-search","material-ui","open-source","productivity","reactjs","reverse-image-search","search-engine","selection-search","site-search","userscript","webextension","websearch"],"created_at":"2024-07-31T08:01:08.858Z","updated_at":"2025-03-24T08:34:14.966Z","avatar_url":"https://github.com/hoothin.png","language":"JavaScript","readme":"\u003ch1 align=\"center\"\u003e\u003ca href=\"https://chromewebstore.google.com/detail/hgepmblbgodbilmfdjkalkgofdcipkhh\" title=\"Install from Chrome web store 搜尋引擎輔助增強瀏覽器插件，一键切换搜尋引擎，支援拖拽搜尋/劃詞搜尋/快捷鍵等。検索機能強化。\" rel=\"nofollow\"\u003e🔎SearchJumper\u003c/a\u003e\u003c/h1\u003e\n\n[![i](assets/logo.jpg)](https://search.hoothin.com/)\n\n\u003ch3 align=\"center\"\u003e\u003ca href=\"https://github.com/hoothin/SearchJumper/discussions/categories/search-engines?discussions_q=\"\u003e💞Share your search engines\u003c/a\u003e \u003ca href=\"https://search.hoothin.com/\"\u003e📖Guide\u003c/a\u003e\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/React.js-lastest-yellow.svg\" alt=\"react-version\"/\u003e\n \u003cimg src=\"https://img.shields.io/badge/MaterialUI-lastest-indigo.svg\" alt=\"materialUI-version\"/\u003e\n \u003cimg src=\"https://img.shields.io/badge/License-GPL3.0-orange.svg\" alt=\"license\"/\u003e\n \u003cimg src=\"https://img.shields.io/badge/FontAwesome-6.0-green.svg\" alt=\"FontAwesome\"/\u003e\n \u003cimg src=\"https://img.shields.io/badge/Support-Chrome|Firefox|Edge-red.svg\" alt=\"support\"/\u003e\n\u003c/p\u003e\n\n+ Build with React.js\n+ UI: Material-UI\n+ Icons: FontAwesome\n\n\u003e *Just a personal work, maybe not suit you.*\n\n## Install\n| Install via [Chrome web store](https://chromewebstore.google.com/detail/hgepmblbgodbilmfdjkalkgofdcipkhh) | Install via [Greasyfork](https://greasyfork.org/scripts/445274) | Install via [Firefox addons](https://addons.mozilla.org/firefox/addon/searchjumper/) |\n|---|---|---|\n| [![](https://img.shields.io/chrome-web-store/users/hgepmblbgodbilmfdjkalkgofdcipkhh)](https://chromewebstore.google.com/detail/hgepmblbgodbilmfdjkalkgofdcipkhh) | [![](https://img.shields.io/greasyfork/dt/445274)](https://greasyfork.org/scripts/445274) | [![](https://img.shields.io/amo/users/searchjumper)](https://addons.mozilla.org/firefox/addon/searchjumper/) |\n\n\u003cimg src='assets/demo1.gif' height='221px'\u003e\u003cimg src='assets/demo3.gif' height='221px'\u003e\u003cimg src='assets/demo2.gif' height='221px'\u003e\n\n## Config page\n[🔗**hoothin.github.io**](https://hoothin.github.io/SearchJumper/)\n\n[🔗**search.hoothin.com**](https://search.hoothin.com/config/)\n\n\u003e You can also download the source code, double-click start.cmd to compile, then enter the config page through localhost:3000\n\u003e \n\u003e 亦可下載源碼到本地后雙擊 start.cmd ，透過 npm 編譯后訪問 localhost:3000 進入配置\n\nPlease help with localizing this extension[[1](searchJumper.user.js#L654)][[2](src/index.js#L1386)] to the language you are familiar with!\n\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch3\u003eTranslation Contributors\u003c/h3\u003e\u003c/summary\u003e\n  Русский: \u003ca href=\"https://github.com/RomanAleynikov\"\u003eRomanAleynikov\u003c/a\u003e\n \u003c/details\u003e\n\n## Features:\n+ Fully open source without any privacy collection, spam or third-party libraries.\n  \u003e 完全開源，無任何隱私收集、廣告或者亂七八糟的第三方庫，所有數據均在本地，無任何服務器交互\n+ Search for pictures, links, videos, audios, pages, etc. (**long press the right mouse** on the corresponding object)\n  \u003e 可以搜尋圖片、連結、視頻、音頻、頁面等（在相應對象上**長按右鍵**）\n+ Support word search on any page (need to **long press the right mouse**, you can also change to swipe to call out immediately in the settings)\n  \u003e 支援任意頁面劃詞搜尋（需要**長按右鍵**，亦可在設置中改為劃選立即調出）\n+ Support search by site\n  \u003e 支援站內搜尋\n+ Shortcut keys (single key or key combination) to start search (such as alt+g Google search, which can be customized at will)\n  \u003e 可隨意使用快捷鍵（單個按鍵或者組合按鍵）開啟搜尋（比如 alt+g 谷歌搜尋，可隨意自定義）\n+ Right-click the category icon to open the sites in batches\n  \u003e 滑鼠右鍵單擊類別圖標批量打開同一類別\n+ Hold **`shift`** + left click on category icon to open batches in new window\n  \u003e 按住 **`shift`** 左鍵單擊類別圖標在新窗口批量打開\n+ Hold **`ctrl`** + left click on category icon to open in background TAB\n  \u003e 按住 **`ctrl`** 左鍵單擊類別圖標以後臺標籤頁批量打開\n+ Hold **`alt`** + left-click a category icon to batch open multiple separate windows\n  \u003e 按住 **`alt`** 左鍵單擊類別圖標以多個單獨窗口批量打開\n+ Hold **`ctrl + shift`** + left click on category icon to open batches in incognito window\n  \u003e 按住 **`ctrl + shift`** 左鍵單擊類別圖標在隱身窗口批量打開\n+ Hold **`alt + shift`** + left click on category icon to open batches embedding\n  \u003e 按住 **`alt + shift`** 左鍵單擊類別圖標批量嵌入打開\n+ **`shift`** + left click on site icon to open in new window\n  \u003e 按住 **`shift`** 左鍵單擊站點以新窗口打開結果頁\n+ **`ctrl`** + (left click/shortcut/drag) on site icon to open in background TAB\n  \u003e 按住 **`ctrl`** (左鍵單擊/快捷鍵/拖拽)站點以後臺標籤頁打開結果頁\n+ **`alt`** + (left click/shortcut/drag) on site icon to preview in small window\n  \u003e 按住 **`alt`** (左鍵單擊/快捷鍵/拖拽)站點以小窗口預覽結果\n+ **`ctrl + shift`** + (left click/shortcut/drag) single site/press shortcut key to open in incognito window.\n  \u003e 按住 **`ctrl + shift`** (左鍵單擊/快捷鍵/拖拽)站點以隱身窗口打開\n+ Call search bar for input words to filter sites by shortcut key when select no words, press enter to search quickly, `ctrl` + enter to search without lock.\n  \u003e 沒有選擇文字或者圖片時透過喚出快捷鍵可喚出站點搜尋框，搜尋站點后按下回車可鎖定站點並輸入搜尋詞，再次回車使用第一個結果搜尋，ctrl+回車無需鎖定即可快捷打開，適用於靜態書簽。\n+ Can set the category to be displayed only on the specified site through the regular rule\n  \u003e 可以透過正則設置類別僅在指定站點顯示\n+ Right click on cute face to hide the toolbar\n  \u003e 右鍵點擊 小萌臉 徹底隱藏工具欄\n+ Left click on cute face to open the configuration page\n  \u003e 左鍵點擊 小萌臉 打開配置頁\n+ Support open with shortcut key, right click on the logo to close\n  \u003e 可隨意拖拽 小萌臉，並隨意選擇位置放置，例如上中，下中，左上，右上，上左，上右等\n+ Support configuration export and quick sharing\n  \u003e 支援配置導出與快捷分享\n+ Support middle button to open links in the background\n  \u003e 支援中鍵後台打開連結\n+ Support custom css\n  \u003e 支援自定義樣式\n+ Support full character encoding\n  \u003e 支援全字符編碼\n+ Support Post, in-page post and non-jump post\n  \u003e 支援 Post、頁內 post 以及無跳轉 post\n+ Comprehensive customization\n  \u003e 全面的自定義功能，詳見最下方【搜尋參數】\n+ No 3rd party dependencies\n  \u003e 無第三方依賴庫\n+ Self-expand current category\n  \u003e 自展開當前類別並提前\n+ No tamper with the original page\n  \u003e 不篡改原始頁面\n+ Drag to search with current category\n  \u003e 拖拽搜尋當前分類（文字/圖片/鏈接），内圈為當前分類前6個站點，外圈為最近使用的10個站點，可透過編輯第一個（文字/圖片/鏈接）分類來自定義内容\n\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eScreenshots\u003c/h2\u003e\u003c/summary\u003e\n  \n![config](assets/config.jpg)\n![findInPage](assets/findInPage.jpg)\n![etc](assets/etc.jpg)\n\n \u003c/details\u003e\n\n## Search params\n| param | details | 詳述 |\n| --- | --- | --- |\n| `%s` | search keyword |🗒️ 搜尋關鍵詞 |\n| `%S` | cached search keyword |🗒️ 最近一次的搜尋關鍵詞 |\n| `%sl` | search keyword with lower case letters |🗒️ 小寫字母搜尋詞 |\n| `%su` | search keyword with upper case letters |🗒️ 大寫字母搜尋詞 |\n| `%u` | current website url | 🗒️ 當前網站 url |\n| `%h` | current website host | 🗒️ 當前網站 host |\n| `%t` | target src | 🗒️ 指向對象的 src |\n| `%i` | base64 of target image | 🗒️ 指向圖片的 base64 |\n| `%s.replace` | replace keywords with regexp, like %sr.replace(/[^\\d]/g, \"\").replace(/(\\d)/g, \"$1 \") means replace raw keywords to numbers and then join all numbers with space, support %s %sl %sr %su %t %u |🗒️ 用正則替換搜尋關鍵詞，例如 %sr.replace(/[^\\d]/g, \"\").replace(/(\\d)/g, \"$1 \") 代表提取原始關鍵詞中所有數字，並以空格分隔，支援  %s %sl %sr %su %t %u |\n| `%p{params}` | post body, like %p{x=1\u0026y=%s} | 🗒️ post 參數體，例如 %p{x=1\u0026y=%s} |\n| `%P{params}` | post without navigation | 🗒️ post 但不跳轉 |\n| `%input{tips}` | input something, like %input{love who?,you} | 🗒️ 輸入占位，例如%input{請輸入您的三圍,90 55 90} |\n| `#p{params}` | post in page, like #p{\u003ci\u003e#input\u003c/i\u003e=%u\u003cb\u003e\u0026\u003c/b\u003esleep(500)\u003cb\u003e\u0026\u003c/b\u003eclick(\u003ci\u003e.submit\u003c/i\u003e)}, means: input current url to \"#input\", then wait for 500ms, then click \".submit\". use \\\\\u0026 \\\\= instead of \u0026 = in content | 🗒️ 頁内 post，可在頁面之内使用【css選擇器】填寫參數提交查詢，適用於不開放GET/POST接口的網站，例如 #p{\u003ci\u003e#input\u003c/i\u003e=%u\u003cb\u003e\u0026\u003c/b\u003esleep(500)\u003cb\u003e\u0026\u003c/b\u003eclick(\u003ci\u003e.submit\u003c/i\u003e)}, 代表在\"#input\"内輸入指定url，然後等待500毫秒，最後點擊\".submit\"。可在内容中使用 \\\\\u0026 \\\\= 來 表示 \u0026 = |\n| `[\"siteName1\",\"siteName2\"]` | batch open by site name you've created | 🗒️ 透過你已經創建的站點名批量打開，例如 \\[\"雅虎搜尋\",\"谷歌搜尋\"\\] |\n| `%element{}` | query element for innerText from selector or xpath, like %element{.mainTitle} | 🗒️ 透過 css 選擇器或 xpath 抓取元素並返回文字内容，例如 %element{.mainTitle} |\n| `%element{}.prop()` | return prop value for queried element, like %element{.mainTitle}.prop(href) %element{.mainTitle}.prop(innerHTML) | 🗒️ 獲取抓取到元素的屬性值，例如 %element{.mainTitle}.prop(href) %element{.mainTitle}.prop(innerHTML) |\n| `%element{}.replace()` | replace, same as above, like %element{.mainTitle}.prop(href).replace(/https/i,\"\") | 🗒️ 正則替換，例如 %element{.mainTitle}.prop(href).replace(/https/i,\"\") |\n\n## PopClip extension for SearchJumper\n``` yaml\n#popclip extension for SearchJumper\nname: SearchJumper\nicon: search filled S\nurl: https://search.hoothin.com/all#***\n```\nSelect the above text, PopClip will offer an \"Install Extension\" action. Click it.\n\n+ `https://search.hoothin.com/all?kw=keywords\u0026engine=someengine` means search keywords with search engine named someengine and open in new tab.\n+ `https://search.hoothin.com/all?kw=keywords\u0026engine=someengine\u0026self=1` means search keywords with search engine named someengine and open in current tab.\n\n---\n\n## Search engine examples 搜尋引擎規則範例\n\n+ Open link in the text, display only when a link is detected 打開文字中的鏈接，僅當檢測到鏈接時顯示\n``` json\n{\n  \"name\": \"Open link in text\",\n  \"url\": \"%sr.replace(/(点|。)/g,\\\".\\\").replace(/[^\\\\s\\\\w\\\\-_\\\\.~!\\\\*';:@\u0026=\\\\+\\\\$,\\\\/\\\\?#\\\\[\\\\]%]/g,\\\"\\\").replace(/https:\\\\/\\\\/pan\\\\.baidu\\\\.com\\\\/s\\\\//,\\\"\\\").replace(/.*([\\\\s:：]|^)(1[a-z_0-9]{22,})[\\\\s\\\\S]*?\\\\b([a-z0-9]{4}\\\\b|$).*/i,\\\"https://pan.baidu.com/s/$2?pwd=$3\\\").replace(/ /g,\\\"\\\").replace(/^/,\\\"http://\\\").replace(/^http:\\\\/\\\\/(https?:)/,\\\"$1\\\")\",\n  \"kwFilter\": \"\\\\w\\\\S*\\\\.\\\\S*\\\\w|\\\\w.*[点。].*\\\\w|1[a-zA-Z0-9]{22,}\"\n}\n```\n+ Automatically send target text to other device like mobile phone 自動發送選中文字到手機\n``` json\n{\n  \"name\": \"Send to phone\",\n  \"url\": \"https://s.hoothin.com/#p{wait(x-peer)\u0026rclick(x-peer)\u0026#textInput=%s\u0026click(#textInput+div\u003ebutton)}\"\n}\n```\n+ Split by line and paste into the current input box in order 按行分割後依次粘貼到當前輸入框\n``` json\n{\n  \"name\": \"⌨️ 按行輸入\",\n  \"url\": \"#p{@=%s[]}\"\n}\n```\n+ Currency conversion / USD to RMB, show tips when the mouse is hovering\n``` json\n{\n  \"name\": \"💲USD to RMB\",\n  \"url\": \"showTips:https://api.exchangerate.host/convert?from=USD\u0026to=CNY\u0026amount=1 \\n{name}\u003cbr/\u003e\u003ci\u003e%sr USD = {json.result|*%sr.replace(/\\\\D/,'')} RMB\u003c/i\u003e\",\n  \"kwFilter\": \"\\\\d\\\\$|\\\\$\\\\d\"\n}\n```\n+ Currency conversion of various countries 各國貨幣轉換\n``` json\n{\n  \"name\": \"💲Currency convert\",\n  \"url\": \"showTips:http://apilayer.net/api/convert?from=%input{From currency/US Dollar/Euro/Japanese Yen/China Yuan,USD/EUR/JPY/CNY}\u0026to=%input{Target currency/US Dollar/Euro/Japanese Yen/China Yuan,USD/EUR/JPY/CNY}\u0026amount=1\u0026access_key=%template{apilayer key}\\n{name}\u003cbr/\u003e\u003ci\u003e%sr {json.query.from} = {json.result|*%sr.replace(/\\\\D/,'')} {json.query.to}\u003c/i\u003e\"\n}\n```\n+ Preview Japan AV 框選番號預覽AV such as ABW-345\n``` json\n{\n  \"name\": \"💞 AV預覽\",\n  \"url\": \"showTips:https://www.javbus.com/%sr.replace(/^(\\\\w+?)[\\\\-_]?(\\\\d+)$/,\\\"$1-$2\\\") \\n\u003cspan style='font-size:22px;line-height:1.2;'\u003e{h3}\u003c/span\u003e\\n\u003cp style=\\\"margin: 0; font-size: 18px; font-weight: normal;\\\"\u003e{.info\u003ep:nth-child(2)}\u003c/p\u003e\\n\u003cp style=\\\"margin: 0; font-size: 18px; font-weight: normal;\\\"\u003e{.info\u003ep:nth-child(6)}\u003c/p\u003e\\n\u003cp style=\\\"margin: 0;\\\"\u003e{.genre a|\u003cmark style=\\\"white-space: nowrap;margin: 5px; font-size: 16px; border-radius: 5px; padding: 2px; box-shadow: 0px 0px 10px 0px #000;\\\"\u003e()\u003c/mark\u003e}\u003c/p\u003e\\n\u003cimg src='https://www.javbus.com{a.bigImage\u003eimg|src}' referrerpolicy='no-referrer'/\u003e\",\n  \"kwFilter\": \"^[0-9a-zA-Z]+[\\\\-_]?\\\\d+$\"\n}\n```\n+ Show Romaji of japanese 顯示日語對應羅馬音/羅馬字\n``` json\n{\n    \"name\": \"🗻 Japanese romaji\",\n    \"url\": \"showTips:https://translate.googleapis.com/translate_a/single%p{client=gtx\u0026dt=t\u0026dt=bd\u0026dj=1\u0026dt=ex\u0026dt=ld\u0026dt=md\u0026dt=qca\u0026dt=rw\u0026dt=rm\u0026dt=ss\u0026dt=at\u0026sl=ja\u0026tl=zh_CN\u0026q=%s}\\n\u003ch3 style='margin: 0;'\u003e{name}\u003c/h3\u003e\\n{json.sentences.all.trans}\\n\u003cbr\u003e\\n\u003cfont style='display: block;' color='antiquewhite'\u003e{json.sentences.all.orig}\u003c/font\u003e\\n\u003cfont style='display: block;' color='yellow'\u003e{json.sentences.-1.src_translit}\u003c/font\u003e\\n\u003cspan style=\\\"cursor:pointer;color:#f9690e;\\\" data-read=\\\"%sr.replace(/\\\"/g,\\\"\u0026quot;\\\")\\\" data-lang=\\\"ja\\\" data-rate=\\\"1\\\" data-volume=\\\"1\\\"\u003e🔈Read\u003c/span\u003e\",\n    \"kwFilter\": \"[\\\\u3040-\\\\u309F\\\\u30A0-\\\\u30FF]\"\n}\n```\n+ Convert miles and kilometers 轉換英哩與公里\n``` json\n{\n  \"name\": \"📏 Mile to km\",\n  \"url\": \"showTips:\\n\u003ci\u003e%sr.replace(/(\\\\d+)(英里|英?哩|mi(le)?)/,\\\"$1\\\") mi = {%sr.replace(/(\\\\d+)(英里|英?哩|mi(le)?)/,\\\"$1\\\")*1.609344} km\u003c/i\u003e\",\n  \"kwFilter\": \"\\\\d+\\\\s*(英里|英?哩|mi(le)?\\\\b)\"\n}\n```\n\n---\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eAdd search engines quickly 快速添加搜尋引擎\u003c/h2\u003e\u003c/summary\u003e\n\n+ Add with shortcut key on current page 透過快捷鍵快速在當前頁面添加\n\u003e Click search input box with `ctrl + shift` 按住 `ctrl + shift` 點擊當前頁面中的搜尋輸入框即可\n\n+ Search on mycroftproject.com and add  在 mycroftproject 上搜尋別人編輯好的站點並點擊導入\n\u003e Click the searchJumper face icon in sites list on mycroftproject 點擊 mycroftproject 上站點列表裏的搜尋醬圖標即可\n\n \u003c/details\u003e\n\n---\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eAuto highlight rule examples 自動高亮詞規則範例\u003c/h2\u003e\u003c/summary\u003e\n\nHighlight all text URL on any site 在任意網頁上高亮文字網址\n``` json\n{\n    \"*\": {\n        \"words\": [\n            \"/(https?:\\\\/\\\\/|www\\\\.)[^\\\\s\\\"'\\\\\\\\{}\\\\(\\\\)\\\\[\\\\]#]+\\\\.[^\\\\s\\\"'\\\\\\\\{}\\\\(\\\\)\\\\[\\\\]#]+/i$s{unset;border-radius:unset;border-bottom-width:5px;border-bottom-style:dotted;border-bottom-color:red;}$t{@popup}\"\n        ]\n    }\n}\n```\n\nHighlight all avID on t66y 在草榴上高亮番號\n``` json\n{\n    \"/^https://t66y\\\\.com/htm_data//i\": {\n        \"sep\": \"#\",\n        \"words\": [\n            \"/([a-z]\\\\w+\\\\-?|\\\\d{5,}\\\\-)\\\\d{2,}/i$s{unset;border-radius:unset;border-bottom:5px dotted red;}$t{@popup(💞 AV预览)}$in{.tpc_content}\"\n        ]\n    }\n}\n```\n+ Effect on the site matched RegExp `^https://t66y\\\\.com/htm_data/` with case ignore\n \u003e匹配到草榴網址的正則 `^https://t66y\\\\.com/htm_data/` 后生效，不區分大小寫\n+ Split by \"#\" as there is space in the keyWords under\n \u003e以#分隔，因爲下面的關鍵詞中有空格\n+ Search words according to the regular pattern at first, then add style \"background:unset;border-bottom:5px dotted red;\" to the highlighted words, finally add the feature of hovering the mouse to pop up the search box\n \u003e首先根據正則 \"[0-9a-zA-Z]+\\\\-\\\\d+\" 查找番號，然後為高亮詞添加 style \"background:unset;border-bottom:5px dotted red;\"，最後添加鼠標懸浮彈出搜索彈框的特性\n\nHide user by target id on xxxx.com 在某個網站上根據給定的用戶名或者用戶 ID 屏蔽元素\n``` json\n{\n    \"@someUserID\": \"/12345|54321/l\",\n    \"@someUserName\": \"/jack|adam|rose/i\",\n    \"/^https://xxxx\\\\.com/yyyy//i\": {\n        \"sep\": \"|\",\n        \"words\": [\n            \"@someUserID$p{0}\",\n            \"@someUserName$p{0}\"\n        ]\n    }\n}\n```\n+ Effect on the site matched RegExp `^https://xxxx\\\\.com/yyyy/` with case ignore\n \u003e網址匹配到正則 `^https://xxxx\\\\.com/yyyy/` 后生效，不區分大小寫\n+ Split by \"|\"\n \u003e以|分隔\n+ Search links by @someUserID to hide (l after RegExp means link), and search words by @someUserName to hide. \n \u003e查找設定在模板 @someUserID 中的用戶 ID （正則后的 l 代表篩選連結），然後隱藏連結中含有此 ID 的元素，同時查找設定在模板 @someUserName 中的用戶名並隱藏元素\n\n \u003c/details\u003e\n\n---\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eFilter engines to search 篩選引擎並搜尋\u003c/h2\u003e\u003c/summary\u003e\n\n+ Call by global shortcut key, Input keywords of site name to filter sites, support glob with \"? \\*\" 透過全局快捷鍵喚出，輸入站點名稱的關鍵詞來篩選，支援 “? \\*” 通配符\n+ Enter to lock filter and input words to search by click icon or another press of enter 回車鎖定篩選，輸入文字并且點擊站點圖標或者再次回車來進行搜尋\n\n![i](assets/filter.jpg)\n \u003c/details\u003e\n\n---\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eCall SearchJumper by event 透過鼠標手勢調用搜尋醬\u003c/h2\u003e\u003c/summary\u003e\n\n+ Search by site name 以站點名調用搜尋\n``` javascript\n// search by google\nconst siteName = 'Google search';\nconst searchJumperEvent = new CustomEvent('searchJumper', {\n  detail: {\n    action: 'search',\n    name: siteName\n  }\n});\ndocument.dispatchEvent(searchJumperEvent);\n```\n+ Show search bar 顯示搜尋條\n``` javascript\nconst searchJumperEvent = new CustomEvent('searchJumper', {\n  detail: {\n    action: 'show'\n  }\n});\ndocument.dispatchEvent(searchJumperEvent);\n```\n+ Show All-mode 顯示所有模式\n``` javascript\nconst searchJumperEvent = new CustomEvent('searchJumper', {\n  detail: {\n    action: 'showAll'\n  }\n});\ndocument.dispatchEvent(searchJumperEvent);\n```\n+ Search by second site of current type and open in new window 使用當前分組的第二個站點搜尋並在小窗打開結果\n``` javascript\nconst siteOrder = 2;\nlet currentSite = document.querySelector(`.search-jumper-type:not(.search-jumper-hide)\u003ea:nth-of-type(${siteOrder})`);\nif (currentSite) {\n  const searchJumperEvent = new CustomEvent('searchJumper', {\n    detail: {\n      action: 'search',\n      name: currentSite.dataset.name,\n      key: {altKey:true}\n    }\n  });\n  document.dispatchEvent(searchJumperEvent);\n}\n```\n+ Search by site of current type in background tab 使用當前分組的站點搜尋並在後臺標籤頁打開結果\n``` javascript\nconst searchJumperEvent = new CustomEvent('searchJumper', {\n  detail: {\n    action: 'search',\n    key: {ctrlKey:true}\n  }\n});\ndocument.dispatchEvent(searchJumperEvent);\n```\n+ Search by second site of current type in incognito tab 使用當前分組的第二個站點搜尋並在隱身標籤頁打開結果\n``` javascript\nconst siteOrder = 2;\nconst searchJumperEvent = new CustomEvent('searchJumper', {\n  detail: {\n    action: 'search',\n    index: siteOrder,\n    key: {ctrlKey:true, altKey:true}\n  }\n});\ndocument.dispatchEvent(searchJumperEvent);\n```\n \u003c/details\u003e\n\n---\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eDownload all video with lux 使用 LUX 下載全網視頻\u003c/h2\u003e\u003c/summary\u003e\n\n![bilibili](https://s3.bmp.ovh/imgs/2022/09/25/543a696312baf85d.gif \"B站VIDEO下載\")\n\n \u003cdetails\u003e\n\u003csummary\u003eStep by step of One-click video download configuration\u003c/summary\u003e\n\n+ Download [Lux](https://github.com/iawia002/lux/releases)\n+ Download [ffmpeg](https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z)\n+ Add site under group which \"Effect on page\" on your SearchJumper\n+ Click \"Call local application\" under \"Edit site\"\n+ Input command like `\"D:\\Program Files\\lux\\lux.exe\" %u`, then submit.\n+ Open and import the reg file.\n+ Right click with ctrl key, click Lux.\n \u003c/details\u003e\n \n \u003cdetails\u003e\n\u003csummary\u003e一鍵視頻下載配置方法（B站為例）\u003c/summary\u003e\n\n+ 下載[BBDown](https://github.com/nilaoda/BBDown)\n+ 下載[ffmpeg](https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z)，解壓並且複制\\bin\\ffmpeg.exe\n+ 將BBDown.exe 與 ffmpeg.exe 放置於同一文件夾，記錄該路徑，例如 `D:\\Program Files\\BBDown`\n+ 在你的搜尋醬“當前網頁”分類新增站點\n+ 點擊“編輯站點”最下方的“添加自定義本地應用調用”\n+ 調用命令處填入`\"D:\\Program Files\\BBDown\\BBDown.exe\" %u -tv`，點擊生成註冊表補丁\n+ 此時會自動生成註冊表補丁，點擊導入，並且保存編輯站點\n+ 在 bilibili 視頻播放頁面按住 ctrl 點擊右鍵，點擊BBDown即可下載\n+ 其他視頻下載工具（例如lux、you-get、yt-dlp等）同理，可自行編輯。\n \u003c/details\u003e\n \nRegistry patch to call lux by SearchJumper 搜尋醬調用本地程式的注冊表補丁\n\n``` ini\nWindows Registry Editor Version 5.00\n\n[HKEY_CLASSES_ROOT\\lux]\n@=\"URL:lux Protocol\"\n\"URL Protocol\"=\"\"\n\n[HKEY_CLASSES_ROOT\\lux\\DefaultIcon]\n@=\"cmd.exe,1\"\n\n[HKEY_CLASSES_ROOT\\lux\\shell]\n\n[HKEY_CLASSES_ROOT\\lux\\shell\\open]\n\n[HKEY_CLASSES_ROOT\\lux\\shell\\open\\command]\n@=\"cmd /c set m=%1 \u0026 call set m=%%m:lux://=%% \u0026 d: \u0026 cd \\\"D:\\\\Program Files\\\\lux\\\" \u0026 call lux.exe %%m%% \u0026 pause\"\n```\nModify path by yourself 自行修改補丁中的目錄，保存爲 lux.reg，雙擊導入注冊表。\n\nOpen the page of video and download with `lux://%u` 完畢之後即可新建站點使用 `lux://%u` 調用 lux 下載當前網頁視頻\n \u003c/details\u003e\n\n---\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eSync by webdav 透過 webdav 同步引擎配置與高亮規則\u003c/h2\u003e\u003c/summary\u003e\n\n+ webdav 伺服器需要支援自設 cors\n+ 也可以自己架設 webdav 伺服器，方法如下\n  - 下載 [webdav server](https://github.com/hacdias/webdav/releases)\n  - 創建配置文件 `config.yml`，內容如下：\n\n```\naddress: 伺服器地址\nport: 伺服器端口\ncors:\n  enabled: true\n  credentials: true\n  allowed_headers:\n    - '*'\n  allowed_hosts:\n    - https://hoothin.github.io\n  allowed_methods:\n    - '*'\n  exposed_headers:\n    - Content-Length\n    - Content-Range\nusers:\n  - username: 用戶名\n    password: 密碼\n    scope: webdav 同步文件夾路徑\n    modify: true\n```\n \u003c/details\u003e\n \n---\n \u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eBatch open modes 多種批量打開方式\u003c/h2\u003e\u003c/summary\u003e\n  \n+ **`shift`** + click category icon\n![i](assets/batchOpen1.jpg)\n  \n+ **`alt + shift`** + click category icon\n![i](assets/batchOpen2.jpg)\n  \n+ **`alt`** + click category icon\n![i](assets/batchOpen3.jpg)\n\n \u003c/details\u003e\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=hoothin/SearchJumper\u0026type=Date)](https://star-history.com/#hoothin/SearchJumper\u0026Date)\n","funding_links":["https://ko-fi.com/hoothin","https://paypal.me/hoothin","https://afdian.com/a/hoothin"],"categories":["JavaScript","chrome-extension"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoothin%2FSearchJumper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoothin%2FSearchJumper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoothin%2FSearchJumper/lists"}