From d28fe3eed22b027256a34881a1490e63833ae8a2 Mon Sep 17 00:00:00 2001
From: James Feng Cao
Date: Mon, 24 Jun 2024 09:58:02 +0800
Subject: [PATCH 1/2] ebrowser to use alt+<- / -> for page backward/forward
---
ebrowser.md | 12 ++-
en/ebrowserreadme/index.html | 15 +++-
en/index.xml | 2 +-
en/sitemap.xml | 6 +-
misc/ebrowser/index.html | 162 ++++++++++++++++++++++++++++++++---
misc/ebrowser/package.json | 2 +-
misc/ebrowser/webview.js | 21 +++--
sitemap.xml | 2 +-
8 files changed, 191 insertions(+), 31 deletions(-)
diff --git a/ebrowser.md b/ebrowser.md
index b09f418..0255f9c 100644
--- a/ebrowser.md
+++ b/ebrowser.md
@@ -41,8 +41,8 @@ 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
-- CTRL+<-: go backward
-- CTRL+->: go forward
+- 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.
@@ -64,6 +64,7 @@ Mirror urls could be used like ":update https://uwebzh.netlify.app/misc/ebrowser
- {[options](https://www.electronjs.org/docs/latest/api/session#sescleardataoptions)}
- ext [extension path]: load unpacked Chrome extension.
- gr [gredirect index]: global redirection with corresponding index. Use the first global redirection url if no argument. Disable global redirection with any index out of the range.
+ - js [js code] : execute JS code at OS level. Note: "javascript:..." is special url and thus works in the current web page, while ":js ..." commands can do any OS operations.
- nc/uc : No Cookie forwarding/Use Cookie forwarding with global redirection.
- nh/uh for No/Use url history.
- nj/uj for No/Use external Javascript files.
@@ -74,7 +75,7 @@ Mirror urls could be used like ":update https://uwebzh.netlify.app/misc/ebrowser
- update [updateurl] : update the app. updateurl is optional.
- 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 address bar text as arguments[0].
+ "!xx ..." evaluates "xx.js" with the whole text as arguments[0].
#### Commands in no-focus mode (this mode is similar to vi Normal mode)
Pressing "ESC" to enter no-focus mode if not sure.
@@ -94,6 +95,11 @@ The other commands are defined in "mapkeys.json", which will map keys to address
- "proxy.json": name-[ProxyConfig](https://www.electronjs.org/docs/latest/api/structures/proxy-config) pairs
- "uas.json" : name-useragent pairs
+#### Javascript at three levels
+- Web page: urls like "javascript:" or bookmarklet command ":bml" run in web page.
+- Browser (or renderer process) : "!xx" evaluates "xx.js", which could manipulate address bar etc.
+- OS level (or main process) : ":js" to execute the following js code with all OS APIs available.
+
#### New usages
- Vector designing with web tech to replace Adobe Illustrator/Inkscape.
- Design with web tech.
diff --git a/en/ebrowserreadme/index.html b/en/ebrowserreadme/index.html
index 04745b6..b92eed8 100644
--- a/en/ebrowserreadme/index.html
+++ b/en/ebrowserreadme/index.html
@@ -79,8 +79,8 @@ npm install ebrowser
CTRL+TAB: switch to next tab
CTRL+SHIFT+TAB: switch to previous tab
CTRL+W: close Tab
-CTRL+<-: go backward
-CTRL+->: go forward
+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.
@@ -107,6 +107,7 @@ npm install ebrowser
ext [extension path]: load unpacked Chrome extension.
gr [gredirect index]: global redirection with corresponding index. Use the first global redirection url if no argument. Disable global redirection with any index out of the range.
+js [js code] : execute JS code at OS level. Note: "javascript:..." is special url and thus works in the current web page, while ":js ..." commands can do any OS operations.
nc/uc : No Cookie forwarding/Use Cookie forwarding with global redirection.
nh/uh for No/Use url history.
nj/uj for No/Use external Javascript files.
@@ -119,7 +120,7 @@ npm install ebrowser
"!" address bar commands
-"!xx ..." evaluates "xx.js" with the whole address bar text as arguments[0].
+"!xx ..." evaluates "xx.js" with the whole text as arguments[0].
Commands in no-focus mode (this mode is similar to vi Normal mode)
Pressing "ESC" to enter no-focus mode if not sure.
@@ -140,6 +141,12 @@ npm install ebrowser
"proxy.json": name-ProxyConfig pairs
"uas.json" : name-useragent pairs
+Javascript at three levels
+
+- Web page: urls like "javascript:" or bookmarklet command ":bml" run in web page.
+- Browser (or renderer process) : "!xx" evaluates "xx.js", which could manipulate address bar etc.
+- OS level (or main process) : ":js" to execute the following js code with all OS APIs available.
+
New usages
-
@@ -166,7 +173,7 @@ npm install ebrowser
You can copy or modify the code/program under the terms of the GPL3.0 or later versions.
-Last Modified: 19 June 2024
+
Last Modified: 24 June 2024
diff --git a/en/index.xml b/en/index.xml
index 1bad244..64da65c 100644
--- a/en/index.xml
+++ b/en/index.xml
@@ -6,7 +6,7 @@
Recent content on uweb browser: unlimited power
Hugo
en
- Wed, 19 Jun 2024 09:41:18 +0800
+ Mon, 24 Jun 2024 09:46:43 +0800
-
Text selection/processing
diff --git a/en/sitemap.xml b/en/sitemap.xml
index 69d3898..b0193e0 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -71,7 +71,7 @@
/>
/en/
- 2024-06-19T09:41:18+08:00
+ 2024-06-24T09:46:43+08:00
/en/ebrowserreadme/
- 2024-06-19T09:41:18+08:00
+ 2024-06-24T09:46:43+08:00
/en/mirrors/
2024-06-18T23:17:17+08:00
@@ -539,7 +539,7 @@
/>
/en/unlist/
- 2024-06-19T09:41:18+08:00
+ 2024-06-24T09:46:43+08:00
.
-->
-
+
diff --git a/misc/ebrowser/package.json b/misc/ebrowser/package.json
index 1936482..af622bc 100644
--- a/misc/ebrowser/package.json
+++ b/misc/ebrowser/package.json
@@ -1,4 +1,4 @@
-{"version":"1.0.29",
+{"version":"1.0.30",
"name": "ebrowser",
"description": "The keyboard-friendly minimal suckless web browser",
"main": "webview.js",
diff --git a/misc/ebrowser/webview.js b/misc/ebrowser/webview.js
index 1184896..c458546 100644
--- a/misc/ebrowser/webview.js
+++ b/misc/ebrowser/webview.js
@@ -1,5 +1,10 @@
/* Copyright (C) 2024 Richard Hao Cao
- */
+Ebrowser is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+Ebrowser is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with this program. If not, see .
+*/
const {
app, BrowserWindow, Menu, shell, clipboard,
session, protocol, net, dialog
@@ -24,7 +29,7 @@ else {
}
topMenu();
-const repositoryurl = "https://gitlab.com/jamesfengcao/uweb/-/raw/master/misc/ebrowser/";
+var repositoryurl = "https://gitlab.com/jamesfengcao/uweb/-/raw/master/misc/ebrowser/";
const fs = require('fs');
const readline = require('readline');
const path = require('path')
@@ -204,9 +209,13 @@ function addrCommand(cmd){
forwardCookie();
return;
case "nh":
- bHistory = false; return;
+ bHistory = false;
+ win.webContents.executeJavaScript("bQueryHistory=false",false);
+ return;
case "uh":
- bHistory = true; return;
+ bHistory = true;
+ win.webContents.executeJavaScript("bQueryHistory=true",false);
+ return;
case "nj":
bJS = false; return;
case "uj":
@@ -422,11 +431,11 @@ function topMenu(){
win.setTitle(r);
});
}},
- { label: 'Go backward', accelerator: 'Ctrl+Left', click: ()=>{
+ { label: 'Go backward', accelerator: 'Alt+Left', click: ()=>{
let js="tabs.children[iTab].goBack()";
win.webContents.executeJavaScript(js,false);
}},
- { label: 'Go forward', accelerator: 'Ctrl+Right', click: ()=>{
+ { label: 'Go forward', accelerator: 'Alt+Right', click: ()=>{
let js="tabs.children[iTab].goForward()";
win.webContents.executeJavaScript(js,false);
}},
diff --git a/sitemap.xml b/sitemap.xml
index dee3d52..ce84a54 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -4,7 +4,7 @@
/en/sitemap.xml
- 2024-06-19T09:41:18+08:00
+ 2024-06-24T09:46:43+08:00
From 536ff07ffafc65140fca3683a710e95b74fb5245 Mon Sep 17 00:00:00 2001
From: James Feng Cao
Date: Mon, 24 Jun 2024 10:43:03 +0800
Subject: [PATCH 2/2] move ebrowser README together with package files
---
README.md | 2 +-
README.zh-Hans.md | 2 +-
README.zh.md | 2 +-
en/index.xml | 2 +-
en/readme/index.html | 6 +-
en/sitemap.xml | 6 +-
misc/ebrowser/README.md | 116 +++++++++++++++++++++++++++++++++++++
misc/ebrowser/package.json | 2 +-
misc/ebrowser/webview.js | 2 +-
sitemap.xml | 4 +-
zh/index.xml | 2 +-
zh/readme/index.html | 6 +-
zh/sitemap.xml | 6 +-
13 files changed, 137 insertions(+), 21 deletions(-)
create mode 100644 misc/ebrowser/README.md
diff --git a/README.md b/README.md
index 44e01da..9366450 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@ Custom paper size PDF export and long vector screenshot, TTS, text reflow, resou


-#### Ebrowser for Windows, MacOS and Linux
+#### Ebrowser for Windows, MacOS and Linux
Ebrowser is a simple version of uweb browser on the desktop.
- Fully open source.
- Capture long screenshot as vector graphics.
diff --git a/README.zh-Hans.md b/README.zh-Hans.md
index d11b275..ebe6719 100644
--- a/README.zh-Hans.md
+++ b/README.zh-Hans.md
@@ -53,7 +53,7 @@
配套安装uWeb定制Termux应用,可用地址栏作图(类似matlab功能)、超级计算器(无限精度/π的前万位或更多、无限函数、无限常量)、符号演算(解方程、分解因式、求积分导数)、离线字典查找等。譬如地址栏输入sin(x)**5就直接得到函数图形。利用好第三方代码,才能真正发挥出uWeb的潜能。
-#### Ebrowser for Windows, MacOS and Linux
+#### Ebrowser for Windows, MacOS and Linux
可看作超微浏览器台式机简易版,用于弥补普通浏览器访问痛点。
- 支持网站自动镜像,可以使用国内镜像自动访问github等网站,可与国际搜索引擎无缝衔接。
- 同样允许直接访问英文技术网站。
diff --git a/README.zh.md b/README.zh.md
index d11b275..ebe6719 100644
--- a/README.zh.md
+++ b/README.zh.md
@@ -53,7 +53,7 @@
配套安装uWeb定制Termux应用,可用地址栏作图(类似matlab功能)、超级计算器(无限精度/π的前万位或更多、无限函数、无限常量)、符号演算(解方程、分解因式、求积分导数)、离线字典查找等。譬如地址栏输入sin(x)**5就直接得到函数图形。利用好第三方代码,才能真正发挥出uWeb的潜能。
-#### Ebrowser for Windows, MacOS and Linux
+#### Ebrowser for Windows, MacOS and Linux
可看作超微浏览器台式机简易版,用于弥补普通浏览器访问痛点。
- 支持网站自动镜像,可以使用国内镜像自动访问github等网站,可与国际搜索引擎无缝衔接。
- 同样允许直接访问英文技术网站。
diff --git a/en/index.xml b/en/index.xml
index 64da65c..ba38036 100644
--- a/en/index.xml
+++ b/en/index.xml
@@ -6,7 +6,7 @@
Recent content on uweb browser: unlimited power
Hugo
en
- Mon, 24 Jun 2024 09:46:43 +0800
+ Mon, 24 Jun 2024 10:28:02 +0800
-
Text selection/processing
diff --git a/en/readme/index.html b/en/readme/index.html
index 9de0e87..abf9b86 100644
--- a/en/readme/index.html
+++ b/en/readme/index.html
@@ -88,7 +88,7 @@


-Ebrowser for Windows, MacOS and Linux
+Ebrowser for Windows, MacOS and Linux
Ebrowser is a simple version of uweb browser on the desktop.
- Fully open source.
@@ -106,8 +106,8 @@
-Last Modified: 18 June 2024
-update mirrors
+
Last Modified: 24 June 2024
+move ebrowser README together with package files
diff --git a/en/sitemap.xml b/en/sitemap.xml
index b0193e0..333b9d2 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -71,7 +71,7 @@
/>
/en/
- 2024-06-24T09:46:43+08:00
+ 2024-06-24T10:28:02+08:00
2024-06-18T23:17:17+08:00
/en/readme/
- 2024-06-18T11:13:22+08:00
+ 2024-06-24T10:28:02+08:00
/en/unlist/
- 2024-06-24T09:46:43+08:00
+ 2024-06-24T10:28:02+08:00
: go forward
+- CTRL+SHIFT+R: enable global redirection ("gredirect.json")
+- CTRL+R: disable global redirection
+- ESC: remove focus. similar to vi normal mode.
+- F1: Help
+- F5: page refresh/reload
+- F12: devtools
+
+#### Address bar commands
+- "/" for find-in-page
+- ":" for address bar commands
+ - ac [bookmark/history path w/o ext] : load ".rec" file for autocomplete.
+ - b [bookmarkfilename w/o ext] : bookmark current page in file.
+ - bml [filename w/o extension]: load/execute the javascript file.
+ - cert : allow invalid certificates w/o arguments, otherwise restore to default.
+ - clear : the arguments could be
+ - cache : clear cache
+ - dns : clear dns cache
+ - storage: clear site storage data.
+ - {[options](https://www.electronjs.org/docs/latest/api/session#sescleardataoptions)}
+ - ext [extension path]: load unpacked Chrome extension.
+ - gr [gredirect index]: global redirection with corresponding index. Use the first global redirection url if no argument. Disable global redirection with any index out of the range.
+ - js [js code] : execute JS code at OS level. Note: "javascript:..." is special url and thus works in the current web page, while ":js ..." commands can do any OS operations.
+ - nc/uc : No Cookie forwarding/Use Cookie forwarding with global redirection.
+ - nh/uh for No/Use url history.
+ - nj/uj for No/Use external Javascript files.
+ - nr/ur for No/Use "redirect.json" for domain redirection.
+ - np : no proxy.
+ - up [proxyName] : use proxy. privous proxy or the first proxy in proxy.json w/o [proxyName]. ":up" command also disables global and domain redirections, which are not restored by ":np".
+ - ua [useragentName] : set user agent for future tabs. default user agent w/o arguments.
+ - update [updateurl] : update the app. updateurl is optional.
+ - 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].
+
+#### 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
+- "/" for find-in-page with address bar
+- "!" for "!" address bar commands
+
+The other commands are defined in "mapkeys.json", which will map keys to address bar commands.
+
+#### Configuration files
+- "config": lines of address bar commands.
+- "search.json": search engines as shortcut-queryUrl pairs.
+- "default.autoc": predefined strings for address bar auto completion.
+- "gredirect.json": global redirection urls as array of urls
+- "redirect.json": domain-replacementDomain pairs, default to be applied.
+- "mapkeys.json": keys-addressbarCommands pairs. The addressbar commands are multiple lines of address bar command separated by "\n".
+- "proxy.json": name-[ProxyConfig](https://www.electronjs.org/docs/latest/api/structures/proxy-config) pairs
+- "uas.json" : name-useragent pairs
+
+#### Javascript at three levels
+- Web page: urls like "javascript:" or bookmarklet command ":bml" run in web page.
+- Browser (or renderer process) : "!xx" evaluates "xx.js", which could manipulate address bar etc.
+- OS level (or main process) : ":js" to execute the following js code with all OS APIs available.
+
+#### New usages
+- Vector designing with web tech to replace Adobe Illustrator/Inkscape.
+ - Design with web tech.
+
+ - Printing to pdf with customized paper size.
+ - Magnify the pdf paper size to the required size.
+
+ OR
+
+ - Adjust window width and use addressbar command line ":Pdf {}" to export vector graphics.
+ - Use imageMagick to convert to any other vector graphics format.
+
+#### License
+You can copy or modify the code/program under the terms of the GPL3.0 or later versions.
\ No newline at end of file
diff --git a/misc/ebrowser/package.json b/misc/ebrowser/package.json
index af622bc..dadcdb9 100644
--- a/misc/ebrowser/package.json
+++ b/misc/ebrowser/package.json
@@ -1,4 +1,4 @@
-{"version":"1.0.30",
+{"version":"1.0.31",
"name": "ebrowser",
"description": "The keyboard-friendly minimal suckless web browser",
"main": "webview.js",
diff --git a/misc/ebrowser/webview.js b/misc/ebrowser/webview.js
index c458546..6fe724a 100644
--- a/misc/ebrowser/webview.js
+++ b/misc/ebrowser/webview.js
@@ -413,7 +413,7 @@ function topMenu(){
{ label: 'Redirect', accelerator: 'Ctrl+Shift+R', click: ()=>{
gredirect_enable(0);
}},
- { label: 'Close', accelerator: 'Ctrl+W', click: ()=>{
+ { label: 'Close tab', accelerator: 'Ctrl+W', click: ()=>{
win.webContents.executeJavaScript("tabClose()",false).then((r)=>{
if(""===r) win.close();
else win.setTitle(r);
diff --git a/sitemap.xml b/sitemap.xml
index ce84a54..8cfe639 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -4,14 +4,14 @@
/en/sitemap.xml
- 2024-06-24T09:46:43+08:00
+ 2024-06-24T10:28:02+08:00
/zh/sitemap.xml
- 2024-06-18T08:06:18+08:00
+ 2024-06-24T10:28:37+08:00
diff --git a/zh/index.xml b/zh/index.xml
index ea86934..4612382 100644
--- a/zh/index.xml
+++ b/zh/index.xml
@@ -6,7 +6,7 @@
Recent content on 超微浏览器: 威、快、高效、极致优化
Hugo
zh
- Tue, 18 Jun 2024 08:06:18 +0800
+ Mon, 24 Jun 2024 10:28:37 +0800
-
操作选中(富)文本/元素
diff --git a/zh/readme/index.html b/zh/readme/index.html
index 9a6f731..4ee759e 100644
--- a/zh/readme/index.html
+++ b/zh/readme/index.html
@@ -90,7 +90,7 @@
支持网址特定脚本/样式,可轻松支持百万以上不同脚本。
支持自定义任意多个搜索引擎; 支持执行用户提供任何js文件; 支持用户定义任意多个useragent; 长按链接支持运行第三方程序; 长按链接支持运行用户js文件。
配套安装uWeb定制Termux应用,可用地址栏作图(类似matlab功能)、超级计算器(无限精度/π的前万位或更多、无限函数、无限常量)、符号演算(解方程、分解因式、求积分导数)、离线字典查找等。譬如地址栏输入sin(x)**5就直接得到函数图形。利用好第三方代码,才能真正发挥出uWeb的潜能。
-Ebrowser for Windows, MacOS and Linux
+Ebrowser for Windows, MacOS and Linux
可看作超微浏览器台式机简易版,用于弥补普通浏览器访问痛点。
-Last Modified: 13 June 2024
-markdown rjs to use marked
+
Last Modified: 24 June 2024
+move ebrowser README together with package files
diff --git a/zh/sitemap.xml b/zh/sitemap.xml
index 3ce865c..9bd5d7e 100644
--- a/zh/sitemap.xml
+++ b/zh/sitemap.xml
@@ -81,7 +81,7 @@
/>
/zh/
- 2024-06-18T08:06:18+08:00
+ 2024-06-24T10:28:37+08:00
2024-04-02T11:46:25+08:00
/zh/readme/
- 2024-06-13T08:05:27+08:00
+ 2024-06-24T10:28:37+08:00
2024-04-02T11:46:25+08:00
/zh/unlist/
- 2024-06-13T08:05:27+08:00
+ 2024-06-24T10:28:37+08:00