diff --git a/en/ebrowserreadme/index.html b/en/ebrowserreadme/index.html index 7ef85dd..dc1ddfa 100644 --- a/en/ebrowserreadme/index.html +++ b/en/ebrowserreadme/index.html @@ -71,6 +71,9 @@ npm install ebrowser

Mirror urls could be used like ":update https://uwebzh.netlify.app/misc/ebrowser". All the mirrors listed on uweb browser could be used. The update url needs to be changed accordingly to be the folder "misc/ebrowser" under the mirror site root url.

Key shortcuts

Address bar commands

+

Like any popular browser, the very first word in address bar if defined in "search.json" identifies a search engine. Moreover, the address bar serves as command line interface:

Commands in no-focus mode (this mode is similar to vi Normal mode)

Pressing "ESC" to enter no-focus mode if not sure.

@@ -183,7 +190,7 @@ npm install ebrowser

You can copy or modify the code/program under the terms of the GPL3.0 or later versions.

-

Last Modified: 25 June 2024
+

Last Modified: 28 June 2024


 

diff --git a/en/index.xml b/en/index.xml index 8d4b641..4f15043 100644 --- a/en/index.xml +++ b/en/index.xml @@ -6,7 +6,7 @@ Recent content on uweb browser: unlimited power Hugo en - Tue, 25 Jun 2024 09:05:46 +0800 + Fri, 28 Jun 2024 10:09:04 +0800 Text selection/processing diff --git a/en/sitemap.xml b/en/sitemap.xml index 407b717..4bc36f1 100644 --- a/en/sitemap.xml +++ b/en/sitemap.xml @@ -71,7 +71,7 @@ /> /en/ - 2024-06-25T09:05:46+08:00 + 2024-06-28T10:09:04+08:00 /en/ebrowserreadme/ - 2024-06-25T09:05:46+08:00 + 2024-06-28T10:09:04+08:00 /en/mirrors/ 2024-06-18T23:17:17+08:00 @@ -539,7 +539,7 @@ /> /en/unlist/ - 2024-06-25T09:05:46+08:00 + 2024-06-28T10:09:04+08:00 : go forward - CTRL+C: stop loading - CTRL+G: address bar to show page url - CTRL+L: focus to address bar @@ -41,8 +44,6 @@ Mirror urls could be used like ":update https://uwebzh.netlify.app/misc/ebrowser - CTRL+TAB: switch to next tab - CTRL+SHIFT+TAB: switch to previous tab - CTRL+W: close Tab -- ALT+<-: go backward -- ALT+->: go forward - CTRL+SHIFT+R: enable global redirection ("gredirect.json") - CTRL+R: disable global redirection - ESC: remove focus. similar to vi normal mode. @@ -51,6 +52,7 @@ Mirror urls could be used like ":update https://uwebzh.netlify.app/misc/ebrowser - F12: devtools #### Address bar commands +Like any popular browser, the very first word in address bar if defined in "search.json" identifies a search engine. Moreover, the address bar serves as command line interface: - "/" for find-in-page - ":" for address bar commands - ac [bookmark/history path w/o ext] : load ".rec" file for autocomplete. @@ -75,7 +77,9 @@ Mirror urls could be used like ":update https://uwebzh.netlify.app/misc/ebrowser - pdf [filename w/o extension] {[options](https://www.electronjs.org/docs/latest/api/web-contents#contentsprinttopdfoptions)} : print to PDF file. All arguments are optional; empty option "{}" to capture long screenshot as vector graphics. - "!" address bar commands "!xx ..." evaluates "xx.js" with the whole text as arguments[0]. - +- i: internal urls, which will be consistent with [uweb](https://jamesfengcao.gitlab.io/uweb/en/links/index.html). + - "i:0/js/xxx.js:[url]" loads the "[url]" with bookmarklet "js/xxx.js". + #### Commands in no-focus mode (this mode is similar to vi Normal mode) Pressing "ESC" to enter no-focus mode if not sure. - ":" for address bar commands diff --git a/misc/ebrowser/index.html b/misc/ebrowser/index.html index cfa2832..2e8fb16 100644 --- a/misc/ebrowser/index.html +++ b/misc/ebrowser/index.html @@ -255,7 +255,9 @@ You should have received a copy of the GNU General Public License along with thi }while(false); if(inputE === document.activeElement){ - if (9===e.keyCode){//tab completion + if (9===e.keyCode){ + e.preventDefault(); + tabs.children[iTab].focus(); } return; } @@ -429,6 +431,9 @@ You should have received a copy of the GNU General Public License along with thi break NOREC; if(58===c5 && 47===q.charCodeAt(7))//https:// break NOREC; + }else if(58===q.charCodeAt(1)){ + internalLink(q); + return; }else if(q.startsWith("javascript:")){ tabs.children[iTab].executeJavaScript(q.substring(11),false); recQueryHistory(q); @@ -449,11 +454,42 @@ You should have received a copy of the GNU General Public License along with thi break; } url = bang(q, iS); + if(58===url.charCodeAt(1)){ + internalLink(url); + recQueryHistory(q); + return; + } }while(false); recQueryHistory(q); }while(false); tabs.children[iTab].src=url; } + function internalLink(url){ + let cmd = url.charCodeAt(2); + let subcmd = url.charCodeAt(3); + let iColon = url.indexOf(':',2); + switch(cmd){ + case 48://'0' i:0 + switch(subcmd){ + case 47://'/' i:0/ + if(106===url.charCodeAt(4) && 115===url.charCodeAt(5) && 47===url.charCodeAt(6)){ + //i:0/js/xx:[url] + let fname = url.slice(4,iColon); + let pname = path.join(__dirname,fname); + if(fs.existsSync(pname)){ + (async ()=>{ + try { + let js = await fs.promises.readFile(pname,'utf8'); + let t=tabs.children[iTab]; + t.dataset.jsonce=js; + t.src = url.substring(iColon+1); + }catch(e){} + })(); + } + } + } + } + } function autocomplete(inp,container,arr) { var currentFocus; function clickItem(e){inp.value = arr[e.target.dataset.index];} @@ -554,6 +590,7 @@ function autocomplete(inp,container,arr) { currentFocus = -1; } closeAllLists(); + lastVal = null; } }); function addActive(x) { diff --git a/misc/ebrowser/package.json b/misc/ebrowser/package.json index eed5c87..b887f00 100644 --- a/misc/ebrowser/package.json +++ b/misc/ebrowser/package.json @@ -1,4 +1,4 @@ -{"version":"1.0.37", +{"version":"1.0.40", "name": "ebrowser", "description": "The keyboard-friendly minimal suckless web browser", "main": "webview.js", @@ -9,6 +9,7 @@ "README.md", "translate.*", "mapkeys.json", + "js/*.js", "config" ], "scripts": { diff --git a/misc/ebrowser/search.json b/misc/ebrowser/search.json index 5b2ca89..b2c7cde 100644 --- a/misc/ebrowser/search.json +++ b/misc/ebrowser/search.json @@ -17,5 +17,7 @@ "git":"https://github.com/search?type=Repositories&q=%s", "gt":"https://kkgithub.com/search?type=Repositories&q=%s", "360":"https://so.360.com/s?q=%s", + "tg":"i:0/js/hash2textarea.js:https://www.tiangong.cn/#%s", + "cg":"i:0/js/hash2textarea.js:https://chatglm.cn/main/detail#%s", "bd":"https://m.baidu.com/s?wd=%s" } diff --git a/sitemap.xml b/sitemap.xml index d343650..0295c08 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -4,7 +4,7 @@ /en/sitemap.xml - 2024-06-25T09:05:46+08:00 + 2024-06-28T10:09:04+08:00