Compare commits

...

254 commits

Author SHA1 Message Date
James Feng Cao
c6a2c8ce78 uweb1151: allow bookmark before loading 2026-04-28 15:22:53 +08:00
James Feng Cao
5ac50f1159 cleanup 2026-04-20 22:05:53 +08:00
James Feng Cao
17df52ac6f cleanup mirrors 2026-04-18 10:42:35 +08:00
James Feng Cao
cc4e58b6ee cleanup urls 2026-04-17 21:07:51 +08:00
James Feng Cao
d9b0538364 cleanup mirrors 2026-04-17 09:59:07 +08:00
James Feng Cao
2eb5e533cc simple .gitlab-ci.yml 2026-04-13 19:59:37 +08:00
James Feng Cao
234c9b9dc5 fix url for en/searchurl/config.js 2026-04-13 16:55:45 +08:00
James Feng Cao
90330b4c99 update mirrors 2026-04-12 21:53:33 +08:00
James Feng Cao
9bad323dda update mirrors 2026-04-12 10:49:18 +08:00
James Feng Cao
ba9461c4ce cleanup mirrors 2026-04-12 08:23:00 +08:00
James Feng Cao
1702c9d88d add mirrors 2026-04-09 17:03:06 +08:00
James Feng Cao
19e7b8ebf5 use jsdeliv instead of gitee for translate.js 2026-04-01 20:33:21 +08:00
James Feng Cao
45f7c708a3 uweb1150: fix .rjs remote scripts 2026-04-01 11:43:03 +08:00
James Feng Cao
c7fbfb5cd7 add translate.js to rjs.cfg 2026-04-01 11:15:09 +08:00
James Feng Cao
b6a3b8babe add translate.js to rjs.cfg 2026-04-01 11:07:53 +08:00
James Feng Cao
e8e6058deb add translate.js 2026-03-31 09:46:25 +08:00
James Feng Cao
12b22e4dec cleanup mirrors 2026-03-28 22:28:03 +08:00
James Feng Cao
87d0929d35 update mirrors 2026-03-28 07:46:21 +08:00
James Feng Cao
2c37c79f1e clean up dead links 2026-03-27 21:11:43 +08:00
James Feng Cao
015282c89b uweb 1149: fix bookmarklets on CSP sites 2026-03-26 08:37:20 +08:00
James Feng Cao
85dab26125 update doc regarding js on CSP sites 2026-03-22 15:29:37 +08:00
James Feng Cao
df547a539b uweb1148: siteextra/[domain.sanitizer] support 2026-03-21 17:57:10 +08:00
James Feng Cao
f882b2c1a3 uweb1148: siteextra/[domain.sanitizer] support 2026-03-21 17:42:36 +08:00
James Feng Cao
12e4b5ed01 add more mirrors 2026-03-20 21:06:16 +08:00
James Feng Cao
2396821a73 update documents 2026-03-20 14:03:40 +08:00
James Feng Cao
1af2894e57 uweb1146: pager and search engine for remote/local txt/html/md (optional .zst,.gz,.br compressed) 2026-01-06 19:40:56 +08:00
James Feng Cao
892fce9ce6 uweb1146: remote/local txt/html/md (optional .zst,.gz,.br compressed) as search engines 2026-01-06 18:55:20 +08:00
James Feng Cao
086559bda0 uweb1145: fix % and newline handling in homescreen input 2026-01-01 16:55:02 +08:00
James Feng Cao
8cf9fd9197 uweb1144: add novel reader support for large text/html files (could be .gz,.br, .zst compressed) 2025-12-31 15:58:22 +08:00
James Feng Cao
98d515de60 enhance url services with %u etc. 2025-12-31 09:14:27 +08:00
James Feng Cao
54f8ad1d39 enhance url services with %u, %t support 2025-12-30 23:12:20 +08:00
James Feng Cao
6a07aa593a add documents to run shell command on address bar 2025-12-05 19:05:14 +08:00
James Feng Cao
8e3c207e77 use https://l/ instead of local 2025-12-02 14:16:29 +08:00
James Feng Cao
3f3d36c5f3 reflow text for wider dialog 2025-11-23 15:48:42 +08:00
James Feng Cao
c15f213f20 add AI engines 2025-11-15 11:10:02 +08:00
James Feng Cao
f78cc2c121 . 2025-11-15 08:07:24 +08:00
James Feng Cao
bcfb6cdfe3 update README 2025-11-15 07:57:27 +08:00
James Feng Cao
bb961b0504 . 2025-11-14 21:38:28 +08:00
James Feng Cao
3ccd3bcc18 use uweb.codeberg 2025-11-12 14:55:47 +08:00
James Feng Cao
d2e4e3ad19 minor fix 2025-11-12 14:10:12 +08:00
James Feng Cao
2bb5fda2de homescreen.html: remove home5.mht as it is already implemented in uweb 2025-11-10 08:01:28 +08:00
James Feng Cao
feebf8e6aa uweb1142: fix homescreen set as a url 2025-11-10 07:47:58 +08:00
James Feng Cao
2fa071445e remove dead link 2025-11-10 07:11:43 +08:00
James Feng Cao
ee1f1f72c4 add back n.cn for deepseek 2025-11-08 20:50:45 +08:00
James Feng Cao
195f795ac6 uweb1141: optimization 2025-11-08 14:54:32 +08:00
James Feng Cao
c5b174fbf8 rewording 2025-11-07 09:16:57 +08:00
James Feng Cao
a94bc639fd . 2025-11-06 21:15:56 +08:00
James Feng Cao
af7eeac2b6 uweb1140: add mimetype uwebS for sharing 2025-11-06 19:20:44 +08:00
James Feng Cao
a166e7e286 fix menu Edit in textprocess 2025-11-06 17:13:12 +08:00
James Feng Cao
6ab370a9f4 uweb 1140: add mimetype uwebS for sharing 2025-11-06 11:09:33 +08:00
James Feng Cao
954890ac92 uweb1139: \n support in default.input & default.autoc 2025-10-30 21:15:51 +08:00
James Feng Cao
50420230f7 add example AI prompts 2025-10-30 17:27:10 +08:00
James Feng Cao
5ec4b646a5 uweb1039: associate mimetype uwebAddr to address bar text 2025-10-29 20:14:40 +08:00
James Feng Cao
84fe1555fe update README 2025-10-28 19:58:25 +08:00
James Feng Cao
786a23d12f uweb1038: space+newline in main home screen to use addressbar+input as effective query 2025-10-28 16:37:29 +08:00
James Feng Cao
927d84fd82 adapt input.html for gitee 2025-10-21 11:02:41 +08:00
James Feng Cao
1aa932b1b6 remove common characters for chinese input with parts 2025-10-19 12:33:12 +08:00
James Feng Cao
2b530c33fb add zh/input.md 2025-10-15 10:27:41 +08:00
James Feng Cao
e353ce3c8d enable address bar as IME 2025-10-13 20:50:55 +08:00
James Feng Cao
221605143a enable address bar as IME 2025-10-13 20:44:43 +08:00
James Feng Cao
ecdb762bb4 enable address bar as IME 2025-10-13 20:39:22 +08:00
James Feng Cao
e2c6b3ca50 enable address bar as IME 2025-10-13 20:28:53 +08:00
James Feng Cao
1902b60b61 README: reword 2025-10-13 09:55:34 +08:00
James Feng Cao
d4eb4871a7 refine README 2025-10-12 16:31:33 +08:00
James Feng Cao
7ade3389e1 update tips 2025-10-12 15:46:25 +08:00
James Feng Cao
b8eb13ac28 more tips 2025-10-12 15:16:00 +08:00
James Feng Cao
208c1c5715 uweb1136: space-beginning address bar autocompletion as input method 2025-10-12 06:37:37 +08:00
James Feng Cao
780b2e9f10 uweb1136: space-beginning address bar autocompletion as input method for AI prompts 2025-10-11 09:21:06 +08:00
James Feng Cao
ee3f611b42 uweb1136: space-beginning address bar autocompletion as input method 2025-10-11 09:04:38 +08:00
James Feng Cao
c7b85148ba update search engines 2025-09-27 16:26:14 +08:00
James Feng Cao
9776545a73 update search engines 2025-09-26 06:56:41 +08:00
James Feng Cao
b5a09277d5 update search engines 2025-09-25 08:22:14 +08:00
James Feng Cao
bcb863902b update AI engines 2025-09-24 09:39:25 +08:00
James Feng Cao
813b8749cc update gitcode AI 2025-09-23 22:29:55 +08:00
James Feng Cao
0a0d973ffc . 2025-09-20 14:46:00 +08:00
James Feng Cao
fee4dab5b2 uweb 1134 to fix uweb2edit2.js for stubborn websites 2025-09-19 11:45:15 +08:00
James Feng Cao
b3b33450b9 . 2025-09-18 21:29:09 +08:00
James Feng Cao
c2b540411f uweb2edit2.js works for ebrowser now 2025-09-18 21:04:51 +08:00
James Feng Cao
864d51ce1c . 2025-09-18 15:53:36 +08:00
James Feng Cao
567e800d70 add val.town script for redirection 2025-09-18 15:34:08 +08:00
James Feng Cao
f2c8b320b2 add statichost.eu 2025-09-02 06:36:42 +08:00
James Feng Cao
3f22c34c42 cleanup mirror links 2025-09-02 06:25:42 +08:00
James Feng Cao
527a2e1582 cleanup mirror links 2025-09-02 06:18:20 +08:00
James Feng Cao
b0e376a88a cleanup mirror links 2025-09-02 05:54:13 +08:00
James Feng Cao
73a4920e83 cleanup download mirrors 2025-08-31 16:52:30 +08:00
James Feng Cao
3e30ddb64d remove deno deployment 2025-08-30 09:11:09 +08:00
James Feng Cao
0a8830bf64 search engine cleanup 2025-08-24 08:04:10 +08:00
James Feng Cao
39f2455692 uweb1029: ':cclear' to clear web storage 2025-08-22 08:40:29 +08:00
James Feng Cao
bad6a9cb2a add more search engines 2025-08-21 17:40:07 +08:00
James Feng Cao
c1cc20b4cd update download urls 2025-08-19 08:44:30 +08:00
James Feng Cao
bdf6a68cf5 update AI search engines 2025-08-16 11:34:22 +08:00
James Feng Cao
a9b55d4542 add local command search engine templates 2025-08-14 05:07:54 +08:00
James Feng Cao
bd9c7db5f3 . 2025-08-09 08:30:31 +08:00
James Feng Cao
db86c08922 uweb version 1126 2025-08-05 09:08:21 +08:00
James Feng Cao
de65ce6dda uweb1025: add txt2img 2025-07-28 10:07:12 +08:00
James Feng Cao
393db46670 add more AI models 2025-07-27 17:05:12 +08:00
James Feng Cao
5e1736e925 add AI engines with many models 2025-07-27 16:51:48 +08:00
James Feng Cao
ea636766f4 puter.js AI chat support 2025-07-27 08:48:10 +08:00
James Feng Cao
04fa21b542 AI models with puter.html 2025-07-26 16:13:29 +08:00
James Feng Cao
11620ae381 update AI engines 2025-07-19 11:04:28 +08:00
James Feng Cao
a44d3fa144 update AI engines 2025-07-18 12:03:36 +08:00
James Feng Cao
62adb2b754 update AI engines 2025-07-17 10:21:39 +08:00
James Feng Cao
24f7bfa0b2 uweb 1122: offline site cache to support urls with special chars like ? etc 2025-05-11 08:19:17 +08:00
James Feng Cao
3d3eb3b6cc uweb1121: i:ch to load part of the content 2025-04-09 19:14:42 +08:00
James Feng Cao
3a357e0743 fix broken links 2025-04-09 01:02:22 +08:00
James Feng Cao
0e4320edc9 remove dead url services 2025-04-08 23:20:04 +08:00
James Feng Cao
9ba86bb3d6 remove dead search engines in en/search 2025-04-08 23:08:17 +08:00
James Feng Cao
108a60971a remove dead search engines in zh/search 2025-04-08 22:37:29 +08:00
James Feng Cao
e350689cc0 update search engines 2025-04-08 21:30:38 +08:00
James Feng Cao
e3a5de5ccd update search engines 2025-04-08 21:26:07 +08:00
James Feng Cao
c2b357850d uweb1120: %s url can be the first search engine now 2025-04-05 21:27:00 +08:00
James Feng Cao
128b049fa1 update AI engines 2025-04-05 09:13:28 +08:00
James Feng Cao
25891f59a8 update AI engines 2025-04-03 20:59:49 +08:00
James Feng Cao
2441072961 update AI engines 2025-04-03 11:16:47 +08:00
James Feng Cao
9087af7aa0 uweb1118: i:0UA1 to open url with PC useragent 2025-04-01 22:58:43 +08:00
James Feng Cao
8712b5befb add notes to search engines 2025-04-01 11:45:35 +08:00
James Feng Cao
3e766c8bbc uweb1117: uweb2edit2 args support 2025-03-31 19:04:52 +08:00
James Feng Cao
821cf296ce fix webdav.html templates 2025-03-31 12:36:02 +08:00
James Feng Cao
cd82f61dab uweb2edit2.js: args support 2025-03-31 10:37:24 +08:00
James Feng Cao
0a354c6805 enhance termux tools 2025-03-30 18:26:11 +08:00
James Feng Cao
85bb0fde7e refine backup.html 2025-03-28 20:50:21 +08:00
James Feng Cao
fd583dc986 refine backup.html 2025-03-28 20:42:35 +08:00
James Feng Cao
7c7326e42b refine backup.html 2025-03-28 20:20:15 +08:00
James Feng Cao
c05bcf6d45 refine backup.html 2025-03-28 20:06:00 +08:00
James Feng Cao
26234f08a7 uweb1115: disable android 15 edge-to-edge default 2025-03-28 18:47:10 +08:00
James Feng Cao
acbd5240e6 update engines 2025-03-27 23:17:19 +08:00
James Feng Cao
cda8946882 add www4.bing.com as backup 2025-03-27 15:53:57 +08:00
James Feng Cao
1d91148ff6 uweb 1113: default.cmds uwebA mimetype support 2025-03-17 21:29:12 +08:00
James Feng Cao
4fb1ce6fad update AI engines 2025-03-16 15:43:09 +08:00
James Feng Cao
48fd60afff wol support 2025-03-15 21:13:12 +08:00
James Feng Cao
64a0173af5 uweb 1111: auto enter support for AI engines 2025-03-14 09:47:02 +08:00
James Feng Cao
5ef9646733 update baidu deepseek url 2025-03-11 18:37:32 +08:00
James Feng Cao
14d5434b11 uweb1109: use uwebset.js 2025-03-09 15:03:14 +08:00
James Feng Cao
67d28970b7 update AI engines 2025-03-08 22:23:58 +08:00
James Feng Cao
d699f91476 update AI engines 2025-03-08 21:48:22 +08:00
James Feng Cao
bf349caa52 update AI engines 2025-03-07 09:52:20 +08:00
James Feng Cao
a55c2d8e49 add notes on n.cn to use deepseek 2025-03-06 21:08:26 +08:00
James Feng Cao
a3792d15c7 update AI engines 2025-03-06 17:05:57 +08:00
James Feng Cao
0c31a55c11 uweb1106: refine uweb2ta2.js 2025-03-05 11:27:44 +08:00
James Feng Cao
e46776a7a7 uweb1105 2025-03-04 18:24:14 +08:00
James Feng Cao
365b1bcde4 update wenxiaobai url 2025-03-04 14:15:15 +08:00
James Feng Cao
4309114127 update AI engines 2025-03-04 11:33:55 +08:00
James Feng Cao
b461eea78f add gitcode deepseek 2025-03-02 15:38:12 +08:00
James Feng Cao
72721e02ec update links.md 2025-03-02 14:00:29 +08:00
James Feng Cao
508cfa192a update documents for links 2025-03-02 11:37:41 +08:00
James Feng Cao
ce3fca4d75 add menus for download options menu 2025-03-01 21:45:40 +08:00
James Feng Cao
91ba2ed8ea support specific submenus for images and downloading 2025-03-01 16:01:29 +08:00
James Feng Cao
61dc27a6e3 uweb1102 2025-02-28 16:12:32 +08:00
James Feng Cao
ee818cc5ae update baidu deepseek 2025-02-28 10:33:33 +08:00
James Feng Cao
f01ec1037e uweb1011 2025-02-27 19:31:16 +08:00
James Feng Cao
8c49fc58bb add link menus to view huge files 2025-02-26 22:57:37 +08:00
James Feng Cao
b56c20fd21 uweb1100: enhance html file as data cruncher and presenter for url as remote data 2025-02-26 21:35:41 +08:00
James Feng Cao
cae83394ef uweb1099: html as data cruncher and presenter for url as remote data 2025-02-26 19:59:02 +08:00
James Feng Cao
5dd5881557 uweb1099: html as data cruncher and presenter for url as remote data 2025-02-26 19:31:59 +08:00
James Feng Cao
e58d618e32 uweb1097: fix for oppo Deepseek 2025-02-25 10:39:23 +08:00
James Feng Cao
a37386ea3c uweb1095: fix wrong browser version on huawei phones 2025-02-23 12:11:19 +08:00
James Feng Cao
ac8878070a update AI engines 2025-02-22 23:26:31 +08:00
James Feng Cao
30ca583021 update AI engines 2025-02-22 13:13:24 +08:00
James Feng Cao
9674833907 uweb1094: uweb2input.js arguments support 2025-02-21 21:17:50 +08:00
James Feng Cao
3e79ad2ae4 update AI engines 2025-02-21 19:51:05 +08:00
James Feng Cao
2c78355c54 update AI engines 2025-02-20 20:07:26 +08:00
James Feng Cao
9c4c089161 update AI engines 2025-02-14 09:50:11 +08:00
James Feng Cao
ebc3b59c8c uweb 1093: bookmarklet argument support 2025-02-13 09:44:40 +08:00
James Feng Cao
34078ecd12 update AI engines 2025-02-09 16:18:38 +08:00
James Feng Cao
e0114cf562 use gitee releases in latest.html 2025-02-05 16:05:10 +08:00
James Feng Cao
95af55d1f3 add multiple deepseek AI providers 2025-02-03 17:35:21 +08:00
James Feng Cao
1f562f8545 add multiple deepseek AI providers 2025-02-03 17:16:30 +08:00
James Feng Cao
4109edb7e8 update AI engines 2025-02-02 10:38:17 +08:00
James Feng Cao
574648668f update AI engines 2025-01-27 20:29:41 +08:00
James Feng Cao
01b4d5f28b update AI engines 2025-01-08 22:55:22 +08:00
James Feng Cao
82c4d83dd8 update AI engines 2025-01-07 17:51:54 +08:00
James Feng Cao
352e080764 update AI engines 2025-01-07 09:55:12 +08:00
James Feng Cao
d649e64efe update AI engines 2025-01-06 16:21:12 +08:00
James Feng Cao
323627f3b7 update AI engines 2025-01-05 17:34:35 +08:00
James Feng Cao
f6034aae8f update AI engines 2025-01-05 17:10:48 +08:00
James Feng Cao
5c15ceac3a uweb1089: cleanup 2025-01-01 09:20:54 +08:00
James Feng Cao
7b2a5104f5 update documents for global redirection 2024-12-28 19:32:56 +08:00
James Feng Cao
bfea5d72ce update download mirrors 2024-12-27 19:48:17 +08:00
James Feng Cao
e51ff9a559 update AI engines 2024-12-25 10:34:42 +08:00
James Feng Cao
a00da09ae6 uweb1088: support uweb2edit 2024-12-16 08:36:15 +08:00
James Feng Cao
4a4db7d56d add uptodown link 2024-12-15 11:41:24 +08:00
James Feng Cao
df002a81be uweb1087: adaptive UI for AI 2024-12-15 09:07:13 +08:00
James Feng Cao
b5594cb4cd cleanup 2024-12-14 14:47:00 +08:00
James Feng Cao
659461798b cleanup 2024-12-14 14:38:54 +08:00
James Feng Cao
46a7b279f2 cleanup 2024-12-14 14:25:30 +08:00
James Feng Cao
357512f654 uweb1086: alias support for common phrases for input method 2024-12-14 11:33:25 +08:00
James Feng Cao
778dec7cdc uweb1085: allow newline in complex query 2024-12-13 15:53:11 +08:00
James Feng Cao
9093bc813a uweb1085: allow newline in complex query 2024-12-13 15:43:29 +08:00
James Feng Cao
cc6986bb64 cleanup 2024-12-13 09:13:41 +08:00
James Feng Cao
96db559383 live tv channels: use active repository 2024-12-12 19:13:00 +08:00
James Feng Cao
faa76818ee live tv channels: use active repository 2024-12-12 18:59:44 +08:00
James Feng Cao
c934f58bae live tv channels: use active repository 2024-12-12 18:34:18 +08:00
James Feng Cao
5a4fb9936b live tv channels: use active repository 2024-12-12 17:08:52 +08:00
James Feng Cao
112c92ccbf Top menu translation 2024-12-12 14:43:32 +08:00
James Feng Cao
6ca6779459 update manual 2024-12-12 11:47:16 +08:00
James Feng Cao
3ccf302f60 uweb1084: cleanup documentation 2024-12-12 09:59:39 +08:00
James Feng Cao
4d6fe8712d cleanup 2024-12-11 21:03:23 +08:00
James Feng Cao
12b4c08265 fix //index.html 2024-12-11 20:56:01 +08:00
James Feng Cao
f0666e2fb7 with canonical links 2024-12-11 19:53:39 +08:00
James Feng Cao
01572990b7 add cf worker code link for redirection 2024-12-11 19:15:03 +08:00
James Feng Cao
9d8061b12a use 'echo -n' instead of printf 2024-12-11 16:02:48 +08:00
James Feng Cao
3d4c17a7b3 uweb1083: uweb2ta.js to support append mode 2024-12-10 23:45:50 +08:00
James Feng Cao
97870dfdd4 uweb1083: uweb2ta.js to support append mode 2024-12-10 18:00:48 +08:00
James Feng Cao
216b7635b5 uweb1082: :cinput to choose text file as keyboard input 2024-12-10 10:23:25 +08:00
James Feng Cao
4fefb9ace0 update AI engines 2024-12-05 20:30:56 +08:00
James Feng Cao
f89c4903aa update AI engines 2024-12-05 20:20:54 +08:00
James Feng Cao
774a31259a update AI engines 2024-12-05 20:14:57 +08:00
James Feng Cao
378ad4f3c4 update search.md 2024-12-03 10:23:22 +08:00
James Feng Cao
b5945ecfa2 latest.html to support multiple languages 2024-12-03 09:52:33 +08:00
James Feng Cao
c5c29225b9 update search engines 2024-12-02 15:22:56 +08:00
James Feng Cao
57855cb1cb add link to search engine md file 2024-12-02 13:10:24 +08:00
James Feng Cao
ac808be6e5 add link to search engine md file 2024-12-02 13:05:39 +08:00
James Feng Cao
fab514198e update notes for search engines 2024-12-02 12:32:43 +08:00
James Feng Cao
5c8f1394ee uweb 1081 2024-12-02 10:37:34 +08:00
James Feng Cao
20bc9fdffd uweb 1080: enhance uweb2ta2.js 2024-12-01 19:27:40 +08:00
James Feng Cao
add3df8eb5 update AI engines 2024-12-01 14:04:54 +08:00
James Feng Cao
aaa83eaeb8 update AI engines 2024-11-29 00:04:58 +08:00
James Feng Cao
498a1f04b5 update AI engines 2024-11-28 22:45:20 +08:00
James Feng Cao
07663f9268 add AI engines 2024-11-28 21:29:24 +08:00
James Feng Cao
79ee17ce2a uweb 1077: add uweb2ta2.js 2024-11-28 16:37:01 +08:00
James Feng Cao
0f3b825126 uweb 1077 to support more AI engines 2024-11-28 16:06:27 +08:00
James Feng Cao
77cea26bd1 update AI engines 2024-11-25 19:57:15 +08:00
James Feng Cao
3d86036df1 use sourceforge for downloading 2024-11-24 18:25:37 +08:00
James Feng Cao
e576eee4ae use sourceforge for downloading 2024-11-24 18:10:51 +08:00
James Feng Cao
79defaf371 update redirect.md 2024-11-18 14:33:41 +08:00
James Feng Cao
fe734f52b0 update redirect.md 2024-11-18 14:31:27 +08:00
James Feng Cao
0e282ef72c update redirect.md 2024-11-18 10:27:56 +08:00
James Feng Cao
d2cd57fb1d uweb1075: global redirection works for AI sites and login 2024-11-17 11:51:09 +08:00
James Feng Cao
88c32485d1 update AI engines 2024-11-13 19:49:44 +08:00
James Feng Cao
86c36ecac0 update AI engines 2024-11-13 10:15:40 +08:00
James Feng Cao
5815339d3d uweb1073 to support proxies with username and password 2024-11-11 11:28:38 +08:00
James Feng Cao
fa234b7aac uweb version 1.0.1072 2024-11-08 19:29:30 +08:00
James Feng Cao
6e6ceec5ee uweb version 1.0.1070 2024-11-01 10:39:45 +08:00
James Feng Cao
3a435393b6 uweb version 1.0.1068 2024-10-24 17:35:58 +08:00
James Feng Cao
f82621e0b3 uweb version 1.0.1067 2024-10-23 09:27:12 +08:00
James Feng Cao
9b434e8d68 uweb version 1.0.1066 2024-10-18 10:20:46 +08:00
James Feng Cao
5393216019 uweb version 1064 2024-10-16 11:25:57 +08:00
James Feng Cao
d3e36ae437 add css/nojscopy.js to disable webpage clipboard copy 2024-10-13 16:47:00 +08:00
James Feng Cao
3a6f6b546b uweb 1060 2024-10-04 10:34:03 +08:00
James Feng Cao
205efccabd uweb 1058 2024-09-29 19:44:44 +08:00
James Feng Cao
07b9f48905 update AI engines 2024-09-28 12:04:31 +08:00
James Feng Cao
c0a37d6379 update AI engines 2024-09-26 09:14:46 +08:00
James Feng Cao
93e3051e15 uweb 1057 2024-09-02 17:35:40 +08:00
James Feng Cao
a46482ada7 uweb updates to 1056 2024-08-30 07:59:28 +08:00
James Feng Cao
5c2b79c14b uweb updates to 1055 2024-08-29 08:57:54 +08:00
James Feng Cao
f99e678a5d use gitee for zh 2024-08-26 10:12:45 +08:00
James Feng Cao
f065be8288 uweb1054: crontab to work on API level 31+ 2024-08-25 22:13:00 +08:00
James Feng Cao
08b1a02684 update mirrors 2024-08-25 12:19:22 +08:00
James Feng Cao
e021d1d319 uweb 1053: target API 35 2024-08-25 09:20:56 +08:00
James Feng Cao
92e3efcbd6 fix typos of files:// 2024-08-21 20:36:40 +08:00
James Feng Cao
a01d043575 add data clearing menu 2024-08-20 09:04:05 +08:00
James Feng Cao
434460c8bb update search engines 2024-08-19 11:04:49 +08:00
James Feng Cao
504c66ea4a update AI engines 2024-08-18 12:19:33 +08:00
James Feng Cao
3fd90ec47e update AI engines 2024-08-17 12:33:24 +08:00
224 changed files with 5086 additions and 7114 deletions

View file

@ -1,10 +1,5 @@
pages: create-pages:
stage: deploy
script: script:
- rm -rf public - echo "do nothing"
- mkdir tpublic pages:
- ls | grep -v tpublic | xargs cp -r -t tpublic publish: .
- mv tpublic public
artifacts:
paths:
- public

View file

@ -1,36 +1,33 @@
### Uweb browser: minimal suckless web browser with unlimited power ### Uweb browser: minimal suckless web browser with unlimited power
<a href="README.zh-Hans.md" onclick="if(notRepo()){location='../../zh/readme/index.html#';return false;}">中文</a> <a href="README.zh-Hans.md" onclick="if(notRepo()){location='../../zh/readme/index.html#';return false;}">中文</a>
[Amazon appstore](https://www.amazon.com/TorApp-Info-uweb-browser-for-geeks/dp/B098QPR6N5) [Galaxy.Store](https://galaxystore.samsung.com/detail/info.torapp.uweb)
[Galaxy.Store](https://galaxy.store/uweb)
<a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">Downloads</a> <a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">Downloads</a>
[Uweb browser: downloads, plugins and tips](https://torappinfo.github.io/uweb/en/) [Uweb browser: downloads, plugins and tips](https://torappinfo.github.io/uweb/en/)
(Mirrors: [gitlab](https://jamesfengcao.gitlab.io/uweb/en/) [codeberg](https://jamesfengcao.codeberg.page/en/) [repo](https://repo.or.cz/uweb.git/blob_plain/HEAD:/en/index.html) [4everland](https://uweb.4everland.app/en/) [fleek](https://uweb.on-fleek.app/en/) [cyclic](https://muweb.cyclic.app/en/) [netlify](https://uwebzh.netlify.app/en/) [surge](https://uweb.surge.sh/en/) [kinsta](https://uwebbrowser-t27o4.kinsta.page) [zeabur](https://uweb.zeabur.app/en/) [deno](https://posh-crab-23.deno.dev/en/) [bitbucket](https://torappinfo.bitbucket.io/en/) [pages](https://muweb.pages.dev/en/) [vercel](https://uweb.vercel.app/en/) [render](https://uweb.onrender.com/en/) [glitch](https://uweb.glitch.me/en/) <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">More...</a>) (Mirrors: [grebe](https://uweb.grebedoc.dev) [gitlab](https://jamesfengcao.gitlab.io/uweb/en/) [frama](https://torappinfo.frama.io/uweb/en/) [codeberg](https://uweb.codeberg.page/en/) [repo](https://repo.or.cz/uweb.git/blob_plain/HEAD:/en/index.html) [netlify](https://uwebzh.netlify.app/en/) [surge](https://uweb.surge.sh/en/) [kinsta](https://uwebbrowser-t27o4.kinsta.page) [bitbucket](https://torappinfo.bitbucket.io/en/) [pages](https://muweb.pages.dev/en/) [vercel](https://uweb.vercel.app/en/) [render](https://uweb.onrender.com/en/) [statichost](https://torappinfo-uweb.statichost.eu) [maozi](https://uweb.maozi.io) [storm](https://uweb.stormkit.dev) [pgs](https://uweb-m.pgs.sh) <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">More...</a>)
- Powerful: any native functionality with html5 enhancement and still secure; any urls to host website; javascript and shell scripting for general processing; piping between console and GUI and more with Termux. - <a href="en/search.md" onclick="if(notRepo()){location='../search/index.html#';return false;}">AI chat as search engine</a>; optimized UI for both AI and traditional search; [input helpers](https://uwebzh.netlify.app/en/input/index.html#) for complex query.
- Customizable: user-defined menus, (new) buttons and gestures for user agents, bookmarklets, url services, shell commands, internal functionality links and text processing etc. - <a href="en/tips.md" onclick="if(notRepo()){location='../redirect/index.html#';return false;}">Global redirection</a> to bypass censorship.
- Convenient: Any AI chatbot/book (pdf/djvu)/dictionary (mdict)/txt/command line/app/webapp (web extensions) can be search engine. - Convenient: Any AI chatbot/book/dictionary/txt/command line/app/webapp (web extensions) as search engine.
- Tiny: less than 250k. - Tiny: less than 250k.
- Fast: run fast, even with thousands of user provided css/scripts/htmls. - Fast: run fast, even with thousands of user provided css/scripts/htmls.
- Efficient: less touches, one click to reach any number of search engines without repeated input; automate online services. - Efficient: less touches, one click to reach any number of search engines without repeated input; automate online services.
- Powerful: any native functionality with html5 enhancement and still secure; any urls to host website; javascript and shell scripting for general processing.
- Customizable: user-defined menus, (new) buttons and gestures for user agents, bookmarklets, url services, shell commands, internal functionality links and text processing etc.
- URL bar command line support ("!" and .js file as command). - URL bar command line support ("!" and .js file as command).
- Site-specific JS/CSS/HTML/preprocessing. - Site-specific JS/CSS/HTML/preprocessing, ex. "siteextra/[domain.sanitizer]" support.
- Online play/preview/preprocess for downloadable resources. - Online play/preview/preprocess for downloadable resources.
- Multiple type profiles: switch any data including website logins, user configurations orthogonally. - Multiple type profiles: switch any data including website logins, user configurations orthogonally.
- Supports enhanced user "hosts" file. Empty IP address to lift all server-imposed limitations. - Supports enhanced user "hosts" file. Empty IP address to lift all server-imposed limitations.
- Website test automation scripting. crontab support (alarm clock and more). - Website test automation scripting. crontab support (alarm clock and more).
#### Main features #### Main features
Custom paper size PDF export and long vector screenshot, TTS, text reflow, resource sniffer, translation, reader's mode, user-defined url redirection, webdav/http backup & restore, auto next page, sending/receiving msg/file(s), site config (UA, no JS, no image, no 3rd party script/resource,active script, global scripts), http(s)/socks proxy, enabling html5 apps for local files (pdf/djvu/epub viewer, mdict dictionary lookup etc.). Custom paper size PDF export and long vector screenshot, TTS, text reflow, resource sniffer, translation, reader's mode, user-defined url redirection, webdav/http backup & restore, auto next page, sending/receiving msg/file(s), site config (UA, no JS, no image, no 3rd party script/resource,active script, global scripts), http(s)/socks proxy, Wake-on-LAN, enabling html5 apps for local files (pdf/djvu/epub viewer, mdict dictionary lookup etc.).
- User-defined global and site-specific CSS and javascript.
- Bookmarklets (works for CSP sites and with option to auto apply to similar sites) - Bookmarklets (works for CSP sites and with option to auto apply to similar sites)
- AD blocking (block whole root domain trees etc.) - AD blocking (block whole root domain trees etc.)
- Customization (define extra menus/buttons/gestures with user-defined functionalities)
- Support shell scripts, javascript for general processing, other languages (python etc.) are also supported by installing uweb compatible Termux versions.
- Serverless local sites: PWA-kind web extension (chrome .crx & firefox .xpi) support. - Serverless local sites: PWA-kind web extension (chrome .crx & firefox .xpi) support.
- Piping between console and uweb tabs.
- Resizable floating video support. - Resizable floating video support.
#### Screenshots #### Screenshots

View file

@ -3,24 +3,23 @@
<a href="zh/donate.md" onclick="if(notRepo()){location='../searchurl/donate.html#';return false;}">捐赠</a> <a href="zh/donate.md" onclick="if(notRepo()){location='../searchurl/donate.html#';return false;}">捐赠</a>
[Amazon appstore](https://www.amazon.com/TorApp-Info-uweb-browser-for-geeks/dp/B098QPR6N5) [Galaxy.Store](https://galaxystore.samsung.com/detail/info.torapp.uweb)
[Galaxy.Store](https://galaxy.store/uweb)
<a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">下载</a> <a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">下载</a>
[超微浏览器下载及使用技巧](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html) [超微浏览器下载及使用技巧](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html)
(镜像: [atomgit](https://uweb.atomgit.net/uweb/zh/) [gitlab](https://jamesfengcao.gitlab.io/uweb/zh/) [repo](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html) [codeberg](https://jamesfengcao.codeberg.page/zh/) [4everland](https://uweb.4everland.app/zh/) [cyclic](https://muweb.cyclic.app/zh/) [github](https://torappinfo.github.io/uweb/zh/) [render](https://uweb.onrender.com/zh/) [surge](https://uweb.surge.sh/zh/) [netlify](https://uwebzh.netlify.app/zh/) [deno](https://posh-crab-23.deno.dev/zh/) [kinsta](https://uwebbrowser-t27o4.kinsta.page/zh/) [fleek](https://uweb.on-fleek.app/zh/) [pages](https://muweb.pages.dev/zh/) [bitbucket](https://torappinfo.bitbucket.io/zh/) [torapp](https://torapp.eu.org/zh/) [torappv](https://uweb.torapp.eu.org/zh/) [glitch](https://uweb.glitch.me/zh/) [zeabur](https://uweb.zeabur.app/zh/) [vercel](https://uweb.vercel.app/zh/) <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">专用镜像...</a>) (镜像: [grebe](https://uweb.grebedoc.dev/zh/) [gitlab](https://jamesfengcao.gitlab.io/uweb/zh/) [frama](https://torappinfo.frama.io/uweb/zh/) [repo](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html) [codeberg](https://uweb.codeberg.page/zh/) [github](https://torappinfo.github.io/uweb/zh/) [render](https://uweb.onrender.com/zh/) [surge](https://uweb.surge.sh/zh/) [netlify](https://uwebzh.netlify.app/zh/) [pgs](https://uweb-m.pgs.sh/zh/) [kinsta](https://uwebbrowser-t27o4.kinsta.page/zh/) [pages](https://muweb.pages.dev/zh/) [bitbucket](https://torappinfo.bitbucket.io/zh/) [torapp](https://torapp.eu.org/zh/) [torappv](https://uweb.torapp.eu.org/zh/) [statichost](https://torappinfo-uweb.statichost.eu) [maozi](https://uweb.maozi.io/zh/) [storm](https://uweb.stormkit.dev/zh/) [vercel](https://uweb.vercel.app/zh/) <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">专用镜像...</a>)
- <span style="color:red">免魔法国内直接访问英文技术网站如<a href="zh/tips.md" onclick="if(notRepo()){location='../tips/index.html#';return false;}">google、百科等</a></span> - <a href="zh/search.md" onclick="if(notRepo()){location='../search/index.html#';return false;}">提供20多deepseek满血版接入点。</a>
- AI聊天可作为搜索引擎来使用。 - <span style="color:red">免魔法国内直接访问英文技术网站如<a href="zh/tips.md" onclick="if(notRepo()){location='../tips/index.html#';return false;}">wikipedia等</a></span>
- 完善的下载支持,部分网站下载其它浏览器无法成功 - <a href="zh/search.md" onclick="if(notRepo()){location='../search/index.html#';return false;}">AI聊天可作为搜索引擎</a>,对复杂问询提供多种[输入辅助](https://uwebzh.netlify.app/zh/input/index.html#);不受剪贴板长度限制,[超长文本自由传](https://uwebzh.netlify.app/zh/textprocess/index.html#) (AI输入或共享)
- 微不到250K。 - 微不到250K。
- 威无穷无尽的功能使用增强后的html5可以实现任何本地应用功能。支持使用js脚本、url服务、shell命令、内部功能链接定制菜单按钮手势; 远程数据皆可成网站。 - 威无穷无尽的功能使用增强后的html5可以实现任何本地应用功能。支持使用js脚本、url服务、shell命令、内部功能链接定制菜单按钮手势; 远程数据皆可成网站。
- 便捷AI聊天/图书pdf/djvu/txt/词典mdict,kiwix/命令行/APP/webapp(web extensions)可作为搜索引擎使用。 - 便捷AI聊天/图书/txt/词典/命令行/APP/webapp可作为搜索引擎使用。
- 快:手机越慢,脚本插件越多越明显。 - 快:手机越慢,脚本插件越多越明显。
- 高效:最少的操作,在线服务全自动(参看常用链接网页)。 - 高效:最少的操作,在线服务全自动(参看常用链接网页)。
- 极致优化:最少存储写操作,比如浏览器转到后台前配置变化如恢复成原样则无写操作。 - 极致优化:最少存储写操作,比如浏览器转到后台前配置变化如恢复成原样则无写操作。
- 地址栏支持命令行 ("!", 物理键盘支持更佳) - 地址栏支持命令行 ("!", 物理键盘支持更佳)
- 指定域名: 用户定义JS/CSS/HTML/显示前源码预处理 - 指定域名: 用户定义JS/CSS/HTML/显示前源码预处理,支持使用"siteextra/[domain.sanitizer]"对网页任意定制。
- 支持用户定义域名属性。 - 支持用户定义域名属性。
- 下载资源在线播放/预览/预处理。 - 下载资源在线播放/预览/预处理。
- 独立切换网站登录、配置文件。 - 独立切换网站登录、配置文件。
@ -35,7 +34,7 @@
![](https://i.postimg.cc/0NFnQT6H/option2.png) ![](https://i.postimg.cc/0NFnQT6H/option2.png)
#### 软件功能 #### 软件功能
输出自定义页面大小PDF、矢量图长截屏、朗读、文本重排、嗅探、比价、翻译、视频解析、离线保存、阅读模式(推荐与脚本激活模式配合)、网址重定向至国内、多帐号切换、网盘离线下载、文件管理、webdav/http空间备份/恢复任何指定文件集、智能翻页、目录文件传送、网站独立设置ua禁用脚本无图激活脚本、行编辑器、代码编辑器支持120多种语言语法高亮、错误提示、自动提示、直接运行测试、其它网页上直接测试。通过安装html5应用可预览阅读本地或在线任意格式文件pdf,djvu,epub,mdx/mdd,docx等 输出自定义页面大小PDF、矢量图长截屏、朗读、文本重排、嗅探、比价、翻译、视频解析、离线保存、阅读模式(推荐与脚本激活模式配合)、网址重定向至国内、多帐号切换、网盘离线下载、文件管理、webdav/http空间备份/恢复任何指定文件集、智能翻页、目录文件传送、网站独立设置ua禁用脚本无图激活脚本、行编辑器、网络唤醒(Wake-on-LAN)。通过安装html5应用可预览阅读本地或在线任意格式文件pdf,djvu,epub,mdx/mdd,docx等
修仙小说里面有一种异能,叫做“成功可以复制”,只要成功一次,就能无限复制。超微浏览器中这种异能叫"超级书签"。成功使用时保存,需要时就可以无限恢复。 修仙小说里面有一种异能,叫做“成功可以复制”,只要成功一次,就能无限复制。超微浏览器中这种异能叫"超级书签"。成功使用时保存,需要时就可以无限恢复。
@ -51,7 +50,7 @@
支持自定义任意多个搜索引擎; 支持执行用户提供任何js文件; 支持用户定义任意多个useragent; 长按链接支持运行第三方程序; 长按链接支持运行用户js文件。 支持自定义任意多个搜索引擎; 支持执行用户提供任何js文件; 支持用户定义任意多个useragent; 长按链接支持运行第三方程序; 长按链接支持运行用户js文件。
配套安装uWeb定制Termux应用可用地址栏作图类似matlab功能、超级计算器无限精度/π的前万位或更多、无限函数、无限常量、符号演算解方程、分解因式、求积分导数、离线字典查找等。譬如地址栏输入sin(x)**5就直接得到函数图形。利用好第三方代码才能真正发挥出uWeb的潜能。 安装定制版Termux然后再安装超微浏览器顺序不能错可用地址栏作图类似matlab功能、超级计算器无限精度/π的前万位或更多、无限函数、无限常量、符号演算解方程、分解因式、求积分导数、离线字典查找等。譬如地址栏输入sin(x)**5就直接得到函数图形。利用好第三方代码才能真正发挥出uWeb的潜能。
#### <a href="misc/ebrowser/README.md" onclick="if(notRepo()){location='../../en/ebrowserreadme/index.html#';return false;}">Ebrowser</a> for Windows, MacOS and Linux #### <a href="misc/ebrowser/README.md" onclick="if(notRepo()){location='../../en/ebrowserreadme/index.html#';return false;}">Ebrowser</a> for Windows, MacOS and Linux
可看作超微浏览器台式机简易版,用于弥补普通浏览器访问痛点。 可看作超微浏览器台式机简易版,用于弥补普通浏览器访问痛点。

View file

@ -3,24 +3,23 @@
<a href="zh/donate.md" onclick="if(notRepo()){location='../searchurl/donate.html#';return false;}">捐赠</a> <a href="zh/donate.md" onclick="if(notRepo()){location='../searchurl/donate.html#';return false;}">捐赠</a>
[Amazon appstore](https://www.amazon.com/TorApp-Info-uweb-browser-for-geeks/dp/B098QPR6N5) [Galaxy.Store](https://galaxystore.samsung.com/detail/info.torapp.uweb)
[Galaxy.Store](https://galaxy.store/uweb)
<a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">下载</a> <a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">下载</a>
[超微浏览器下载及使用技巧](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html) [超微浏览器下载及使用技巧](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html)
(镜像: [atomgit](https://uweb.atomgit.net/uweb/zh/) [gitlab](https://jamesfengcao.gitlab.io/uweb/zh/) [repo](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html) [codeberg](https://jamesfengcao.codeberg.page/zh/) [4everland](https://uweb.4everland.app/zh/) [cyclic](https://muweb.cyclic.app/zh/) [github](https://torappinfo.github.io/uweb/zh/) [render](https://uweb.onrender.com/zh/) [surge](https://uweb.surge.sh/zh/) [netlify](https://uwebzh.netlify.app/zh/) [deno](https://posh-crab-23.deno.dev/zh/) [kinsta](https://uwebbrowser-t27o4.kinsta.page/zh/) [fleek](https://uweb.on-fleek.app/zh/) [pages](https://muweb.pages.dev/zh/) [bitbucket](https://torappinfo.bitbucket.io/zh/) [torapp](https://torapp.eu.org/zh/) [torappv](https://uweb.torapp.eu.org/zh/) [glitch](https://uweb.glitch.me/zh/) [zeabur](https://uweb.zeabur.app/zh/) [vercel](https://uweb.vercel.app/zh/) <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">专用镜像...</a>) (镜像: [grebe](https://uweb.grebedoc.dev/zh/) [gitlab](https://jamesfengcao.gitlab.io/uweb/zh/) [frama](https://torappinfo.frama.io/uweb/zh/) [repo](https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html) [codeberg](https://uweb.codeberg.page/zh/) [github](https://torappinfo.github.io/uweb/zh/) [render](https://uweb.onrender.com/zh/) [surge](https://uweb.surge.sh/zh/) [netlify](https://uwebzh.netlify.app/zh/) [pgs](https://uweb-m.pgs.sh/zh/) [kinsta](https://uwebbrowser-t27o4.kinsta.page/zh/) [pages](https://muweb.pages.dev/zh/) [bitbucket](https://torappinfo.bitbucket.io/zh/) [torapp](https://torapp.eu.org/zh/) [torappv](https://uweb.torapp.eu.org/zh/) [statichost](https://torappinfo-uweb.statichost.eu) [maozi](https://uweb.maozi.io/zh/) [storm](https://uweb.stormkit.dev/zh/) [vercel](https://uweb.vercel.app/zh/) <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">专用镜像...</a>)
- <span style="color:red">免魔法国内直接访问英文技术网站如<a href="zh/tips.md" onclick="if(notRepo()){location='../tips/index.html#';return false;}">google、百科等</a></span> - <a href="zh/search.md" onclick="if(notRepo()){location='../search/index.html#';return false;}">提供20多deepseek满血版接入点。</a>
- AI聊天可作为搜索引擎来使用。 - <span style="color:red">免魔法国内直接访问英文技术网站如<a href="zh/tips.md" onclick="if(notRepo()){location='../tips/index.html#';return false;}">wikipedia等</a></span>
- 完善的下载支持,部分网站下载其它浏览器无法成功 - <a href="zh/search.md" onclick="if(notRepo()){location='../search/index.html#';return false;}">AI聊天可作为搜索引擎</a>,对复杂问询提供多种[输入辅助](https://uwebzh.netlify.app/zh/input/index.html#);不受剪贴板长度限制,[超长文本自由传](https://uwebzh.netlify.app/zh/textprocess/index.html#) (AI输入或共享)
- 微不到250K。 - 微不到250K。
- 威无穷无尽的功能使用增强后的html5可以实现任何本地应用功能。支持使用js脚本、url服务、shell命令、内部功能链接定制菜单按钮手势; 远程数据皆可成网站。 - 威无穷无尽的功能使用增强后的html5可以实现任何本地应用功能。支持使用js脚本、url服务、shell命令、内部功能链接定制菜单按钮手势; 远程数据皆可成网站。
- 便捷AI聊天/图书pdf/djvu/txt/词典mdict,kiwix/命令行/APP/webapp(web extensions)可作为搜索引擎使用。 - 便捷AI聊天/图书/txt/词典/命令行/APP/webapp可作为搜索引擎使用。
- 快:手机越慢,脚本插件越多越明显。 - 快:手机越慢,脚本插件越多越明显。
- 高效:最少的操作,在线服务全自动(参看常用链接网页)。 - 高效:最少的操作,在线服务全自动(参看常用链接网页)。
- 极致优化:最少存储写操作,比如浏览器转到后台前配置变化如恢复成原样则无写操作。 - 极致优化:最少存储写操作,比如浏览器转到后台前配置变化如恢复成原样则无写操作。
- 地址栏支持命令行 ("!", 物理键盘支持更佳) - 地址栏支持命令行 ("!", 物理键盘支持更佳)
- 指定域名: 用户定义JS/CSS/HTML/显示前源码预处理 - 指定域名: 用户定义JS/CSS/HTML/显示前源码预处理,支持使用"siteextra/[domain.sanitizer]"对网页任意定制。
- 支持用户定义域名属性。 - 支持用户定义域名属性。
- 下载资源在线播放/预览/预处理。 - 下载资源在线播放/预览/预处理。
- 独立切换网站登录、配置文件。 - 独立切换网站登录、配置文件。
@ -35,7 +34,7 @@
![](https://i.postimg.cc/0NFnQT6H/option2.png) ![](https://i.postimg.cc/0NFnQT6H/option2.png)
#### 软件功能 #### 软件功能
输出自定义页面大小PDF、矢量图长截屏、朗读、文本重排、嗅探、比价、翻译、视频解析、离线保存、阅读模式(推荐与脚本激活模式配合)、网址重定向至国内、多帐号切换、网盘离线下载、文件管理、webdav/http空间备份/恢复任何指定文件集、智能翻页、目录文件传送、网站独立设置ua禁用脚本无图激活脚本、行编辑器、代码编辑器支持120多种语言语法高亮、错误提示、自动提示、直接运行测试、其它网页上直接测试。通过安装html5应用可预览阅读本地或在线任意格式文件pdf,djvu,epub,mdx/mdd,docx等 输出自定义页面大小PDF、矢量图长截屏、朗读、文本重排、嗅探、比价、翻译、视频解析、离线保存、阅读模式(推荐与脚本激活模式配合)、网址重定向至国内、多帐号切换、网盘离线下载、文件管理、webdav/http空间备份/恢复任何指定文件集、智能翻页、目录文件传送、网站独立设置ua禁用脚本无图激活脚本、行编辑器、网络唤醒(Wake-on-LAN)。通过安装html5应用可预览阅读本地或在线任意格式文件pdf,djvu,epub,mdx/mdd,docx等
修仙小说里面有一种异能,叫做“成功可以复制”,只要成功一次,就能无限复制。超微浏览器中这种异能叫"超级书签"。成功使用时保存,需要时就可以无限恢复。 修仙小说里面有一种异能,叫做“成功可以复制”,只要成功一次,就能无限复制。超微浏览器中这种异能叫"超级书签"。成功使用时保存,需要时就可以无限恢复。
@ -51,7 +50,7 @@
支持自定义任意多个搜索引擎; 支持执行用户提供任何js文件; 支持用户定义任意多个useragent; 长按链接支持运行第三方程序; 长按链接支持运行用户js文件。 支持自定义任意多个搜索引擎; 支持执行用户提供任何js文件; 支持用户定义任意多个useragent; 长按链接支持运行第三方程序; 长按链接支持运行用户js文件。
配套安装uWeb定制Termux应用可用地址栏作图类似matlab功能、超级计算器无限精度/π的前万位或更多、无限函数、无限常量、符号演算解方程、分解因式、求积分导数、离线字典查找等。譬如地址栏输入sin(x)**5就直接得到函数图形。利用好第三方代码才能真正发挥出uWeb的潜能。 安装定制版Termux然后再安装超微浏览器顺序不能错可用地址栏作图类似matlab功能、超级计算器无限精度/π的前万位或更多、无限函数、无限常量、符号演算解方程、分解因式、求积分导数、离线字典查找等。譬如地址栏输入sin(x)**5就直接得到函数图形。利用好第三方代码才能真正发挥出uWeb的潜能。
#### <a href="misc/ebrowser/README.md" onclick="if(notRepo()){location='../../en/ebrowserreadme/index.html#';return false;}">Ebrowser</a> for Windows, MacOS and Linux #### <a href="misc/ebrowser/README.md" onclick="if(notRepo()){location='../../en/ebrowserreadme/index.html#';return false;}">Ebrowser</a> for Windows, MacOS and Linux
可看作超微浏览器台式机简易版,用于弥补普通浏览器访问痛点。 可看作超微浏览器台式机简易版,用于弥补普通浏览器访问痛点。

View file

@ -1,27 +1,30 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width" /><base href=../en/><title>Manual</title></head><body> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width" /><base href=
../en/
><title>Manual</title></head>
<center><b>Manual</b> <a href="i:1fhelp_zh">中文</a></center> <center><b>Manual</b> <a href="i:1fhelp_zh">中文</a></center>
<b>Frequently visited links::</b><br> <b>Frequently visited links::</b><br>
<a href="index.html">Updates, plugins and tips</a> ( <a href="index.html#">Settings & tips</a> (
<a href="https://uwebzh.netlify.app/zh/">netlify</a>
<a href="https://torappinfo.github.io/uweb/en/">github</a> <a href="https://torappinfo.github.io/uweb/en/">github</a>
<a href="https://jamesfengcao.gitlab.io/uweb/en/">gitlab</a> <a href="https://jamesfengcao.gitlab.io/uweb/en/">gitlab</a>
<a href="https://uweb.4everland.app/en/">4everland</a> <a href="https://uweb.grebedoc.dev/en/">grebe</a>
<a href="https://torappinfo.frama.io/uweb/en/">frama</a>
<a href="https://repo.or.cz/uweb.git/blob_plain/HEAD:/en/index.html">repo</a> <a href="https://repo.or.cz/uweb.git/blob_plain/HEAD:/en/index.html">repo</a>
<a href="https://torappinfo.bitbucket.io/en/">bitbucket</a> <a href="https://gitee.com/jamesfengcao/uweb/raw/master/en/index.html#">gitee</a>
<a href="https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/en/index.html#">bitbucket</a>
<a href="https://uweb.vercel.app/en/">vercel</a> <a href="https://uweb.vercel.app/en/">vercel</a>
<a href="https://uwebzh.netlify.app/en/">netlify</a>
<a href="https://muweb.pages.dev/en/">pages</a> <a href="https://muweb.pages.dev/en/">pages</a>
<a href="https://jamesfengcao.codeberg.page/en/">codeberg</a> <a href="https://uweb.codeberg.page/en/">codeberg</a>
<a href="https://uweb.surge.sh/en/">surge</a> <a href="https://uweb.surge.sh/en/">surge</a>
<a href="https://uweb.onrender.com/en">render</a> <a href="https://uweb.onrender.com/en">render</a>
<a href="javascript:" onclick="document.location.hash='#mirrors'">More...</a> <a href="javascript:" onclick="document.location.hash='#mirrors'">More...</a>
)<br> )<br>
<p> <p>
<a href="i:61ver:https://uwebzh.netlify.app/latest.html">Check for updates</a><br> <a href="i:61ver:https://uwebzh.netlify.app/latest.html#">Check for updates</a><br>
<a href="i:61:https://fastly.jsdelivr.net/gh/torappinfo/uweb/en/searchurl/func.html">UI configuration</a>(<a href="i:61:https://gitee.com/jamesfengcao/uweb/raw/master/en/searchurl/func.html">gitee</a>)<br> <a href="i:61:https://fastly.jsdelivr.net/gh/torappinfo/uweb/en/searchurl/func.html">UI configuration</a>(<a href="i:61:https://gitee.com/jamesfengcao/uweb/raw/master/en/searchurl/func.html">gitee</a>)<br>
<a href="i:60/data/data/info.torapp.uweb/files/config.html:https://jamesfengcao.codeberg.page/en/searchurl/config.html">Advanced customization</a><br> <a href="i:60/data/data/info.torapp.uweb/files/config.html:https://codeberg.org/uweb/pages/raw/branch/master/en/searchurl/config.html">Advanced customization</a><br>
</p> </p>
<a target="_blank" href="file:///data/data/info.torapp.uweb/files/">App folder</a><br> <a target="_blank" href="file:///data/data/info.torapp.uweb/files/">App folder</a><br>
@ -30,11 +33,11 @@
<a target="_blank" href="file:///data/data/info.torapp.uweb/files/sbookmark/">Super bookmarks</a><br> <a target="_blank" href="file:///data/data/info.torapp.uweb/files/sbookmark/">Super bookmarks</a><br>
<a target="_blank" href="file:///sdcard/Download/">Download</a> <a target="_blank" href="file:///sdcard/Download/">Download</a>
<a target="_blank" href="i:1e">sdcard Download</a><br> <a target="_blank" href="i:1e">sdcard Download</a><br>
<a target="_blank" href="file:///sdcard/Download/uweb.log">Error log</a><br> <a target="_blank" href="file:///data/data/info.torapp.uweb/files/uweb.log">Error log</a><br>
<br> <br>
<b>Use multiple engines::</b><br> <b>Use multiple engines::</b><br>
Type in main screen input or address bar, then click on any search engine.<br> Type in main screen input or address bar, then click on any search engine on the top part of home screen.<br>
<br> <br>
<b>Toolbar::</b><br> <b>Toolbar::</b><br>
@ -44,27 +47,27 @@ Swipe down at top or swipe at any bottom corner to show.<br>
<li><- : long press for auto page turning</li> <li><- : long press for auto page turning</li>
<li>-> : long press for app menu.</li> <li>-> : long press for app menu.</li>
<li>[⚙️]Settings: long press for <a href="javascript:" onclick="document.location.hash='options'">options</a>.</li> <li>[⚙️]Settings: long press for <a href="javascript:" onclick="document.location.hash='options'">options</a>.</li>
<li>[□] tab management; long press for <a target="_blank" href="file:///data/data/info.torapp.uweb/files/css/">global css</a>.</li> <li>[□] tab showment; long press for <a href="globalcss/index.html#">global css</a>, <a target="_blank" href="file:///data/data/info.torapp.uweb/files/css/">show "css/"</a>.</li>
<li>[🏠]Home screen: long press for new tab. </li> <li>[🏠]Home screen: long press for new tab. </li>
<li>[☰] more tools; long pressed to configure <a target="_blank" href="file:///data/data/info.torapp.uweb/files/js/">global javascripts</a>.</li> <li>[☰] more tools; long pressed to configure <a href="rjs/index.html#">global javascripts</a>, <a target="_blank" href="file:///data/data/info.torapp.uweb/files/js/">show "js/"</a>.</li>
</ul> </ul>
<b>More tools::</b><br> <b>More tools::</b><br>
<ul> <ul>
<li>[🖥️]PC: fake as desktop PC; long press for <a href=file:///data/data/info.torapp.uweb/files/default.uas>more UAs</a>.</li> <li>[🖥️]PC: fake as desktop PC; long press for more UAs, <a href=file:///data/data/info.torapp.uweb/files/default.uas>show default.uas</a>.</li>
<li>[JS] disable/enable javascript; long press for <a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmarklet/">more javascripts</a>.</li> <li>[JS] disable/enable javascript; long press for <a href="rjs/index.html#">more javascripts</a>, <a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmarklet/">show "bookmarklet/"</a>.</li>
<li>[IMG] hide/show images; long press for <a href=file:///data/data/info.torapp.uweb/files/default.urls>more services</a>. <a href="urls/index.html">details</a></li> <li>[IMG] hide/show images; long press for <a href="urls/index.html#">more services</a>, <a href=file:///data/data/info.torapp.uweb/files/default.urls>show default.url</a>.</li>
<li>[☆] add bookmark; long press for <a href=file:///data/data/info.torapp.uweb/files/default.link>links menu</a>. <a href="links/index.html">details</a></li> <li>[☆] add bookmark; long press for <a href="links/index.html#">links menu</a>, <a href=file:///data/data/info.torapp.uweb/files/default.link>show default.link</a>. </li>
<li>[🕔] history, long press for <a href=file:///data/data/info.torapp.uweb/files/default.cmds>user defined commands</a>. <a href="cmds/index.html">details</a></li> <li>[🕔] history, long press for <a href="cmds/index.html#">user defined commands</a>, <a href=file:///data/data/info.torapp.uweb/files/default.cmds>show default.cmds</a>. </li>
<li>[🔍 Magnifier] search in the current page; long press for <a href=file:///data/data/info.torapp.uweb/files/default.rjs>remote scripts</a>. <a href="rjs/index.html">details</a></li> <li>[🔍 Magnifier] search in the current page with button '>' or web search by ENTER; long press for <a href="rjs/index.html#">remote scripts</a>, <a href=file:///data/data/info.torapp.uweb/files/default.rjs>show default.rjs</a>. </li>
<li>[🔗]Copy link, long press for <a href=file:///data/data/info.torapp.uweb/files/default.select>menus for text selection</a>. <a href="textprocess/index.html">details</a></li> <li>[🔗]Copy link, long press for <a href="textprocess/index.html#">menus for text selection</a>, <a href=file:///data/data/info.torapp.uweb/files/default.select>show default.select</a>. </li>
<li>[X]Exit browser, long press for <a href=file:///data/data/info.torapp.uweb/files/default.input>input phrases</a>.</li> <li>[📤]Share the url: <a href="textprocess/index.html">process clipboard text</a> when in home screen, otherwise share the page url. Long press for <a href="input/index.html#">input phrases</a>, <a href="i:5gfile:///data/data/info.torapp.uweb/files/default.input">show default.input</a>.</li>
<li>[X]Exit browser.</li>
<li>[▽]Go to the bottom.</li> <li>[▽]Go to the bottom.</li>
<li>[△]Go to the top.</li> <li>[△]Go to the top.</li>
<li>[🔊]Speak: non-url address bar texts/selected texts/whole web page.</li> <li>[🔊]Speak: non-url address bar texts/selected texts/whole web page. Press again to stop.</li>
<li>Share the url: <a href="textprocess/index.html">process clipboard text</a> when in home screen, otherwise share the page url.</li> <li>[📄]Text reflow.</li>
<li>[📃]Text reflow.</li> <li>[☁↓]Download/Copy local files.</li>
<li>[☁]Download/Copy local files.</li>
<li>[👤]Switch profile.</li> <li>[👤]Switch profile.</li>
</ul> </ul>
@ -75,7 +78,7 @@ Long press "settings" button to configure options.
Need hosts file <a href=file:///data/data/info.torapp.uweb/files/default.hosts>default.hosts</a>. Need hosts file <a href=file:///data/data/info.torapp.uweb/files/default.hosts>default.hosts</a>.
</li> </li>
<li>Activate user script: when activated, the script will be run on similiar sites, until another script is activated or app exits.</li> <li>Activate user script: when activated, the script will be run on similiar sites, until another script is activated or app exits.</li>
<li><a href="http://jamesfengcao.gitee.io/uweb/sitejs/">Run user scripts for sites</a>.</li> <li><a href="sitejs/index.html#">Run user scripts for sites</a>.</li>
<li>Resource sniffer: Show results when deselected. Use file <a href=file:///data/data/info.torapp.uweb/files/types.sniff>types.sniff</a> to sniff specified file types. Empty file to sniff all kinds.</li> <li>Resource sniffer: Show results when deselected. Use file <a href=file:///data/data/info.torapp.uweb/files/types.sniff>types.sniff</a> to sniff specified file types. Empty file to sniff all kinds.</li>
</ul> </ul>
@ -83,30 +86,24 @@ Long press "settings" button to configure options.
<ul> <ul>
<li><a href=file:///data/data/info.torapp.uweb/files/colors.txt>Background color</a></li> <li><a href=file:///data/data/info.torapp.uweb/files/colors.txt>Background color</a></li>
<li><a href=file:///data/data/info.torapp.uweb/files/default.uas>User agent</a></li> <li><a href=file:///data/data/info.torapp.uweb/files/default.uas>User agent</a></li>
<li><a href=file:///data/data/info.torapp.uweb/files/default.acmd>Address bar mode</a></li> <li>Address bar mode, <a href=file:///data/data/info.torapp.uweb/files/default.acmd>show default.acmd</a></li>
</ul> </ul>
<b><a id="mirrors">More mirrors</a>::</b><br> <b><a id="mirrors">More mirrors</a>::</b><br>
<a href="i:0mi:5h:https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html">Test1</a> <a href="https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html#">gitea</a>
<a href="i:0m?:https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html">Test2</a> <a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">sf</a>
<a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">Test3</a> <a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">rocket</a>
<a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">Test4</a> <a href="https://git.launchpad.net/uweb/plain/redirect.html#">launch</a>
<a href="i:0m?:https://notabug.org/torappinfo/uweb/raw/master/redirect.html">Test5</a> <a href="https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html#">frama</a>
<a href="i:0mi:5h:https://git.launchpad.net/uweb/plain/redirect.html">Test6</a>
<a href="i:0m?:https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html">Test7</a>
<a href="i:0m?:https://agit.ai/jamesfengcao/uweb/raw/branch/master/redirect.html">Test8</a>
<a href="i:0m?:https://git.froggi.es/jamesfengcao/uweb/raw/branch/master/redirect.html">Test9</a>
<a href="i:0m?:https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html">Test10</a>
<a href="i:0m?:https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html">Test11</a>
<a href="i:0mi:5h:https://pagure.io/uweb/raw/master/f/redirect.html">Test12</a>
<a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">Test14</a> <a href="https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html#">disroot</a>
<a href="i:0m?:https://gitcode.net/uweb/uweb/-/raw/master/redirect.html">Test15</a> <a href="https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html#">dab</a>
<a href="i:0mi:5h:https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html">Test17</a>
<a href="i:0m?:https://dagshub.com/torappinfo/uweb/raw/master/redirect.html">dagshub</a> <a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">azure</a>
<a href="i:0mi:5h:https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html">gitgud</a>
<a href="https://dagshub.com/torappinfo/uweb/raw/master/redirect.html#">dags</a>
<a href="https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html#">gud</a>
<br><br> <br><br>
<a href="https://github.com/torappinfo/uweb">Project home</a><br> <a href="https://github.com/torappinfo/uweb">Project home</a><br>
</body></html>

View file

@ -1,27 +1,30 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width" /><base href=../zh/><title>使用攻略</title></head><body> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width" /><base href=
../zh/
><title>使用攻略</title></head>
<center><b>使用攻略</b> <a href="i:1fhelp_en">English</a></center> <center><b>使用攻略</b> <a href="i:1fhelp_en">English</a></center>
<a href="i:0mi:5h:https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html">更新、插件、设置及技巧</a> ( <a href="https://gitee.com/jamesfengcao/uweb/raw/master/zh/index.html#">设置及技巧</a> (
<a href="https://uweb.grebedoc.dev/zh/">grebe</a>
<a href="https://torappinfo.frama.io/uweb/zh/">frama</a>
<a href="https://jamesfengcao.gitlab.io/uweb/zh/">gitlab</a> <a href="https://jamesfengcao.gitlab.io/uweb/zh/">gitlab</a>
<a href="https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html">repo</a> <a href="https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/index.html">repo</a>
<a href="https://jamesfengcao.codeberg.page/zh/">codeberg</a> <a href="https://codeberg.org/uweb/pages/raw/branch/master/zh/index.html#">codeberg</a>
<a href="https://uweb.surge.sh/zh/">surge</a> <a href="https://uweb.surge.sh/zh/">surge</a>
<a href="https://torappinfo.github.io/uweb/zh/">github</a> <a href="https://torappinfo.github.io/uweb/zh/">github</a>
<a href="https://uweb.4everland.app/zh/">4everland</a>
<a href="https://muweb.cyclic.app/zh/">cyclic</a>
<a href="https://posh-crab-23.deno.dev/zh/">deno</a>
<a href="https://uwebzh.netlify.app/zh/">netlify</a> <a href="https://uwebzh.netlify.app/zh/">netlify</a>
<a href="https://uwebbrowser-t27o4.kinsta.page/zh/">kinsta</a> <a href="https://uwebbrowser-t27o4.kinsta.page/zh/">kinsta</a>
<a href="https://uweb.on-fleek.app/zh/">fleek</a>
<a href="https://uweb.onrender.com/zh/">render</a> <a href="https://uweb.onrender.com/zh/">render</a>
<a href="https://torapp.eu.org/zh/">torapp</a> <a href="https://torapp.eu.org/zh/">torapp</a>
<a href="https://torappinfo-uweb.statichost.eu/zh/">static</a>
<a href="https://uweb.maozi.io/zh/">maozi</a>
<a href="https://uweb-m.pgs.sh/zh/index.html">pgs</a>
<a href="https://uweb.stormkit.dev/zh/">storm</a>
<a href="https://muweb.pages.dev/zh/">pages</a> <a href="https://muweb.pages.dev/zh/">pages</a>
<a href="javascript:" onclick="document.location.hash='#mirrors'">...</a> <a href="javascript:" onclick="document.location.hash='#mirrors'">...</a>
)<br> )<br>
<b>常用链接::</b><br> <b>常用链接::</b><br>
<a href="i:61ver:https://gitee.com/jamesfengcao/uweb/raw/master/latest.html">检测并下载最新版</a><br> <a href="i:61ver:https://gitee.com/jamesfengcao/uweb/raw/master/latest.html#">检测并下载最新版</a><br>
<a href="i:61:https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/searchurl/func.html">界面配置及杂项</a>(<a href="i:61:https://gitee.com/jamesfengcao/uweb/raw/master/zh/searchurl/func.html">gitee镜像</a>)<br> <a href="i:61:https://gitee.com/jamesfengcao/uweb/raw/master/zh/searchurl/func.html">界面配置及杂项</a>(<a href="i:61:https://repo.or.cz/uweb.git/blob_plain/HEAD:/zh/searchurl/func.html">镜像</a>)<br>
<a href="i:60/data/data/info.torapp.uweb/files/config.html:https://gitee.com/jamesfengcao/uweb/raw/master/zh/searchurl/config.html">高级个性化定制</a><br> <a href="i:60/data/data/info.torapp.uweb/files/config.html:https://gitee.com/jamesfengcao/uweb/raw/master/zh/searchurl/config.html">高级个性化定制</a><br>
<a target="_blank" href="file:///data/data/info.torapp.uweb/files/">内部目录</a> <a target="_blank" href="file:///data/data/info.torapp.uweb/files/">内部目录</a>
<a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmark/">分类书签</a> <a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmark/">分类书签</a>
@ -30,11 +33,11 @@
<a target="_blank" href="file:///sdcard/Download/">下载</a> <a target="_blank" href="file:///sdcard/Download/">下载</a>
<a target="_blank" href="i:1e">sd卡下载目录</a><br> <a target="_blank" href="i:1e">sd卡下载目录</a><br>
<a target="_blank" href="data:text/html;charset=utf-8,<body contenteditable%3E">空白便签</a><br> <a target="_blank" href="data:text/html;charset=utf-8,<body contenteditable%3E">空白便签</a><br>
<a target="_blank" href="file:///sdcard/Download/uweb.log">出错报告</a><br> <a target="_blank" href="file:///data/data/info.torapp.uweb/files/uweb.log">出错报告</a><br>
<br> <br>
<b>主屏查询举例::</b><br> <b>主屏查询举例::</b><br>
在主屏中间输入框或顶部地址栏内输入“牛奶”,再点击上面“值得买”。<br> 在主屏中间输入框或顶部地址栏内输入关键词,再点击上面搜索引擎“百度”。<br>
<br> <br>
<b>提示::</b> <b>提示::</b>
@ -51,30 +54,30 @@
左/右下角滑动或顶部/地址栏下方下拉可显示。<br> 左/右下角滑动或顶部/地址栏下方下拉可显示。<br>
<ul> <ul>
<li>[⟳] 刷新/中断网页;长按出现<a href="javascript:" onclick="document.location.hash='spinneroptions'">功能选择</a></li> <li>[⟳] 刷新/中断网页;长按出现<a href="javascript:" onclick="document.location.hash='spinneroptions'">功能选择</a></li>
<li>后退: 长按智能翻页。</li> <li>[<-]后退: 长按智能翻页</li>
<li>前进: 无前进历史时智能翻页。长按弹出系统菜单。</li> <li>[->]前进: 无前进历史时智能翻页。长按弹出系统菜单。</li>
<li>[⚙️]设置: 长按显示<a href="javascript:" onclick="document.location.hash='#options'">系统设置</a></li> <li>[⚙️]设置: 长按显示<a href="javascript:" onclick="document.location.hash='#options'">系统设置</a></li>
<li>[□] 窗口管理;长按打开<a target="_blank" href="file:///data/data/info.torapp.uweb/files/css/">全局用户css样式选项</a></li> <li>[□] 窗口管理;长按打开<a href="globalcss/index.html#">全局用户css样式选项</a>, <a target="_blank" href="file:///data/data/info.torapp.uweb/files/css/">访问目录"css/"</a></li>
<li>主屏,长按打开新窗口。</li> <li>[🏠]主屏,长按打开新窗口。</li>
<li>[☰] 更多工具;长按弹出<a target="_blank" href="file:///data/data/info.torapp.uweb/files/js/">全局js脚本设置</a></li> <li>[☰] 更多工具;长按弹出<a href="rjs/index.html#">全局js脚本设置</a>, <a target="_blank" href="file:///data/data/info.torapp.uweb/files/js/">访问目录"js/"</a></li>
</ul> </ul>
更多工具: 更多工具:
<ul> <ul>
<li>[🖥️]PC: 伪装成桌面浏览器;长按则在左上角弹出菜单显示更多<a href=file:///data/data/info.torapp.uweb/files/default.uas>用户配置UA</a></li> <li>[🖥️]PC: 伪装成桌面浏览器长按则在左上角弹出菜单显示更多用户配置UA<a href=file:///data/data/info.torapp.uweb/files/default.uas>查看default.uas</a></li>
<li>[JS] 关闭/打开javascript支持长按显示<a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmarklet/">更多脚本功能</a></li> <li>[JS] 关闭/打开javascript支持长按显示<a href="rjs/index.html#">更多脚本功能</a>, <a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmarklet/">访问目录"bookmarklet/"</a></li>
<li>[IMG] 关闭/打开图像显示;长按显示更多<a href=file:///data/data/info.torapp.uweb/files/default.urls>特色服务</a><a href="urls/index.html">攻略</a></li> <li>[IMG] 关闭/打开图像显示;长按显示<a href="urls/index.html#">特色服务</a>, <a href=file:///data/data/info.torapp.uweb/files/default.urls>查看default.urls</a></li>
<li>[☆] 添加书签;长按显示常用链接。<a href="links/index.html">攻略</a></li> <li>[☆] 添加书签;长按显示<a href="links/index.html#">常用链接</a>, <a href=file:///data/data/info.torapp.uweb/files/default.link>查看default.link</a></li>
<li>[🕔] 访问历史,长按显示<a href=file:///data/data/info.torapp.uweb/files/default.cmds>预定义命令</a>菜单。<a href="cmds/index.html">攻略</a></li> <li>[🕔] 访问历史,长按显示<a href="cmds/index.html#">预定义命令<a>, <a href=file:///data/data/info.torapp.uweb/files/default.cmds>查看default.cmds</a></li>
<li>[🔍]页面搜索:长按唤出<a href=file:///data/data/info.torapp.uweb/files/default.rjs>远程脚本菜单</a><a href="rjs/index.html">攻略</a></li> <li>[🔍]页内搜索(按钮‘>’)或互联网搜索(回车):长按唤出<a href="rjs/index.html#">远程脚本菜单</a>, <a href=file:///data/data/info.torapp.uweb/files/default.rjs>查看default.rjs</a></li>
<li>[🔗]复制链接:长按显示菜单,<a href=file:///data/data/info.torapp.uweb/files/default.select>对选中内容作用户定义操作</a><a href="textprocess/index.html">攻略</a></li> <li>[🔗]复制链接:长按显示<a href="textprocess/index.html#">对选中内容作用户定义操作</a>菜单,<a href=file:///data/data/info.torapp.uweb/files/default.select>查看default.select</a></li>
<li>[X]退出浏览器:长按显示<a href=file:///data/data/info.torapp.uweb/files/default.input>输入法短语</a>.</li> <li>[📤]网址分享:主屏下对剪贴板数据进行<a href="textprocess/index.html#">文本处理</a>。长按显示<a href="input/index.html#">输入法短语</a><a href="i:5gfile:///data/data/info.torapp.uweb/files/default.input">查看default.input</a>.</li>
<li>[X]退出浏览器</li>
<li>[▽]底部</li> <li>[▽]底部</li>
<li>[△]顶部</li> <li>[△]顶部</li>
<li>[🔊]朗读: 优先朗读顶部工具条搜索栏非网址内容、网页选中内容,最后为整个网页。再次朗读可中断上次朗读操作,地址栏朗读专为学习外语单词发音而设计。</li> <li>[🔊]朗读: 优先朗读顶部工具条搜索栏非网址内容、网页选中内容,最后为整个网页。再次朗读可中断上次朗读操作,地址栏朗读专为学习外语单词发音而设计。</li>
<li>网址分享:主屏下对剪贴板数据进行<a href="textprocess/index.html">文本处理</a></li> <li>[📄]文本重排</li>
<li>[📃]文本重排</li> <li>[☁↓]保存在线网页/复制本地内容到目录</li>
<li>[☁]保存在线网页/复制本地内容到目录</li>
<li>[👤]账户切换</li> <li>[👤]账户切换</li>
</ul> </ul>
注:可通过关闭[JS]/[IMG]来屏蔽广告,这种屏蔽方式没有性能损失。<br> 注:可通过关闭[JS]/[IMG]来屏蔽广告,这种屏蔽方式没有性能损失。<br>
@ -89,7 +92,7 @@
</li> </li>
<li>缓存优先:优先使用缓存内容,可在离线状态下访问已缓存网页。</li> <li>缓存优先:优先使用缓存内容,可在离线状态下访问已缓存网页。</li>
<li>激活用户脚本:首次执行用户脚本后,访问同类网站时会自动执行此脚本,直至清空后台或另一脚本被激活。</li> <li>激活用户脚本:首次执行用户脚本后,访问同类网站时会自动执行此脚本,直至清空后台或另一脚本被激活。</li>
<li><a href="sitejs/">执行网站用户脚本</a></li> <li><a href="sitejs/index.html#">执行网站用户脚本</a></li>
<li>概览模式: 显示完整页面宽度,有时字体会比较小。</li> <li>概览模式: 显示完整页面宽度,有时字体会比较小。</li>
<li>离线资源: 使用用户自备数据代替网站内容。</li> <li>离线资源: 使用用户自备数据代替网站内容。</li>
<li>资源嗅探:取消选项时显示嗅探结果。可用<a href=file:///data/data/info.torapp.uweb/files/types.sniff>types.sniff</a>控制嗅探类型,空文件嗅探一切。</li> <li>资源嗅探:取消选项时显示嗅探结果。可用<a href=file:///data/data/info.torapp.uweb/files/types.sniff>types.sniff</a>控制嗅探类型,空文件嗅探一切。</li>
@ -99,7 +102,7 @@
<b><a id="spinneroptions">功能选择</a>::</b> <b><a id="spinneroptions">功能选择</a>::</b>
<ul> <ul>
<li><a href=file:///data/data/info.torapp.uweb/files/colors.txt>背景色</a></li> <li><a href=file:///data/data/info.torapp.uweb/files/colors.txt>背景色</a></li>
<li><a href=file:///data/data/info.torapp.uweb/files/default.acmd>地址栏功能选择</a></li> <li>地址栏功能选择,<a href=file:///data/data/info.torapp.uweb/files/default.acmd>查看default.acmd</a></li>
</ul> </ul>
<b>书签文件::</b><br> <b>书签文件::</b><br>
@ -119,49 +122,50 @@
<li>运行用户javascript 长按底部工具条[JS]按钮则弹出菜单显示<a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmarklet/">bookmarklet</a>目录下所有js文件供用户挑选执行。</li> <li>运行用户javascript 长按底部工具条[JS]按钮则弹出菜单显示<a target="_blank" href="file:///data/data/info.torapp.uweb/files/bookmarklet/">bookmarklet</a>目录下所有js文件供用户挑选执行。</li>
<li>用户代理(user agent)配置: <a href=file:///data/data/info.torapp.uweb/files/default.uas>default.uas</a>。文件每行以回车结尾,格式为:<br> <li>用户代理(user agent)配置: <a href=file:///data/data/info.torapp.uweb/files/default.uas>default.uas</a>。文件每行以回车结尾,格式为:<br>
[UA名]:[UA字符串]</li> [UA名]:[UA字符串]</li>
<li><a href="search.html">搜索引擎配置</a> <a href=file:///data/data/info.torapp.uweb/files/home5.search>home5.search</a>。文件每行以回车结尾,格式为:<br> <li><a href="search/index.html#">搜索引擎配置</a> <a href=file:///data/data/info.torapp.uweb/files/home5.search>home5.search</a>。文件每行以回车结尾,格式为:<br>
[引擎名]:[引擎url] </li> [引擎名]:[引擎url] </li>
<li>长按底部工具条[IMG]按钮弹出菜单显示<a href=file:///data/data/info.torapp.uweb/files/default.urls>default.urls</a>中辅助功能,配置文件格式与搜索引擎完全相同,每行格式如下:<br> <li>长按底部工具条[IMG]按钮弹出菜单显示<a href=file:///data/data/info.torapp.uweb/files/default.urls>default.urls</a>中辅助功能,配置文件格式与搜索引擎完全相同,每行格式如下:<br>
[功能名]:[提供功能网址] </li> [功能名]:[提供功能网址] </li>
</ul> </ul>
<b><a id="mirrors">更多镜像</a>::</b><br> <b><a id="mirrors">更多镜像</a>::</b><br>
<a href="i:0mi:5h:https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html">试验1</a> <a href="i:ch%253cmeta:%253e:https://bbs.archlinux.org/viewtopic.php?id=129973">arch</a>
<a href="i:0m?:https://gitcode.net/uweb/uweb/-/raw/master/redirect.html">2</a> <a href="i:5hhttps://pastebin.com/raw/DCQ0kNEy">pastebin</a>
<a href="i:5hhttps://snippet.host/cgrsgw/raw">host</a>
<a href="i:ch%253cmeta:%253e:https://www.cnblogs.com/uweb/p/19186230">cnblogs</a>
<a href="i:ch%253cmeta:%253e:https://registry.npmmirror.com/ebrowser/latest">npm</a>
<a href="i:ch%26lt;:%26gt;:https://snippets.cacher.io/snippet/aee497272c19811ee919">cacher</a>
<a href="i:0UA1:i:ch%253cmeta:%253e:https://www.douban.com/group/topic/335836878/?_spm_id=Mjc5ODU0MDcy">dou</a>
<a href="i:ch%20%253cmeta:%253e:https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=32981&_dsign=5a39f06a">pdawiki</a>
<a href="i:ch%253cmeta:%253e:https://www.4d4y.com/forum/viewthread.php?tid=3403454">4d4y</a>
<a href="i:ch%253cmeta:%253e:https://xycq.org.cn/forum/thread-310888-1-1.html">xycq</a>
<a href="i:ch%253cmeta:%253e:https://tiexuedanxin.net/forum.php?mod=viewthread&tid=1069669">txdx</a>
<a href="i:ch%253cmeta:%253e:https://unpkg.com/ebrowser/README.md">unpkg</a>
<a href="https://uweb.w8.quuq.dev">w8</a>
<a href="https://tangled.org/@uweb.tngl.sh/uweb/raw/master/redirect.html#">tngl</a>
<a href="https://codefloe.com/jamesfengcao/uweb/raw/master/redirect.html#">cf</a>
<a href="https://worktree.ca/jamesfengcao/uweb/raw/master/redirect.html#">wt</a>
<a href="https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html#">gitea</a>
<a href="i:0m?:https://raw.gitcode.com/uweb/uweb/raw/master/redirect.html">4</a> <a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">sf</a>
<a href="i:0m?:https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html">5</a> <a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">rocket</a>
<a href="https://git.launchpad.net/uweb/plain/redirect.html#">launch</a>
<a href="https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html#">frama</a>
<a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">6</a> <a href="https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html#">dis</a>
<a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">7</a> <a href="https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html#">dab</a>
<a href="i:0m?:https://notabug.org/torappinfo/uweb/raw/master/redirect.html">8</a> <a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">azure</a>
<a href="https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html#">bb</a>
<a href="i:0mi:5h:https://git.launchpad.net/uweb/plain/redirect.html">9</a> <a href="https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html#">jsdeliv</a>
<a href="i:0m?:https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html">10</a> <a href="https://dagshub.com/torappinfo/uweb/raw/master/redirect.html#">dags</a>
<a href="i:0m?:https://agit.ai/jamesfengcao/uweb/raw/branch/master/redirect.html">11</a> <a href="https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html#">gud</a>
<a href="i:0m?:https://git.froggi.es/jamesfengcao/uweb/raw/branch/master/redirect.html">12</a> <a href="https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html#">gitnet</a>
<a href="i:0m?:https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html">13</a> <a href="https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">tilde</a>
<a href="i:0m?:https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html">14</a> <a href="https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html#">cryto</a>
<a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">15</a> <a href="https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">antopie</a>
<a href="i:0mi:5h:https://pagure.io/uweb/raw/master/f/redirect.html">16</a> <a href="https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">chapril</a>
<a href="i:0m?:https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html">17</a>
<a href="i:0mi:5h:https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html">18</a>
<a href="i:0m?:https://dagshub.com/torappinfo/uweb/raw/master/redirect.html">19</a>
<a href="i:0mi:5h:https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html">20</a>
<a href="i:0m?:https://gitly.org/jamesfengcao/uweb/raw/master/redirect.html">gitly</a>
<a href="i:0m?:https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html">gitnet</a>
<a href="i:0m?:https://repo.palemoon.org/jamesfengcao/uweb/raw/branch/master/redirect.html ">palemoon</a>
<a href="i:0m?:https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html">tilde</a>
<a href="i:0m?:https://git.dotclear.org/jamesfengcao/uweb/raw/branch/master/redirect.html">dotclear</a>
<a href="i:0m?:https://git.minetest.land/jamesfengcao/uweb/raw/branch/master/redirect.html ">minetest</a>
<a href="i:0m?:https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html">chapril</a>
<a href="i:0m?:https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html ">cryto</a>
<a href="i:0m?:https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html">antopie</a>
<a href="https://uweb.zeabur.app/zh/">zeabur</a>
<a href="https://torappinfo.bitbucket.io/zh/">bitbucket</a> <a href="https://torappinfo.bitbucket.io/zh/">bitbucket</a>
<a href="https://uweb.vercel.app/zh/">vercel</a> <a href="https://uweb.vercel.app/zh/">vercel</a>
<br><br> <br><br>
<a href="https://gitee.com/jamesfengcao/uweb">项目主页</a><br> <a href="https://gitee.com/jamesfengcao/uweb">项目主页</a><br>
</body></html>

View file

@ -2,179 +2,193 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>_Posts on uweb browser: unlimited power</title> <title>_Posts on uweb browser: unlimited power</title>
<link>/en/_posts/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/_posts/</link>
<description>Recent content in _Posts on uweb browser: unlimited power</description> <description>Recent content in _Posts on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Fri, 19 Jul 2024 10:06:21 +0800</lastBuildDate> <lastBuildDate>Sat, 18 Apr 2026 16:45:02 +0800</lastBuildDate>
<atom:link href="/en/_posts/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/_posts/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Text selection/processing</title> <title>Html5 applications</title>
<link>/en/textprocess/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/html5/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate>
<guid>/en/textprocess/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/html5/</guid>
<description>Click the following links to install menus for long pressing the button &amp;quot;link&amp;quot;:&#xA;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&#xA;Copy selected text with html format to clipboard&#xA;Search with home screen&#xA;google Translate&#xA;bing translate&#xA;deepL&#xA;The file &amp;quot;default.select&amp;quot; defines text processing menus for selected text. If no text is selected, the menu item operates on the whole page. Each line of the file has the following format:</description> <description>&lt;h3 id=&#34;remotelocal-big-txthtmlmd-files-zstgzbr-compressed-optionally-as-search-engines-or-paged-reader&#34;&gt;remote/local big txt/html/md files (.zst,.gz,.br compressed optionally) as search engines or paged reader&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;i:0/js/reader.html:[remote url]#s=%s&lt;/code&gt;&lt;br&gt;&#xA;is the search engine url for remote/local file.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;i:0/js/reader.html:[remote url]&lt;/code&gt;&lt;br&gt;&#xA;is the paged reader for big txt/html files.&lt;/p&gt;&#xA;&lt;p&gt;Users can add a menu item by visiting &lt;a href=&#34;../urls/index.html#&#34;&gt;url services&lt;/a&gt; and clicking the &lt;code&gt;Reader&lt;/code&gt; link. After the menu item is installed and uweb restarts, long pressing any big txt/html/md link --&amp;gt; command --&amp;gt; Reader would load the big file in paged reader, long pressing button &amp;quot;-&amp;gt;&amp;quot; on bottom toolbar --&amp;gt; add as search engine --&amp;gt; change the last part of url from &amp;quot;#p=1&amp;quot; to &amp;quot;#s=%s&amp;quot; and save the engine.&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Links</title> <title>File manager</title>
<link>/en/links/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/filemanager/</link>
<pubDate>Sat, 28 Oct 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate>
<guid>/en/links/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/filemanager/</guid>
<description>Click the following links to install menus popped by long pressing the bookmark button (with star as icon):&#xA;Capture long screenshot (need long screenshot mode)&#xA;Select All:CTRL-A/undo:CTRL-Z/Redo:CTRL-Y&#xA;Extend site cookies to 10 years&#xA;Clear site cookies&#xA;VPN&#xA;Switch configuration&#xA;Wait for network msg&#xA;Certificate info&#xA;Backup to box.com&#xA;Restore from box.com&#xA;upload to box.com&#xA;More webdav link menu items&#xA;Web fullscreen&#xA;Long pressing the bookmark button in uweb browser will popup menus defined in file &amp;quot;default.</description> <description>&lt;p&gt;Visiting file urls ending with &amp;quot;/&amp;quot; enters internal file manager.&lt;/p&gt;&#xA;&lt;p&gt;When the current tab is internal file manager, visiting file url for a file shows the content of the file, long pressing button &amp;quot;🕔&amp;quot; -&amp;gt; Editor loads line-based editor for the file. If the file does not exist, saving creates a new file.&lt;/p&gt;&#xA;&lt;p&gt;Running any command with address bar with the format &amp;quot;d::command line:&amp;quot; to execute &amp;quot;command line&amp;quot; in the current folder of the internal file manager. Ex:&lt;br&gt;&#xA;&amp;quot;d::touch a.txt:&amp;quot; to create a new file a.txt.&lt;br&gt;&#xA;&amp;quot;d::mkdir subdir:&amp;quot; to create a new folder names &amp;quot;subdir&amp;quot;.&lt;br&gt;&#xA;&amp;quot;d::mv old new:&amp;quot; to rename the file &amp;quot;old&amp;quot; to be &amp;quot;new&amp;quot;.&lt;/p&gt;</description>
</item>
<item>
<title>cron</title>
<link>/en/tcron/</link>
<pubDate>Wed, 25 Oct 2023 00:00:00 +0000</pubDate>
<guid>/en/tcron/</guid>
<description>crontab (with enhanced semantics) For performance, the file &amp;quot;crontab&amp;quot; uses single space as field separator. Letters are not suppored currently. So use &amp;quot;1&amp;quot; for &amp;quot;January&amp;quot; and 2 for &amp;quot;Tuesday&amp;quot; etc.&#xA;The sixth field in crontab file could be in the format of internal links. Specifically, &amp;quot;c:&amp;quot; to execute the following commands in termux and &amp;quot;!&amp;quot; to execute commands directly. If the sixth field is not in any of above formats, then the field will appear as the message of alarm clock.</description>
</item>
<item>
<title>Offline resources</title>
<link>/en/offlinecache/</link>
<pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
<guid>/en/offlinecache/</guid>
<description>Offline resources locate in the folder &amp;quot;sitecache&amp;quot;. With the option &amp;quot;use offline resources&amp;quot; enabled, the corresponding files in &amp;quot;sitecache/[domain name]/[full path including filename, the url path part]&amp;quot; are loaded first before reaching the network.&#xA;Serverless local sites Click to install url service that extracts web apps to the folder &amp;quot;sitecache/local/&amp;quot;: support web extensions (.crx for chrome &amp;amp; .xpi for firefox).&#xA;Any folder under &amp;quot;sitecache&amp;quot; can be visited as a local site.</description>
</item>
<item>
<title>Resource redirection</title>
<link>/en/redirect/</link>
<pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
<guid>/en/redirect/</guid>
<description>Redirection forwards cookies with the setting option &amp;quot;Redirect cookies&amp;quot; enabled, so use the options with care.&#xA;Setting options: &amp;quot;Url redirection&amp;quot; vs. &amp;quot;Resource redirection&amp;quot; &amp;quot;Url redirection&amp;quot; redirects the main/page url only while &amp;quot;Resource redirection&amp;quot; is for all urls in the page.&#xA;Global redirection Global redirection is enabled with the setting option &amp;quot;Resource redirection&amp;quot; or both &amp;quot;Url redirection&amp;quot; and &amp;quot;Redirect cookies&amp;quot;.&#xA;When a valid global redirection url is set, the &amp;quot;default.redirect&amp;quot; has no effect, and any url resource is fetched with the new url by appending the original url to the global redirection url.</description>
</item>
<item>
<title>Hosts files</title>
<link>/en/adblock_domain/</link>
<pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>
<guid>/en/adblock_domain/</guid>
<description>The enhanced hosts files &amp;quot;hosts&amp;quot; and &amp;quot;default.hosts&amp;quot; take effect with the setting option &amp;quot;use hosts&amp;quot;.&#xA;hosts The enhanced file &amp;quot;hosts&amp;quot; defines IP addresses/attributes for domains. Each line has the following format:&#xA;[[IP address][attributes]][single space][domain name]&#xA;where &amp;quot;[[IP address][attributes]]&amp;quot; could be:&#xA;ipv4 address such as:&#xA;172.67.157.211 torapp.eu.org&#xA;ipv6 address, Ex.:&#xA;[2606:4700:3037::6815:8c3] torapp.eu.org&#xA;empty, that would lift all server-imposed limitations. Ex.:&#xA;[single space]gitee.com&#xA;which will make all git repositories on the domain visitable as websites with raw file access url.</description>
</item>
<item>
<title>JS/CSS/HTML/preprocessing for domains</title>
<link>/en/sitejs/</link>
<pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate>
<guid>/en/sitejs/</guid>
<description>Javascript (load when page completes, earliest loaded JS should use sitecss). Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded. Script must be put under the folder &amp;quot;sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority. Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.</description>
</item>
<item>
<title>Bookmarks</title>
<link>/en/bookmark/</link>
<pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate>
<guid>/en/bookmark/</guid>
<description>AI, chatgpt etc.&#xA;google gemini jeeves morphic komo iaskAI poe freegpt teach-anything magickpen note.ms&#xA;rentry&#xA;Wait for url from other devices&#xA;berify: reverse image search for video&#xA;Associated bookmarks Search engine files associate with bookmarks with extension &amp;quot;.html&amp;quot;, which means the bookmark file if existing is appended to the page when the search engine file is on screen.&#xA;&amp;quot;help_en.html&amp;quot; bookmark associates with the user manual in English. Similarly, &amp;quot;help_zh.html&amp;quot; is for Chinese manual.</description>
</item> </item>
<item> <item>
<title>Tips</title> <title>Tips</title>
<link>/en/tips/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tips/</link>
<pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate>
<guid>/en/tips/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tips/</guid>
<description>Text processing for clipboard data:&#xA;On home screen, pressing the sharing button of the bottom toolbar popups the text processing menu for clipboard data.&#xA;To show web pages in desktop mode:&#xA;PC button + option &amp;quot;wide viewport&amp;quot; + global js &amp;quot;force page resizable&amp;quot;.&#xA;Playing audio when screen off&#xA;Option &amp;quot;Floating video&amp;quot; + video fullscreen playing&#xA;Multiple home screens and Next/Prev page:&#xA;home5.html, home6.mht(or .search or .html), home7.mht(or .search or .html), .</description> <description>&lt;p&gt;&lt;strong&gt;Address bar autocompletion as input method when starting with space&lt;/strong&gt;&lt;br&gt;&#xA;When address bar text starts with space, the autocompletion selection is inserted to the focused element on the web page. It could be used to choose AI prompts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Text processing for clipboard data&lt;/strong&gt;&lt;br&gt;&#xA;On home screen, pressing the sharing button of the bottom toolbar popups the &lt;a href=&#34;../textprocess/index.html#&#34;&gt;text processing menu&lt;/a&gt; for clipboard data.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;To show web pages in desktop mode&lt;/strong&gt;&lt;br&gt;&#xA;PC button + option &amp;quot;wide viewport&amp;quot; + global js &amp;quot;force page resizable&amp;quot;.&lt;br&gt;&#xA;If some dialog is wider than the screen, press &amp;quot;📄&amp;quot; on the bottom toolbar.&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Address bar command line</title> <title>Phrases and input method</title>
<link>/en/acmd/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/input/</link>
<pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate> <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>
<guid>/en/acmd/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/input/</guid>
<description>&amp;quot;:!&amp;quot; ( or &amp;quot;!&amp;quot;) command line Pressing &amp;quot;:&amp;quot; or &amp;quot;!&amp;quot; with hardware keyboard sets focus on the address bar.&#xA;The command line could be a &amp;quot;.js&amp;quot;, &amp;quot;.sh&amp;quot; or other executable with arguments. Ex. &amp;quot;:!s g keyword&amp;quot; could invoke &amp;quot;s.js&amp;quot; executable with the whole string as arguments (&amp;quot;s.sh&amp;quot; or &amp;quot;s&amp;quot; if file exists, here &amp;quot;g&amp;quot; as google search engine); &amp;quot;:! g keyword&amp;quot; would invoke the file &amp;quot;.js&amp;quot; or &amp;quot;.sh&amp;quot; as executable.</description> <description>&lt;h4 id=&#34;defaultinput&#34;&gt;&amp;quot;default.input&amp;quot;&lt;/h4&gt;&#xA;&lt;p&gt;Click the following links to install menus popped by long pressing the share button (with arrow-out-of-square as icon) on the bottom toolbar:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.input::@AddrBar%0A&#34;&gt;Address Bar&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.input::%20\n%0A&#34;&gt;New line&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.input::@^Z@%1A%0A&#34;&gt;CTRL-Z: undo&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.input::@^Y@%19%0A&#34;&gt;CTRL-Y: redo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Long pressing the share button in &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt; will popup menus defined in file &amp;quot;default.input&amp;quot;, each line of which defines common phrase for user inputs. If the phrase begins with &amp;quot;@xxxx@&amp;quot;, then &amp;quot;xxxx&amp;quot; part is the alias for the rest part of the string. Alias could be used for non-printable phrases.&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Any url as website</title> <title>Context menu</title>
<link>/en/url2site/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/longclick/</link>
<pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate> <pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>
<guid>/en/url2site/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/longclick/</guid>
<description>The uweb internal link &amp;quot;i:0m&amp;quot; make any url such as download or indirect links visitable as a website. The second part of mirrors has examples using the following tricks:&#xA;&amp;quot;i:0m04:[url]&amp;quot;: to treat the [url] content as html with bookmarklet. &amp;quot;i:0m?:[url]&amp;quot;: to treat the [url] content as html, handling css/js properly. &amp;quot;i:0m?[postfix]:[url]&amp;quot;: auto append query postfix to url to retrieve content. &amp;quot;i:0mi:5h:[url]&amp;quot;: similar to &amp;quot;i:0m?:[url]&amp;quot;, to treat the [url] content as html (for download or no-script links etc.</description> <description>&lt;h4 id=&#34;the-command-submenus&#34;&gt;The &amp;quot;command&amp;quot; submenus&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;File &amp;quot;&lt;a href=&#34;../links/index.html#&#34;&gt;image.link&lt;/a&gt;&amp;quot;: defines &amp;quot;command&amp;quot; submenus of the context menu for images.&lt;/li&gt;&#xA;&lt;li&gt;File &amp;quot;&lt;a href=&#34;../links/index.html#&#34;&gt;download.link&lt;/a&gt;&amp;quot;: &amp;quot;command&amp;quot; submenus for download options menu.&lt;/li&gt;&#xA;&lt;li&gt;File &amp;quot;context.link&amp;quot;: &amp;quot;command&amp;quot; submenus in all other cases.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The &amp;quot;command&amp;quot; submenus can be toggled with &lt;a href=&#34;i:61:../searchurl/func.html&#34;&gt;UI options&lt;/a&gt;. The &amp;quot;command&amp;quot; submenus are default ( service urls or image.link or download.link), links, commands or service urls (default.urls when both link and command options are ticked).&lt;/p&gt;&#xA;&lt;h4 id=&#34;to-run-commands&#34;&gt;To run commands&lt;/h4&gt;&#xA;&lt;p&gt;Each line of file &amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.longclick&#34;&gt;default.longclick&lt;/a&gt;&amp;quot; has the following format: (same as &lt;a href=&#34;../cmds/index.html#&#34;&gt;default.cmds&lt;/a&gt;)&lt;br&gt;&#xA;[Name]:[mimetype]:[command line]&lt;br&gt;&#xA;in which [command line] can have &lt;a href=&#34;../cmds/index.html#&#34;&gt;&amp;quot;%c&amp;quot; (cookie), &amp;quot;%u&amp;quot; (current url), &amp;quot;%t&amp;quot; (title)&lt;/a&gt; etc.&lt;/p&gt;</description>
</item>
<item>
<title>Html5 applications</title>
<link>/en/html5/</link>
<pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate>
<guid>/en/html5/</guid>
<description>This page is for uweb browser.&#xA;Click to install the following html5 apps:&#xA;Huge markdown file viewer&#xA;Huge markdown+katex file viewer (Tex formulas)&#xA;Huge markdeep file viewer (markdown, latex, diagram,graphviz etc.)&#xA;plyr video player&#xA;dplayer video player&#xA;pdf viewer&#xA;epub reader (authorllili)&#xA;djvu viewer&#xA;The corresponding menus can be installed with url services.&#xA;Features The following mentioned subfolders locate in the configuration folder.&#xA;The following html5 applications are allowed to read local files referred by &amp;quot;https://local/sdcard/.</description>
</item>
<item>
<title>Configuration folders/files</title>
<link>/en/filenames/</link>
<pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/filenames/</guid>
<description>All folders end with character &amp;quot;/&amp;quot; and others are files. All folders/files locate in &amp;quot;/data/data/info.torapp.uweb/files&amp;quot;:&#xA;&amp;quot;css/&amp;quot;: global css folder&#xA;&amp;quot;js/&amp;quot;: global script folder&#xA;&amp;quot;sitejs/&amp;quot;: script folder for domains&#xA;&amp;quot;sitecss/&amp;quot;:CSS folder for domains&#xA;&amp;quot;bookmarklet/&amp;quot;:bookmarklets, long pressing the &amp;quot;JS&amp;quot; button to execute.&#xA;&amp;quot;offline/&amp;quot;: to save offline pages&#xA;&amp;quot;sbookmark/&amp;quot;: to save super bookmarks&#xA;&amp;quot;sitecache/&amp;quot;:offline cache&#xA;&amp;quot;longclick/&amp;quot;: menus to appear when long-pressing hypertext (js files)&#xA;&amp;quot;icon/&amp;quot;:customized icons&#xA;&amp;quot;app[XXX]/&amp;quot;:html5 applications&#xA;&amp;quot;default.longclick&amp;quot;: to configure menus when long-pressing hypertext.</description>
</item>
<item>
<title>AD blocking</title>
<link>/en/adblock/</link>
<pubDate>Sat, 25 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/adblock/</guid>
<description>Host blocking。&#xA;Use bookmarklet &amp;quot;list all script urls&amp;quot; to generate url links, long pressing dubious script (usually 3rd-party library) link, click &amp;quot;Block domain root&amp;quot;. Javascript and CSS for domains。&#xA;Long press the button &amp;quot;js&amp;quot;, click the menu &amp;quot;MarkAD mode&amp;quot;. In &amp;quot;markAD mode&amp;quot;, click page element to show all attributes and generate CSS AD blocking styles. By default, &amp;quot;display:none&amp;quot; is used. If &amp;quot;display&amp;quot; appears in the attribute information, recommend to use &amp;quot;transform:scale(0)!</description>
</item>
<item>
<title>Bookmarklets</title>
<link>/en/bookmarklet/</link>
<pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/bookmarklet/</guid>
<description>With uweb browser, long pressing any bookmarklet link, click &amp;quot;Open in new tab&amp;quot;, the bookmarklet will be run on the last other tab.&#xA;List all script urls&#xA;User agent&#xA;Cookie&#xA;Source code&#xA;Last modified date&#xA;Eruda: mobile console&#xA;QR code generation&#xA;Use &amp;quot;GET&amp;quot; method for &amp;quot;POST&amp;quot;&#xA;Shows all form elements&#xA;Enables all form elements&#xA;Toggle checkboxes&#xA;Check all checkboxes&#xA;Uncheck all checkboxes&#xA;Toggle all checkboxes in forms&#xA;Enable selection&#xA;Restore context menu</description>
</item> </item>
<item> <item>
<title>CSS styles</title> <title>CSS styles</title>
<link>/en/globalcss/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/globalcss/</link>
<pubDate>Sun, 03 Apr 2022 00:00:00 +0000</pubDate> <pubDate>Sun, 13 Oct 2024 00:00:00 +0000</pubDate>
<guid>/en/globalcss/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/globalcss/</guid>
<description>Uweb browser loads all &amp;quot;.css&amp;quot; files under the folder &amp;quot;css&amp;quot; as global css. Click the following links to install global css files:&#xA;Clearing font settings&#xA;The file &amp;quot;night.css&amp;quot; is used as night mode, click the following links to install one:&#xA;webview 81+ night mode&#xA;webview 80- night mode&#xA;Earliest loaded global js The &amp;quot;.js&amp;quot; files under the folder &amp;quot;css&amp;quot; are loaded as earlier as possible on the page.</description> <description>&lt;p&gt;&lt;a href=&#34;../index.html#&#34;&gt;Uweb browser&lt;/a&gt; loads all &amp;quot;.css&amp;quot; files under the folder &amp;quot;css&amp;quot; as global css. Click the following links to install global css files:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0hcss/clearfont.css:../../zh/searchurl/txt/clearfont.css&#34;&gt;Clearing font settings&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The file &amp;quot;night.css&amp;quot; is used as night mode, click the following links to install one:&lt;br&gt;&#xA;&lt;a href=&#34;i:0hnight.css:../../zh/searchurl/txt/night.css&#34;&gt;webview 81+ night mode&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0hnight.css:../../zh/searchurl/txt/night_old.css&#34;&gt;webview 80- night mode&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;earliest-loaded-global-js&#34;&gt;Earliest loaded global js&lt;/h4&gt;&#xA;&lt;p&gt;The &amp;quot;.js&amp;quot; files under the folder &amp;quot;css&amp;quot; are loaded as earlier as possible on the page.&lt;/p&gt;&#xA;&lt;p&gt;Click the following links to install early loaded global js:&lt;br&gt;&#xA;&lt;a href=&#34;i:0hcss/nojscopy.js::document.addEventListener(%22copy%22,(e)=&gt;{e.preventDefault()})&#34;&gt;No webpage clipboard copy&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>Text selection/processing</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</guid>
<description>&lt;p&gt;Click the following links to install menus for long pressing the button &lt;code&gt;link&lt;/code&gt;:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.select::Share:/uwebS:%0A&#34;&gt;Share&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Save as:/uwebA:printf i:50:;cat%0A&#34;&gt;Save selection as&lt;/a&gt;, also be used to create new file with bookmark path like &amp;quot;../help_en.html&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Edit:/text/html:echo -n %22%3cmeta charset=utf-8%3e%3cbody contenteditable%3e%22;cat%0A&#34;&gt;Edit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::AddrBar:/uwebAddr:%0A&#34;&gt;Copy text to address bar&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::notems:/uwebA:printf i:0/js/hash2textarea.js:https://note.ms/ric#;cat%0A&#34;&gt;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::copyHtml:html/clip:%0A&#34;&gt;Copy selected text with html format to clipboard&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Home:/uweb:printf file://data/data/info.torapp.uweb/files/home5.search%5C location.href=%5C%22i:15;cat;printf %5C%22%0A&#34;&gt;Search with home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::google Translate:/uweb:printf &#39;https://translate.google.com/?sl=auto&amp;tl=en&amp;op=translate&amp;text=&#39;;cat|tr &#39; &#39; &#39;%2B&#39;%0A&#34;&gt;google Translate&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>Links</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/links/</link>
<pubDate>Sat, 28 Oct 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/links/</guid>
<description>&lt;h4 id=&#34;context-menu&#34;&gt;Context menu&lt;/h4&gt;&#xA;&lt;p&gt;The configuration file &lt;code&gt;image.link&lt;/code&gt;, &lt;code&gt;download.link&lt;/code&gt; and &lt;code&gt;context.link&lt;/code&gt; define the default &lt;code&gt;command&lt;/code&gt; submenu of the context menus when a url link is long pressed.&lt;/p&gt;&#xA;&lt;h5 id=&#34;context-menu-for-images&#34;&gt;Context menu for images&lt;/h5&gt;&#xA;&lt;p&gt;Click the following links to install &lt;code&gt;command&lt;/code&gt; submenu for image&#39;s context menu:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gimage.link::google:https://www.google.com/searchbyimage?image_url=%25u0A&#34;&gt;google image&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gimage.link::tineye:https://tineye.com/search?url=%25u0A&#34;&gt;tineye&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gimage.link::yandex:https://yandex.com/images/search?family=yes&amp;rpt=imageview&amp;url=%25u0A&#34;&gt;yandex image&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h5 id=&#34;download-options-menu---command&#34;&gt;Download options menu -&amp;gt; &lt;code&gt;command&lt;/code&gt;&lt;/h5&gt;&#xA;&lt;p&gt;Click the following links to install &lt;code&gt;command&lt;/code&gt; submenu for &lt;b&gt;download options menu&lt;/b&gt;:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdownload.link::pager:i:0m/js/view.html:%25u#p=1%0A&#34;&gt;huge txt pager&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdownload.link::pager_2lnk:i:0m/js/view.html#/js/2lnk.js:%25u#p=1%0A&#34;&gt;pager with urls converted to links&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>Cron</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/tcron/</link>
<pubDate>Wed, 25 Oct 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/tcron/</guid>
<description>&lt;h4 id=&#34;crontab-with-enhanced-semantics&#34;&gt;crontab (with enhanced semantics)&lt;/h4&gt;&#xA;&lt;p&gt;Some battery restrictions on android 13+ may disallow new instance of uweb browser by alarm events. Users can either keep uweb instance (no battery consumption) or remove the restriction for uweb.&lt;/p&gt;&#xA;&lt;p&gt;For performance, the file &amp;quot;crontab&amp;quot; uses single space as field separator. Letters are not suppored currently. So use &amp;quot;1&amp;quot; for &amp;quot;January&amp;quot; and 2 for &amp;quot;Tuesday&amp;quot; etc.&lt;/p&gt;&#xA;&lt;p&gt;The sixth field in crontab file could be in the format of &lt;a href=&#34;../links/index.html#&#34;&gt;internal links&lt;/a&gt;. Specifically, &amp;quot;c:&amp;quot; to execute the following commands in termux and &amp;quot;!&amp;quot; to execute commands directly. If the sixth field is not in any of above formats, then the field will appear as the message of alarm clock.&lt;/p&gt;</description>
</item>
<item>
<title>Offline resources</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/offlinecache/</link>
<pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/offlinecache/</guid>
<description>&lt;p&gt;Offline resources locate in the folder &amp;quot;sitecache&amp;quot;. With the option &amp;quot;use offline resources&amp;quot; enabled, the corresponding files in &amp;quot;sitecache/[domain name]/[full path including filename, the url path part]&amp;quot; are loaded first before reaching the network.&lt;/p&gt;&#xA;&lt;h4 id=&#34;serverless-local-sites&#34;&gt;Serverless local sites&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:01Extract webapp:i:0bsitecache/local/:&#34;&gt;Click to install url service that extracts web apps to the folder &amp;quot;sitecache/local/&amp;quot;&lt;/a&gt;: support web extensions (.crx for chrome &amp;amp; .xpi for firefox).&lt;/p&gt;&#xA;&lt;p&gt;Any folder under &amp;quot;sitecache&amp;quot; can be visited as a local site. Urls with search queries can be dynamically processed by the js/wasm code in the local file.&lt;/p&gt;</description>
</item>
<item>
<title>Resource redirection</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/redirect/</link>
<pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/redirect/</guid>
<description>&lt;p&gt;⚠️&lt;span style=&#34;color:red&#34;&gt;Redirection forwards cookies&lt;/span&gt; with the setting option &amp;quot;Redirect cookies&amp;quot; enabled, so use the option with care.&lt;/p&gt;&#xA;&lt;h4 id=&#34;setting-options-url-redirection-vs-resource-redirection&#34;&gt;Setting options: &amp;quot;Url redirection&amp;quot; vs. &amp;quot;Resource redirection&amp;quot;&lt;/h4&gt;&#xA;&lt;p&gt;&amp;quot;Url redirection&amp;quot; redirects the main/page url only while &amp;quot;Resource redirection&amp;quot; is for all urls in the page.&lt;/p&gt;&#xA;&lt;h4 id=&#34;global-redirection&#34;&gt;Global redirection&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:60/data/data/info.torapp.uweb/files/config.html:https://codeberg.org/uweb/pages/raw/branch/master/en/searchurl/config.html&#34;&gt;Global redirection&lt;/a&gt; is enabled with the setting option &amp;quot;Resource redirection&amp;quot; or both &amp;quot;Url redirection&amp;quot; and &amp;quot;Redirect cookies&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;When a valid global redirection url is set, the &amp;quot;default.redirect&amp;quot; has no effect, and any url resource is fetched with the new url by appending the original url to the global redirection url.&lt;/p&gt;</description>
</item>
<item>
<title>Hosts files</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/adblock_domain/</link>
<pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/adblock_domain/</guid>
<description>&lt;p&gt;The enhanced hosts files &amp;quot;hosts&amp;quot; and &amp;quot;default.hosts&amp;quot; take effect with the setting option &amp;quot;use hosts&amp;quot;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;hosts&#34;&gt;hosts&lt;/h4&gt;&#xA;&lt;p&gt;The &lt;span style=&#34;color:red&#34;&gt;enhanced&lt;/span&gt; file &lt;a href=&#34;file:///data/data/info.torapp.uweb/files/hosts&#34;&gt;&amp;quot;hosts&amp;quot;&lt;/a&gt; defines IP addresses/attributes for domains. Each line has the following format:&lt;br&gt;&#xA;[[IP address][attributes]][single space][domain name]&lt;/p&gt;&#xA;&lt;p&gt;where &amp;quot;[[IP address][attributes]]&amp;quot; could be:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ipv4 address such as:&lt;br&gt;&#xA;172.67.157.211 torapp.eu.org&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ipv6 address, Ex.:&lt;br&gt;&#xA;[2606:4700:3037::6815:8c3] torapp.eu.org&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;empty, that would lift all server-imposed limitations. Ex.:&lt;br&gt;&#xA;[single space]gitee.com&lt;/p&gt;&#xA;&lt;p&gt;which will make all git repositories on the domain visitable as websites with raw file access url.&lt;/p&gt;</description>
</item>
<item>
<title>JS/CSS/HTML/preprocessing for domains</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/sitejs/</link>
<pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/sitejs/</guid>
<description>&lt;h3 id=&#34;javascript-load-when-page-completes-earliest-loaded-js-should-use-sitecss&#34;&gt;Javascript (load when page completes, earliest loaded JS should use sitecss).&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded.&lt;/li&gt;&#xA;&lt;li&gt;Script must be put under the folder &amp;quot;sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority.&lt;/li&gt;&#xA;&lt;li&gt;Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.&lt;/li&gt;&#xA;&lt;li&gt;Support 2/3-segment domains. If the length of the last 2-segments of domain is less than 7 (ex. &amp;quot;com.pl&amp;quot;), then it is treated as one segment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;css-style-and-earliest-loaded-js&#34;&gt;CSS style and earliest loaded JS&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to be named as &amp;quot;[domain root].css&amp;quot;, such as yahoo.com.css or finance.yahoo.com.css。&lt;/li&gt;&#xA;&lt;li&gt;Under folder &amp;quot;sitecss&amp;quot;.&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;[domain root].js&amp;quot; is loaded at the earliest time.&lt;/li&gt;&#xA;&lt;li&gt;Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Apply user styles&amp;quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If file &amp;quot;default.css&amp;quot; exists, the style will be applied to all sites not matching [domain root].css.&lt;/p&gt;</description>
</item>
<item>
<title>Bookmarks</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/bookmark/</link>
<pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/bookmark/</guid>
<description>&lt;p&gt;AI, chatgpt etc.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://aistudio.google.com/app/prompts/new_chat&#34;&gt;google&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gemini.google.com/app&#34;&gt;google gemini&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://jeeves.ai/chat&#34;&gt;jeeves&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://poe.com&#34;&gt;poe&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.teach-anything.com/&#34;&gt;teach-anything&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://magickpen.com/&#34;&gt;magickpen&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Scholar:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://lumina.sh&#34;&gt;Lumina&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://note.ms&#34;&gt;note.ms&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://rentry.org&#34;&gt;rentry&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:1w&#34;&gt;Wait for url from other devices&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://berify.com&#34;&gt;berify: reverse image search for video&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;big-txthtmlmd-files&#34;&gt;&lt;a href=&#34;../html5/index.html#&#34;&gt;Big txt/html/md files&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gutenberg.org/&#34;&gt;gutenberg&lt;/a&gt;&lt;br&gt;&#xA;Japanese &lt;a href=&#34;https://www.aozora.gr.jp/&#34;&gt;Aozora Bunko 青空文庫&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;associated-bookmarks&#34;&gt;Associated bookmarks&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;../searchcat/index.html#&#34;&gt;Search engine files&lt;/a&gt; associate with bookmarks with extension &amp;quot;.html&amp;quot;, which means the bookmark file if existing is appended to the page when the search engine file is on screen.&lt;/p&gt;&#xA;&lt;p&gt;&amp;quot;help_en.html&amp;quot; bookmark associates with the user manual in English. Similarly, &amp;quot;help_zh.html&amp;quot; is for Chinese manual. Whenever user manual is open, the associated bookmark appears before the manual.&lt;/p&gt;</description>
</item>
<item>
<title>Address bar command line</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/acmd/</link>
<pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/acmd/</guid>
<description>&lt;h3 id=&#34;--or--command-line&#34;&gt;&amp;quot;:!&amp;quot; ( or &amp;quot;!&amp;quot;) command line&lt;/h3&gt;&#xA;&lt;p&gt;Pressing &amp;quot;:&amp;quot; or &amp;quot;!&amp;quot; with hardware keyboard sets focus on the address bar.&lt;br&gt;&#xA;The command line could be a &amp;quot;.js&amp;quot;, &amp;quot;.sh&amp;quot; or other executable with arguments. Ex. &amp;quot;:!s g keyword&amp;quot; could invoke &amp;quot;s.js&amp;quot; executable with the whole string as arguments (&amp;quot;s.sh&amp;quot; or &amp;quot;s&amp;quot; if file exists, here &amp;quot;g&amp;quot; as google search engine); &amp;quot;:! g keyword&amp;quot; would invoke the file &amp;quot;.js&amp;quot; or &amp;quot;.sh&amp;quot; as executable.&lt;/p&gt;</description>
</item>
<item>
<title>Any url as website</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/url2site/</link>
<pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/url2site/</guid>
<description>&lt;p&gt;The &lt;a href=&#34;../index.html#&#34;&gt;uweb&lt;/a&gt; internal link &amp;quot;&lt;a href=&#34;../links/index.html&#34;&gt;i:0m&lt;/a&gt;&amp;quot; make any url such as download or indirect links visitable as a website. The second part of &lt;a href=&#34;../mirrors/index.html#&#34;&gt;mirrors&lt;/a&gt; has examples using the following tricks:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;quot;i:0m04:[url]&amp;quot;: to treat the [url] content as html with bookmarklet.&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;i:0m?:[url]&amp;quot;: to treat the [url] content as html, handling css/js properly.&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;i:0m?[postfix]:[url]&amp;quot;: auto append query postfix to url to retrieve content.&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;i:0mi:5h:[url]&amp;quot;: similar to &amp;quot;i:0m?:[url]&amp;quot;, to treat the [url] content as html (for download or no-script links etc.)&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;i:0mi:5h?[postfix]::[url]&amp;quot;: similar to &amp;quot;i:0m?[postfix]:[url]&amp;quot;. auto append query postfix to url to retrieve content.&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;i:0mi:5h/[regex]/[replacement]::[url]&amp;quot;: use the result of regular expression replacement to retrieve the content.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For more complicated links such as cloud storage shared links, which need user gestures to reach temporary generated content link, use&lt;br&gt;&#xA;&amp;quot;i:0m/.../[local.html]:[url]&amp;quot;, where the local file &amp;quot;/.../[local.html]&amp;quot; processes &amp;quot;[url]&amp;quot; as needed.&lt;/p&gt;</description>
</item>
<item>
<title>Configuration folders/files</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/filenames/</link>
<pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/filenames/</guid>
<description>&lt;p&gt;All folders end with character &amp;quot;/&amp;quot; and others are files. All folders/files locate in &amp;quot;/data/data/info.torapp.uweb/files&amp;quot;:&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/css/&#34;&gt;css/&lt;/a&gt;&amp;quot;: &lt;a href=&#34;../globalcss/index.html#&#34;&gt;global css folder&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/js/&#34;&gt;js/&lt;/a&gt;&amp;quot;: &lt;a href=&#34;../rjs/index.html#&#34;&gt;global script folder&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/sitejs/&#34;&gt;sitejs/&lt;/a&gt;&amp;quot;: &lt;a href=&#34;../sitejs/index.html#&#34;&gt;script folder for domains&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/sitecss/&#34;&gt;sitecss/&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../sitejs/index.html#&#34;&gt;CSS folder for domains&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/siteextra/&#34;&gt;siteextra/&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../sitejs/index.html#&#34;&gt;User extra folder for domains&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/bookmarklet/&#34;&gt;bookmarklet/&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../rjs/index.html#&#34;&gt;bookmarklets&lt;/a&gt;, long pressing the &amp;quot;JS&amp;quot; button to execute.&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/offline/&#34;&gt;offline/&lt;/a&gt;&amp;quot;: to save offline pages&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/sbookmark/&#34;&gt;sbookmark/&lt;/a&gt;&amp;quot;: to save super bookmarks&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/sitecache/&#34;&gt;sitecache/&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../offlinecache/index.html#&#34;&gt;offline cache&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/longclick/&#34;&gt;longclick/&lt;/a&gt;&amp;quot;: menus to appear when long-pressing hypertext (js files)&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/icon/&#34;&gt;icon/&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../icons/index.html#&#34;&gt;customized icons&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;app[XXX]/&amp;quot;:&lt;a href=&#34;../html5/index.html#&#34;&gt;html5 applications&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.longclick&#34;&gt;default.longclick&lt;/a&gt;&amp;quot;: to configure menus when long-pressing hypertext.&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.uas&#34;&gt;default.uas&lt;/a&gt;&amp;quot;:user agents&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.bml&#34;&gt;default.bml&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../rjs/index.html#&#34;&gt;bookmarklets&lt;/a&gt;, long pressing the &amp;quot;JS&amp;quot; button to execute.&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.urls&#34;&gt;default.urls&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../urls/index.html#&#34;&gt;service urls&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.acmd&#34;&gt;default.acmd&lt;/a&gt;&amp;quot;:configure address bar functionalities&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/hosts&#34;&gt;hosts&lt;/a&gt;&amp;quot;: for local &lt;a href=&#34;../adblock_domain/index.html#&#34;&gt;domain name attributes&lt;/a&gt;, only single space is allowed to separate ip address and domain name.&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.hosts&#34;&gt;default.hosts&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../adblock/index.html#&#34;&gt;hosts not allowed to visit&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.redirect&#34;&gt;default.redirect&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../redirect/index.html#&#34;&gt;redirect websites&lt;/a&gt;&lt;br&gt;&#xA;&amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.cmds&#34;&gt;default.cmds&lt;/a&gt;&amp;quot;:&lt;a href=&#34;../cmds/index.html#&#34;&gt;commands&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>AD blocking</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/adblock/</link>
<pubDate>Sat, 25 Jun 2022 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/adblock/</guid>
<description>&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;../adblock_domain/index.html#&#34;&gt;Host blocking&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use &lt;a href=&#34;../bookmarklet/index.html#&#34;&gt;bookmarklet &amp;quot;list all script urls&amp;quot;&lt;/a&gt; to generate url links, long pressing dubious script (usually 3rd-party library) link, click &amp;quot;Block domain root&amp;quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;../sitejs/index.html#&#34;&gt;Javascript and CSS for domains&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Long press the button &amp;quot;js&amp;quot;, click the menu &amp;quot;MarkAD mode&amp;quot;. In &amp;quot;markAD mode&amp;quot;, click page element to show all attributes and generate CSS AD blocking styles. By default, &amp;quot;display:none&amp;quot; is used. If &amp;quot;display&amp;quot; appears in the attribute information, recommend to use &amp;quot;transform:scale(0)!important&amp;quot; instead.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Long press the tab manager button, check &amp;quot;Videos only&amp;quot; for video sites and &amp;quot;Images only&amp;quot; for image sites. Other AD blocking options are &amp;quot;Hide pseudo elements&amp;quot; and &amp;quot;Hide iframes&amp;quot;.&lt;/p&gt;</description>
</item>
<item>
<title>Bookmarklets</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/bookmarklet/</link>
<pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/bookmarklet/</guid>
<description>&lt;p&gt;With &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;, long pressing any bookmarklet link, click &amp;quot;Open in new tab&amp;quot;, the bookmarklet will be run on the last other tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:{let es=document.getElementsByTagName(&#39;script&#39;);let urls=&#39;&#39;;for(let i=0;i&lt;es.length;i++){if(es[i].src)urls+=es[i].src+&#39;&lt;br&gt;&#39;;}let w=window.open(&#39;&#39;),s=w.document;s.write(urls);s.close();}&#34;&gt;List all script urls&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a target=&#34;_self&#34; href=&#34;javascript:alert(navigator.userAgent)&#34;&gt;User agent&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var w=window.open(&#39;&#39;),s=w.document;s.write(&#39;&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;&#39;);s.close();var pre=s.body.appendChild(s.createElement(&#39;pre&#39;));pre.style.overflow=&#39;auto&#39;;pre.style.whiteSpace=&#39;pre-wrap&#39;;pre.appendChild(s.createTextNode(document.cookie))})()&#34;&gt;Cookie&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var w=window.open(&#39;&#39;),s=w.document;s.write(&#39;&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;&#39;);s.close();var pre=s.body.appendChild(s.createElement(&#39;pre&#39;));pre.style.overflow=&#39;auto&#39;;pre.style.whiteSpace=&#39;pre-wrap&#39;;pre.appendChild(s.createTextNode(document.documentElement.innerHTML))})()&#34;&gt;Source code&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:function%20gett(w){try{var%20lm=new%20Date(w.document.lastModified);if(lm&gt;maxd)maxd=lm;for(var%20i=0;F=w.frames[i];i++){gett(F);}}catch(e){}}var%20now=new%20Date();var%20maxd=new%20Date(document.lastModified);gett(window);if(maxd.getTime()==0||now.toUTCString()==maxd.toUTCString()){alert(&#39;Page%20is%20dynamically%20generated,%20cannot%20determine%20date.&#39;);}else{alert(&#39;Page%20was%20last%20modified%20&#39;+maxd.toLocaleString());}&#34; class=&#34;bookmarklet&#34; rel=&#34;nofollow&#34;&gt;Last modified date&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:(function(){var script=document.createElement(&#39;script&#39;);script.src=&#39;//fastly.jsdelivr.net/npm/eruda&#39;;document.body.appendChild(script);script.onload=function(){eruda.init()}})()&#34;&gt;Eruda: mobile console&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:window.open(&#39;https://api.qrserver.com/v1/create-qr-code/?size=150x150&amp;data=&#39;%20+%20decodeURIComponent(location.href));void(0);&#34;&gt;QR code generation&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:(function(){var x,i; x = document.forms; for (i = 0; i &amp;lt; x.length; ++i) x[i].method=&amp;quot;get&amp;quot;; alert(&amp;quot;Changed &amp;quot; + x.length + &amp;quot; forms to use the GET method. After submitting a form from this page, you should be able to bookmark the result.&amp;quot;); })();&#34;&gt;Use &amp;quot;GET&amp;quot; method for &amp;quot;POST&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var i,f,j,e,div,label,ne; for(i=0;f=document.forms[i];++i)for(j=0;e=f[j];++j)if(e.type==&amp;quot;hidden&amp;quot;){ D=document; function C(t){return D.createElement(t);} function A(a,b){a.appendChild(b);} div=C(&amp;quot;div&amp;quot;); label=C(&amp;quot;label&amp;quot;); A(div, label); A(label, D.createTextNode(e.name + &amp;quot;: &amp;quot;)); e.parentNode.insertBefore(div, e); e.parentNode.removeChild(e); ne=C(&amp;quot;input&amp;quot;);/*for ie*/ ne.type=&amp;quot;text&amp;quot;; ne.value=e.value; A(label, ne); --j;}})()&#34;&gt;Shows all form elements&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var x,k,f,j;x=document.forms;for (k=0;k&amp;lt;x.length;++k){f=x[k];for(j=0;j&amp;lt;f.length;++j){f[j].disabled=false; f[j].readOnly=false;}}})()&#34;&gt;Enables all form elements&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Toolbar customization</title> <title>Toolbar customization</title>
<link>/en/icons/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/icons/</link>
<pubDate>Sun, 06 Feb 2022 00:00:00 +0000</pubDate> <pubDate>Sun, 06 Feb 2022 00:00:00 +0000</pubDate>
<guid>/en/icons/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/icons/</guid>
<description>If subfolder &amp;quot;icon&amp;quot; exists, then files named as &amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;...&#xA;are used for icons in the bottom toolbar. file &amp;quot;0&amp;quot; to replace the left arrow button, &amp;quot;1&amp;quot; for right arrow button, &amp;quot;2&amp;quot; for the setting button,&amp;quot;3&amp;quot; for the home screen button,...&#xA;If a new button is defined (file name &amp;quot;20&amp;quot; exists), uweb also supports VectorDrawable with &amp;quot;android compiled XML&amp;quot; format. All icon files must be either all compiled VectorDrawables or common image formats.</description> <description>&lt;p&gt;If subfolder &amp;quot;icon&amp;quot; exists, then files named as &amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;...&lt;br&gt;&#xA;are used for icons in the bottom toolbar. file &amp;quot;0&amp;quot; to replace the left arrow button, &amp;quot;1&amp;quot; for right arrow button, &amp;quot;2&amp;quot; for the setting button,&amp;quot;3&amp;quot; for the home screen button,...&lt;/p&gt;&#xA;&lt;p&gt;If a new button is defined (file name &amp;quot;20&amp;quot; exists), uweb also supports VectorDrawable with &amp;quot;android compiled XML&amp;quot; format. All icon files must be either all compiled VectorDrawables or common image formats.&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Search engine files</title> <title>Search engine files</title>
<link>/en/searchcat/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/searchcat/</link>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate> <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
<guid>/en/searchcat/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/searchcat/</guid>
<description>Search engine file names have &amp;quot;.search&amp;quot; as postfix. When they are clicked, the associated bookmark files with postfix &amp;quot;.search.html&amp;quot; would be appended. Ex: the associated bookmark for &amp;quot;foo.search&amp;quot; is &amp;quot;foo.search.html&amp;quot;.&#xA;Any &amp;quot;.search&amp;quot; file can be opened as search engine file, each line of which has one of the following formats:&#xA;[Engine name]:[url without &#39;%s&#39; inside]&#xA;[Engine name]:[url with &#39;%s&#39; as keyword]&#xA;[Engine name]:POST:[post params with &#39;%s&#39; as keyword]:[url]&#xA;[Engine name]:[Extra request headers]:[post params with &#39;%s&#39; as keyword]:[url]</description> <description>&lt;p&gt;Search engine file names have &amp;quot;.search&amp;quot; as postfix. When they are clicked, the associated bookmark files with postfix &amp;quot;.search.html&amp;quot; would be appended. Ex: the associated bookmark for &amp;quot;foo.search&amp;quot; is &amp;quot;foo.search.html&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;Any &amp;quot;.search&amp;quot; file can be opened as search engine file, each line of which has one of the following formats:&lt;br&gt;&#xA;[Engine name]:[url without &#39;%s&#39; inside]&lt;br&gt;&#xA;[Engine name]:[url with &#39;%s&#39; as keyword]&lt;br&gt;&#xA;[Engine name]:POST:[post params with &#39;%s&#39; as keyword]:[url]&lt;br&gt;&#xA;[Engine name]:[Extra request headers]:[post params with &#39;%s&#39; as keyword]:[url]&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Termux</title> <title>Termux</title>
<link>/en/termux/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/termux/</link>
<pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate> <pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate>
<guid>/en/termux/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/termux/</guid>
<description>Only the termux versions provided along with uweb browser can work seamlessly. For android 10+, please install termux before installing uweb browser. If uweb is already installed, users can uninstall it first, then install termux and reinstall uweb browser.&#xA;Termux bookmarks Long pressing the following links then either &amp;quot;commands&amp;quot;-&amp;gt;&amp;quot;bookmark&amp;quot; to add bookmarks or &amp;quot;open in new tab&amp;quot; to execute.&#xA;GNU bc (basic calculator)&#xA;bc with all extensions&#xA;Click the following links to install termux configurations: .</description> <description>&lt;p&gt;Only the termux versions provided along with uweb browser can work seamlessly. For android 10+, please install termux before installing uweb browser. If uweb is already installed, users can uninstall it first, then install termux and reinstall uweb browser.&lt;/p&gt;&#xA;&lt;h4 id=&#34;termux-bookmarks&#34;&gt;Termux bookmarks&lt;/h4&gt;&#xA;&lt;p&gt;Long pressing the following links then either &amp;quot;commands&amp;quot;-&amp;gt;&amp;quot;&lt;a href=&#34;../urls/index.html#&#34;&gt;bookmark&lt;/a&gt;&amp;quot; to add bookmarks or &amp;quot;open in new tab&amp;quot; to execute.&lt;br&gt;&#xA;&lt;a href=&#34;c:bc -l&#34;&gt;GNU bc (basic calculator)&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;c:bc -l *.bc&#34;&gt;bc with all extensions&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;click-the-following-links-to-install-termux-configurations&#34;&gt;Click the following links to install termux configurations:&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0h/data/data/com.termux/files/home/.bashrc:../../termux/bashrc&#34;&gt;.bashrc&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>User agents</title> <title>User agents</title>
<link>/en/useragents/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/useragents/</link>
<pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate> <pubDate>Sat, 01 Jan 2022 00:00:00 +0000</pubDate>
<guid>/en/useragents/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/useragents/</guid>
<description>Clicking the following links to add user agents with uweb browser or ebrowser.&#xA;Edge for android&#xA;Edge for windows</description> <description>&lt;p&gt;Clicking the following links to add user agents with &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt; or &lt;a href=&#34;../ebrowserreadme/index.html#&#34;&gt;ebrowser&lt;/a&gt;.&lt;br&gt;&#xA;&lt;a href=&#34;i:02EdgA:Mozilla/5.0 (Linux; Android 13; KB2000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Mobile Safari/537.36 EdgA/127.0.2610.80&#34;&gt;Edge for android&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:02Edge:Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Mobile Safari/537.36 Edg/127.0.2610.80&#34;&gt;Edge for windows&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>Long pressed link menu</title>
<link>/en/longclick/</link>
<pubDate>Fri, 06 Nov 2020 00:00:00 +0000</pubDate>
<guid>/en/longclick/</guid>
<description>To run commands Each line of file &amp;quot;default.longclick&amp;quot; has the following format: (same as default.cmds)&#xA;[Name]:[mimetype]:[command line]&#xA;in which [command line] can have &amp;quot;%c&amp;quot; (cookie), &amp;quot;%u&amp;quot; (current url), &amp;quot;%t&amp;quot; (title) etc.&#xA;To visit url and load javascript file All &amp;quot;.js&amp;quot; files under the folder &amp;quot;longclick&amp;quot; are part of the popup menu.&#xA;These javascript files are in the following format:&#xA;The very first line can begin with &amp;quot;//&amp;quot; followed by website url that can have &amp;quot;%u&amp;quot; (current url), &amp;quot;%t&amp;quot; (title) etc.</description>
</item> </item>
<item> <item>
<title>Tools</title> <title>Tools</title>
<link>/en/tools/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tools/</link>
<pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate> <pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate>
<guid>/en/tools/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tools/</guid>
<description>This page is for uweb browser.&#xA;install tdict_local (search with local indexes and remote content) Click to install the following local indexes with corresponding search engines (for test only).&#xA;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&#xA;Install AHD to home screen&#xA;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&#xA;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&#xA;Indexes for SOED6&#xA;install SOED&#xA;The following dictionaries work better with markdown processor.&#xA;Install markdown processor</description> <description>&lt;p&gt;This page is for &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;install-tdict_local-search-with-local-indexes-and-remote-content&#34;&gt;&lt;a href=&#34;i:0bhttps://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/tdict_loc.tar.gz&#34;&gt;install tdict_local (search with local indexes and remote content)&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Click to install the following local indexes with corresponding search engines (for test only).&lt;br&gt;&#xA;&lt;a href=&#34;i:0hahd.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/ahd.tidx&#34;&gt;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00AHD:d:text/html:tdict_loc ahd \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/HxY9QT5cdp63ZPK/download?path=%2F&amp;files=ahd.dict\&#39;:&#34;&gt;Install AHD to home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0henja.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/enja.tidx&#34;&gt;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00enja:d:text/html:tdict_loc enja \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=enja.dict\&#39;:&#34;&gt;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0hsoed.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/soed.tidx&#34;&gt;Indexes for SOED6&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00soed:d:text/html:tdict_loc soed \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=soed.dict\&#39;:&#34;&gt;install SOED&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The following dictionaries work better with markdown processor.&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmd.html:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/txt/mdme.html&#34;&gt;Install markdown processor&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmwi.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/mwi.tidx&#34;&gt;Indexes for &amp;quot;Merriam Webster International Unabridged&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00mwi:d:text/html:tdict_loc mwi \&#39;%s\&#39;|loc2html text/html.md.html \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=mwi.dict\&#39;:&#34;&gt;Install MWI&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Custom file handling</title> <title>Custom file handling</title>
<link>/en/filecap/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/filecap/</link>
<pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate> <pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate>
<guid>/en/filecap/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/filecap/</guid>
<description>Long press the settings button, check the option &amp;quot;custom file handling&amp;quot; to enable the functionality.&#xA;The custom file handling configuration file is &amp;quot;default.filecap&amp;quot;, each line of it has the format as follows:&#xA;[file extension]:[mimetype]:[command line]&#xA;The &amp;quot;[file extension]&amp;quot; part can have at most two-segment of extensions such as &amp;quot;txt.xz&amp;quot;,&amp;quot;html.gz&amp;quot;.&#xA;&amp;quot;[mimetype]&amp;quot; indicates the type of &amp;quot;[command line]&amp;quot; output.&#xA;&amp;quot;[command line]&amp;quot; is same as the one in default.cmds. The most often used replacements are:</description> <description>&lt;p&gt;Long press the settings button, check the option &amp;quot;custom file handling&amp;quot; to enable the functionality.&lt;/p&gt;&#xA;&lt;p&gt;The custom file handling configuration file is &amp;quot;default.filecap&amp;quot;, each line of it has the format as follows:&lt;br&gt;&#xA;[file extension]:[mimetype]:[command line]&lt;/p&gt;&#xA;&lt;p&gt;The &amp;quot;[file extension]&amp;quot; part can have at most two-segment of extensions such as &amp;quot;txt.xz&amp;quot;,&amp;quot;html.gz&amp;quot;.&lt;br&gt;&#xA;&amp;quot;[mimetype]&amp;quot; indicates the type of &amp;quot;[command line]&amp;quot; output.&lt;br&gt;&#xA;&amp;quot;[command line]&amp;quot; is same as the one in &lt;a href=&#34;../cmds/index.html#&#34;&gt;default.cmds&lt;/a&gt;. The most often used replacements are:&lt;br&gt;&#xA;%u (url), %U (urlencoded url), %c (cookie), %p (site password, curl format).&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Gestures</title> <title>Gestures</title>
<link>/en/gesture/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/gesture/</link>
<pubDate>Thu, 18 Jun 2020 00:00:00 +0000</pubDate> <pubDate>Thu, 18 Jun 2020 00:00:00 +0000</pubDate>
<guid>/en/gesture/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/gesture/</guid>
<description>Swipe down from the top to show the address bar; swipe up to the top to hide the address bar. Swipe down to the bottom to hide the toolbar with option &amp;quot;swipe to hide tools&amp;quot;; swipe on the bottom corners to show the toolbar.&#xA;Swipe left/right near the toolbar to switch window; fling left/right to switch to the last/first window.&#xA;Swiping on the top part of content window (near the top address bar by default) triggers corresponding link in the file &amp;quot;default.</description> <description>&lt;p&gt;Swipe down from the top to show the address bar; swipe up to the top to hide the address bar. Swipe down to the bottom to hide the toolbar with option &amp;quot;swipe to hide tools&amp;quot;; swipe on the bottom corners to show the toolbar.&lt;/p&gt;&#xA;&lt;p&gt;Swipe left/right near the toolbar to switch window; fling left/right to switch to the last/first window.&lt;/p&gt;&#xA;&lt;p&gt;Swiping on the top part of content window (near the top address bar by default) triggers corresponding link in the file &amp;quot;default.gesture&amp;quot;, which has the same format as &lt;a href=&#34;../links/index.html#&#34;&gt;default.link&lt;/a&gt;.&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/acmd/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Address bar command line</title> <title>Address bar command line</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -87,7 +88,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/adblock/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>AD blocking</title> <title>AD blocking</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -109,7 +110,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/adblock_domain/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Hosts files</title> <title>Hosts files</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -115,7 +116,7 @@ update bingAI/js/optionsSets.js<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/bookmark/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Bookmarks</title> <title>Bookmarks</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -49,20 +50,24 @@
</ul> </ul>
<p>AI, chatgpt etc.</p> <p>AI, chatgpt etc.</p>
<ul> <ul>
<li><a href="https://aistudio.google.com/app/prompts/new_chat">google</a></li>
<li><a href="https://gemini.google.com/app">google gemini</a></li> <li><a href="https://gemini.google.com/app">google gemini</a></li>
<li><a href="https://jeeves.ai/chat">jeeves</a></li> <li><a href="https://jeeves.ai/chat">jeeves</a></li>
<li><a href="https://www.morphic.sh">morphic</a></li>
<li><a href="https://komo.ai">komo</a></li>
<li><a href="https://iask.ai">iaskAI</a></li>
<li><a href="https://poe.com">poe</a></li> <li><a href="https://poe.com">poe</a></li>
<li><a href="https://freegpt.cc">freegpt</a></li>
<li><a href="https://www.teach-anything.com/">teach-anything</a></li> <li><a href="https://www.teach-anything.com/">teach-anything</a></li>
<li><a href="https://magickpen.com/">magickpen</a></li> <li><a href="https://magickpen.com/">magickpen</a></li>
</ul> </ul>
<p>Scholar:</p>
<ul>
<li><a href="https://lumina.sh">Lumina</a></li>
</ul>
<p><a href="https://note.ms">note.ms</a><br> <p><a href="https://note.ms">note.ms</a><br>
<a href="https://rentry.org">rentry</a><br> <a href="https://rentry.org">rentry</a><br>
<a href="i:1w">Wait for url from other devices</a><br> <a href="i:1w">Wait for url from other devices</a><br>
<a href="https://berify.com">berify: reverse image search for video</a></p> <a href="https://berify.com">berify: reverse image search for video</a></p>
<h3 id="big-txthtmlmd-files"><a href="../html5/index.html#">Big txt/html/md files</a></h3>
<p><a href="https://gutenberg.org/">gutenberg</a><br>
Japanese <a href="https://www.aozora.gr.jp/">Aozora Bunko 青空文庫</a></p>
<h3 id="associated-bookmarks">Associated bookmarks</h3> <h3 id="associated-bookmarks">Associated bookmarks</h3>
<p><a href="../searchcat/index.html#">Search engine files</a> associate with bookmarks with extension &quot;.html&quot;, which means the bookmark file if existing is appended to the page when the search engine file is on screen.</p> <p><a href="../searchcat/index.html#">Search engine files</a> associate with bookmarks with extension &quot;.html&quot;, which means the bookmark file if existing is appended to the page when the search engine file is on screen.</p>
<p>&quot;help_en.html&quot; bookmark associates with the user manual in English. Similarly, &quot;help_zh.html&quot; is for Chinese manual. Whenever user manual is open, the associated bookmark appears before the manual.</p> <p>&quot;help_en.html&quot; bookmark associates with the user manual in English. Similarly, &quot;help_zh.html&quot; is for Chinese manual. Whenever user manual is open, the associated bookmark appears before the manual.</p>
@ -77,7 +82,7 @@
<p>To save the bookmarks to local, users firstly need to install &quot;bookmark&quot; menu by clicking corresponding link in the <a href="../urls/index.html#">url services</a> page, then long press the bookmark link =&gt; &quot;open in new tab&quot; =&gt; &quot;Commands&quot; =&gt; &quot;bookmark&quot; to save the bookmark.</p> <p>To save the bookmarks to local, users firstly need to install &quot;bookmark&quot; menu by clicking corresponding link in the <a href="../urls/index.html#">url services</a> page, then long press the bookmark link =&gt; &quot;open in new tab&quot; =&gt; &quot;Commands&quot; =&gt; &quot;bookmark&quot; to save the bookmark.</p>
<p><a href="d::mkdir -p /sdcard/Download/uweb;cd /data/data/info.torapp.uweb;cp -r files /sdcard/Download/uweb;rm -rf files;ln -s /sdcard/Download/uweb files:">symbolic link configuration folder to &quot;/sdcard/Download/uweb&quot;</a></p> <p><a href="d::mkdir -p /sdcard/Download/uweb;cd /data/data/info.torapp.uweb;cp -r files /sdcard/Download/uweb;rm -rf files;ln -s /sdcard/Download/uweb files:">symbolic link configuration folder to &quot;/sdcard/Download/uweb&quot;</a></p>
<p><a href="d::cd /data/data/com.termux/files/home;ln -s ../../../info.torapp.uweb/files uweb:">Make uweb configuration folder accessible by file managers with termux installed</a><br> <p><a href="d::cd /data/data/com.termux/files/home;ln -s ../../../info.torapp.uweb/files uweb:">Make uweb configuration folder accessible by file managers with termux installed</a><br>
(<a href="https://wiki.termux.com/wiki/Internal_and_external_storage">File manager list at end of the page</a>)</p> (<a href="i:16::com.android.documentsui:">documentsUI</a> or <a href="https://wiki.termux.com/wiki/Internal_and_external_storage">File manager list at end of the page</a>)</p>
<p><a href="d::cd /sdcard/Download/mdict;for i in *.mdx; do b=`basename ${i} .mdx`;fs=%22${i}%22;if [ -f ${b}.mdd ];then fs=${fs}%22,${b}.mdd%22;fi;echo ${b}:i:5ifile:///sdcard/Download/mdict/${fs}?app=https://cdn.jsdelivr.net/gh/torappinfo/uweb/en/searchurl/mdict/mdict.html#word=%25s >>/data/data/info.torapp.uweb/files/home5.search;done:">Scan mdx/mdd files under the folder &quot;/sdcard/Download/mdict&quot; and add search engines</a>.</p> <p><a href="d::cd /sdcard/Download/mdict;for i in *.mdx; do b=`basename ${i} .mdx`;fs=%22${i}%22;if [ -f ${b}.mdd ];then fs=${fs}%22,${b}.mdd%22;fi;echo ${b}:i:5ifile:///sdcard/Download/mdict/${fs}?app=https://cdn.jsdelivr.net/gh/torappinfo/uweb/en/searchurl/mdict/mdict.html#word=%25s >>/data/data/info.torapp.uweb/files/home5.search;done:">Scan mdx/mdd files under the folder &quot;/sdcard/Download/mdict&quot; and add search engines</a>.</p>
<h4 id="termux">Termux</h4> <h4 id="termux">Termux</h4>
<p>The following bookmarks need termux.<br> <p>The following bookmarks need termux.<br>
@ -86,17 +91,10 @@
<h3 id="templates">Templates</h3> <h3 id="templates">Templates</h3>
<p>Click following links to install bookmark templates, bookmarks saved to the template have corresponding features enabled.<br> <p>Click following links to install bookmark templates, bookmarks saved to the template have corresponding features enabled.<br>
<a href="i:0hbookmark/novel.html:../../zh/searchurl/bookmark/novel.html">&quot;novel.html&quot;: auto reader's mode</a></p> <a href="i:0hbookmark/novel.html:../../zh/searchurl/bookmark/novel.html">&quot;novel.html&quot;: auto reader's mode</a></p>
<h3 id="science">Science</h3>
<h4 id="physics">Physics</h4>
<p><a href="https://www.feynmanlectures.caltech.edu/">Feynman lectures</a></p>
<h4 id="chemistry">Chemistry</h4>
<p><a href="https://www.chemspider.com">chemspider</a><br>
<a href="http://bl.ocks.org/chemplexity/raw/180e960a6d9e68adf28429dd16f05fa0/">molecule SMILES</a><br>
<a href="http://cdb.ics.uci.edu/cgibin/Smi2DepictWeb.py">SMILES2structure</a></p>
</div> </div>
<p>Last Modified: 19 July 2024<br> <p>Last Modified: 17 February 2026<br>
add search engines for cloud storages<br> add i:ch mirror links<br>
<pre></pre> <pre></pre>
</p> </p>
@ -119,7 +117,7 @@ add search engines for cloud storages<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/bookmarklet/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Bookmarklets</title> <title>Bookmarklets</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -50,7 +51,7 @@
</ul> </ul>
<p>With <a href="../index.html#">uweb browser</a>, long pressing any bookmarklet link, click &quot;Open in new tab&quot;, the bookmarklet will be run on the last other tab.</p> <p>With <a href="../index.html#">uweb browser</a>, long pressing any bookmarklet link, click &quot;Open in new tab&quot;, the bookmarklet will be run on the last other tab.</p>
<p><a href="javascript:{let es=document.getElementsByTagName('script');let urls='';for(let i=0;i<es.length;i++){if(es[i].src)urls+=es[i].src+'<br>';}let w=window.open(''),s=w.document;s.write(urls);s.close();w.location.href='i:631:';}">List all script urls</a></p> <p><a href="javascript:{let es=document.getElementsByTagName('script');let urls='';for(let i=0;i<es.length;i++){if(es[i].src)urls+=es[i].src+'<br>';}let w=window.open(''),s=w.document;s.write(urls);s.close();}">List all script urls</a></p>
<p><a target="_self" href="javascript:alert(navigator.userAgent)">User agent</a><br> <p><a target="_self" href="javascript:alert(navigator.userAgent)">User agent</a><br>
<a href="javascript:(function(){var w=window.open(''),s=w.document;s.write('<html><body></body></html>');s.close();var pre=s.body.appendChild(s.createElement('pre'));pre.style.overflow='auto';pre.style.whiteSpace='pre-wrap';pre.appendChild(s.createTextNode(document.cookie))})()">Cookie</a><br> <a href="javascript:(function(){var w=window.open(''),s=w.document;s.write('<html><body></body></html>');s.close();var pre=s.body.appendChild(s.createElement('pre'));pre.style.overflow='auto';pre.style.whiteSpace='pre-wrap';pre.appendChild(s.createTextNode(document.cookie))})()">Cookie</a><br>
<a href="javascript:(function(){var w=window.open(''),s=w.document;s.write('<html><body></body></html>');s.close();var pre=s.body.appendChild(s.createElement('pre'));pre.style.overflow='auto';pre.style.whiteSpace='pre-wrap';pre.appendChild(s.createTextNode(document.documentElement.innerHTML))})()">Source code</a><br> <a href="javascript:(function(){var w=window.open(''),s=w.document;s.write('<html><body></body></html>');s.close();var pre=s.body.appendChild(s.createElement('pre'));pre.style.overflow='auto';pre.style.whiteSpace='pre-wrap';pre.appendChild(s.createTextNode(document.documentElement.innerHTML))})()">Source code</a><br>
@ -71,8 +72,8 @@
<p><a href="javascript: (function() { var url = ('http://www.bugmenot.com/view/' + escape(location.hostname)); w = open(url, 'w', 'location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=400,modal=yes,dependent=yes'); if (w) { setTimeout('w.focus()', 1000) } else { location = url } })();">BugMeNot</a></p> <p><a href="javascript: (function() { var url = ('http://www.bugmenot.com/view/' + escape(location.hostname)); w = open(url, 'w', 'location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=400,modal=yes,dependent=yes'); if (w) { setTimeout('w.focus()', 1000) } else { location = url } })();">BugMeNot</a></p>
</div> </div>
<p>Last Modified: 11 June 2024<br> <p>Last Modified: 24 March 2026<br>
fix typos<br> revert back doc on js with CSP sites<br>
<pre></pre> <pre></pre>
</p> </p>
@ -95,7 +96,7 @@ fix typos<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,10 +2,10 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Categories on uweb browser: unlimited power</title> <title>Categories on uweb browser: unlimited power</title>
<link>/en/categories/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/categories/</link>
<description>Recent content in Categories on uweb browser: unlimited power</description> <description>Recent content in Categories on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<atom:link href="/en/categories/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/categories/index.xml" rel="self" type="application/rss+xml" />
</channel> </channel>
</rss> </rss>

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/changelog/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Downloads</title> <title>Downloads</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -43,56 +44,35 @@
<ul class="tags"> <ul class="tags">
</ul> </ul>
<p><a href="https://www.amazon.com/TorApp-Info-uweb-browser-for-geeks/dp/B098QPR6N5">Amazon appstore</a></p> <p><a href="https://galaxystore.samsung.com/detail/info.torapp.uweb">Galaxy.Store</a></p>
<p><a href="https://galaxy.store/uweb">Galaxy.Store</a></p>
<p><a href="https://s1.asytech.cn/s/tQrgT5kBRg8Trry">uweb, termux &amp; history versions</a></p>
<p><a href="https://github.com/torappinfo/uweb/releases/tag/v1">github</a></p> <p><a href="https://github.com/torappinfo/uweb/releases/tag/v1">github</a></p>
<p><a href="https://sourceforge.net/projects/uwebbrowser/files/v1/">sourceforge</a></p> <p><a href="https://sourceforge.net/projects/uwebbrowser/files/v1/">sourceforge</a></p>
<p><a href="https://uweb-browser-for-geeks.en.uptodown.com/android" title="uweb"><img src="https://stc.utdstc.com/img/mediakit/download-gio-big.png" alt=""></a></p>
<p><a href="https://codeberg.org/jamesfengcao/pages/releases">codeberg</a></p>
<p><a href="https://uno.teracloud.jp/share/1162dfa8376e1609">infinicloud</a></p>
<p><a href="https://gitee.com/jamesfengcao/uweb/releases">gitee</a></p>
<p><a href="https://gitea.com/torappinfo/uweb/releases">gitea</a></p>
<p><a href="https://gitdab.com/jamesfengcao/uweb/releases">gitdab</a></p>
<p><a href="https://gitnet.fr/jamesfengcao/uweb/releases">gitnet</a></p>
<p><a href="https://tildegit.org/jamesfengcao/uweb/releases">tildegit</a></p>
<p><a href="https://my.powerfolder.com/getlink/fi61cC6VHjK72tfufmnLAz/">powerfolder</a></p> <p><a href="https://my.powerfolder.com/getlink/fi61cC6VHjK72tfufmnLAz/">powerfolder</a></p>
<p><a href="https://www.udrop.com/folder/08ba413230f465ca0901bef68e857c0b/uweb">udrop</a></p> <p><a href="https://worktree.ca/jamesfengcao/uweb/releases">worktree</a></p>
<p><a href="https://releases.pagure.org/uwebapk/">pagure</a></p> <p><a href="https://codefloe.com/jamesfengcao/uweb/releases">codefloe</a></p>
<p><a href="http://pan.mcbebbs.cn/s/dJ4t8">mcbebbs</a></p> <p><a href="https://pan.baidu.com/s/17coQj6DCHqghMMNJUyjgrA#list/path=%2Fuweb">baidu</a></p>
<h4 id="main-featuresreadmeindexhtml"><a href="../readme/index.html">Main features</a></h4> <p><a href="https://www.gitlink.org.cn/jamesfengcao/uweb/releases">gitlink</a></p>
<h4 id="change-logs">Change logs</h4> <p><a href="https://pan.lanzouu.com/b0qpxnob">蓝奏</a></p>
<p>1048: enhance file downloading. Previous versions may fail for few sites.<br> <h4 id="main-features"><a href="../readme/index.html">Main features</a></h4>
1047: add huge markdown file viewer<br> <h4 id="change-logs"><a id="log">Change logs<a></h4>
1038: support chatBot as search engine with url &quot;i:0/js/hash2textarea.js:https://XXX&quot;<br> <p>1149: siteextra/[domain.sanitizer] to support web page sanitizing<br>
1036: TV mode: reuse &quot;engine.search&quot; as live TV channel urls.<br> 1146: remote/local big txt/html file (optional .zst,.gz,.br compressed) as search engines<br>
1034: click share button on homescreen to process clipboard text.<br> 1144: novel reader support for remote large text/html files (could be .gz, .br, .zst compressed)<br>
1030: Allow downloading with global redirection<br> enhance url services to support %u, %t<br>
1026: Test automation: enable i:0 urls in scripting mode<br> 1139: support \n as newline in default.input &amp; default.autoc<br>
1017: crontab alarm clock and <a href="../links/index.html">links</a> as sixth field.<br> 1104: support command context submenus (image.link, download.link &amp; context.link).</p>
1008: Add long screenshot mode<br>
1006: Advanced configuration: auto reload, download path<br>
1004: bookmarklet &quot;Show as html&quot; to support clipboard sites such as &quot;netcut.cn&quot;.<br>
998: <a href="../rjs/index.html">Bookmarklets</a> to support CSP sites.<br>
991: <a href="../redirect/index.html">global url redirection</a> support.<br>
988: <a href="../adblock_domain/index.html">hosts</a> file to support response headers.<br>
985: <a href="../links/index.html">Special urls</a> to support shortcut keys such as ctrl-a to ctrl-z.<br>
983: support <a href="../adblock_domain/index.html">&quot;hosts&quot;</a> file domain name resolving (no root needed), only single space allowed as separator for ip address and domain name.<br>
975: <a href="../bookmark/index.html">Bookmarks</a> to support styling for markdown etc.<br>
971: <a href="../links/index.html">multiple type profiles</a>: switch any data including website logins, user configurations orthogonally.<br>
964: site source html preprocessing before rendering with user <a href="../sitejs/index.html">site extra html</a>.<br>
961: webdav/http file upload support with <a href="../links/index.html">&quot;i:0u&quot; links</a>.<br>
955: Address bar: <a href="../acmd/index.html">&quot;:!&quot; or &quot;!&quot;</a> for command line support (.js/.sh files as executables).<br>
949: Address bar: &quot;:p [width in milliInch]x[height]&quot; to generate PDF in custom size<br>
946: Option &quot;use offline cache&quot; to support serverless local websites.</p>
<p>945: commands to support evaluation of generated js code.</p>
<p>943: Multiple home screens support .mht (offline webpage), .search &amp; .html local files.</p>
<p>940: <a href="../url2site/index.html">Any urls as website</a> with local html processing (<a href="../links/index.html">&quot;i:0m/..../xxx.html:url&quot;</a>)</p>
<p>935:</p>
<ul>
<li>Pipe support: command line output to uweb tabs.</li>
</ul>
<p>934:</p>
<ul>
<li>Serverless local sites: PWA-kind web extension (chrome .crx &amp; firefox .xpi) support.</li>
<li>PWAs and web extensions to be used as search engines, ex. kiwix zim as search engines.</li>
</ul>
</div> </div>
<p>Last Modified: 5 May 2024<br> <p>Last Modified: 18 April 2026<br>
enhance downloading<br> cleanup<br>
<pre></pre> <pre></pre>
</p> </p>
@ -115,7 +95,7 @@ enhance downloading<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/cmds/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Commands</title> <title>Commands</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -49,7 +50,8 @@
</ul> </ul>
<p>Click the following links to install commands with <a href="../index.html#">uweb browser</a>. <b>Force exit and re-launch the app</b>, then long press the button with clock icon to popup the command menu.</p> <p>Click the following links to install commands with <a href="../index.html#">uweb browser</a>. <b>Force exit and re-launch the app</b>, then long press the button with clock icon to popup the command menu.</p>
<p>Configuration file &quot;default.cmds&quot; examples:</p> <p>Configuration file &quot;default.cmds&quot; examples:</p>
<p><a href="i:03Clear data::toybox find /data/data/info.torapp.uweb/app_webview ! -name 'Cookies' ! -name '*.cjar' -type f -delete">Clear data::toybox find /data/data/info.torapp.uweb/app_webview ! -name 'Cookies' ! -name '*.cjar' -type f -delete</a></p> <p><a href="i:03Quit & clear data:q:toybox find /data/data/info.torapp.uweb/app_webview ! -name 'Cookies' ! -name '*.cjar' -type f -delete">Quit &amp; clear data:q:toybox find /data/data/info.torapp.uweb/app_webview ! -name 'Cookies' ! -name '*.cjar' -type f -delete</a></p>
<p><a href="i:03Clipboard2input:clip:cat>>default.input">Clipboard2input:clip:cat&gt;&gt;default.input</a></p>
<p><a href="i:03Clear database::rm -rf /data/data/info.torapp.uweb/databases/*">Clear database::rm -rf /data/data/info.torapp.uweb/databases/*</a></p> <p><a href="i:03Clear database::rm -rf /data/data/info.torapp.uweb/databases/*">Clear database::rm -rf /data/data/info.torapp.uweb/databases/*</a></p>
<p><a href="i:03Append query to autocomplete:uweb:cd /data/data/info.torapp.uweb/files;cat default.autoc query.log|toybox sort|toybox uniq -i>a.tmp;mv a.tmp default.autoc;>query.log;echo file:///data/data/info.torapp.uweb/files/default.autoc">Append query to autocomplete:uweb:cd /data/data/info.torapp.uweb/files;cat default.autoc query.log|toybox sort|toybox uniq -i&gt;a.tmp;mv a.tmp default.autoc;&gt;query.log;echo file:///data/data/info.torapp.uweb/files/default.autoc</a></p> <p><a href="i:03Append query to autocomplete:uweb:cd /data/data/info.torapp.uweb/files;cat default.autoc query.log|toybox sort|toybox uniq -i>a.tmp;mv a.tmp default.autoc;>query.log;echo file:///data/data/info.torapp.uweb/files/default.autoc">Append query to autocomplete:uweb:cd /data/data/info.torapp.uweb/files;cat default.autoc query.log|toybox sort|toybox uniq -i&gt;a.tmp;mv a.tmp default.autoc;&gt;query.log;echo file:///data/data/info.torapp.uweb/files/default.autoc</a></p>
<p><a href="i:03Clear cache::toybox rm -rf /data/data/info.torapp.uweb/cache">Clear cache::toybox rm -rf /data/data/info.torapp.uweb/cache</a></p> <p><a href="i:03Clear cache::toybox rm -rf /data/data/info.torapp.uweb/cache">Clear cache::toybox rm -rf /data/data/info.torapp.uweb/cache</a></p>
@ -58,9 +60,11 @@
<p><a href="i:03copy cookie:/clip:printf '%c'">copy cookie:/clip:printf '%c'</a></p> <p><a href="i:03copy cookie:/clip:printf '%c'">copy cookie:/clip:printf '%c'</a></p>
<p><a href="i:03config in Download::cd /data/data/info.torapp.uweb;toybox rm -rf files;toybox mkdir -p /sdcard/Download/uweb;toybox ln -s /sdcard/Download/uweb files">config in Download::cd /data/data/info.torapp.uweb;toybox rm -rf files;toybox mkdir -p /sdcard/Download/uweb;toybox ln -s /sdcard/Download/uweb files</a></p> <p><a href="i:03config in Download::cd /data/data/info.torapp.uweb;toybox rm -rf files;toybox mkdir -p /sdcard/Download/uweb;toybox ln -s /sdcard/Download/uweb files">config in Download::cd /data/data/info.torapp.uweb;toybox rm -rf files;toybox mkdir -p /sdcard/Download/uweb;toybox ln -s /sdcard/Download/uweb files</a></p>
<p><a href="i:03html5 in Download::cd /data/data/info.torapp.uweb/files;toybox rm -rf app;toybox mkdir -p /sdcard/Download/app;toybox ln -s /sdcard/Download/app">html5 in Download::cd /data/data/info.torapp.uweb/files;toybox rm -rf app;toybox mkdir -p /sdcard/Download/app;toybox ln -s /sdcard/Download/app</a></p> <p><a href="i:03html5 in Download::cd /data/data/info.torapp.uweb/files;toybox rm -rf app;toybox mkdir -p /sdcard/Download/app;toybox ln -s /sdcard/Download/app">html5 in Download::cd /data/data/info.torapp.uweb/files;toybox rm -rf app;toybox mkdir -p /sdcard/Download/app;toybox ln -s /sdcard/Download/app</a></p>
<p><a href="i:03tgz install::toybox tar -xzf %f -C /">tgz install::toybox tar -xzf %f -C /</a></p> <p><a href="i:03tgz install::cd /;toybox tar -xzf %f">tgz install::cd /;toybox tar -xzf %f</a></p>
<p>Users should change the IP addresses in the following menus accordingly. In all cases, TV side needs to execute &quot;<a href="../links/index.html#">wait for network msg</a>&quot; first. Send message to network (ex. for android TVs):<br> <p>Users should change the IP addresses in the following menus accordingly. In all cases, TV side needs to execute &quot;<a href="../links/index.html#">wait for network msg</a>&quot; first. Send message to network (ex. for android TVs):<br>
<a href="i:03Send clipboard:clip/uweb:printf 'i:5ji:5b';cat">Send clipboard:clip/uweb:printf 'i:5ji:5b';cat</a></p> <a href="i:03clip2PC:clip:cat|/system/bin/toybox nc 192.168.1.120 1500">clip2PC:clip:cat|/system/bin/toybox nc 192.168.1.120 1500</a></p>
<p><a href="i:03PC2clip:/clip:/system/bin/toybox nc 192.168.1.120 1500">PC2clip:/clip:/system/bin/toybox nc 192.168.1.120 1500</a></p>
<p><a href="i:03Send clipboard:clip/uweb:printf 'i:5ji:5b';cat">Send clipboard:clip/uweb:printf 'i:5ji:5b';cat</a></p>
<p><a href="i:03Send url::printf '%u'|/system/bin/toybox nc 192.168.2.155 1500">Send url::printf '%u'|/system/bin/toybox nc 192.168.2.155 1500</a></p> <p><a href="i:03Send url::printf '%u'|/system/bin/toybox nc 192.168.2.155 1500">Send url::printf '%u'|/system/bin/toybox nc 192.168.2.155 1500</a></p>
<p><a href="i:03Sendurl(bookmark)::printf 'i:51../home5:i:0mc16:%u'|/system/bin/toybox nc 192.168.2.155 1500">Sendurl(bookmark)::printf 'i:51../home5:i:0mc16:%u'|/system/bin/toybox nc 192.168.2.155 1500</a></p> <p><a href="i:03Sendurl(bookmark)::printf 'i:51../home5:i:0mc16:%u'|/system/bin/toybox nc 192.168.2.155 1500">Sendurl(bookmark)::printf 'i:51../home5:i:0mc16:%u'|/system/bin/toybox nc 192.168.2.155 1500</a></p>
<p><a href="i:03Send url(fullscreen)::printf 'i:5f%u'|/system/bin/toybox nc 192.168.2.155 1500">Send url(fullscreen)::printf 'i:5f%u'|/system/bin/toybox nc 192.168.2.155 1500</a></p> <p><a href="i:03Send url(fullscreen)::printf 'i:5f%u'|/system/bin/toybox nc 192.168.2.155 1500">Send url(fullscreen)::printf 'i:5f%u'|/system/bin/toybox nc 192.168.2.155 1500</a></p>
@ -79,8 +83,8 @@
<p><a href="i:03deduplicate bookmarks::awk '!s[\$0]++' /data/data/info.torapp.uweb/files/bookmark.html>/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/bookmark.html">deduplicate bookmarks::awk '!s[$0]++' /data/data/info.torapp.uweb/files/bookmark.html&gt;/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/bookmark.html</a></p> <p><a href="i:03deduplicate bookmarks::awk '!s[\$0]++' /data/data/info.torapp.uweb/files/bookmark.html>/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/bookmark.html">deduplicate bookmarks::awk '!s[$0]++' /data/data/info.torapp.uweb/files/bookmark.html&gt;/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/bookmark.html</a></p>
<p><a href="i:03deduplicate hosts::toybox tac /data/data/info.torapp.uweb/files/default.hosts|awk -F' ' '!s[\$1]++' |toybox tac>/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.hosts">deduplicate hosts::toybox tac /data/data/info.torapp.uweb/files/default.hosts|awk -F' ' '!s[$1]++' |toybox tac&gt;/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.hosts</a></p> <p><a href="i:03deduplicate hosts::toybox tac /data/data/info.torapp.uweb/files/default.hosts|awk -F' ' '!s[\$1]++' |toybox tac>/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.hosts">deduplicate hosts::toybox tac /data/data/info.torapp.uweb/files/default.hosts|awk -F' ' '!s[$1]++' |toybox tac&gt;/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.hosts</a></p>
<p><a href="i:03deduplicate siteconf::toybox tac /data/data/info.torapp.uweb/files/default.siteconf|awk -F':' '!s[\$1]++' |toybox tac>/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.siteconf">deduplicate siteconf::toybox tac /data/data/info.torapp.uweb/files/default.siteconf|awk -F':' '!s[$1]++' |toybox tac&gt;/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.siteconf</a></p> <p><a href="i:03deduplicate siteconf::toybox tac /data/data/info.torapp.uweb/files/default.siteconf|awk -F':' '!s[\$1]++' |toybox tac>/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.siteconf">deduplicate siteconf::toybox tac /data/data/info.torapp.uweb/files/default.siteconf|awk -F':' '!s[$1]++' |toybox tac&gt;/sdcard/Download/a.tmp;mv /sdcard/Download/a.tmp /data/data/info.torapp.uweb/files/default.siteconf</a></p>
<p><a href="i:03Clipboard2PC:clip:ssh fengcao@192.168.2.120 'DISPLAY=:0 xsel -i'">Clipboard2PC:clip:ssh fengcao@192.168.2.120 'DISPLAY=:0 xsel -i'</a></p> <p><a href="i:03Clipboard2PC:clip:ssh fengcao@192.168.1.120 'DISPLAY=:0 xsel -i'">Clipboard2PC:clip:ssh fengcao@192.168.1.120 'DISPLAY=:0 xsel -i'</a></p>
<p><a href="i:03ClipboardFromPC:/clip:ssh fengcao@192.168.2.120 'DISPLAY=:0 xsel -o'">ClipboardFromPC:/clip:ssh fengcao@192.168.2.120 'DISPLAY=:0 xsel -o'</a></p> <p><a href="i:03PC2Clipboard:/clip:ssh fengcao@192.168.1.120 'DISPLAY=:0 xsel -o'">PC2Clipboard:/clip:ssh fengcao@192.168.1.120 'DISPLAY=:0 xsel -o'</a></p>
<p><a href="i:03Clipboard broadcast:clip:socat - UDP-DATAGRAM:255.255.255.255:1500,broadcast">Clipboard broadcast:clip:socat - UDP-DATAGRAM:255.255.255.255:1500,broadcast</a></p> <p><a href="i:03Clipboard broadcast:clip:socat - UDP-DATAGRAM:255.255.255.255:1500,broadcast">Clipboard broadcast:clip:socat - UDP-DATAGRAM:255.255.255.255:1500,broadcast</a></p>
<p><a href="i:03Clipboard from broadcast:/clip:socat -u udp-recvfrom:1500 SYSTEM:'cat;exit'">Clipboard from broadcast:/clip:socat -u udp-recvfrom:1500 SYSTEM:'cat;exit'</a></p> <p><a href="i:03Clipboard from broadcast:/clip:socat -u udp-recvfrom:1500 SYSTEM:'cat;exit'">Clipboard from broadcast:/clip:socat -u udp-recvfrom:1500 SYSTEM:'cat;exit'</a></p>
<p><a href="i:03Clipboard2QR:clip/uweb:qrencode -o /sdcard/Download/a.png;echo file:///sdcard/Download/a.png">Clipboard2QR:clip/uweb:qrencode -o /sdcard/Download/a.png;echo file:///sdcard/Download/a.png</a></p> <p><a href="i:03Clipboard2QR:clip/uweb:qrencode -o /sdcard/Download/a.png;echo file:///sdcard/Download/a.png">Clipboard2QR:clip/uweb:qrencode -o /sdcard/Download/a.png;echo file:///sdcard/Download/a.png</a></p>
@ -106,11 +110,17 @@ Clipboard2QR needs libqrencode.</p>
<li>&quot;clip/text/html&quot; : clipboard as input, and the command output is processed as &quot;text/html&quot;.</li> <li>&quot;clip/text/html&quot; : clipboard as input, and the command output is processed as &quot;text/html&quot;.</li>
<li>&quot;termux/*&quot;: command line is executed under termux.</li> <li>&quot;termux/*&quot;: command line is executed under termux.</li>
<li>&quot;/uweb&quot;: the command output is processed as <a href="../links/index.html#">links</a>.</li> <li>&quot;/uweb&quot;: the command output is processed as <a href="../links/index.html#">links</a>.</li>
<li>&quot;q&quot;: quit the app and then execute the command. It is useful for complete cleanup operations.</li>
<li>empty:
<ul>
<li>if the first or second character of [command line] is ':', then the [command line] executes as <a href="../links/index.html#">internal link</a>.</li>
</ul>
</li>
</ul> </ul>
</div> </div>
<p>Last Modified: 2 April 2024<br> <p>Last Modified: 30 March 2025<br>
add ending # to /index.html<br> tar -C / raised permission denied error<br>
<pre></pre> <pre></pre>
</p> </p>
@ -133,7 +143,7 @@ add ending # to /index.html<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -1,15 +1,37 @@
**Download links**
[uweb, termux & history versions](https://s1.asytech.cn/s/tQrgT5kBRg8Trry)
[github](https://github.com/torappinfo/uweb/releases/tag/v1) [github](https://github.com/torappinfo/uweb/releases/tag/v1)
[sourceforge](https://sourceforge.net/projects/uwebbrowser/files/v1/) [sourceforge](https://sourceforge.net/projects/uwebbrowser/files/v1/)
[udrop](https://www.udrop.com/folder/08ba413230f465ca0901bef68e857c0b/uweb) [![](https://stc.utdstc.com/img/mediakit/download-gio-big.png)](https://uweb-browser-for-geeks.en.uptodown.com/android "uweb")
[codeberg](https://codeberg.org/jamesfengcao/pages/releases)
[infinicloud](https://uno.teracloud.jp/share/1162dfa8376e1609)
[gitee](https://gitee.com/jamesfengcao/uweb/releases)
[gitea](https://gitea.com/torappinfo/uweb/releases)
[gitdab](https://gitdab.com/jamesfengcao/uweb/releases)
[gitnet](https://gitnet.fr/jamesfengcao/uweb/releases)
[tildegit](https://tildegit.org/jamesfengcao/uweb/releases)
[powerfolder](https://my.powerfolder.com/getlink/fi61cC6VHjK72tfufmnLAz/) [powerfolder](https://my.powerfolder.com/getlink/fi61cC6VHjK72tfufmnLAz/)
[pagure](https://releases.pagure.org/uwebapk/) [worktree](https://worktree.ca/jamesfengcao/uweb/releases)
[codefloe](https://codefloe.com/jamesfengcao/uweb/releases)
[baidu](https://pan.baidu.com/s/17coQj6DCHqghMMNJUyjgrA#list/path=%2Fuweb)
[gitlink](https://www.gitlink.org.cn/jamesfengcao/uweb/releases)
[蓝奏](https://pan.lanzouu.com/b0qpxnob)
[mcbebbs](http://pan.mcbebbs.cn/s/dJ4t8)

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/ebrowser/eb_select/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Text selection</title> <title>Text selection</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -70,7 +71,7 @@ reorg ebrowserreadme.md<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Ebrowsers on uweb browser: unlimited power</title> <title>Ebrowsers on uweb browser: unlimited power</title>
<link>/en/ebrowser/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/ebrowser/</link>
<description>Recent content in Ebrowsers on uweb browser: unlimited power</description> <description>Recent content in Ebrowsers on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Fri, 12 Jul 2024 10:48:12 +0800</lastBuildDate> <lastBuildDate>Fri, 12 Jul 2024 10:48:12 +0800</lastBuildDate>
<atom:link href="/en/ebrowser/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/ebrowser/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Text selection</title> <title>Text selection</title>
<link>/en/ebrowser/eb_select/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/ebrowser/eb_select/</link>
<pubDate>Fri, 12 Jul 2024 00:00:00 +0000</pubDate> <pubDate>Fri, 12 Jul 2024 00:00:00 +0000</pubDate>
<guid>/en/ebrowser/eb_select/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/ebrowser/eb_select/</guid>
<description>Click the following links to install context menus for text selection.</description> <description>&lt;p&gt;Click the following links to install context menus for text selection.&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/ebrowserreadme/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title></title> <title></title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -44,35 +45,51 @@
</ul> </ul>
<script>function notRepo(){let u=location.href.replace(/#$/, '');return u.endsWith('index.html')||u.endsWith('readme/');}</script> <script>function notRepo(){let u=location.href.replace(/#$/, '');return u.endsWith('index.html')||u.endsWith('readme/');}</script>
<h3 id="ebrowserhttpsgithubcomtorappinfoebrowser-keyboard-friendly-minimal-suckless-web-browser"><a href="https://github.com/torappinfo/ebrowser">Ebrowser</a>: keyboard-friendly minimal suckless web browser</h3> <!--%3cmeta http-equiv=refresh content=%220;url=%68ttps://gitee.com/jamesfengcao/uweb/raw/master/redirect.html#%22%3e-->
<p><a href="https://zread.ai/torappinfo/ebrowser"><img src="https://img.shields.io/badge/Zread-_.svg" alt="zread"></a></p>
<h1 id="ebrowser-keyboard-friendly-minimal-suckless-web-browser"><a href="https://github.com/torappinfo/ebrowser">Ebrowser</a>: keyboard-friendly minimal suckless web browser</h1>
<p>Ebrowser is designed with the philosophy of <a href="https://github.com/torappinfo/uweb">Android uweb browser</a> (<a href="https://gitlab.com/jamesfengcao/uweb">gitlab</a>).</p> <p>Ebrowser is designed with the philosophy of <a href="https://github.com/torappinfo/uweb">Android uweb browser</a> (<a href="https://gitlab.com/jamesfengcao/uweb">gitlab</a>).</p>
<ul> <ul>
<li>lightweight (less than 20k bytes) without bundled electron.</li> <li>lightweight (less than 20k bytes) without bundled electron.</li>
<li>much less memory footprint than edge/chrome browser and highly performant.</li> <li>much less memory footprint than edge/chrome browser and highly performant.</li>
<li>keyboard friendly with vim-style keymaps and command line support in address bar.</li> <li>keyboard friendly with vim-style keymaps and command line support in address bar.</li>
<li><a href="https://uweb.surge.sh/en/redirect/index.html#" onclick="if(notRepo()){location='../redirect/index.html#';return false;}">global redirection</a> to bypass censorship.</li> <li><a href="https://uweb.surge.sh/en/redirect/index.html#" onclick="if(notRepo()){location='../redirect/index.html#';return false;}">global redirection</a> to bypass censorship.</li>
<li>user CSS/JS at will. Ex. pressing &quot;md&quot; in no-focus mode to preview markdown file.</li> <li>user CSS/JS at will. Ex. pressing <code>md</code> in no-focus mode to preview markdown file.</li>
<li>global CSS/JS for all sites at will.</li> <li>global CSS/JS for all sites at will.</li>
<li>CSS/JS for domains, similar to <a href="https://jamesfengcao.gitlab.io/uweb/en/sitejs/index.html">uweb</a>, but use sitejs/[domain].js or sitecss/[domain].css, not [domain root].js/css.</li> <li>CSS/JS for domains, similar to <a href="https://jamesfengcao.gitlab.io/uweb/en/sitejs/index.html">uweb</a>, but use sitejs/[domain].js or sitecss/[domain].css, not [domain root].js/css.</li>
<li>customizable.</li> <li>customizable.</li>
<li>dark theme support.</li>
</ul> </ul>
<p>Note: Usually electron apps are heavyweight as they use browsers for simple things. Ebrowser uses core chromium effectively and very lightweight. Recommend to install electron separately.</p> <blockquote>
<h4 id="installing-for-windows-macos-and-linux">Installing (for Windows, MacOS and Linux)</h4> <p>Note: Usually electron apps are heavyweight as they use browsers for simple things. Ebrowser uses core chromium effectively and very lightweight.</p>
<h5 id="install-with-prebuilt-binaries">Install with prebuilt binaries</h5> </blockquote>
<h2 id="installing-for-windows-macos-and-linux">Installing (for Windows, MacOS and Linux)</h2>
<h3 id="install-with-prebuilt-binaries">Install with prebuilt binaries</h3>
<p>You can find prebuilt binaries <a href="https://github.com/torappinfo/ebrowser/releases">here</a>.</p> <p>You can find prebuilt binaries <a href="https://github.com/torappinfo/ebrowser/releases">here</a>.</p>
<h5 id="install-with-nodejs">Install with nodejs</h5> <h3 id="install-ebrowser-and-electron-separatedly-recommended">Install ebrowser and electron separatedly (Recommended)</h3>
<pre><code>npm install electron <h4 id="install-ebrowser">Install ebrowser</h4>
npm install ebrowser <p>Either download (Click the green <code>Code</code> button above the file list =&gt; Select <code>Download ZIP</code>) and unzip from</p>
<pre><code>https://github.com/torappinfo/ebrowser
</code></pre> </code></pre>
<p>Run ebrowser</p> <p>OR download and unzip ebrowser package directly from any of npm mirror sites like <a href="https://npmmirror.com/package/ebrowser">npmmirror</a> or with nodejs by</p>
<pre><code>npm install ebrowser
</code></pre>
<p>OR download/<code>git clone</code> files directly from any of <a href="https://gitlab.com/jamesfengcao/uweb/-/blob/master/en/mirrors.md">mirror repositories</a> and ebrowser is under the folder <code>misc/ebrowser</code>.</p>
<h4 id="install-electron">Install electron</h4>
<p>Before you can run ebrowser, you need to install electron either with nodejs by</p>
<pre><code>npm install electron
</code></pre>
<p>OR download and unzip electron binary directly from <a href="https://github.com/electron/electron/releases">github</a> or mirrors like <a href="https://registry.npmmirror.com/binary.html?path=electron">npmmirror</a>.</p>
<h4 id="run-ebrowser">Run ebrowser</h4>
<pre><code>electron ~/node_modules/ebrowser <pre><code>electron ~/node_modules/ebrowser
</code></pre> </code></pre>
<p>Later on, you can run &quot;npm install electron&quot; to update electron/chromium or &quot;npm install ebrowser&quot; to update ebrowser independently.</p> <p>OR</p>
<h5 id="update-app-quickly-without-updating-chromium">Update app quickly without updating chromium</h5> <pre><code>electron [the-path-of-folder-with-downloaded-ebrowser-files]
<p>Pressing &quot;Alt&quot; to show the menu bar and choose &quot;Check for updates&quot; under &quot;Help&quot;. OR</p> </code></pre>
<p>Type &quot;:update&quot; in the address bar and press &quot;enter&quot; key to update.</p> <h3 id="update-app-quickly-without-updating-chromium">Update app quickly without updating chromium</h3>
<p>Mirror urls could be used like &quot;:update https://uwebzh.netlify.app/misc/ebrowser&quot;. All the mirrors listed on <a href="https://uwebzh.netlify.app/en/readme/index.html">uweb browser</a> could be used. The update url needs to be changed accordingly to be the folder &quot;misc/ebrowser&quot; under the mirror site root url.</p> <p>Pressing <code>Alt</code> to show the menu bar and choose <code>Check for updates</code> under <code>Help</code>. OR</p>
<h4 id="key-shortcuts">Key shortcuts</h4> <p>Type <code>:update</code> in the address bar and press <code>enter</code> key to update.</p>
<h2 id="key-shortcuts">Key shortcuts</h2>
<ul> <ul>
<li>Alt: show menu</li> <li>Alt: show menu</li>
<li>ALT+&lt;-: go backward</li> <li>ALT+&lt;-: go backward</li>
@ -85,23 +102,23 @@ npm install ebrowser
<li>CTRL+TAB: switch to next tab</li> <li>CTRL+TAB: switch to next tab</li>
<li>CTRL+SHIFT+TAB: switch to previous tab</li> <li>CTRL+SHIFT+TAB: switch to previous tab</li>
<li>CTRL+W: close Tab</li> <li>CTRL+W: close Tab</li>
<li>CTRL+SHIFT+R: enable global redirection (&quot;gredirect.json&quot;)</li> <li>CTRL+SHIFT+R: enable global redirection (<code>gredirect.json</code>)</li>
<li>CTRL+R: disable global redirection</li> <li>CTRL+R: disable global redirection</li>
<li>ESC: remove focus. similar to vi normal mode.</li> <li>ESC: remove focus. similar to vi normal mode.</li>
<li>F1: Help</li> <li>F1: Help</li>
<li>F5: page refresh/reload</li> <li>F5: page refresh/reload</li>
<li>F12: devtools</li> <li>F12: devtools</li>
</ul> </ul>
<h4 id="address-bar-commands">Address bar commands</h4> <h2 id="address-bar-commands">Address bar commands</h2>
<p>Like any popular browser, the very first word in address bar if defined in &quot;search.json&quot; identifies a search engine. Moreover, the address bar serves as command line interface:</p> <p>Like any popular browser, the very first word in address bar if defined in <code>search.json</code> identifies a <a href="https://jamesfengcao.gitlab.io/uweb/en/search/index.html" onclick="if(notRepo()){location='../search/index.html#';return false;}">search engine</a>. Moreover, the address bar serves as command line interface:</p>
<ul> <ul>
<li>&quot;/&quot; for find-in-page</li> <li>&quot;/&quot; for find-in-page</li>
<li>&quot;:&quot; for address bar commands <li>&quot;:&quot; for address bar commands
<ul> <ul>
<li>ac [bookmark/history path w/o ext] : load &quot;.rec&quot; file for autocomplete.</li> <li>ac [bookmark/history path w/o ext] : load <code>.rec</code> file for autocomplete.</li>
<li>b [bookmarkfilename w/o ext] : bookmark current page in file.</li> <li>b [bookmarkfilename w/o ext] : bookmark current page in file.</li>
<li>bjs : Browser-level JavaScript execution.</li> <li>bjs : Browser-level JavaScript execution.</li>
<li>bml [filename w/o extension]: load/execute the javascript file.</li> <li>bml [filename w/o extension] [arguments...]: load/execute the javascript file.</li>
<li>cert : allow invalid certificates w/o arguments, otherwise restore to default.</li> <li>cert : allow invalid certificates w/o arguments, otherwise restore to default.</li>
<li>clear : the arguments could be <li>clear : the arguments could be
<ul> <ul>
@ -111,6 +128,7 @@ npm install ebrowser
<li>{<a href="https://www.electronjs.org/docs/latest/api/session#sescleardataoptions">options</a>}</li> <li>{<a href="https://www.electronjs.org/docs/latest/api/session#sescleardataoptions">options</a>}</li>
</ul> </ul>
</li> </li>
<li>exit : exit browser</li>
<li>ext [extension path]: load unpacked Chrome extension.</li> <li>ext [extension path]: load unpacked Chrome extension.</li>
<li>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.</li> <li>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.</li>
<li>js [js code] : execute JS code at OS level. Note: &quot;javascript:...&quot; is special url and thus works in the current web page, while &quot;:js ...&quot; commands can do any OS operations.</li> <li>js [js code] : execute JS code at OS level. Note: &quot;javascript:...&quot; is special url and thus works in the current web page, while &quot;:js ...&quot; commands can do any OS operations.</li>
@ -118,20 +136,26 @@ npm install ebrowser
<li>nr/ur for No/Use &quot;redirect.json&quot; for domain redirection.</li> <li>nr/ur for No/Use &quot;redirect.json&quot; for domain redirection.</li>
<li>np : no proxy.</li> <li>np : no proxy.</li>
<li>up [proxyName] : use proxy. privous proxy or the first proxy in proxy.json w/o [proxyName]. &quot;:up&quot; command also disables global and domain redirections, which are not restored by &quot;:np&quot;.</li> <li>up [proxyName] : use proxy. privous proxy or the first proxy in proxy.json w/o [proxyName]. &quot;:up&quot; command also disables global and domain redirections, which are not restored by &quot;:np&quot;.</li>
<li>sys [command line] : execute system commands with url as one of arguments, and replace &quot;%cookie&quot; with corresponding one. Ex. &quot;curl&quot; commands for uploading.</li>
<li>ua [useragentName] : set user agent for future tabs. default user agent w/o arguments.</li> <li>ua [useragentName] : set user agent for future tabs. default user agent w/o arguments.</li>
<li>update [filename] : update the app w/o argument, otherwise retrive the [filename] from remote. The filename could be any file on <a href="https://jamesfengcao.gitlab.io/uweb/en/readme/index.html">mirror sites</a> (this repository is part of it).</li> <li>update [filename] : update the app w/o argument, otherwise retrive the [filename] from remote. The filename could be any file on <a href="https://jamesfengcao.gitlab.io/uweb/en/readme/index.html">mirror sites</a> (this repository is part of it).</li>
<li>pdf [filename w/o extension] {<a href="https://www.electronjs.org/docs/latest/api/web-contents#contentsprinttopdfoptions">options</a>} : print to PDF file. All arguments are optional; empty option &quot;{}&quot; to capture long screenshot as vector graphics.</li> <li>pdf [filename w/o extension] {<a href="https://www.electronjs.org/docs/latest/api/web-contents#contentsprinttopdfoptions">options</a>} : print to PDF file. All arguments are optional; empty option &quot;{}&quot; to capture long screenshot as vector graphics.</li>
</ul> </ul>
</li> </li>
<li>&quot;!&quot; address bar commands<br> <li>&quot;!&quot; address bar commands
&quot;!xx ...&quot; evaluates &quot;xx.js&quot; with the whole text as arguments[0].</li> <ul>
<li>&quot;!xx ...&quot; evaluates &quot;xx.js&quot; with the whole text as arguments[0] at OS level.</li>
<li>&quot;!!xx ...&quot; evaluates &quot;xx.js&quot; with the whole text as arguments[0] at browser level, which could manipulate address bar etc.</li>
</ul>
</li>
<li>i: internal urls, which will be consistent with <a href="https://jamesfengcao.gitlab.io/uweb/en/links/index.html">uweb</a>. <li>i: internal urls, which will be consistent with <a href="https://jamesfengcao.gitlab.io/uweb/en/links/index.html">uweb</a>.
<ul> <ul>
<li>&quot;i:0/js/xxx.js:[url]&quot; loads the &quot;[url]&quot; with bookmarklet &quot;js/xxx.js&quot;.</li> <li>&quot;i:0/js/xxx.js:[url]&quot; loads the &quot;[url]&quot; with bookmarklet &quot;js/xxx.js&quot;.</li>
<li>&quot;i:8d[url]&quot; fo force downloading</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<h4 id="commands-in-no-focus-mode-this-mode-is-similar-to-vi-normal-mode">Commands in no-focus mode (this mode is similar to vi Normal mode)</h4> <h2 id="commands-in-no-focus-mode-this-mode-is-similar-to-vi-normal-mode">Commands in no-focus mode (this mode is similar to vi Normal mode)</h2>
<p>Pressing &quot;ESC&quot; to enter no-focus mode if not sure.</p> <p>Pressing &quot;ESC&quot; to enter no-focus mode if not sure.</p>
<ul> <ul>
<li>&quot;:&quot; for address bar commands</li> <li>&quot;:&quot; for address bar commands</li>
@ -139,7 +163,7 @@ npm install ebrowser
<li>&quot;!&quot; for &quot;!&quot; address bar commands</li> <li>&quot;!&quot; for &quot;!&quot; address bar commands</li>
</ul> </ul>
<p>The other commands are defined in &quot;mapkeys.json&quot;, which will map keys to address bar commands.</p> <p>The other commands are defined in &quot;mapkeys.json&quot;, which will map keys to address bar commands.</p>
<h4 id="configuration-files">Configuration files</h4> <h2 id="configuration-files">Configuration files</h2>
<ul> <ul>
<li>&quot;config&quot;: lines of address bar commands.</li> <li>&quot;config&quot;: lines of address bar commands.</li>
<li>&quot;search.json&quot;: <a href="https://jamesfengcao.gitlab.io/uweb/en/search/index.html" onclick="if(notRepo()){location='../search/index.html#';return false;}">search engines</a> as shortcut-queryUrl pairs, where &quot;%s&quot; would be replaced by search query.</li> <li>&quot;search.json&quot;: <a href="https://jamesfengcao.gitlab.io/uweb/en/search/index.html" onclick="if(notRepo()){location='../search/index.html#';return false;}">search engines</a> as shortcut-queryUrl pairs, where &quot;%s&quot; would be replaced by search query.</li>
@ -157,24 +181,27 @@ npm install ebrowser
</ul> </ul>
</li> </li>
</ul> </ul>
<h4 id="javascript-at-three-levels">Javascript at three levels</h4> <h2 id="javascript-at-three-levels">Javascript at three levels</h2>
<ul> <ul>
<li>Web page: url like &quot;javascript:&quot; or bookmarklet command &quot;:bml&quot; runs in web page.</li> <li>Web page: url like &quot;javascript:&quot; or bookmarklet command &quot;:bml&quot; runs in web page.</li>
<li>Browser (or renderer process) : <li>Browser (or renderer process) :
<ul> <ul>
<li>&quot;:bjs&quot; to execute the following js code at browser level.</li> <li>&quot;:bjs&quot; to execute the following js code at browser level.</li>
<li>&quot;!xx&quot; evaluates &quot;xx.js&quot;, which could manipulate address bar etc.</li>
</ul> </ul>
</li> </li>
<li>OS level (or main process) : &quot;:js&quot; to execute the following js code with all OS APIs available.</li> <li>OS level (or main process) : &quot;:js&quot; to execute the following js code with all OS APIs available.
<ul>
<li>&quot;!xx&quot; evaluates &quot;xx.js&quot; with arguments.</li>
</ul> </ul>
<h5 id="examples-for-jsbjs-commands">examples for &quot;:js&quot;/&quot;:bjs&quot; commands</h5> </li>
</ul>
<h3 id="examples-for-jsbjs-commands">examples for &quot;:js&quot;/&quot;:bjs&quot; commands</h3>
<pre><code>:js bJS=true //allow external Javascript files for web pages <pre><code>:js bJS=true //allow external Javascript files for web pages
:js bJS=false //disallow external Javascript files for web pages :js bJS=false //disallow external Javascript files for web pages
:bjs bHistory=true //to record url history :bjs bHistory=true //to record url history
:bjs bQueryHistory=true //to record query/command history :bjs bQueryHistory=true //to record query/command history
</code></pre> </code></pre>
<h4 id="new-usages">New usages</h4> <h2 id="new-usages">New usages</h2>
<ul> <ul>
<li> <li>
<p>Vector designing with web tech to replace Adobe Illustrator/Inkscape.</p> <p>Vector designing with web tech to replace Adobe Illustrator/Inkscape.</p>
@ -196,12 +223,12 @@ npm install ebrowser
</ul> </ul>
</li> </li>
</ul> </ul>
<h4 id="license">License</h4> <h2 id="license">License</h2>
<p>You can copy or modify the code/program under the terms of the GPL3.0 or later versions.</p> <p>You can copy or modify the code/program under the terms of the GPL3.0 or later versions.</p>
</div> </div>
<p>Last Modified: 12 July 2024<br> <p>Last Modified: 22 April 2026<br>
reorg ebrowserreadme.md<br> add back gitcode<br>
<pre></pre> <pre></pre>
</p> </p>
@ -224,7 +251,7 @@ reorg ebrowserreadme.md<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/filecap/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Custom file handling</title> <title>Custom file handling</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -102,7 +103,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

90
en/filemanager/index.html Normal file
View file

@ -0,0 +1,90 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/filemanager/" />
<link rel="stylesheet" href="../style.css#" type="text/css" />
<title>File manager</title>
<script>
function findLang(){
let href = location.href;
for(let i=href.length-1;i>0;i--){
if('/'==href.charAt(i) && '/'==href.charAt(i-3))
return i;
}
return 0;
}
function nav2(page){
let i = findLang();
location.href = location.href.substring(0,i+1)+page;
}
function nav2Lang(lang){
let i = findLang();
let href = location.href;
location.href = location.href.substring(0,i-2)+lang+location.href.substring(i);
}
</script>
</head>
<body>
<header class='header'>
<a class="logo" href="javascript:void(0)" onclick="return nav2('index.html#')">Home</a> <a class="logo" href="javascript:void(0)" onclick="return nav2('tags/index.html#')">Tags</a>
<a class="logo" href="javascript:void(0)" onclick="return nav2Lang('zh')">简体中文</a>
<nav>
</nav>
</header>
<br />
<div class="container">
<h1 class="title">File manager
<br>
<span class="subtitle"></span>
</h1>
<ul class="tags">
</ul>
<p>Visiting file urls ending with &quot;/&quot; enters internal file manager.</p>
<p>When the current tab is internal file manager, visiting file url for a file shows the content of the file, long pressing button &quot;🕔&quot; -&gt; Editor loads line-based editor for the file. If the file does not exist, saving creates a new file.</p>
<p>Running any command with address bar with the format &quot;d::command line:&quot; to execute &quot;command line&quot; in the current folder of the internal file manager. Ex:<br>
&quot;d::touch a.txt:&quot; to create a new file a.txt.<br>
&quot;d::mkdir subdir:&quot; to create a new folder names &quot;subdir&quot;.<br>
&quot;d::mv old new:&quot; to rename the file &quot;old&quot; to be &quot;new&quot;.</p>
</div>
<p>Last Modified: 5 December 2025<br>
add filemanager.md<br>
<pre></pre>
</p>
<script id='jsgiscus'
src='https://giscus.app/client.js'
data-repo="torappinfo/uweb"
data-repo-id="MDEwOlJlcG9zaXRvcnkzMDIyMDU3MjE="
data-category="Announcements"
data-category-id="DIC_kwDOEgNLGc4CQjsh"
data-mapping="title"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="top"
data-theme="light"
data-lang="en"
data-loading="lazy"
crossorigin="anonymous" async>
</script>
<footer class="site-footer">
<div class="container">
&copy; 2018-2026 Richard H. Cao
</div>
</footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->
</body>
</html>

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/filenames/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Configuration folders/files</title> <title>Configuration folders/files</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -49,10 +50,11 @@
</ul> </ul>
<p>All folders end with character &quot;/&quot; and others are files. All folders/files locate in &quot;/data/data/info.torapp.uweb/files&quot;:<br> <p>All folders end with character &quot;/&quot; and others are files. All folders/files locate in &quot;/data/data/info.torapp.uweb/files&quot;:<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/css/">css/</a>&quot;: <a href="../globalcss/index.html#">global css folder</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/css/">css/</a>&quot;: <a href="../globalcss/index.html#">global css folder</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/js/">js/</a>&quot;: global script folder<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/js/">js/</a>&quot;: <a href="../rjs/index.html#">global script folder</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/sitejs/">sitejs/</a>&quot;: <a href="../sitejs/index.html#">script folder for domains</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/sitejs/">sitejs/</a>&quot;: <a href="../sitejs/index.html#">script folder for domains</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/sitecss/">sitecss/</a>&quot;:<a href="../sitejs/index.html#">CSS folder for domains</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/sitecss/">sitecss/</a>&quot;:<a href="../sitejs/index.html#">CSS folder for domains</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/bookmarklet/">bookmarklet/</a>&quot;:bookmarklets, long pressing the &quot;JS&quot; button to execute.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/siteextra/">siteextra/</a>&quot;:<a href="../sitejs/index.html#">User extra folder for domains</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/bookmarklet/">bookmarklet/</a>&quot;:<a href="../rjs/index.html#">bookmarklets</a>, long pressing the &quot;JS&quot; button to execute.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/offline/">offline/</a>&quot;: to save offline pages<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/offline/">offline/</a>&quot;: to save offline pages<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/sbookmark/">sbookmark/</a>&quot;: to save super bookmarks<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/sbookmark/">sbookmark/</a>&quot;: to save super bookmarks<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/sitecache/">sitecache/</a>&quot;:<a href="../offlinecache/index.html#">offline cache</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/sitecache/">sitecache/</a>&quot;:<a href="../offlinecache/index.html#">offline cache</a><br>
@ -60,17 +62,21 @@
&quot;<a href="file:///data/data/info.torapp.uweb/files/icon/">icon/</a>&quot;:<a href="../icons/index.html#">customized icons</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/icon/">icon/</a>&quot;:<a href="../icons/index.html#">customized icons</a><br>
&quot;app[XXX]/&quot;:<a href="../html5/index.html#">html5 applications</a><br> &quot;app[XXX]/&quot;:<a href="../html5/index.html#">html5 applications</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.longclick">default.longclick</a>&quot;: to configure menus when long-pressing hypertext.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.longclick">default.longclick</a>&quot;: to configure menus when long-pressing hypertext.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.uas">default.uas</a>&quot;:<a href="../searchurl/uas.html">user agents</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.uas">default.uas</a>&quot;:user agents<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.bml">default.bml</a>&quot;:<a href="../rjs/index.html#">bookmarklets</a>, long pressing the &quot;JS&quot; button to execute.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.urls">default.urls</a>&quot;:<a href="../urls/index.html#">service urls</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.urls">default.urls</a>&quot;:<a href="../urls/index.html#">service urls</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.acmd">default.acmd</a>&quot;:<a href="../gnuplot/index.html#">configure address bar functionalities</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.acmd">default.acmd</a>&quot;:configure address bar functionalities<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/hosts">hosts</a>&quot;: for local <a href="../adblock_domain/index.html#">domain name attributes</a>, only single space is allowed to separate ip address and domain name.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/hosts">hosts</a>&quot;: for local <a href="../adblock_domain/index.html#">domain name attributes</a>, only single space is allowed to separate ip address and domain name.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.hosts">default.hosts</a>&quot;:<a href="../adblock_hosts/index.html#">hosts not allowed to visit</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.hosts">default.hosts</a>&quot;:<a href="../adblock/index.html#">hosts not allowed to visit</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.redirect">default.redirect</a>&quot;:<a href="../redirect/index.html#">redirect websites</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.redirect">default.redirect</a>&quot;:<a href="../redirect/index.html#">redirect websites</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.cmds">default.cmds</a>&quot;:<a href="../cmds/index.html#">commands</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.cmds">default.cmds</a>&quot;:<a href="../cmds/index.html#">commands</a></p>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.link">default.link</a>&quot;:<a href="../links/index.html#">links</a><br> <p>&quot;<a href="i:5gfile:///data/data/info.torapp.uweb/files/default.link">default.link</a>:<a href="../links/index.html#">links</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.rjs">default.rjs</a>&quot;:<a href="../rjs/index.html#">Remote javascript</a><br> &quot;<a href="i:5gfile:///data/data/info.torapp.uweb/files/download.link">download.link</a>:Also <a href="../links/index.html#">links</a> file, but default to be &quot;command&quot; submenu for download options menu.<br>
&quot;<a href="i:5gfile:///data/data/info.torapp.uweb/files/image.link">image.link</a>:Also <a href="../links/index.html#">links</a> file, but default to be &quot;command&quot; submenu for images for long press links.<br>
&quot;<a href="i:5gfile:///data/data/info.torapp.uweb/files/context.link">context.link</a>:Also <a href="../links/index.html#">links</a> file, but default to be &quot;command&quot; submenu for context menu.</p>
<p>&quot;<a href="file:///data/data/info.torapp.uweb/files/default.rjs">default.rjs</a>&quot;:<a href="../rjs/index.html#">Remote javascript</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.select">default.select</a>&quot;:<a href="../textprocess/index.html#">menus for selected text</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.select">default.select</a>&quot;:<a href="../textprocess/index.html#">menus for selected text</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.input">default.input</a>&quot;: common phrases for user inputs<br> &quot;<a href="i:5gfile:///data/data/info.torapp.uweb/files/default.input">default.input</a>: <a href="../input/index.html#">common phrases for user inputs</a>. If the phrase begins with &quot;@xxxx@&quot;, then &quot;xxxx&quot; part is the alias for the rest part of the string. Alias could be used for non-printable phrase.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.gesture">default.gesture</a>&quot;: to define <a href="../gesture/index.html#">gestures on the top part of the content window</a>. The file format is same as <a href="../links/index.html">default.link</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.gesture">default.gesture</a>&quot;: to define <a href="../gesture/index.html#">gestures on the top part of the content window</a>. The file format is same as <a href="../links/index.html">default.link</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.gesture2">default.gesture2</a>&quot;: gestures on the right side similar to default.gesture.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.gesture2">default.gesture2</a>&quot;: gestures on the right side similar to default.gesture.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.button">default.button</a>&quot;: to re-define button pressing functionalities. The file format is same as <a href="../links/index.html#">default.link</a>, each line represents action from the last button to the first.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.button">default.button</a>&quot;: to re-define button pressing functionalities. The file format is same as <a href="../links/index.html#">default.link</a>, each line represents action from the last button to the first.<br>
@ -88,11 +94,13 @@
&quot;<a href="file:///data/data/info.torapp.uweb/files/home5.search">home5.search</a>&quot;:<a href="../search/index.html#">search engines</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/home5.search">home5.search</a>&quot;:<a href="../search/index.html#">search engines</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/home.css">home.css</a>&quot;: <span style="color:red">html</span> file for <a href="../bookmark/index.html#">folder/home screen/bookmark styling</a>, so the css code needs to be inside &quot;&lt;style&gt;&quot; elements. Each &quot;home.css&quot; file is responsible for the current folder and its subfolders.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/home.css">home.css</a>&quot;: <span style="color:red">html</span> file for <a href="../bookmark/index.html#">folder/home screen/bookmark styling</a>, so the css code needs to be inside &quot;&lt;style&gt;&quot; elements. Each &quot;home.css&quot; file is responsible for the current folder and its subfolders.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/bookmark.html">bookmark.html</a>&quot;: bookmarks<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/bookmark.html">bookmark.html</a>&quot;: bookmarks<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/quickstart.html">quickstart.html</a>&quot;: <a href="../searchurl/quickstart.html">quick start</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/quickstart.html">quickstart.html</a>&quot;: quick start icons on the home screen.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/colors.txt">colors.txt</a>&quot;: background colors<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/colors.txt">colors.txt</a>&quot;: background colors<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/default.css">default.css</a>&quot;: <a href="../sitejs/index.html#">default CSS style for domains not defined in sitejs folder</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/default.css">default.css</a>&quot;: <a href="../sitejs/index.html#">default CSS style for domains not defined in sitejs folder</a><br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/night.css">night.css</a>&quot;: <a href="../globalcss/index.html#">Night mode</a><br> &quot;<a href="file:///data/data/info.torapp.uweb/files/night.css">night.css</a>&quot;: <a href="../globalcss/index.html#">Night mode</a><br>
&quot;bookmarklet/videoplayer.js&quot;: <a href="../video/index.html#">fullscreen video player</a><br> &quot;bookmarklet/videoplayer.js&quot;: fullscreen video player<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/help_en.html">help_en.html</a>&quot;: It is shown before the English manual when pressing the setting button.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/help_zh.html">help_zh.html</a>&quot;: It is shown before the Chinese manual when pressing the setting button.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/types.sniff">types.sniff</a>&quot;: file types for resource sniffer<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/types.sniff">types.sniff</a>&quot;: file types for resource sniffer<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/js.allow">js.allow</a>&quot;: 3rd-party resource white list. One domain per line.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/js.allow">js.allow</a>&quot;: 3rd-party resource white list. One domain per line.<br>
&quot;<a href="file:///data/data/info.torapp.uweb/files/url.deny">url.deny</a>&quot;: one giant regular expression for blocked urls (java grammar). &quot;#&quot; to comment and carriage return (CR or new line) is ignored.<br> &quot;<a href="file:///data/data/info.torapp.uweb/files/url.deny">url.deny</a>&quot;: one giant regular expression for blocked urls (java grammar). &quot;#&quot; to comment and carriage return (CR or new line) is ignored.<br>
@ -102,8 +110,8 @@
<p>&quot;<a href="file:///data/data/info.torapp.uweb/files/shortcut/">shortcut/</a>&quot;: dynamical shortcut, if not exist, then default to &quot;bookmark&quot;.</p> <p>&quot;<a href="file:///data/data/info.torapp.uweb/files/shortcut/">shortcut/</a>&quot;: dynamical shortcut, if not exist, then default to &quot;bookmark&quot;.</p>
</div> </div>
<p>Last Modified: 30 April 2024<br> <p>Last Modified: 21 March 2026<br>
urlInc() prefers .search to .html<br> uweb1148: siteextra/[domain.sanitizer] support<br>
<pre></pre> <pre></pre>
</p> </p>
@ -126,7 +134,7 @@ urlInc() prefers .search to .html<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/gesture/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Gestures</title> <title>Gestures</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -89,7 +90,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/globalcss/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>CSS styles</title> <title>CSS styles</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -54,10 +55,12 @@
<a href="i:0hnight.css:../../zh/searchurl/txt/night_old.css">webview 80- night mode</a></p> <a href="i:0hnight.css:../../zh/searchurl/txt/night_old.css">webview 80- night mode</a></p>
<h4 id="earliest-loaded-global-js">Earliest loaded global js</h4> <h4 id="earliest-loaded-global-js">Earliest loaded global js</h4>
<p>The &quot;.js&quot; files under the folder &quot;css&quot; are loaded as earlier as possible on the page.</p> <p>The &quot;.js&quot; files under the folder &quot;css&quot; are loaded as earlier as possible on the page.</p>
<p>Click the following links to install early loaded global js:<br>
<a href="i:0hcss/nojscopy.js::document.addEventListener(%22copy%22,(e)=>{e.preventDefault()})">No webpage clipboard copy</a></p>
</div> </div>
<p>Last Modified: 2 April 2024<br> <p>Last Modified: 13 October 2024<br>
add js function in README<br> add css/nojscopy.js to disable webpage clipboard copy<br>
<pre></pre> <pre></pre>
</p> </p>
@ -80,7 +83,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/html5/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Html5 applications</title> <title>Html5 applications</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -47,7 +48,22 @@
<ul class="tags"> <ul class="tags">
</ul> </ul>
<p>This page is for <a href="../index.html#">uweb browser</a>.<br> <h3 id="remotelocal-big-txthtmlmd-files-zstgzbr-compressed-optionally-as-search-engines-or-paged-reader">remote/local big txt/html/md files (.zst,.gz,.br compressed optionally) as search engines or paged reader</h3>
<p><code>i:0/js/reader.html:[remote url]#s=%s</code><br>
is the search engine url for remote/local file.</p>
<p><code>i:0/js/reader.html:[remote url]</code><br>
is the paged reader for big txt/html files.</p>
<p>Users can add a menu item by visiting <a href="../urls/index.html#">url services</a> and clicking the <code>Reader</code> link. After the menu item is installed and uweb restarts, long pressing any big txt/html/md link --&gt; command --&gt; Reader would load the big file in paged reader, long pressing button &quot;-&gt;&quot; on bottom toolbar --&gt; add as search engine --&gt; change the last part of url from &quot;#p=1&quot; to &quot;#s=%s&quot; and save the engine.</p>
<h3 id="html-as-data-cruncher-and-presenter-using-remote-url-as-data-with-i0-links">Html as data cruncher and presenter using remote url as data with <a href="../links/index.html#">i:0/ links</a></h3>
<p>The following link can be used to read [remote url] as huge text file, it shows only the first page. Pressing &quot;-&gt;&quot; on the bottom tool bar for next page:<br>
i:0/js/view.html:[remote url]#p=1</p>
<p>Multiple conversions could be appended to the html file. Ex:<br>
i:0m/js/view.html#/js/2lnk.js:[remote url]#p=1<br>
where &quot;/js/2lnk.js&quot; converts urls in the remote text file to clickable links.</p>
<p>Any html/js file could be referred with its full path, such as &quot;/sdcard/.../xx.js&quot; as long as uweb has read permission.</p>
<p>&quot;%1%&quot;, &quot;%2%&quot;, ... in the above html file will be replaced by the function body of the first, second, ... js file respectively. The js files themselves are regular js code ends with &quot;()&quot;, no end of line (\n) appended. A sample js file looks like &quot;((...args)=&gt;{})()&quot;, so the code itself can also be run independently as bookmarklet either without or <a href="../rjs/index.html#">with extra argument</a>.</p>
<h3 id="traditional-html5-apps">Traditional html5 apps</h3>
<p>This page is for <a href="../index.html#">uweb browser</a>.<br>
Click to install the following html5 apps:<br> Click to install the following html5 apps:<br>
<a target="_self" href="i:0happ/txtview.html:../../zh/searchurl/txt/txtview.html">Huge markdown file viewer</a><br> <a target="_self" href="i:0happ/txtview.html:../../zh/searchurl/txt/txtview.html">Huge markdown file viewer</a><br>
<a target="_self" href="i:0happ/mdkatex.html:../../zh/searchurl/txt/mdkatex.html">Huge markdown+katex file viewer (Tex formulas)</a><br> <a target="_self" href="i:0happ/mdkatex.html:../../zh/searchurl/txt/mdkatex.html">Huge markdown+katex file viewer (Tex formulas)</a><br>
@ -62,10 +78,10 @@ Click to install the following html5 apps:<br>
<p>The following mentioned subfolders locate in the configuration folder.</p> <p>The following mentioned subfolders locate in the configuration folder.</p>
<ul> <ul>
<li> <li>
<p>The following html5 applications are allowed to read local files referred by &quot;https://local/sdcard/...&quot; where the &quot;/sdcard/..&quot; part is the full path of the file. The below applications <span style="color:red">can auto choose any files as file objects</span>.</p> <p>The following html5 applications are allowed to read local files referred by &quot;https://l/appXXX/...&quot; where the &quot;/appXXX/&quot; part is the subfolder name that must begins with &quot;app&quot;. The below applications <span style="color:red">can auto choose any files as file objects</span>.</p>
<ul> <ul>
<li>Locating in a subfolder whose name begins with &quot;app&quot; (such as &quot;appPDF&quot;)</li> <li>Locating in a subfolder whose name begins with &quot;app&quot; (such as &quot;appPDF&quot;)</li>
<li>&quot;https://local/...&quot; applications (only possible with the option &quot;<a href="../offlinecache/index.html#">use offline resources</a>&quot; and installed under the folder &quot;sitecache/local/&quot;)</li> <li>&quot;https://l/...&quot; applications.</li>
</ul> </ul>
</li> </li>
<li> <li>
@ -109,8 +125,8 @@ i:5ifile:///....../xxx.mdx,xxx.mdd?app=https://cdn.jsdelivr.net/gh/torappinfo/uw
<p>Use the mdx scanning <a href="../bookmark/index.html#">bookmark</a> to add mdict engines automatically, then cold start uweb browser to take effect.</p> <p>Use the mdx scanning <a href="../bookmark/index.html#">bookmark</a> to add mdict engines automatically, then cold start uweb browser to take effect.</p>
</div> </div>
<p>Last Modified: 2 April 2024<br> <p>Last Modified: 18 January 2026<br>
add js function in README<br> html5: paged reader/engine support<br>
<pre></pre> <pre></pre>
</p> </p>
@ -133,7 +149,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/icons/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Toolbar customization</title> <title>Toolbar customization</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -77,7 +78,7 @@ add flg for not following sys night mode<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -1,14 +1,15 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<meta name="generator" content="Hugo 0.131.0"> <meta name="generator" content="Hugo 0.160.1">
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../en/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>uweb browser: unlimited power</title> <title>uweb browser: unlimited power</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -52,9 +53,15 @@
<li class="post">
<a href="urls/index.html#">
<span>Url services</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="search/index.html#"> <a href="search/index.html#">
<span>Search engines</span> <span>Search engine query URLs</span>
</a> </a>
</li> </li>
@ -70,12 +77,6 @@
</a> </a>
</li> </li>
<li class="post">
<a href="urls/index.html#">
<span>Url services</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="cmds/index.html#"> <a href="cmds/index.html#">
<span>Commands</span> <span>Commands</span>
@ -96,6 +97,42 @@
</li> </li>
<li class="post">
<a href="html5/index.html#">
<span>Html5 applications</span>
</a>
</li>
<li class="post">
<a href="filemanager/index.html#">
<span>File manager</span>
</a>
</li>
<li class="post">
<a href="tips/index.html#">
<span>Tips</span>
</a>
</li>
<li class="post">
<a href="input/index.html#">
<span>Phrases and input method</span>
</a>
</li>
<li class="post">
<a href="longclick/index.html#">
<span>Context menu</span>
</a>
</li>
<li class="post">
<a href="globalcss/index.html#">
<span>CSS styles</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="textprocess/index.html#"> <a href="textprocess/index.html#">
<span>Text selection/processing</span> <span>Text selection/processing</span>
@ -110,7 +147,7 @@
<li class="post"> <li class="post">
<a href="tcron/index.html#"> <a href="tcron/index.html#">
<span>cron</span> <span>Cron</span>
</a> </a>
</li> </li>
@ -144,12 +181,6 @@
</a> </a>
</li> </li>
<li class="post">
<a href="tips/index.html#">
<span>Tips</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="acmd/index.html#"> <a href="acmd/index.html#">
<span>Address bar command line</span> <span>Address bar command line</span>
@ -162,12 +193,6 @@
</a> </a>
</li> </li>
<li class="post">
<a href="html5/index.html#">
<span>Html5 applications</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="filenames/index.html#"> <a href="filenames/index.html#">
<span>Configuration folders/files</span> <span>Configuration folders/files</span>
@ -186,12 +211,6 @@
</a> </a>
</li> </li>
<li class="post">
<a href="globalcss/index.html#">
<span>CSS styles</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="icons/index.html#"> <a href="icons/index.html#">
<span>Toolbar customization</span> <span>Toolbar customization</span>
@ -216,12 +235,6 @@
</a> </a>
</li> </li>
<li class="post">
<a href="longclick/index.html#">
<span>Long pressed link menu</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="tools/index.html#"> <a href="tools/index.html#">
<span>Tools</span> <span>Tools</span>
@ -244,7 +257,7 @@
<li class="post"> <li class="post">
<a href="searchurl/webdav.html#"> <a href="searchurl/webdav.html#">
<span>webdav storage menu generator</span> <span>Webdav storage menu generator</span>
</a> </a>
</li> </li>
@ -252,7 +265,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

File diff suppressed because one or more lines are too long

108
en/input/index.html Normal file
View file

@ -0,0 +1,108 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/input/" />
<link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Phrases and input method</title>
<script>
function findLang(){
let href = location.href;
for(let i=href.length-1;i>0;i--){
if('/'==href.charAt(i) && '/'==href.charAt(i-3))
return i;
}
return 0;
}
function nav2(page){
let i = findLang();
location.href = location.href.substring(0,i+1)+page;
}
function nav2Lang(lang){
let i = findLang();
let href = location.href;
location.href = location.href.substring(0,i-2)+lang+location.href.substring(i);
}
</script>
</head>
<body>
<header class='header'>
<a class="logo" href="javascript:void(0)" onclick="return nav2('index.html#')">Home</a> <a class="logo" href="javascript:void(0)" onclick="return nav2('tags/index.html#')">Tags</a>
<a class="logo" href="javascript:void(0)" onclick="return nav2Lang('zh')">简体中文</a>
<nav>
</nav>
</header>
<br />
<div class="container">
<h1 class="title">Phrases and input method
<br>
<span class="subtitle"></span>
</h1>
<ul class="tags">
</ul>
<h4 id="defaultinput">&quot;default.input&quot;</h4>
<p>Click the following links to install menus popped by long pressing the share button (with arrow-out-of-square as icon) on the bottom toolbar:<br>
<a href="i:0gdefault.input::@AddrBar%0A">Address Bar</a><br>
<a href="i:0gdefault.input::%20\n%0A">New line</a><br>
<a href="i:0gdefault.input::@^Z@%1A%0A">CTRL-Z: undo</a><br>
<a href="i:0gdefault.input::@^Y@%19%0A">CTRL-Y: redo</a></p>
<p>Long pressing the share button in <a href="../index.html#">uweb browser</a> will popup menus defined in file &quot;default.input&quot;, each line of which defines common phrase for user inputs. If the phrase begins with &quot;@xxxx@&quot;, then &quot;xxxx&quot; part is the alias for the rest part of the string. Alias could be used for non-printable phrases.</p>
<h4 id="long-text-can-be-kept-as-txt-file">Long text can be kept as txt file</h4>
<p>Click the following links to install menus displayed by long pressing the <a href="../links/index.html#">bookmark button</a> (with star as icon):<br>
<a href="i:0gdefault.link::Input::cinput%0A">Select utf8 text file as keyboard input</a></p>
<h4 id="address-bar">Address bar</h4>
<h5 id="address-bar-autocompletion-as-input-method-when-starting-with-space">Address bar autocompletion as input method when starting with space</h5>
<p>&quot;default.autoc&quot; or other .autoc files when <a href="../tips/index.html#">choosen</a> are loaded for address bar autocompletion. If the address bar text starts with space, the selected text is treated as user input for focused element in the visible tab.</p>
<p>Click the following links to append AI prompts:<br>
<a href="i:0gdefault.autoc:: \nFetch the data from all above URLs, %0A">Fetch the data from above URLs<a></p>
<p>More AI prompts, you could put them in the file &quot;default.autoc&quot; or other .autoc files:</p>
<ul>
<li><a href="https://word.studio/prompts/">word.studio</a></li>
</ul>
<h5 id="address-bar-as-part-of-query">Address bar as part of query</h5>
<p>When the input in main home screen starts with &quot;space+newline&quot;, the effective query is addressbar+input.</p>
<h5 id="address-bar-as-ime">Address bar as IME</h5>
<p>Action mode menu item &quot;⌨️&quot; for address bar selection makes the text user input for focused element in the visible tab.</p>
<p>Text processing commands or links can be installed as menus to process address bar text, thus makes address bar powerful IME.</p>
</div>
<p>Last Modified: 13 November 2025<br>
update search engines<br>
<pre></pre>
</p>
<script id='jsgiscus'
src='https://giscus.app/client.js'
data-repo="torappinfo/uweb"
data-repo-id="MDEwOlJlcG9zaXRvcnkzMDIyMDU3MjE="
data-category="Announcements"
data-category-id="DIC_kwDOEgNLGc4CQjsh"
data-mapping="title"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="top"
data-theme="light"
data-lang="en"
data-loading="lazy"
crossorigin="anonymous" async>
</script>
<footer class="site-footer">
<div class="container">
&copy; 2018-2026 Richard H. Cao
</div>
</footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->
</body>
</html>

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/links/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Links</title> <title>Links</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -47,11 +48,27 @@
<ul class="tags"> <ul class="tags">
</ul> </ul>
<p>Click the following links to install menus popped by long pressing the bookmark button (with star as icon):<br> <h4 id="context-menu">Context menu</h4>
<a href="i:0gdefault.link::Capture::ccapture%0A">Capture long screenshot</a> (need <a href="i:61:../searchurl/func.html">long screenshot mode</a>)</p> <p>The configuration file <code>image.link</code>, <code>download.link</code> and <code>context.link</code> define the default <code>command</code> submenu of the context menus when a url link is long pressed.</p>
<p><a href="i:0gdefault.link:../searchurl/txt/link.cfg">Select All:CTRL-A/undo:CTRL-Z/Redo:CTRL-Y</a><br> <h5 id="context-menu-for-images">Context menu for images</h5>
<a href="i:0gdefault.link::Extend cookies::0cc;Max-Age=315360000%0A">Extend site cookies to 10 years</a><br> <p>Click the following links to install <code>command</code> submenu for image's context menu:<br>
<a href="i:0gdefault.link::Clear cookies::0cc;Max-Age=0%0A">Clear site cookies</a></p> <a href="i:0gimage.link::google:https://www.google.com/searchbyimage?image_url=%25u0A">google image</a></p>
<p><a href="i:0gimage.link::tineye:https://tineye.com/search?url=%25u0A">tineye</a></p>
<p><a href="i:0gimage.link::yandex:https://yandex.com/images/search?family=yes&rpt=imageview&url=%25u0A">yandex image</a></p>
<h5 id="download-options-menu---command">Download options menu -&gt; <code>command</code></h5>
<p>Click the following links to install <code>command</code> submenu for <b>download options menu</b>:<br>
<a href="i:0gdownload.link::pager:i:0m/js/view.html:%25u#p=1%0A">huge txt pager</a></p>
<p><a href="i:0gdownload.link::pager_2lnk:i:0m/js/view.html#/js/2lnk.js:%25u#p=1%0A">pager with urls converted to links</a></p>
<p><a href="i:0gdownload.link::mdPager:i:0m/js/viewmd.html:%25u#p=1%0A">markdown pager</a></p>
<h4 id="link-menus-long-pressing-the-bookmark-button">Link menus (long pressing the bookmark button)</h4>
<p>Click the following links to install menus displayed by long pressing the bookmark button (with star as icon):<br>
<a href="i:0gdefault.link::ClearWeb::cclear%0A">Clear Web Storage, keeping cookies and cache</a></p>
<p><a href="i:0gdefault.link::Input::cinput%0A">Select utf8 text file as keyboard input</a></p>
<p><a href="i:0gdefault.link::wol::cwol %0A">Wake-on-LANneed to insert your network MAC address before &quot;%0A&quot;</a></p>
<p><a href="i:0gdefault.link::Capture::ccapture%0A">Capture long screenshot</a> (need <a href="i:61:../searchurl/func.html">long screenshot mode</a>)</p>
<p><a href="i:0gdefault.link:../searchurl/txt/link.cfg">Select All:CTRL-A/undo:CTRL-Z/Redo:CTRL-Y</a></p>
<p><a href="i:0gdefault.link::Extend cookies::0cc;Max-Age=315360000%0A">Extend site cookies to 10 years</a></p>
<p><a href="i:0gdefault.link::Clear cookies::0cc;Max-Age=0%0A">Clear site cookies</a></p>
<p><a href="i:0gdefault.link::vpn:i:1dandroid.net.vpn.SETTINGS:::%0A">VPN</a></p> <p><a href="i:0gdefault.link::vpn:i:1dandroid.net.vpn.SETTINGS:::%0A">VPN</a></p>
<p><a href="i:0gdefault.link::profile_config::cprofile . files .conf%0A">Switch configuration</a></p> <p><a href="i:0gdefault.link::profile_config::cprofile . files .conf%0A">Switch configuration</a></p>
<p><a href="i:0gdefault.link::Wait msg:i:1w%0A">Wait for network msg</a></p> <p><a href="i:0gdefault.link::Wait msg:i:1w%0A">Wait for network msg</a></p>
@ -61,11 +78,12 @@
<p><a href="i:0gdefault.link::up2Box: {let path=`%f`;let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1)+'.tgz';location.href='i:0u'+path+':https://dav.box.com/dav/'+f;}%0A">upload to box.com</a></p> <p><a href="i:0gdefault.link::up2Box: {let path=`%f`;let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1)+'.tgz';location.href='i:0u'+path+':https://dav.box.com/dav/'+f;}%0A">upload to box.com</a></p>
<p><a href="../searchurl/webdav.html">More webdav link menu items</a></p> <p><a href="../searchurl/webdav.html">More webdav link menu items</a></p>
<p><a href="i:0gdefault.link::web fullscreen: location.href='i:5fsetTimeout(()=>document.documentElement.requestFullscreen(),50);';%0A">Web fullscreen</a></p> <p><a href="i:0gdefault.link::web fullscreen: location.href='i:5fsetTimeout(()=>document.documentElement.requestFullscreen(),50);';%0A">Web fullscreen</a></p>
<p>Long pressing the bookmark button in <a href="../index.html#">uweb browser</a> will popup menus defined in file &quot;default.link&quot;. The file format is as follows:<br> <h4 id="links">Links</h4>
<p>Long pressing the bookmark button in <a href="../index.html#">uweb browser</a> will popup menus defined in file <code>default.link</code>. The file format is as follows:<br>
[Menu name]:[one or more links delimited by &quot; \n &quot;]</p> [Menu name]:[one or more links delimited by &quot; \n &quot;]</p>
<p>and each link has the following format:<br> <p>and each link has the following format:<br>
[url][space][javascript code]</p> [url][space][javascript code]</p>
<p>in which space and later parts are optional. url and later parts support <a href="../cmd/index.html#">&quot;%u&quot;,&quot;%s&quot; etc.</a>. The javascript code will be executed after url is fully loaded.</p> <p>in which space and later parts are optional. url and later parts support <a href="../cmds/index.html#">&quot;%u&quot;,&quot;%s&quot; etc.</a>. The javascript code will be executed after url is fully loaded.</p>
<p>url supports all standard scheme (http(s):,javascript: etc.) and uweb internal schemes ( ':' as second character in the url ) and special links that begins with ':'.</p> <p>url supports all standard scheme (http(s):,javascript: etc.) and uweb internal schemes ( ':' as second character in the url ) and special links that begins with ':'.</p>
<p>uweb browser will handle local file urls (file:///) specially for some file types</p> <p>uweb browser will handle local file urls (file:///) specially for some file types</p>
<ul> <ul>
@ -74,8 +92,8 @@
<p>If the above mentioned [links] part is malformated, then it is auto detected as html or text.</p> <p>If the above mentioned [links] part is malformated, then it is auto detected as html or text.</p>
<p><a href="../gesture/index.html#">default.gesture</a> and default.button have the exactly same file format. &quot;.gesture&quot; files define gestures while &quot;.button&quot; define bottom toolbar button pressing actions from the last button to the first.</p> <p><a href="../gesture/index.html#">default.gesture</a> and default.button have the exactly same file format. &quot;.gesture&quot; files define gestures while &quot;.button&quot; define bottom toolbar button pressing actions from the last button to the first.</p>
<p>proxy config:<br> <p>proxy config:<br>
httpproxy::010[proxy host]:[port]<br> httpproxy::010[proxy host]:[port]:[username]:[password]<br>
socks5::011[socks host]:[port]<br> socks5::011[socks host]:[port]:[username]:[password]<br>
noproxy::010:</p> noproxy::010:</p>
<h3 id="special-links-beginning-with-">special links beginning with ':'</h3> <h3 id="special-links-beginning-with-">special links beginning with ':'</h3>
<ul> <ul>
@ -92,12 +110,13 @@ Rotate the screen</p>
Scan the fileurl and add it to media storage</p> Scan the fileurl and add it to media storage</p>
</li> </li>
<li> <li>
<p>:010[proxy host]:[port]<br> <p>:010[proxy host]:[port]:[username]:[password]<br>
Config http proxy, &quot;:010:&quot; to disable any proxy.</p> Config http proxy, &quot;:010:&quot; to disable any proxy.<br>
&quot;:[username]:[password]&quot; is optional.</p>
</li> </li>
<li> <li>
<p>:011[socks host]:[port]<br> <p>:011[socks host]:[port]:[username]:[password]<br>
Socks proxy</p> Socks proxy, &quot;:[username]:[password]&quot; is optional.</p>
</li> </li>
<li> <li>
<p>:0cc[url1]:[url2][:;[cookie attributes]]<br> <p>:0cc[url1]:[url2][:;[cookie attributes]]<br>
@ -118,8 +137,18 @@ The command line could be a &quot;.js&quot;, &quot;.sh&quot; or other executable
<ul> <ul>
<li>close<br> <li>close<br>
&quot;:cclose&quot; to close the current window/tab.</li> &quot;:cclose&quot; to close the current window/tab.</li>
<li>input [path]<br>
&quot;:cinput&quot; to select utf8 file as keyboard input</li>
<li>profile [parent folder] [file/folder] [optional ID]<br> <li>profile [parent folder] [file/folder] [optional ID]<br>
Ex. &quot;:cprofile . files&quot; to switch configurations</li> Ex. &quot;:cprofile . files&quot; to switch configurations</li>
<li>set [key] [value]<br>
[key] could be one of the followings:
<ul>
<li>redirecturl</li>
</ul>
</li>
<li>wol [machine address]<br>
&quot;:cwol&quot; for wake-on-LAN.</li>
</ul> </ul>
</li> </li>
<li> <li>
@ -132,6 +161,10 @@ Ex. &quot;:p x&quot; or &quot;:px&quot; for screen width and infinite height (as
<h3 id="i-internal-links">&quot;i:&quot; internal links:</h3> <h3 id="i-internal-links">&quot;i:&quot; internal links:</h3>
<ul> <ul>
<li> <li>
<p>i:0UA[d][ExtraUseragent]:[url]<br>
Open [url] with specified useragent appended by [ExtraUseragent]. &quot;[d]&quot; is optional single digit.</p>
</li>
<li>
<p>i:0b[path]:[url]<br> <p>i:0b[path]:[url]<br>
Extract remote content (tar/tgz/zip) under the folder [path]. If [path] ends with &quot;/&quot;, then put unzipped file under the folder &quot;[path]/[file name stem]&quot; (for zipped files only, not for tar/tgz).</p> Extract remote content (tar/tgz/zip) under the folder [path]. If [path] ends with &quot;/&quot;, then put unzipped file under the folder &quot;[path]/[file name stem]&quot; (for zipped files only, not for tar/tgz).</p>
</li> </li>
@ -140,11 +173,11 @@ Extract remote content (tar/tgz/zip) under the folder [path]. If [path] ends wit
Visiting url and execute the uweb browser internal bookmarklet that keeps valid for all urls under the parent path of [url].</p> Visiting url and execute the uweb browser internal bookmarklet that keeps valid for all urls under the parent path of [url].</p>
<ul> <ul>
<li>[-|1-9] is optional single character. '-' to limit bookmarklet work only for urls with same path (could be different query strings). The digit is uplevel, 1 to make bookmarklet valid for parent path of [url].</li> <li>[-|1-9] is optional single character. '-' to limit bookmarklet work only for urls with same path (could be different query strings). The digit is uplevel, 1 to make bookmarklet valid for parent path of [url].</li>
<li>[bookmarklet index] must have two digits. They are used as index of bootmarklet. For example, &quot;00&quot; as the first local bookmarklet; &quot;01&quot; as the first remote script; then &quot;02&quot; as the second local bookmarklet, ...</li> <li>[bookmarklet index] must start with two digits optionally followed by bookmarklet function argument. They are used as index of bootmarklet. For example, &quot;00&quot; as the first local bookmarklet; &quot;01&quot; as the first remote script; then &quot;02&quot; as the second local bookmarklet, ...</li>
<li>c[cssFlag]: For example, &quot;c12&quot; will apply the third and fourth global CSS (12=2^2+2^3).</li> <li>c[cssFlag]: For example, &quot;c12&quot; will apply the third and fourth global CSS (12=2^2+2^3).</li>
<li>H[headers]: Ex. &quot;HX-Forwarded-For;8.8.8.8&quot; adds extra http request header &quot;X-Forwarded-For:8.8.8.8&quot;.</li> <li>H[headers]: Ex. &quot;HX-Forwarded-For;8.8.8.8&quot; adds extra http request header &quot;X-Forwarded-For:8.8.8.8&quot;.</li>
<li>[?postfix]: the real visited url is &quot;[url]+[?postfix]&quot;.</li> <li>[?postfix]: the real visited url is &quot;[url]+[?postfix]&quot;.</li>
<li>[/.../localfile]: load the local html/js file that processes [url]. The first character of the local html file must be &quot;&lt;&quot;.</li> <li>[/.../localfile]: load the local html/js file that processes [url]. The first character of the local html file must be &quot;&lt;&quot;. The [localfile] could be optionally ended with url hash part as js function argument.</li>
<li>All other cases will be treated as [prefix], the real visited url is &quot;[prefix]+[url]&quot;.</li> <li>All other cases will be treated as [prefix], the real visited url is &quot;[prefix]+[url]&quot;.</li>
<li>Since <a href="../rjs/index.html#">activated scripts</a> use internal mechanism of &quot;i:0m&quot; urls, the script itself cannot have 'H', '?' as its very first character.</li> <li>Since <a href="../rjs/index.html#">activated scripts</a> use internal mechanism of &quot;i:0m&quot; urls, the script itself cannot have 'H', '?' as its very first character.</li>
</ul> </ul>
@ -233,10 +266,6 @@ Receive content from network to the file.</p>
Copy [string] to the clipboard.</p> Copy [string] to the clipboard.</p>
</li> </li>
<li> <li>
<p>i:5c[url]<br>
Change auto page turning internal url to be [url].</p>
</li>
<li>
<p>i:5d[file url]<br> <p>i:5d[file url]<br>
Open the file url compatible to other browsers.</p> Open the file url compatible to other browsers.</p>
</li> </li>
@ -311,8 +340,8 @@ Bundle of internal urls, if it is an &quot;i:0&quot; url, then it should have th
</ul> </ul>
</div> </div>
<p>Last Modified: 29 April 2024<br> <p>Last Modified: 8 December 2025<br>
update i:0m syntax<br> use ` for terms<br>
<pre>i:56 urls support CTRL_A to CTRL-Z <pre>i:56 urls support CTRL_A to CTRL-Z
</pre> </pre>
</p> </p>
@ -336,7 +365,7 @@ update i:0m syntax<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/longclick/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Long pressed link menu</title> <title>Context menu</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -40,7 +41,7 @@
<br /> <br />
<div class="container"> <div class="container">
<h1 class="title">Long pressed link menu <h1 class="title">Context menu
<br> <br>
<span class="subtitle"></span> <span class="subtitle"></span>
</h1> </h1>
@ -49,7 +50,14 @@
<li><a href="../tags/javascript/index.html#">javascript</a> </li> <li><a href="../tags/javascript/index.html#">javascript</a> </li>
</ul> </ul>
<h4 id="to-run-commands">To run commands</h4> <h4 id="the-command-submenus">The &quot;command&quot; submenus</h4>
<ul>
<li>File &quot;<a href="../links/index.html#">image.link</a>&quot;: defines &quot;command&quot; submenus of the context menu for images.</li>
<li>File &quot;<a href="../links/index.html#">download.link</a>&quot;: &quot;command&quot; submenus for download options menu.</li>
<li>File &quot;context.link&quot;: &quot;command&quot; submenus in all other cases.</li>
</ul>
<p>The &quot;command&quot; submenus can be toggled with <a href="i:61:../searchurl/func.html">UI options</a>. The &quot;command&quot; submenus are default ( service urls or image.link or download.link), links, commands or service urls (default.urls when both link and command options are ticked).</p>
<h4 id="to-run-commands">To run commands</h4>
<p>Each line of file &quot;<a href="file:///data/data/info.torapp.uweb/files/default.longclick">default.longclick</a>&quot; has the following format: (same as <a href="../cmds/index.html#">default.cmds</a>)<br> <p>Each line of file &quot;<a href="file:///data/data/info.torapp.uweb/files/default.longclick">default.longclick</a>&quot; has the following format: (same as <a href="../cmds/index.html#">default.cmds</a>)<br>
[Name]:[mimetype]:[command line]<br> [Name]:[mimetype]:[command line]<br>
in which [command line] can have <a href="../cmds/index.html#">&quot;%c&quot; (cookie), &quot;%u&quot; (current url), &quot;%t&quot; (title)</a> etc.</p> in which [command line] can have <a href="../cmds/index.html#">&quot;%c&quot; (cookie), &quot;%u&quot; (current url), &quot;%t&quot; (title)</a> etc.</p>
@ -62,8 +70,8 @@ These javascript files are in the following format:</p>
</ul> </ul>
</div> </div>
<p>Last Modified: 2 April 2024<br> <p>Last Modified: 13 October 2025<br>
add js function in README<br> enable address bar as IME<br>
<pre></pre> <pre></pre>
</p> </p>
@ -86,7 +94,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -1,90 +1,81 @@
<style>a+br{display:none;}</style> <style>a+br{display:none;}</style>
#### Mirrors (for version 1040+) #### Mirrors (for version 1040+)
[gitee](https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html#) [gitee](https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html#)
[gitcode](https://gitcode.net/uweb/uweb/-/raw/master/redirect.html#)
[gitcode](https://raw.gitcode.com/uweb/uweb/raw/master/redirect.html#)
[gitea](https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html#) [gitea](https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html#)
[notabug](https://notabug.org/torappinfo/uweb/raw/master/redirect.html#) [tngl](https://tangled.org/@uweb.tngl.sh/uweb/raw/master/redirect.html#)
[codefloe](https://codefloe.com/jamesfengcao/uweb/raw/master/redirect.html#)
[worktree](https://worktree.ca/jamesfengcao/uweb/raw/master/redirect.html#)
[launchpad](https://git.launchpad.net/uweb/plain/redirect.html#) [launchpad](https://git.launchpad.net/uweb/plain/redirect.html#)
[framagit](https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html#) [framagit](https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html#)
[agit](https://agit.ai/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[froggi](https://git.froggi.es/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[disroot](https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html#) [disroot](https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html#)
[gitdab](https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html) [gitdab](https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[pagure](https://pagure.io/uweb/raw/master/f/redirect.html#)
[bitbucket](https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html#) [bitbucket](https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html#)
[jsdelivr](https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html#) [jsdelivr](https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html#)
[dagshub](https://dagshub.com/torappinfo/uweb/raw/master/redirect.html#) [dagshub](https://dagshub.com/torappinfo/uweb/raw/master/redirect.html#)
[gitgud](https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html#) [gitgud](https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html#)
[gitly](https://gitly.org/jamesfengcao/uweb/raw/master/redirect.html#)
[gitnet](https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html#) [gitnet](https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[palemoon](https://repo.palemoon.org/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[tilde](https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html#) [tilde](https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[dotclear](https://git.dotclear.org/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[mimetest](https://git.minetest.land/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[chapril](https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[cryto](https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html#) [cryto](https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[antopie](https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html#) [antopie](https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[bgithub](https://bgithub.xyz/torappinfo/uweb/raw/master/redirect.html#) [chapril](https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html#)
[lava](https://lavaforge.org/jamesfengcao/uweb/raw/master/redirect.html#)
[sij](https://sij.ai/jamesfengcao/uweb/raw/master/redirect.html#)
[repobase](https://repobase.net/jamesfengcao/uweb/raw/master/redirect.html#)
[drgnz](https://git.drgnz.club/jamesfengcao/uweb/raw/master/redirect.html#)
[gitcode](https://raw.gitcode.com/uweb/uweb/raw/master/redirect.html#)
#### Mirrors (for all versions) #### Mirrors (for all versions)
<p> <span>
<a href="i:0mi:5h:https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html">试验1</a> <a href="i:0mi:5h:https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html">1</a>
<a href="i:0m?:https://gitcode.net/uweb/uweb/-/raw/master/redirect.html">2</a>
<a href="i:0m?:https://raw.gitcode.com/uweb/uweb/raw/master/redirect.html">4</a>
<a href="i:0m?:https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html">5</a> <a href="i:0m?:https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html">5</a>
<a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">6</a> <a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">6</a>
<a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">7</a> <a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">7</a>
<a href="i:0m?:https://notabug.org/torappinfo/uweb/raw/master/redirect.html">8</a>
<a href="i:0mi:5h:https://git.launchpad.net/uweb/plain/redirect.html">9</a>
<a href="i:0m?:https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html">10</a> <a href="i:0m?:https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html">10</a>
<a href="i:0m?:https://agit.ai/jamesfengcao/uweb/raw/branch/master/redirect.html">11</a>
<a href="i:0m?:https://git.froggi.es/jamesfengcao/uweb/raw/branch/master/redirect.html">12</a>
<a href="i:0m?:https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html">13</a> <a href="i:0m?:https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html">13</a>
<a href="i:0m?:https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html">14</a> <a href="i:0m?:https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html">14</a>
<a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">15</a> <a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">15</a>
<a href="i:0mi:5h:https://pagure.io/uweb/raw/master/f/redirect.html">16</a>
<a href="i:0m?:https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html">17</a> <a href="i:0m?:https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html">17</a>
<a href="i:0mi:5h:https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html">18</a> <a href="i:0mi:5h:https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html">18</a>
<a href="i:0m?:https://dagshub.com/torappinfo/uweb/raw/master/redirect.html">19</a> <a href="i:0m?:https://dagshub.com/torappinfo/uweb/raw/master/redirect.html">19</a>
<a href="i:0mi:5h:https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html">20</a> <a href="i:0mi:5h:https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html">20</a>
<a href="i:0m?:https://gitly.org/jamesfengcao/uweb/raw/master/redirect.html">gitly</a>
<a href="i:0m?:https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html">gitnet</a> <a href="i:0m?:https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html">gitnet</a>
<a href="i:0m?:https://repo.palemoon.org/jamesfengcao/uweb/raw/branch/master/redirect.html ">palemoon</a>
<a href="i:0m?:https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html">tilde</a> <a href="i:0m?:https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html">tilde</a>
<a href="i:0m?:https://git.dotclear.org/jamesfengcao/uweb/raw/branch/master/redirect.html">dotclear</a>
<a href="i:0m?:https://git.minetest.land/jamesfengcao/uweb/raw/branch/master/redirect.html ">minetest</a>
<a href="i:0m?:https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html">chapril</a>
<a href="i:0m?:https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html">cryto</a>
<a href="i:0m?:https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html">antopie</a> <a href="i:0m?:https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html">antopie</a>
</p> </span>
#### More mirrors (for version 1131+)
<a href="i:ch%253cmeta:%253e:https://bbs.archlinux.org/viewtopic.php?id=129973">arch</a>
<a href="i:5hhttps://pastebin.com/raw/DCQ0kNEy">pastebin</a>
<a href="i:5hhttps://snippet.host/cgrsgw/raw">host</a>
<a href="i:ch%253cmeta:%253e:https://www.cnblogs.com/uweb/p/19186230">cnblogs</a>
<a href="i:ch%253cmeta:%253e:https://registry.npmmirror.com/ebrowser/latest">npm</a>
<a href="i:ch%26lt;:%26gt;:https://snippets.cacher.io/snippet/aee497272c19811ee919">cacher</a>
<a href="i:0UA1:i:ch%253cmeta:%253e:https://www.douban.com/group/topic/335836878/?_spm_id=Mjc5ODU0MDcy">dou</a>
<a href="i:ch%20%253cmeta:%253e:https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=32981&_dsign=5a39f06a">pdawiki</a>
<a href="i:ch%253cmeta:%253e:https://www.4d4y.com/forum/viewthread.php?tid=3403454">4d4y</a>
<a href="i:ch%253cmeta:%253e:https://xycq.org.cn/forum/thread-310888-1-1.html">xycq</a>
<a href="i:ch%253cmeta:%253e:https://tiexuedanxin.net/forum.php?mod=viewthread&tid=1069669">txdx</a>
<a href="i:ch%253cmeta:%253e:https://bbs.wuyou.net/forum.php?mod=viewthread&tid=40124">wuyou</a>
<a href="i:ch%253cmeta:%253e:https://unpkg.com/ebrowser/README.md">unpkg</a>
<a href="https://uwebbrowser.sourceforge.io">sf</a>
<a href="https://uweb.w8.quuq.dev">w8</a>
#### Repositories #### Repositories
[gitlab](https://gitlab.com/jamesfengcao/uweb) [gitlab](https://gitlab.com/jamesfengcao/uweb)
[sourceforge](https://sourceforge.net/p/uwebbrowser) [sourceforge](https://sourceforge.net/p/uwebbrowser)
[github](https://github.com/torappinfo/uweb) [github](https://github.com/torappinfo/uweb)
[bitbucket](https://bitbucket.org/torappinfo/torappinfo.bitbucket.io) [bitbucket](https://bitbucket.org/torappinfo/torappinfo.bitbucket.io)
[codeberg](https://codeberg.org/jamesfengcao/pages/src/branch/master/README.md) [codeberg](https://codeberg.org/jamesfengcao/pages)
[gitee](https://gitee.com/jamesfengcao/uweb) [gitee](https://gitee.com/jamesfengcao/uweb)
[gitcode](https://gitcode.com/uweb/uweb/overview)
[gitcode](https://gitcode.net/uweb/uweb)
[atomgit](https://atomgit.com/jamesfengcao/uweb)
[gitlink](https://www.gitlink.org.cn/jamesfengcao/uweb) [gitlink](https://www.gitlink.org.cn/jamesfengcao/uweb)
[gitgud](https://gitgud.io/jamesfengcao/uweb) [gitgud](https://gitgud.io/jamesfengcao/uweb)
[disroot](https://git.disroot.org/torappinfo/uweb/src/branch/master/README.md) [disroot](https://git.disroot.org/torappinfo/uweb)
[gitea](https://gitea.com/torappinfo/uweb/src/branch/master/README.md) [gitea](https://gitea.com/torappinfo/uweb)
[notabug](https://notabug.org/torappinfo/uweb/src/master/README.md)
[framagit](https://framagit.org/torappinfo/uweb) [framagit](https://framagit.org/torappinfo/uweb)
[agit](https://agit.ai/jamesfengcao/uweb/src/branch/master/README.md) [gitdab](https://gitdab.com/jamesfengcao/uweb)
[froggi](https://git.froggi.es/jamesfengcao/uweb/src/branch/master/README.md) [gitnet](https://gitnet.fr/jamesfengcao/uweb)
[gitdab](https://gitdab.com/jamesfengcao/uweb/src/branch/master/README.md) [tilde](https://tildegit.org/jamesfengcao/uweb)
[pagure](https://pagure.io/uweb/blob/master/f/README.md) [antopie](https://code.antopie.org/jamesfengcao/uweb)
[dagshub](https://dagshub.com/torappinfo/uweb/src/master/README.md) [tngl](https://tangled.org/@uweb.tngl.sh/uweb/blob/master/README.md)
[gitnet](https://gitnet.fr/jamesfengcao/uweb/src/branch/master/README.md) [codefloe](https://codefloe.com/jamesfengcao/uweb)
[palemoon](https://repo.palemoon.org/jamesfengcao/uweb/src/branch/master/README.md) [worktree](https://worktree.ca/jamesfengcao/uweb)
[tilde](https://tildegit.org/jamesfengcao/uweb/src/branch/master/README.md)
[dotclear](https://git.dotclear.org/jamesfengcao/uweb/src/branch/master/README.md)
[mimetest](https://git.minetest.land/jamesfengcao/uweb/src/branch/master/README.md)
[chapril](https://forge.chapril.org/jamesfengcao/uweb/src/branch/master/README.md)
[cryto](https://git.cryto.net/jamesfengcao/uweb/src/branch/master/README.md)
[antopie](https://code.antopie.org/jamesfengcao/uweb/src/master/README.md)

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/mirrors/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title></title> <title></title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -46,95 +47,85 @@
<style>a+br{display:none;}</style> <style>a+br{display:none;}</style>
<h4 id="mirrors-for-version-1040">Mirrors (for version 1040+)</h4> <h4 id="mirrors-for-version-1040">Mirrors (for version 1040+)</h4>
<p><a href="https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html#">gitee</a><br> <p><a href="https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html#">gitee</a><br>
<a href="https://gitcode.net/uweb/uweb/-/raw/master/redirect.html#">gitcode</a><br>
<a href="https://raw.gitcode.com/uweb/uweb/raw/master/redirect.html#">gitcode</a><br>
<a href="https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html#">gitea</a><br> <a href="https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html#">gitea</a><br>
<a href="https://notabug.org/torappinfo/uweb/raw/master/redirect.html#">notabug</a><br> <a href="https://tangled.org/@uweb.tngl.sh/uweb/raw/master/redirect.html#">tngl</a><br>
<a href="https://codefloe.com/jamesfengcao/uweb/raw/master/redirect.html#">codefloe</a><br>
<a href="https://worktree.ca/jamesfengcao/uweb/raw/master/redirect.html#">worktree</a><br>
<a href="https://git.launchpad.net/uweb/plain/redirect.html#">launchpad</a><br> <a href="https://git.launchpad.net/uweb/plain/redirect.html#">launchpad</a><br>
<a href="https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html#">framagit</a><br> <a href="https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html#">framagit</a><br>
<a href="https://agit.ai/jamesfengcao/uweb/raw/branch/master/redirect.html#">agit</a><br>
<a href="https://git.froggi.es/jamesfengcao/uweb/raw/branch/master/redirect.html#">froggi</a><br>
<a href="https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html#">disroot</a><br> <a href="https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html#">disroot</a><br>
<a href="https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html">gitdab</a><br> <a href="https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html#">gitdab</a><br>
<a href="https://pagure.io/uweb/raw/master/f/redirect.html#">pagure</a><br>
<a href="https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html#">bitbucket</a><br> <a href="https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html#">bitbucket</a><br>
<a href="https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html#">jsdelivr</a><br> <a href="https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html#">jsdelivr</a><br>
<a href="https://dagshub.com/torappinfo/uweb/raw/master/redirect.html#">dagshub</a><br> <a href="https://dagshub.com/torappinfo/uweb/raw/master/redirect.html#">dagshub</a><br>
<a href="https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html#">gitgud</a><br> <a href="https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html#">gitgud</a><br>
<a href="https://gitly.org/jamesfengcao/uweb/raw/master/redirect.html#">gitly</a><br>
<a href="https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html#">gitnet</a><br> <a href="https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html#">gitnet</a><br>
<a href="https://repo.palemoon.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">palemoon</a><br>
<a href="https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">tilde</a><br> <a href="https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">tilde</a><br>
<a href="https://git.dotclear.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">dotclear</a><br>
<a href="https://git.minetest.land/jamesfengcao/uweb/raw/branch/master/redirect.html#">mimetest</a><br>
<a href="https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">chapril</a><br>
<a href="https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html#">cryto</a><br> <a href="https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html#">cryto</a><br>
<a href="https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">antopie</a><br> <a href="https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">antopie</a><br>
<a href="https://bgithub.xyz/torappinfo/uweb/raw/master/redirect.html#">bgithub</a></p> <a href="https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html#">chapril</a><br>
<a href="https://lavaforge.org/jamesfengcao/uweb/raw/master/redirect.html#">lava</a><br>
<a href="https://sij.ai/jamesfengcao/uweb/raw/master/redirect.html#">sij</a><br>
<a href="https://repobase.net/jamesfengcao/uweb/raw/master/redirect.html#">repobase</a><br>
<a href="https://git.drgnz.club/jamesfengcao/uweb/raw/master/redirect.html#">drgnz</a><br>
<a href="https://raw.gitcode.com/uweb/uweb/raw/master/redirect.html#">gitcode</a></p>
<h4 id="mirrors-for-all-versions">Mirrors (for all versions)</h4> <h4 id="mirrors-for-all-versions">Mirrors (for all versions)</h4>
<p> <span>
<a href="i:0mi:5h:https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html">试验1</a> <a href="i:0mi:5h:https://gitee.com/jamesfengcao/uweb/raw/master/redirect.html">1</a>
<a href="i:0m?:https://gitcode.net/uweb/uweb/-/raw/master/redirect.html">2</a>
<a href="i:0m?:https://raw.gitcode.com/uweb/uweb/raw/master/redirect.html">4</a>
<a href="i:0m?:https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html">5</a> <a href="i:0m?:https://gitea.com/torappinfo/uweb/raw/branch/master/redirect.html">5</a>
<a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">6</a> <a href="i:0mi:5h?format=raw::https://sourceforge.net/p/uwebbrowser/code/ci/master/tree/redirect.html">6</a>
<a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">7</a> <a href="i:0mi:5h?format=raw::https://rocketgit.com/user/torappinfo/uweb/source/tree/branch/master/blob_download/redirect.html">7</a>
<a href="i:0m?:https://notabug.org/torappinfo/uweb/raw/master/redirect.html">8</a>
<a href="i:0mi:5h:https://git.launchpad.net/uweb/plain/redirect.html">9</a>
<a href="i:0m?:https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html">10</a> <a href="i:0m?:https://framagit.org/torappinfo/uweb/-/raw/master/redirect.html">10</a>
<a href="i:0m?:https://agit.ai/jamesfengcao/uweb/raw/branch/master/redirect.html">11</a>
<a href="i:0m?:https://git.froggi.es/jamesfengcao/uweb/raw/branch/master/redirect.html">12</a>
<a href="i:0m?:https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html">13</a> <a href="i:0m?:https://git.disroot.org/torappinfo/uweb/raw/branch/master/redirect.html">13</a>
<a href="i:0m?:https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html">14</a> <a href="i:0m?:https://gitdab.com/jamesfengcao/uweb/raw/branch/master/redirect.html">14</a>
<a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">15</a> <a href="i:0mi:5h/xxxx/?path=::https://dev.azure.com/jamesfengcao/1d8bf6c7-7c24-4441-bc5e-9709dcaf37fc/_apis/git/repositories/2a588d9b-f25a-46c0-bb3b-f685c635fcf8/itemsxxxx/redirect.html">15</a>
<a href="i:0mi:5h:https://pagure.io/uweb/raw/master/f/redirect.html">16</a>
<a href="i:0m?:https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html">17</a> <a href="i:0m?:https://bitbucket.org/torappinfo/torappinfo.bitbucket.io/raw/master/redirect.html">17</a>
<a href="i:0mi:5h:https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html">18</a> <a href="i:0mi:5h:https://fastly.jsdelivr.net/gh/torappinfo/uweb/redirect.html">18</a>
<a href="i:0m?:https://dagshub.com/torappinfo/uweb/raw/master/redirect.html">19</a> <a href="i:0m?:https://dagshub.com/torappinfo/uweb/raw/master/redirect.html">19</a>
<a href="i:0mi:5h:https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html">20</a> <a href="i:0mi:5h:https://gitgud.io/jamesfengcao/uweb/-/raw/master/redirect.html">20</a>
<a href="i:0m?:https://gitly.org/jamesfengcao/uweb/raw/master/redirect.html">gitly</a>
<a href="i:0m?:https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html">gitnet</a> <a href="i:0m?:https://gitnet.fr/jamesfengcao/uweb/raw/branch/master/redirect.html">gitnet</a>
<a href="i:0m?:https://repo.palemoon.org/jamesfengcao/uweb/raw/branch/master/redirect.html ">palemoon</a>
<a href="i:0m?:https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html">tilde</a> <a href="i:0m?:https://tildegit.org/jamesfengcao/uweb/raw/branch/master/redirect.html">tilde</a>
<a href="i:0m?:https://git.dotclear.org/jamesfengcao/uweb/raw/branch/master/redirect.html">dotclear</a>
<a href="i:0m?:https://git.minetest.land/jamesfengcao/uweb/raw/branch/master/redirect.html ">minetest</a>
<a href="i:0m?:https://forge.chapril.org/jamesfengcao/uweb/raw/branch/master/redirect.html">chapril</a>
<a href="i:0m?:https://git.cryto.net/jamesfengcao/uweb/raw/branch/master/redirect.html">cryto</a>
<a href="i:0m?:https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html">antopie</a> <a href="i:0m?:https://code.antopie.org/jamesfengcao/uweb/raw/branch/master/redirect.html">antopie</a>
</p> </span>
<h4 id="more-mirrors-for-version-1131">More mirrors (for version 1131+)</h4>
<p><a href="i:ch%253cmeta:%253e:https://bbs.archlinux.org/viewtopic.php?id=129973">arch</a><br>
<a href="i:5hhttps://pastebin.com/raw/DCQ0kNEy">pastebin</a><br>
<a href="i:5hhttps://snippet.host/cgrsgw/raw">host</a><br>
<a href="i:ch%253cmeta:%253e:https://www.cnblogs.com/uweb/p/19186230">cnblogs</a><br>
<a href="i:ch%253cmeta:%253e:https://registry.npmmirror.com/ebrowser/latest">npm</a><br>
<a href="i:ch%26lt;:%26gt;:https://snippets.cacher.io/snippet/aee497272c19811ee919">cacher</a><br>
<a href="i:0UA1:i:ch%253cmeta:%253e:https://www.douban.com/group/topic/335836878/?_spm_id=Mjc5ODU0MDcy">dou</a><br>
<a href="i:ch%20%253cmeta:%253e:https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=32981&_dsign=5a39f06a">pdawiki</a><br>
<a href="i:ch%253cmeta:%253e:https://www.4d4y.com/forum/viewthread.php?tid=3403454">4d4y</a><br>
<a href="i:ch%253cmeta:%253e:https://xycq.org.cn/forum/thread-310888-1-1.html">xycq</a><br>
<a href="i:ch%253cmeta:%253e:https://tiexuedanxin.net/forum.php?mod=viewthread&tid=1069669">txdx</a><br>
<a href="i:ch%253cmeta:%253e:https://bbs.wuyou.net/forum.php?mod=viewthread&tid=40124">wuyou</a><br>
<a href="i:ch%253cmeta:%253e:https://unpkg.com/ebrowser/README.md">unpkg</a><br>
<a href="https://uwebbrowser.sourceforge.io">sf</a><br>
<a href="https://uweb.w8.quuq.dev">w8</a></p>
<h4 id="repositories">Repositories</h4> <h4 id="repositories">Repositories</h4>
<p><a href="https://gitlab.com/jamesfengcao/uweb">gitlab</a><br> <p><a href="https://gitlab.com/jamesfengcao/uweb">gitlab</a><br>
<a href="https://sourceforge.net/p/uwebbrowser">sourceforge</a><br> <a href="https://sourceforge.net/p/uwebbrowser">sourceforge</a><br>
<a href="https://github.com/torappinfo/uweb">github</a><br> <a href="https://github.com/torappinfo/uweb">github</a><br>
<a href="https://bitbucket.org/torappinfo/torappinfo.bitbucket.io">bitbucket</a><br> <a href="https://bitbucket.org/torappinfo/torappinfo.bitbucket.io">bitbucket</a><br>
<a href="https://codeberg.org/jamesfengcao/pages/src/branch/master/README.md">codeberg</a><br> <a href="https://codeberg.org/jamesfengcao/pages">codeberg</a><br>
<a href="https://gitee.com/jamesfengcao/uweb">gitee</a><br> <a href="https://gitee.com/jamesfengcao/uweb">gitee</a><br>
<a href="https://gitcode.com/uweb/uweb/overview">gitcode</a><br>
<a href="https://gitcode.net/uweb/uweb">gitcode</a><br>
<a href="https://atomgit.com/jamesfengcao/uweb">atomgit</a><br>
<a href="https://www.gitlink.org.cn/jamesfengcao/uweb">gitlink</a><br> <a href="https://www.gitlink.org.cn/jamesfengcao/uweb">gitlink</a><br>
<a href="https://gitgud.io/jamesfengcao/uweb">gitgud</a><br> <a href="https://gitgud.io/jamesfengcao/uweb">gitgud</a><br>
<a href="https://git.disroot.org/torappinfo/uweb/src/branch/master/README.md">disroot</a><br> <a href="https://git.disroot.org/torappinfo/uweb">disroot</a><br>
<a href="https://gitea.com/torappinfo/uweb/src/branch/master/README.md">gitea</a><br> <a href="https://gitea.com/torappinfo/uweb">gitea</a><br>
<a href="https://notabug.org/torappinfo/uweb/src/master/README.md">notabug</a><br>
<a href="https://framagit.org/torappinfo/uweb">framagit</a><br> <a href="https://framagit.org/torappinfo/uweb">framagit</a><br>
<a href="https://agit.ai/jamesfengcao/uweb/src/branch/master/README.md">agit</a><br> <a href="https://gitdab.com/jamesfengcao/uweb">gitdab</a><br>
<a href="https://git.froggi.es/jamesfengcao/uweb/src/branch/master/README.md">froggi</a><br> <a href="https://gitnet.fr/jamesfengcao/uweb">gitnet</a><br>
<a href="https://gitdab.com/jamesfengcao/uweb/src/branch/master/README.md">gitdab</a><br> <a href="https://tildegit.org/jamesfengcao/uweb">tilde</a><br>
<a href="https://pagure.io/uweb/blob/master/f/README.md">pagure</a><br> <a href="https://code.antopie.org/jamesfengcao/uweb">antopie</a><br>
<a href="https://dagshub.com/torappinfo/uweb/src/master/README.md">dagshub</a><br> <a href="https://tangled.org/@uweb.tngl.sh/uweb/blob/master/README.md">tngl</a><br>
<a href="https://gitnet.fr/jamesfengcao/uweb/src/branch/master/README.md">gitnet</a><br> <a href="https://codefloe.com/jamesfengcao/uweb">codefloe</a><br>
<a href="https://repo.palemoon.org/jamesfengcao/uweb/src/branch/master/README.md">palemoon</a><br> <a href="https://worktree.ca/jamesfengcao/uweb">worktree</a></p>
<a href="https://tildegit.org/jamesfengcao/uweb/src/branch/master/README.md">tilde</a><br>
<a href="https://git.dotclear.org/jamesfengcao/uweb/src/branch/master/README.md">dotclear</a><br>
<a href="https://git.minetest.land/jamesfengcao/uweb/src/branch/master/README.md">mimetest</a><br>
<a href="https://forge.chapril.org/jamesfengcao/uweb/src/branch/master/README.md">chapril</a><br>
<a href="https://git.cryto.net/jamesfengcao/uweb/src/branch/master/README.md">cryto</a><br>
<a href="https://code.antopie.org/jamesfengcao/uweb/src/master/README.md">antopie</a></p>
</div> </div>
<p>Last Modified: 18 June 2024<br> <p>Last Modified: 28 April 2026<br>
update mirrors<br> add back gitcode<br>
<pre></pre> <pre></pre>
</p> </p>
@ -157,7 +148,7 @@ update mirrors<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/offlinecache/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Offline resources</title> <title>Offline resources</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -86,7 +87,7 @@ fix typos<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/readme/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title></title> <title></title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -50,45 +51,42 @@
<script>function notRepo(){let u=location.href.replace(/#$/, '');return u.endsWith('index.html')||u.endsWith('readme/');}</script> <script>function notRepo(){let u=location.href.replace(/#$/, '');return u.endsWith('index.html')||u.endsWith('readme/');}</script>
<h3 id="uweb-browser-minimal-suckless-web-browser-with-unlimited-power">Uweb browser: minimal suckless web browser with unlimited power</h3> <h3 id="uweb-browser-minimal-suckless-web-browser-with-unlimited-power">Uweb browser: minimal suckless web browser with unlimited power</h3>
<p><a href="README.zh-Hans.md" onclick="if(notRepo()){location='../../zh/readme/index.html#';return false;}">中文</a></p> <p><a href="README.zh-Hans.md" onclick="if(notRepo()){location='../../zh/readme/index.html#';return false;}">中文</a></p>
<p><a href="https://www.amazon.com/TorApp-Info-uweb-browser-for-geeks/dp/B098QPR6N5">Amazon appstore</a><br> <p><a href="https://galaxystore.samsung.com/detail/info.torapp.uweb">Galaxy.Store</a><br>
<a href="https://galaxy.store/uweb">Galaxy.Store</a><br>
<a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">Downloads</a></p> <a href="en/download.md" onclick="if(notRepo()){location='../../en/changelog/index.html#';return false;}">Downloads</a></p>
<p><a href="https://torappinfo.github.io/uweb/en/">Uweb browser: downloads, plugins and tips</a><br> <p><a href="https://torappinfo.github.io/uweb/en/">Uweb browser: downloads, plugins and tips</a><br>
(Mirrors: <a href="https://jamesfengcao.gitlab.io/uweb/en/">gitlab</a> <a href="https://jamesfengcao.codeberg.page/en/">codeberg</a> <a href="https://repo.or.cz/uweb.git/blob_plain/HEAD:/en/index.html">repo</a> <a href="https://uweb.4everland.app/en/">4everland</a> <a href="https://uweb.on-fleek.app/en/">fleek</a> <a href="https://muweb.cyclic.app/en/">cyclic</a> <a href="https://uwebzh.netlify.app/en/">netlify</a> <a href="https://uweb.surge.sh/en/">surge</a> <a href="https://uwebbrowser-t27o4.kinsta.page">kinsta</a> <a href="https://uweb.zeabur.app/en/">zeabur</a> <a href="https://posh-crab-23.deno.dev/en/">deno</a> <a href="https://torappinfo.bitbucket.io/en/">bitbucket</a> <a href="https://muweb.pages.dev/en/">pages</a> <a href="https://uweb.vercel.app/en/">vercel</a> <a href="https://uweb.onrender.com/en/">render</a> <a href="https://uweb.glitch.me/en/">glitch</a> <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">More...</a>)</p> (Mirrors: <a href="https://uweb.grebedoc.dev">grebe</a> <a href="https://jamesfengcao.gitlab.io/uweb/en/">gitlab</a> <a href="https://torappinfo.frama.io/uweb/en/">frama</a> <a href="https://uweb.codeberg.page/en/">codeberg</a> <a href="https://repo.or.cz/uweb.git/blob_plain/HEAD:/en/index.html">repo</a> <a href="https://uwebzh.netlify.app/en/">netlify</a> <a href="https://uweb.surge.sh/en/">surge</a> <a href="https://uwebbrowser-t27o4.kinsta.page">kinsta</a> <a href="https://torappinfo.bitbucket.io/en/">bitbucket</a> <a href="https://muweb.pages.dev/en/">pages</a> <a href="https://uweb.vercel.app/en/">vercel</a> <a href="https://uweb.onrender.com/en/">render</a> <a href="https://torappinfo-uweb.statichost.eu">statichost</a> <a href="https://uweb.maozi.io">maozi</a> <a href="https://uweb.stormkit.dev">storm</a> <a href="https://uweb-m.pgs.sh">pgs</a> <a href="en/mirrors.md" onclick="if(notRepo()){location='../../en/mirrors/index.html#';return false;}">More...</a>)</p>
<ul> <ul>
<li>Powerful: any native functionality with html5 enhancement and still secure; any urls to host website; javascript and shell scripting for general processing; piping between console and GUI and more with Termux.</li> <li><a href="en/search.md" onclick="if(notRepo()){location='../search/index.html#';return false;}">AI chat as search engine</a>; optimized UI for both AI and traditional search; <a href="../input/index.html#">input helpers</a> for complex query.</li>
<li>Customizable: user-defined menus, (new) buttons and gestures for user agents, bookmarklets, url services, shell commands, internal functionality links and text processing etc.</li> <li><a href="en/tips.md" onclick="if(notRepo()){location='../redirect/index.html#';return false;}">Global redirection</a> to bypass censorship.</li>
<li>Convenient: Any AI chatbot/book (pdf/djvu)/dictionary (mdict)/txt/command line/app/webapp (web extensions) can be search engine.</li> <li>Convenient: Any AI chatbot/book/dictionary/txt/command line/app/webapp (web extensions) as search engine.</li>
<li>Tiny: less than 250k.</li> <li>Tiny: less than 250k.</li>
<li>Fast: run fast, even with thousands of user provided css/scripts/htmls.</li> <li>Fast: run fast, even with thousands of user provided css/scripts/htmls.</li>
<li>Efficient: less touches, one click to reach any number of search engines without repeated input; automate online services.</li> <li>Efficient: less touches, one click to reach any number of search engines without repeated input; automate online services.</li>
<li>Powerful: any native functionality with html5 enhancement and still secure; any urls to host website; javascript and shell scripting for general processing.</li>
<li>Customizable: user-defined menus, (new) buttons and gestures for user agents, bookmarklets, url services, shell commands, internal functionality links and text processing etc.</li>
<li>URL bar command line support (&quot;!&quot; and .js file as command).</li> <li>URL bar command line support (&quot;!&quot; and .js file as command).</li>
<li>Site-specific JS/CSS/HTML/preprocessing.</li> <li>Site-specific JS/CSS/HTML/preprocessing, ex. &quot;siteextra/[domain.sanitizer]&quot; support.</li>
<li>Online play/preview/preprocess for downloadable resources.</li> <li>Online play/preview/preprocess for downloadable resources.</li>
<li>Multiple type profiles: switch any data including website logins, user configurations orthogonally.</li> <li>Multiple type profiles: switch any data including website logins, user configurations orthogonally.</li>
<li>Supports enhanced user &quot;hosts&quot; file. Empty IP address to lift all server-imposed limitations.</li> <li>Supports enhanced user &quot;hosts&quot; file. Empty IP address to lift all server-imposed limitations.</li>
<li>Website test automation scripting. crontab support (alarm clock and more).</li> <li>Website test automation scripting. crontab support (alarm clock and more).</li>
</ul> </ul>
<h4 id="main-features">Main features</h4> <h4 id="main-features">Main features</h4>
<p>Custom paper size PDF export and long vector screenshot, TTS, text reflow, resource sniffer, translation, reader's mode, user-defined url redirection, webdav/http backup &amp; restore, auto next page, sending/receiving msg/file(s), site config (UA, no JS, no image, no 3rd party script/resource,active script, global scripts), http(s)/socks proxy, enabling html5 apps for local files (pdf/djvu/epub viewer, mdict dictionary lookup etc.).</p> <p>Custom paper size PDF export and long vector screenshot, TTS, text reflow, resource sniffer, translation, reader's mode, user-defined url redirection, webdav/http backup &amp; restore, auto next page, sending/receiving msg/file(s), site config (UA, no JS, no image, no 3rd party script/resource,active script, global scripts), http(s)/socks proxy, Wake-on-LAN, enabling html5 apps for local files (pdf/djvu/epub viewer, mdict dictionary lookup etc.).</p>
<ul> <ul>
<li>User-defined global and site-specific CSS and javascript.</li>
<li>Bookmarklets (works for CSP sites and with option to auto apply to similar sites)</li> <li>Bookmarklets (works for CSP sites and with option to auto apply to similar sites)</li>
<li>AD blocking (block whole root domain trees etc.)</li> <li>AD blocking (block whole root domain trees etc.)</li>
<li>Customization (define extra menus/buttons/gestures with user-defined functionalities)</li>
<li>Support shell scripts, javascript for general processing, other languages (python etc.) are also supported by installing uweb compatible Termux versions.</li>
<li>Serverless local sites: PWA-kind web extension (chrome .crx &amp; firefox .xpi) support.</li> <li>Serverless local sites: PWA-kind web extension (chrome .crx &amp; firefox .xpi) support.</li>
<li>Piping between console and uweb tabs.</li>
<li>Resizable floating video support.</li> <li>Resizable floating video support.</li>
</ul> </ul>
<h4 id="screenshots">Screenshots</h4> <h4 id="screenshots">Screenshots</h4>
<p><img src="https://i.postimg.cc/rsL9G5N1/home1.png"><br> <p><img src="https://i.postimg.cc/rsL9G5N1/home1.png" alt=""><br>
<img src="https://i.postimg.cc/9QxJ3Rc2/globalcss.png"><br> <img src="https://i.postimg.cc/9QxJ3Rc2/globalcss.png" alt=""><br>
<img src="https://i.postimg.cc/VksDHBQ4/globaljs.png"><br> <img src="https://i.postimg.cc/VksDHBQ4/globaljs.png" alt=""><br>
<img src="https://i.postimg.cc/HLV3TYLy/longclick.png"><br> <img src="https://i.postimg.cc/HLV3TYLy/longclick.png" alt=""><br>
<img src="https://i.postimg.cc/XJ58ysdN/option1.png"><br> <img src="https://i.postimg.cc/XJ58ysdN/option1.png" alt=""><br>
<img src="https://i.postimg.cc/0NFnQT6H/option2.png"></p> <img src="https://i.postimg.cc/0NFnQT6H/option2.png" alt=""></p>
<h4 id="a-hrefmiscebrowserreadmemd--onclickifnotrepolocationenebrowserreadmeindexhtmlreturn-falseebrowsera-for-windows-macos-and-linux"><a href="misc/ebrowser/README.md" onclick="if(notRepo()){location='../../en/ebrowserreadme/index.html#';return false;}">Ebrowser</a> for Windows, MacOS and Linux</h4> <h4 id="ebrowser-for-windows-macos-and-linux"><a href="misc/ebrowser/README.md" onclick="if(notRepo()){location='../../en/ebrowserreadme/index.html#';return false;}">Ebrowser</a> for Windows, MacOS and Linux</h4>
<p>Ebrowser is a simple version of uweb browser on the desktop.</p> <p>Ebrowser is a simple version of uweb browser on the desktop.</p>
<ul> <ul>
<li>Fully open source.</li> <li>Fully open source.</li>
@ -106,8 +104,8 @@
</ul> </ul>
</div> </div>
<p>Last Modified: 24 June 2024<br> <p>Last Modified: 12 April 2026<br>
move ebrowser README together with package files<br> fix url for en/searchurl/config.js<br>
<pre></pre> <pre></pre>
</p> </p>
@ -130,7 +128,7 @@ move ebrowser README together with package files<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/redirect/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Resource redirection</title> <title>Resource redirection</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -49,11 +50,11 @@
<li><a href="../tags/redirection/index.html#">redirection</a> </li> <li><a href="../tags/redirection/index.html#">redirection</a> </li>
</ul> </ul>
<p>⚠️<span style="color:red">Redirection forwards cookies</span> with the setting option &quot;Redirect cookies&quot; enabled, so use the options with care.</p> <p>⚠️<span style="color:red">Redirection forwards cookies</span> with the setting option &quot;Redirect cookies&quot; enabled, so use the option with care.</p>
<h4 id="setting-options-url-redirection-vs-resource-redirection">Setting options: &quot;Url redirection&quot; vs. &quot;Resource redirection&quot;</h4> <h4 id="setting-options-url-redirection-vs-resource-redirection">Setting options: &quot;Url redirection&quot; vs. &quot;Resource redirection&quot;</h4>
<p>&quot;Url redirection&quot; redirects the main/page url only while &quot;Resource redirection&quot; is for all urls in the page.</p> <p>&quot;Url redirection&quot; redirects the main/page url only while &quot;Resource redirection&quot; is for all urls in the page.</p>
<h4 id="global-redirection">Global redirection</h4> <h4 id="global-redirection">Global redirection</h4>
<p><a href="i:60/data/data/info.torapp.uweb/files/config.html:https://jamesfengcao.codeberg.page/en/searchurl/config.html">Global redirection</a> is enabled with the setting option &quot;Resource redirection&quot; or both &quot;Url redirection&quot; and &quot;Redirect cookies&quot;.</p> <p><a href="i:60/data/data/info.torapp.uweb/files/config.html:https://codeberg.org/uweb/pages/raw/branch/master/en/searchurl/config.html">Global redirection</a> is enabled with the setting option &quot;Resource redirection&quot; or both &quot;Url redirection&quot; and &quot;Redirect cookies&quot;.</p>
<p>When a valid global redirection url is set, the &quot;default.redirect&quot; has no effect, and any url resource is fetched with the new url by appending the original url to the global redirection url.</p> <p>When a valid global redirection url is set, the &quot;default.redirect&quot; has no effect, and any url resource is fetched with the new url by appending the original url to the global redirection url.</p>
<ul> <ul>
<li> <li>
@ -63,6 +64,8 @@
<p>(to provide more options to users) If the global redirection url does not end with '/', '?' or '=', it means the global redirection url is naked. then the resource is fetched with by the url &quot;[global redirection url] + '/'+ [scheme]+ '/' + [url without scheme]&quot;. For example, when the global redirection url is &quot;https://domain.com/pathXXX&quot;, the real url to visit &quot;https://cnn.com&quot; is &quot;https://domain.com/pathXXX/https/cnn.com&quot;.</p> <p>(to provide more options to users) If the global redirection url does not end with '/', '?' or '=', it means the global redirection url is naked. then the resource is fetched with by the url &quot;[global redirection url] + '/'+ [scheme]+ '/' + [url without scheme]&quot;. For example, when the global redirection url is &quot;https://domain.com/pathXXX&quot;, the real url to visit &quot;https://cnn.com&quot; is &quot;https://domain.com/pathXXX/https/cnn.com&quot;.</p>
</li> </li>
</ul> </ul>
<p>Example: &quot;https://muweb.pages.dev/redirect?&quot;</p>
<p><a href="../searchurl/cloudflare/redirect.js">global redirection code for cloudflare worker</a> free deployment: The global redirection url is &quot;https://name.username.workers.dev/&quot;, which is just the worker's domain name.</p>
<h4 id="defaultredirect-valid-only-without-global-redirection-url">&quot;default.redirect&quot; (valid only without global redirection url)</h4> <h4 id="defaultredirect-valid-only-without-global-redirection-url">&quot;default.redirect&quot; (valid only without global redirection url)</h4>
<p>Click the following links to append mirrors to the file &quot;default.redirect&quot;:<br> <p>Click the following links to append mirrors to the file &quot;default.redirect&quot;:<br>
<a target="_self" href="i:0gdefault.redirect:../../zh/searchurl/txt/redirect.cfg">google recaptcha mirror</a></p> <a target="_self" href="i:0gdefault.redirect:../../zh/searchurl/txt/redirect.cfg">google recaptcha mirror</a></p>
@ -77,8 +80,8 @@
</ul> </ul>
</div> </div>
<p>Last Modified: 7 April 2024<br> <p>Last Modified: 17 April 2026<br>
more details on global redirection url<br> cleanup<br>
<pre></pre> <pre></pre>
</p> </p>
@ -101,7 +104,7 @@ more details on global redirection url<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/rjs/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Execute javascript codes</title> <title>Execute javascript codes</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -56,6 +57,13 @@
<a target="_self" href="i:0hbookmarklet/!googleTranslate.js:https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit:%0A{let d=document,b=d.body,v=d.createElement('div');v.id='google_translate_element';v.style='position:fixed;bottom:10px;right:10px;cursor:pointer;z-index:9999';b.insertBefore(v,b.firstChild);function googleTranslateElementInit(){new google.translate.TranslateElement({layout:google.translate.TranslateElement.InlineLayout.SIMPLE,multilanguagePage:true,pageLanguage:'auto',includedLanguages:'zh-CN,zh-TW,en,ko,ja'},'google_translate_element');}}">google translation</a></p> <a target="_self" href="i:0hbookmarklet/!googleTranslate.js:https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit:%0A{let d=document,b=d.body,v=d.createElement('div');v.id='google_translate_element';v.style='position:fixed;bottom:10px;right:10px;cursor:pointer;z-index:9999';b.insertBefore(v,b.firstChild);function googleTranslateElementInit(){new google.translate.TranslateElement({layout:google.translate.TranslateElement.InlineLayout.SIMPLE,multilanguagePage:true,pageLanguage:'auto',includedLanguages:'zh-CN,zh-TW,en,ko,ja'},'google_translate_element');}}">google translation</a></p>
<p><a target="_self" href='i:0hbookmarklet/eruda.js:https://fastly.jsdelivr.net/npm/eruda:%0Aeruda.init()'>Eruda</a><br> <p><a target="_self" href='i:0hbookmarklet/eruda.js:https://fastly.jsdelivr.net/npm/eruda:%0Aeruda.init()'>Eruda</a><br>
<a target="_self" href="i:0hbookmarklet/performance.js:https://fastly.jsdelivr.net/gh/micmro/performance-bookmarklet/dist/performanceBookmarklet.min.js">Performance</a></p> <a target="_self" href="i:0hbookmarklet/performance.js:https://fastly.jsdelivr.net/gh/micmro/performance-bookmarklet/dist/performanceBookmarklet.min.js">Performance</a></p>
<p><b>default.bml</a> to define bookmarklet with argument. Each line of default.bml has the following format:<br>
[bookmarklet name]:[bookmarklet id with argument]</p>
<p>where [bookmarklet id with argument] could be:</p>
<ul>
<li>[fullpath-to-js-file]#[argument]</li>
<li>[bookmarklet index] beginning with two digits followed by bookmarklet function argument. They are used as index of bootmarklet. For example, &quot;00&quot; as the first local bookmarklet; &quot;01&quot; as the first remote script; then &quot;02&quot; as the second local bookmarklet, ...</li>
</ul>
<p>Note: Bookmarklets whose names begin with &quot;!&quot; are allowed to load remote js on CSP (Content Security Policy) sites.</p> <p>Note: Bookmarklets whose names begin with &quot;!&quot; are allowed to load remote js on CSP (Content Security Policy) sites.</p>
<p><b>Remote javascript</b> is defined in default.rjs. Click the following link to install. (<b>Force exit and re-launch the app</b>, then long press the &quot;search&quot; button to popup the menu.)</p> <p><b>Remote javascript</b> is defined in default.rjs. Click the following link to install. (<b>Force exit and re-launch the app</b>, then long press the &quot;search&quot; button to popup the menu.)</p>
<p><a href="i:04Selection to sentence:;let g='sentence';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);">Selection to sentence:;let g='sentence';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);</a></p> <p><a href="i:04Selection to sentence:;let g='sentence';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);">Selection to sentence:;let g='sentence';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);</a></p>
@ -73,11 +81,11 @@
<p>Activate either local (bookmarklets) or remote js to execute the code on the similar sites with option &quot;Activate user script&quot;.</p> <p>Activate either local (bookmarklets) or remote js to execute the code on the similar sites with option &quot;Activate user script&quot;.</p>
<p>Since activated scripts use internal mechanism of <a href="../links/index.html#">&quot;i:0m&quot; urls</a>, the script itself cannot have <span style="color:red">'H', '?' or '/'</span> as its very first character.</p> <p>Since activated scripts use internal mechanism of <a href="../links/index.html#">&quot;i:0m&quot; urls</a>, the script itself cannot have <span style="color:red">'H', '?' or '/'</span> as its very first character.</p>
<h4 id="allow-remote-js-on-csp-content-security-policy-sites">Allow remote js on CSP (Content Security Policy) sites</h4> <h4 id="allow-remote-js-on-csp-content-security-policy-sites">Allow remote js on CSP (Content Security Policy) sites</h4>
<p>All remote js (default.rjs) are allowed to execute on CSP sites. Local js files without remote resource access work fine when under the folder &quot;bookmarklet&quot;, others needs to be refered in default.rjs as http urls such as &quot;https://local/...&quot; (<a href="../html5/index.html#">html5</a> or <a href="../offlinecache/index.html#">offline cache</a>) .</p> <p>All remote js (default.rjs) are allowed to execute on CSP sites. Local js files without remote resource access work fine when under the folder &quot;bookmarklet&quot;; for those needing remote resource, file name must begin with &quot;!&quot;. Others needs to be refered in default.rjs as http urls such as &quot;https://l/app...&quot; (<a href="../html5/index.html#">html5</a> or <a href="../offlinecache/index.html#">offline cache</a>) .</p>
</div> </div>
<p>Last Modified: 18 June 2024<br> <p>Last Modified: 26 March 2026<br>
update mirrors<br> revert back doc on js with CSP sites<br>
<pre></pre> <pre></pre>
</p> </p>
@ -100,7 +108,7 @@ update mirrors<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

501
en/search.md Normal file
View file

@ -0,0 +1,501 @@
---
title: Search engine query URLs
date: 2024-12-03
log: |
Add AI engines
---
Clicking the following search engine configuration links (or append the link text to the file "home5.search") installs search engines with [uweb browser](../index.html#). [ebrowser](../ebrowserreadme/index.html#) users can change the engine name to be shorter (ex. 2 alphabets) as shortcut (click the link below and choose 'Cancel' to have a chance to modify the engine name in address bar).
[AI](#aiSE) [Recommended](#mainSE) [Common](#commonSE) [Language](#langSE) [Science](#textbookSE) [More](#moreSE) [Medical](#medicalSE) [Scholar](#scholarSE) [Dev](#devSE) [Local](#localSE)
<a id="aiSE">AI</a> (Appending "%250D" after "%s" as ENTER for uweb or "%0D" for ebrowser):
<a href="i:00gemini:https://gemini.google.com/app?q=">gemini:https://gemini.google.com/app?q=</a>
<a href="i:00gAI:https://google.com/search?udm=50&q=">gAI:https://google.com/search?udm=50&q=</a>
<a href="i:00copilot:https://copilot.microsoft.com/?q=">copilot:https://copilot.microsoft.com/?q=</a>
<a href="i:00felo:https://felo.ai/search?q=">felo:https://felo.ai/search?q=</a>
<a href="i:00search.sh:https://search.sh/?q=">search.sh:https://search.sh/?q=</a>
<a href="i:00z:https://chat.z.ai/?q=">z:https://chat.z.ai/?q=</a>
<a href="i:00deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s">deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s</a>
<a href="i:00grok:https://grok.com/search?q=">grok:https://grok.com/search?q=</a>
<a href="i:00meta:https://www.meta.ai/search?q=">meta:https://www.meta.ai/search?q=</a>
<a href="i:00aoyo:https://aoyo.ai/search/?q=">aoyo:https://aoyo.ai/search/?q=</a>
<a href="i:00monica.im:https://monica.im/home/chat/deepseek-r1/deepseek_reasoner?q=">monica.im:https://monica.im/home/chat/deepseek-r1/deepseek_reasoner?q=</a>
<a href="i:00monica:https://monica.so/answers?q=">monica:https://monica.so/answers?q=</a>
<a href="i:00giz:https://app.giz.ai/assistant?mode=chat&prompt=">giz:https://app.giz.ai/assistant?mode=chat&prompt=</a>
<a href="i:00longcat:i:0/js/uweb2edit.js:https://longcat.chat/#uweb=%3Cp%3E%s%3C/p%3E">longcat:i:0/js/uweb2edit.js:https://longcat.chat/#uweb=%3Cp%3E%s%3C/p%3E</a>
<a href="i:00lmarena:i:0/js/uwebset.js:https://lmarena.ai/#uweb=%s">lmarena:i:0/js/uwebset.js:https://lmarena.ai/#uweb=%s</a>
<a href="i:00miromind:i:0/js/uwebset.js:https://dr.miromind.ai/#uweb=%s">miromind:i:0/js/uwebset.js:https://dr.miromind.ai/#uweb=%s</a>
<a href="i:00txyz:i:0/js/uwebset.js:https://app.txyz.ai#uweb=%s">txyz:i:0/js/uwebset.js:https://app.txyz.ai#uweb=%s</a>
<a href="i:00komo:i:0/js/uwebset.js:https://komo.ai#uweb=%s">komo:i:0/js/uwebset.js:https://komo.ai#uweb=%s</a>
<a href="i:00solab:i:0/js/uwebset.js:https://www.solab.ai#uweb=%s">solab:i:0/js/uwebset.js:https://www.solab.ai#uweb=%s</a>
<a href="i:00isou:https://isou.chat/search?q=">isou:https://isou.chat/search?q=</a>
<a href="i:00bagoodex:https://bagoodex.io/search?q=">bagoodex:https://bagoodex.io/search?q=</a>
<a href="i:00andi:https://andisearch.com/?q=">andi:https://andisearch.com/?q=</a>
<a href="i:00scira:https://scira.ai/?q=">scira:https://scira.ai/?q=</a>
<a href="i:00gigabrain:https://thegigabrain.com/search/">gigabrain:https://thegigabrain.com/search/</a>
<a href="i:00liner:https://getliner.com?q=">liner:https://getliner.com?q=</a>
<a href="i:00lenso:https://lenso.ai/en/search-by-text?type=relatedText&desc=">lenso:https://lenso.ai/en/search-by-text?type=relatedText&desc=</a>
<a href="i:00phind:https://www.phind.com/search?q=">phind:https://www.phind.com/search?q=</a>
<a href="i:00xanswer:https://www.xanswer.com/search?q=">xanswer:https://www.xanswer.com/search?q=</a>
<a href="i:00mistral:https://chat.mistral.ai/chat?q=">mistral:https://chat.mistral.ai/chat?q=</a>
<a href="i:00mindfulq:https://www.mindfulq.com/s?q=">mindfulq:https://www.mindfulq.com/s?q=</a>
<a href="i:00searchgptool:https://searchgptool.ai/search?q=">searchgptool:https://searchgptool.ai/search?q=</a>
<a href="i:00iask:https://iask.ai/?q=">iask:https://iask.ai/?q=</a>
<a href="i:00perplexity:https://www.perplexity.ai/?q=">perplexity:https://www.perplexity.ai/?q=</a>
<a href="i:00youChat:https://you.com/search?tbm=youchat&q=">youChat:https://you.com/search?tbm=youchat&q=</a>
<a href="i:00youWrite:https://you.com/search?tbm=youwrite&q=">youWrite:https://you.com/search?tbm=youwrite&q=</a>
<a href="i:00youImagine:https://you.com/search?tbm=imagine&q=">youImagine:https://you.com/search?tbm=imagine&q=</a>
<a href="i:00you:https://you.com/search?q=">you:https://you.com/search?q=</a>
<a href="i:00xdash:https://www.xdash.ai/search?q=">xdash:https://www.xdash.ai/search?q=</a>
<a href="i:00medisearch:https://medisearch.io/results/">medisearch:https://medisearch.io/results/</a>
<a href="i:00consensus:https://consensus.app/results/?synthesize=on&q=">consensus:https://consensus.app/results/?synthesize=on&q=</a>
<a href="i:00yoursearch:https://app.yoursearch.ai/?q=">yoursearch:https://app.yoursearch.ai/?q=</a>
<a href="i:00awesomerepo:https://www.awesome-repositories.com/s/results-with-ai/">awesomerepo:https://www.awesome-repositories.com/s/results-with-ai/</a>
<a href="i:00searchGPT:https://chatgpt.com?hints=search&q=">searchGPT:https://chatgpt.com?hints=search&q=</a>
<a href="i:00claude:https://claude.ai/new?q=">claude:https://claude.ai/new?q=</a>
<a href="i:00floatsearch:i:0/js/uweb2ta.js:https://floatsearch.ai#uweb=%s">floatsearch:i:0/js/uweb2ta.js:https://floatsearch.ai#uweb=%s</a>
<a href="i:00morphic:i:0/js/uweb2ta.js:https://www.morphic.sh#uweb=%s">morphic:i:0/js/uweb2ta.js:https://www.morphic.sh#uweb=%s</a>
<a href="i:00lambda:i:0/js/uweb2ta.js:https://lambda.chat/chatui/#uweb=%s">lambda:i:0/js/uweb2ta.js:https://lambda.chat/chatui/#uweb=%s</a>
<a href="i:00blackbox:https://www.blackbox.ai/?q=">blackbox:https://www.blackbox.ai/?q=</a>
<a href="i:00EBAI:i:0/js/uweb2input.js:https://www.britannica.com/chatbot#uweb=%s">EBAI:i:0/js/uweb2input.js:https://www.britannica.com/chatbot#uweb=%s</a>
<a href="i:00graphthem:i:0/js/uweb2input.js:https://graphthem.com/search?#uweb=%s">graphthem:i:0/js/uweb2input.js:https://graphthem.com/search?#uweb=%s</a>
<a href="i:00correkt:i:0/js/uweb2ta.js:https://correkt.ai#uweb=%s">correkt:i:0/js/uweb2ta.js:https://correkt.ai#uweb=%s</a>
<a href="i:00devv:i:0/js/uweb2edit.js:https://devv.ai#uweb=%3Cp%3E%s%3C/p%3E">devv:i:0/js/uweb2edit.js:https://devv.ai#uweb=%3Cp%3E%s%3C/p%3E</a>
<a href="i:00duck.ai:https://duckduckgo.com?ia=chat&q=">duck.ai:https://duckduckgo.com?ia=chat&q=</a>
<a href="i:00lepton:i:0/js/uweb2input.js:https://search.lepton.run/#uweb=%s">lepton:i:0/js/uweb2input.js:https://search.lepton.run/#uweb=%s</a>
<a href="i:00stepfun:i:0/js/uwebset.js:https://www.stepfun.com/chats/new#uweb=%s">stepfun:i:0/js/uwebset.js:https://www.stepfun.com/chats/new#uweb=%s</a>
<a href="i:00poe:https://poe.com/DeepSeek-R1?q=">poe:https://poe.com/DeepSeek-R1?q=</a>
<a href="i:00t3:https://www.t3.chat/new?q=">t3:https://www.t3.chat/new?q=</a>
AI (The search tab must not be in background. Appending "%250D" after "%s" as ENTER for uweb or "%0D" for ebrowser.)
<a href="i:00hika:i:0/js/uweb2input2.js:https://hika.fyi/search#uweb=%s">hika:i:0/js/uweb2input2.js:https://hika.fyi/search#uweb=%s</a>
<a id="mainSE">Recommended engines</a>
<a href="i:00Engines:i:40%s_00">Engines:i:40%s_00</a>
<a href="i:00bing image:http://bing.com/images/search?q=">bing image:http://bing.com/images/search?q=</a>
<a href="i:00google image:http://www.google.com/images?as_q=">google image:http://www.google.com/images?as_q=</a>
<a href="i:00flickr:http://www.flickr.com/photos/tags/">flickr:http://www.flickr.com/photos/tags/</a>
<a href="i:00Yandex image:https://yandex.com/images/search?text=">Yandex image:https://yandex.com/images/search?text=</a>
<a href="i:00wiki:https://en.wikipedia.org/wiki/Special:Search?search=">wiki:https://en.wikipedia.org/wiki/Special:Search?search=</a>
<a href="i:00wikipedia:http://en.wikipedia.org/?search=">wikipedia:http://en.wikipedia.org/?search=</a>
<a href="i:00wikifull:http://en.wikipedia.org/wiki/Special:Search?fulltext=Search&search=">wikifull:http://en.wikipedia.org/wiki/Special:Search?fulltext=Search&search=</a>
<a href="i:00Youtube:https://www.youtube.com/results?search_query=">Youtube:https://www.youtube.com/results?search_query=</a>
<a href="i:00eBay:https://www.ebay.com/sch/i.html?_nkw=">eBay:https://www.ebay.com/sch/i.html?_nkw=</a>
<a href="i:00Quora:https://www.quora.com/search?q=">Quora:https://www.quora.com/search?q=</a>
<a href="i:00Pinterest:https://www.pinterest.com/search/pins/?q=">Pinterest:https://www.pinterest.com/search/pins/?q=</a>
<a href="i:00LinkedIn:https://www.linkedin.com/search/results/all/?keywords=">LinkedIn:https://www.linkedin.com/search/results/all/?keywords=</a>
<a href="i:00Netflix:https://www.netflix.com/search?q=">Netflix:https://www.netflix.com/search?q=</a>
<a href="i:00Spotify:https://open.spotify.com/search/">Spotify:https://open.spotify.com/search/</a>
<a href="i:00Medium:https://medium.com/search?q=">Medium:https://medium.com/search?q=</a>
<a href="i:00TripAdvisor:https://www.tripadvisor.com/Search?q=">TripAdvisor:https://www.tripadvisor.com/Search?q=</a>
<a href="i:00incaption:https://incaptions.com/">incaption:https://incaptions.com/</a>
<a href="i:00answer:http://mobile.answers.com/">answer:http://mobile.answers.com/</a>
<a href="i:00twitter:https://twitter.com/search?q=">twitter:https://twitter.com/search?q=</a>
<a href="i:00Facebook:https://www.facebook.com/search/str/%s/keywords_search">Facebook:https://www.facebook.com/search/str/%s/keywords_search</a>
<a href="i:00Instagram:https://www.instagram.com/explore/tags/%s/">Instagram:https://www.instagram.com/explore/tags/%s/</a>
<a href="i:00social-search:https://www.social-searcher.com/social-buzz/?q5=">social-search:https://www.social-searcher.com/social-buzz/?q5=</a>
<a href="i:00reddit:http://reddit.com/search?q=">reddit:http://reddit.com/search?q=</a>
<a href="i:00boardreader:https://boardreader.com/s/%s.html">boardreader:https://boardreader.com/s/%s.html</a>
<a href="i:00bingvideo:https://www.bing.com/videos/search?q=">bingvideo:https://www.bing.com/videos/search?q=</a>
<a href="i:00vsearch:https://www.vsearch.me/s?q=">vsearch:https://www.vsearch.me/s?q=</a>
<a href="i:00crowdview:https://crowdview.ai/search?q=">crowdview:https://crowdview.ai/search?q=</a>
<a href="i:00forumscout:https://forumscout.app/search?q=">forumscout:https://forumscout.app/search?q=</a>
<a href="i:00groups:http://groups.google.com/groups/search?q=">groups:http://groups.google.com/groups/search?q=</a>
<a href="i:00wolfram:https://www.wolframalpha.com/input/?i=">wolfram:https://www.wolframalpha.com/input/?i=</a>
<a href="i:00fxsolver:https://www.fxsolver.com/browse/?q=">fxsolver:https://www.fxsolver.com/browse/?q=</a>
<a href="i:00book_google:https://google.com/search?q=%22parent+directory%22+pdf+OR+epub+OR+DjVU+OR+xps+%22%s%22+-html+-htm+-shtml+-phtml+-php+-buy+-aspx+-jsp+-asp+-cgi+-pdf+-ftp+-unknownsecret&num=100&filter=0">book_google:https://google.com/search?q=%22parent+directory%22+pdf+OR+epub+OR+DjVU+OR+xps+%22%s%22+-html+-htm+-shtml+-phtml+-php+-buy+-aspx+-jsp+-asp+-cgi+-pdf+-ftp+-unknownsecret&num=100&filter=0</a>
<a href="i:00annas-archive:https://annas-archive.org/search?q=">annas-archive:https://annas-archive.org/search?q=</a>
<a href="i:00libgen:http://gen.lib.rus.ec/search.php?req=">libgen:http://gen.lib.rus.ec/search.php?req=</a>
<a href="i:00google_file:https://google.com/search?q=intitle:index.of+%22parent+directory%22+">google_file:https://google.com/search?q=intitle:index.of+%22parent+directory%22+</a>
<a href="i:00apkcombo:https://apkcombo.com/search/">apkcombo:https://apkcombo.com/search/</a>
Note: "Engines" needs file "engine.search"whose format is same as "home.search" except that the keyword part of url must be denoted with "%s". Pressing the right arrow button on the search result page will automatically query with next engine in the file.
<a id="commonSE">Common engines</a>:
<a href="i:00google:https://google.com/search?q=">google:https://google.com/search?q=</a>
<a href="i:00udm14:https://google.com/search?udm=14&q=">udm14:https://google.com/search?udm=14&q=</a>
<a href="i:00bing:http://www.bing.com/search?q=">bing:http://www.bing.com/search?q=</a>
<a href="i:00exa:https://exa.ai/search?c=all&q=">exa:https://exa.ai/search?c=all&q=</a>
<a href="i:00togoda:https://togoda.com/search?query=">togoda:https://togoda.com/search?query=</a>
<a href="i:00marginalia:https://search.marginalia.nu/search?query=">marginalia:https://search.marginalia.nu/search?query=</a>
<a href="i:00mojeek:https://www.mojeek.com/search?q=">mojeek:https://www.mojeek.com/search?q=</a>
<a href="i:00rightdao:https://rightdao.com/search?q=">rightdao:https://rightdao.com/search?q=</a>
<a href="i:00yep:https://yep.com/web?q=">yep:https://yep.com/web?q=</a>
<a href="i:00seznam:https://search.seznam.cz/?q=">seznam:https://search.seznam.cz/?q=</a>
<a href="i:00metager:https://metager.org/meta/meta.ger3?eingabe=">metager:https://metager.org/meta/meta.ger3?eingabe=</a>
<a href="i:00brave:https://search.brave.com/search?q=">brave:https://search.brave.com/search?q=</a>
<a href="i:00ellpedia:https://en.ellpedia.com/search?q=">ellpedia:https://en.ellpedia.com/search?q=</a>
<a href="i:00gemini:https://portal.mozz.us/gemini/geminispace.info/search%3F">gemini:https://portal.mozz.us/gemini/geminispace.info/search%3F</a>
<a href="i:00waldo:https://waldo.com/search?q=">waldo:https://waldo.com/search?q=</a>
<a href="i:00xda:https://www.xda-developers.com/search/">xda:https://www.xda-developers.com/search/</a>
<a href="i:00pix:https://www.google.com/search?tbm=isch&q=">pix:https://www.google.com/search?tbm=isch&q=</a>
<a href="i:00youtube:https://youtube.com/results?search_query=">youtube:https://youtube.com/results?search_query=</a>
<a href="i:00news:https://news.search.yahoo.com/search/news?p=">news:https://news.search.yahoo.com/search/news?p=</a>
<a href="i:00stock:https://finance.yahoo.com/quote/">stock:https://finance.yahoo.com/quote/</a>
<a href="i:00amazon:https://www.amazon.com/s/?field-keywords=">amazon:https://www.amazon.com/s/?field-keywords=</a>
<a href="i:00weather:https://www.wunderground.com/cgi-bin/findweather/getForecast?query=">weather:https://www.wunderground.com/cgi-bin/findweather/getForecast?query=</a>
<a href="i:00IMDB:https://www.imdb.com/find?q=">IMDB:https://www.imdb.com/find?q=</a>
<a href="i:00film review:https://www.rottentomatoes.com/search/?search=">film review:https://www.rottentomatoes.com/search/?search=</a>
<a href="i:00goodreads:https://www.goodreads.com/search?query=">goodreads:https://www.goodreads.com/search?query=</a>
<a href="i:00audible:http://www.audible.com/search?sort=review-rank&advsearchKeywords=">audible:http://www.audible.com/search?sort=review-rank&advsearchKeywords=</a>
<a href="i:00audiobay:http://audiobookbay.se/?s=">audiobay:http://audiobookbay.se/?s=</a>
<a href="i:00telegramsearcher:https://telegramsearcher.com/search?q=">telegramsearcher:https://telegramsearcher.com/search?q=</a>
<a href="i:00lyzem:https://lyzem.com/search?q=">lyzem:https://lyzem.com/search?q=</a>
<a id="langSE">language</a>:
<a href="i:00webster1913:https://www.websters1913.com/words/">webster1913:https://www.websters1913.com/words/</a>
<a href="i:00merriam-webster:https://www.merriam-webster.com/dictionary/">merriam-webster:https://www.merriam-webster.com/dictionary/</a>
<a href="i:00dictionary:https://www.dictionary.com/browse/">dictionary:https://www.dictionary.com/browse/</a>
<a href="i:00freedictionary:https://www.thefreedictionary.com/">freedictionary:https://www.thefreedictionary.com/</a>
<a href="i:00legal_fd:https://legal-dictionary.thefreedictionary.com/">legal_fd:https://legal-dictionary.thefreedictionary.com/</a>
<a href="i:00finance_fd:https://financial-dictionary.thefreedictionary.com/">finance_fd:https://financial-dictionary.thefreedictionary.com/</a>
<a href="i:00wikipedia_fd:https://encyclopedia.thefreedictionary.com/">wikipedia_fd:https://encyclopedia.thefreedictionary.com/</a>
<a href="i:00encyclopedia_fd:https://encyclopedia2.thefreedictionary.com/">encyclopedia_fd:https://encyclopedia2.thefreedictionary.com/</a>
<a href="i:00wordreference:https://www.wordreference.com/definition/">wordreference:https://www.wordreference.com/definition/</a>
<a href="i:00vocabulary:https://www.vocabulary.com/dictionary/">vocabulary:https://www.vocabulary.com/dictionary/</a>
<a href="i:00etymology:https://www.etymonline.com/search?q=">etymology:https://www.etymonline.com/search?q=</a>
<a href="i:00powerthesaurus:https://www.powerthesaurus.org/%s/synonyms">powerthesaurus:https://www.powerthesaurus.org/%s/synonyms</a>
<a href="i:00macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&q=">macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&q=</a>
<a href="i:00ludwig:https://ludwig.guru/s/">ludwig:https://ludwig.guru/s/</a>
<a href="i:00webster:https://www.merriam-webster.com/dictionary/">webster:https://www.merriam-webster.com/dictionary/</a>
<a href="i:00googledict:http://googledictionary.freecollocation.com/meaning?word=">googledict:http://googledictionary.freecollocation.com/meaning?word=</a>
<a href="i:00freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&Voice=ru-RU-Standard-A&id=undefined&type=0&TextMessage=">freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&Voice=ru-RU-Standard-A&id=undefined&type=0&TextMessage=</a>
<a href="i:00freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&Voice=ar-XA-Standard-A&id=undefined&type=0&TextMessage=">freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&Voice=ar-XA-Standard-A&id=undefined&type=0&TextMessage=</a>
<a id="textbookSE">Science</a>:
<a href="i:00britannica:https://www.britannica.com/search?query=">britannica:https://www.britannica.com/search?query=</a>
<a href="i:00mathRef:https://reference.wolfram.com/search/?q=">mathRef:https://reference.wolfram.com/search/?q=</a>
<a href="i:00mathSE:https://math.stackexchange.com/search?q=">mathSE:https://math.stackexchange.com/search?q=</a>
<a href="i:00phySE:https://physics.stackexchange.com/search?q=">phySE:https://physics.stackexchange.com/search?q=</a>
<a href="i:00physicsForum:https://www.physicsforums.com/search/2195918/?q=">physicsForum:https://www.physicsforums.com/search/2195918/?q=</a>
<a href="i:00pubchem SMILES:https://pubchem.ncbi.nlm.nih.gov/#input_type=smiles&query=">pubchem SMILES:https://pubchem.ncbi.nlm.nih.gov/#input_type=smiles&query=</a>
<a href="i:00pubchem:https://pubchem.ncbi.nlm.nih.gov/#query=">pubchem:https://pubchem.ncbi.nlm.nih.gov/#query=</a>
<a href="i:00chemSE:https://chemistry.stackexchange.com/search?q=">chemSE:https://chemistry.stackexchange.com/search?q=</a>
<a href="i:00chem:https://www.ncbi.nlm.nih.gov/pccompound?term=">chem:https://www.ncbi.nlm.nih.gov/pccompound?term=</a>
<a href="i:00proofwiki:https://proofwiki.org/w/index.php?search=">proofwiki:https://proofwiki.org/w/index.php?search=</a>
<a href="i:00physics:http://www.physics.org/explore-results-all.asp?q=">physics:http://www.physics.org/explore-results-all.asp?q=</a>
<a href="i:00biology:https://www.biologyonline.com/dictionary/">biology:https://www.biologyonline.com/dictionary/</a>
<a href="i:00nist chem:https://webbook.nist.gov/cgi/cbook.cgi?Formula=">nist chem:https://webbook.nist.gov/cgi/cbook.cgi?Formula=</a>
<a href="i:00chemiday:https://chemiday.com/search/?lang=en&q=">chemiday:https://chemiday.com/search/?lang=en&q=</a>
<a href="i:00chem.libretexts:https://chem.libretexts.org/Special:Search?q=">chem.libretexts:https://chem.libretexts.org/Special:Search?q=</a>
<a href="i:00bio.libretexts:https://bio.libretexts.org/Special:Search?q=">bio.libretexts:https://bio.libretexts.org/Special:Search?q=</a>
<a href="i:00phys.libretexts:https://phys.libretexts.org/Special:Search?q=">phys.libretexts:https://phys.libretexts.org/Special:Search?q=</a>
<a href="i:00med.libretexts:https://med.libretexts.org/Special:Search?q=">med.libretexts:https://med.libretexts.org/Special:Search?q=</a>
<a href="i:00math.libretexts:https://math.libretexts.org/Special:Search?q=">math.libretexts:https://math.libretexts.org/Special:Search?q=</a>
<a href="i:00stats.libretexts:https://stats.libretexts.org/Special:Search?q=">stats.libretexts:https://stats.libretexts.org/Special:Search?q=</a>
<a href="i:00geo.libretexts:https://geo.libretexts.org/Special:Search?q=">geo.libretexts:https://geo.libretexts.org/Special:Search?q=</a>
<a href="i:00eng.libretexts:https://eng.libretexts.org/Special:Search?q=">eng.libretexts:https://eng.libretexts.org/Special:Search?q=</a>
<a href="i:00biz.libretexts:https://biz.libretexts.org/Special:Search?q=">biz.libretexts:https://biz.libretexts.org/Special:Search?q=</a>
<a href="i:00human.libretexts:https://human.libretexts.org/Special:Search?q=">human.libretexts:https://human.libretexts.org/Special:Search?q=</a>
<a href="i:00socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=">socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=</a>
<a href="i:00workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=">workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=</a>
<a id="moreSE">More engines</a>:
<a href="i:00oscobo:https://www.oscobo.com/search.php?q=">oscobo:https://www.oscobo.com/search.php?q=</a>
<a href="i:00lycos:https://search.lycos.com/web/?q=">lycos:https://search.lycos.com/web/?q=</a>
<a href="i:00technorati:http://technorati.com/search/index.php?q=">technorati:http://technorati.com/search/index.php?q=</a>
<a href="i:00qwant:https://lite.qwant.com/?q=">qwant:https://lite.qwant.com/?q=</a>
<a href="i:00swisscows:https://swisscows.com/web?query=">swisscows:https://swisscows.com/web?query=</a>
<a href="i:00ecosia:https://www.ecosia.org/search?q=">ecosia:https://www.ecosia.org/search?q=</a>
<a href="i:00ghostery:https://ghosterysearch.com/search?q=">ghostery:https://ghosterysearch.com/search?q=</a>
<a href="i:00izito:https://www.izito.com/search?q=">izito:https://www.izito.com/search?q=</a>
<a href="i:00duck:https://duckduckgo.com/?q=">duck:https://duckduckgo.com/?q=</a>
<a href="i:00presearch:https://presearch.com/search?q=">presearch:https://presearch.com/search?q=</a>
<a href="i:00yandex:https://yandex.com/search/?text=">yandex:https://yandex.com/search/?text=</a>
<a href="i:00searx:https://searx.be/?q=">searx:https://searx.be/?q=</a>
<a href="i:00startpage:https://startpage.com/do/search?query=">startpage:https://startpage.com/do/search?query=</a>
<a href="i:00gibiru:https://gibiru.com/results.html?q=">gibiru:https://gibiru.com/results.html?q=</a>
<a href="i:00zapmeta:https://www.zapmeta.com/search?q=">zapmeta:https://www.zapmeta.com/search?q=</a>
<a id="medicalSE">Medical</a>:
<a href="i:00medical_freedict:https://medical-dictionary.thefreedictionary.com/">medical_freedict:https://medical-dictionary.thefreedictionary.com/</a>
<a href="i:00merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=">merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=</a>
<a href="i:00openmd:https://openmd.com/search?q=">openmd:https://openmd.com/search?q=</a>
<a href="i:00radiopaedia:https://radiopaedia.org/search?q=">radiopaedia:https://radiopaedia.org/search?q=</a>
<a href="i:00medical-dict:https://medical-dictionary.com/results.php?term=">medical-dict:https://medical-dictionary.com/results.php?term=</a>
<a href="i:00ncbiBooks:https://www.ncbi.nlm.nih.gov/books/?term=">ncbiBooks:https://www.ncbi.nlm.nih.gov/books/?term=</a>
<a href="i:00healio:https://journals.healio.com/action/doSearch?AllField=">healio:https://journals.healio.com/action/doSearch?AllField=</a>
<a href="i:00pubmed:https://pubmed.ncbi.nlm.nih.gov/?term=">pubmed:https://pubmed.ncbi.nlm.nih.gov/?term=</a>
<a href="i:00pmc:https://www.ncbi.nlm.nih.gov/pmc/?term=">pmc:https://www.ncbi.nlm.nih.gov/pmc/?term=</a>
<a href="i:00Tabers:https://www.tabers.com/tabersonline/search?st=OSS&q=">Tabers:https://www.tabers.com/tabersonline/search?st=OSS&q=</a>
<a href="i:00medicinenet:https://www.medicinenet.com/%s/definition.htm">medicinenet:https://www.medicinenet.com/%s/definition.htm</a>
Torrent:
<a href="i:00aio:https://www.aiosearch.com/search/4/Torrents/">aio:https://www.aiosearch.com/search/4/Torrents/</a>
<a href="i:00academictorrents:https://academictorrents.com/browse.php?search=">academictorrents:https://academictorrents.com/browse.php?search=</a>
<a href="i:00piratebay:https://thepiratebay.org/search/%s/0/7/0">piratebay:https://thepiratebay.org/search/%s/0/7/0</a>
<a href="i:00katcr:https://katcr.to/search/">katcr:https://katcr.to/search/</a>
<a href="i:001337x:https://1337x.to/search/%s/1/">1337x:https://1337x.to/search/%s/1/</a>
<a id="scholarSE">Scholar</a>:
<a href="i:00classcentral:https://www.classcentral.com/search?q=">classcentral:https://www.classcentral.com/search?q=</a>
<a href="i:00base:https://www.base-search.net/Search/Results?lookfor=">base:https://www.base-search.net/Search/Results?lookfor=</a>
<a href="i:00science.gov:POST:fullRecord=%s:https://www.science.gov/scigov/search.html">science.gov:POST:fullRecord=%s:https://www.science.gov/scigov/search.html</a>
<a href="i:00sweetsearch:https://sweetsearch.com/search?q=">sweetsearch:https://sweetsearch.com/search?q=</a>
<a href="i:00refseek:https://www.refseek.com/search?q=">refseek:https://www.refseek.com/search?q=</a>
<a href="i:00google scholar:https://scholar.google.com/scholar?q=">google scholar:https://scholar.google.com/scholar?q=</a>
<a href="i:00bing academic:http://bing.com/academic/search?q=">bing academic:http://bing.com/academic/search?q=</a>
<a href="i:00core:https://core.ac.uk/search?q=">core:https://core.ac.uk/search?q=</a>
<a href="i:00semanticscholar:https://www.semanticscholar.org/search?sort=relevance&q=">semanticscholar:https://www.semanticscholar.org/search?sort=relevance&q=</a>
<a href="i:00xueshu:https://xueshu.baidu.com/s?wd=">xueshu:https://xueshu.baidu.com/s?wd=</a>
<a href="i:00oalib:https://www.oalib.com/search?kw=">oalib:https://www.oalib.com/search?kw=</a>
<a href="i:00connectedpapers:https://www.connectedpapers.com/search?q=">connectedpapers:https://www.connectedpapers.com/search?q=</a>
<a id="devSE">Developer</a>:
<a href="i:00devdocs:https://devdocs.io/#q=">devdocs:https://devdocs.io/#q=</a>
<a href="i:00grep.app:https://grep.app/search?q=">grep.app:https://grep.app/search?q=</a>
<a href="i:00git:https://github.com/search?type=Repositories&amp;q=">git:https://github.com/search?type=Repositories&amp;q=</a>
<a href="i:00man:http://man.cx/">man:http://man.cx/</a>
<a href="i:00code:http://searchcode.com/?q=">code:http://searchcode.com/?q=</a>
<a href="i:00symbolhound:http://symbolhound.com/?q=">symbolhound:http://symbolhound.com/?q=</a>
<a href="i:00vector:https://vector.me/search/">vector:https://vector.me/search/</a>
<a href="i:00jsdelivr:http://www.jsdelivr.com/?query=">jsdelivr:http://www.jsdelivr.com/?query=</a>
<a href="i:00greasyfork:https://greasyfork.org/en/scripts?sort=updated&q=">greasyfork:https://greasyfork.org/en/scripts?sort=updated&q=</a>
app:
<a href="i:00App store:market://search?q=">App store:market://search?q=</a>
<a id="localSE">local engines</a>(May need termux customized edition and tools like bcgnuplot etc.):
<a href="i:00bc:d:text/html:echo \'%s\'|bc -l -q:">bc:d:text/html:echo \'%s\'|bc -l -q:</a>
<a href="i:002D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; plot %s\':">2D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; plot %s\':</a>
<a href="i:003D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; splot %s\':">3D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; splot %s\':</a>
[Search engine files](../searchcat/index.html#)
More at:
[alternativeto](https://alternativeto.net/software/google-search/?feature=web-search)

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/search/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Search engines</title> <title>Search engine query URLs</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -40,33 +41,76 @@
<br /> <br />
<div class="container"> <div class="container">
<h1 class="title">Search engines <h1 class="title">Search engine query URLs
<br> <br>
<span class="subtitle"></span> <span class="subtitle"></span>
</h1> </h1>
<ul class="tags"> <ul class="tags">
</ul> </ul>
<p>Clicking the following links to install search engines with <a href="../index.html#">uweb browser</a>. <a href="../ebrowserreadme/index.html#">ebrowser</a> users can change the engine name to be shorter (ex. 2 alphabets) as shortcut (click the link below and choose 'Cancel' to have a chance to modify the engine name in address bar).</p> <p>Clicking the following search engine configuration links (or append the link text to the file &quot;home5.search&quot;) installs search engines with <a href="../index.html#">uweb browser</a>. <a href="../ebrowserreadme/index.html#">ebrowser</a> users can change the engine name to be shorter (ex. 2 alphabets) as shortcut (click the link below and choose 'Cancel' to have a chance to modify the engine name in address bar).</p>
<p>AI:<br> <p><a href="#aiSE">AI</a> <a href="#mainSE">Recommended</a> <a href="#commonSE">Common</a> <a href="#langSE">Language</a> <a href="#textbookSE">Science</a> <a href="#moreSE">More</a> <a href="#medicalSE">Medical</a> <a href="#scholarSE">Scholar</a> <a href="#devSE">Dev</a> <a href="#localSE">Local</a></p>
<a href="i:00andi:https://andisearch.com/?q=">andi:https://andisearch.com/?q=</a></p> <p><a id="aiSE">AI</a> (Appending &quot;%250D&quot; after &quot;%s&quot; as ENTER for uweb or &quot;%0D&quot; for ebrowser):<br>
<p><a href="i:00thinkany:https://thinkany.so/search?q=">thinkany:https://thinkany.so/search?q=</a></p> <a href="i:00gemini:https://gemini.google.com/app?q=">gemini:https://gemini.google.com/app?q=</a></p>
<p><a href="i:00phind:https://phind-ai.com/search?q=">phind:https://phind-ai.com/search?q=</a></p> <p><a href="i:00gAI:https://google.com/search?udm=50&q=">gAI:https://google.com/search?udm=50&amp;q=</a></p>
<p><a href="i:00copilot:https://copilot.microsoft.com/?q=">copilot:https://copilot.microsoft.com/?q=</a></p>
<p><a href="i:00felo:https://felo.ai/search?q=">felo:https://felo.ai/search?q=</a></p>
<p><a href="i:00search.sh:https://search.sh/?q=">search.sh:https://search.sh/?q=</a></p>
<p><a href="i:00z:https://chat.z.ai/?q=">z:https://chat.z.ai/?q=</a></p>
<p><a href="i:00deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s">deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s</a></p>
<p><a href="i:00grok:https://grok.com/search?q=">grok:https://grok.com/search?q=</a></p>
<p><a href="i:00meta:https://www.meta.ai/search?q=">meta:https://www.meta.ai/search?q=</a></p>
<p><a href="i:00aoyo:https://aoyo.ai/search/?q=">aoyo:https://aoyo.ai/search/?q=</a></p>
<p><a href="i:00monica.im:https://monica.im/home/chat/deepseek-r1/deepseek_reasoner?q=">monica.im:https://monica.im/home/chat/deepseek-r1/deepseek_reasoner?q=</a></p>
<p><a href="i:00monica:https://monica.so/answers?q=">monica:https://monica.so/answers?q=</a></p>
<p><a href="i:00giz:https://app.giz.ai/assistant?mode=chat&prompt=">giz:https://app.giz.ai/assistant?mode=chat&amp;prompt=</a></p>
<p><a href="i:00longcat:i:0/js/uweb2edit.js:https://longcat.chat/#uweb=%3Cp%3E%s%3C/p%3E">longcat:i:0/js/uweb2edit.js:https://longcat.chat/#uweb=%3Cp%3E%s%3C/p%3E</a></p>
<p><a href="i:00lmarena:i:0/js/uwebset.js:https://lmarena.ai/#uweb=%s">lmarena:i:0/js/uwebset.js:https://lmarena.ai/#uweb=%s</a></p>
<p><a href="i:00miromind:i:0/js/uwebset.js:https://dr.miromind.ai/#uweb=%s">miromind:i:0/js/uwebset.js:https://dr.miromind.ai/#uweb=%s</a></p>
<p><a href="i:00txyz:i:0/js/uwebset.js:https://app.txyz.ai#uweb=%s">txyz:i:0/js/uwebset.js:https://app.txyz.ai#uweb=%s</a></p>
<p><a href="i:00komo:i:0/js/uwebset.js:https://komo.ai#uweb=%s">komo:i:0/js/uwebset.js:https://komo.ai#uweb=%s</a></p>
<p><a href="i:00solab:i:0/js/uwebset.js:https://www.solab.ai#uweb=%s">solab:i:0/js/uwebset.js:https://www.solab.ai#uweb=%s</a></p>
<p><a href="i:00isou:https://isou.chat/search?q=">isou:https://isou.chat/search?q=</a></p>
<p><a href="i:00bagoodex:https://bagoodex.io/search?q=">bagoodex:https://bagoodex.io/search?q=</a></p>
<p><a href="i:00andi:https://andisearch.com/?q=">andi:https://andisearch.com/?q=</a></p>
<p><a href="i:00scira:https://scira.ai/?q=">scira:https://scira.ai/?q=</a></p>
<p><a href="i:00gigabrain:https://thegigabrain.com/search/">gigabrain:https://thegigabrain.com/search/</a></p>
<p><a href="i:00liner:https://getliner.com?q=">liner:https://getliner.com?q=</a></p>
<p><a href="i:00lenso:https://lenso.ai/en/search-by-text?type=relatedText&desc=">lenso:https://lenso.ai/en/search-by-text?type=relatedText&amp;desc=</a></p>
<p><a href="i:00phind:https://www.phind.com/search?q=">phind:https://www.phind.com/search?q=</a></p>
<p><a href="i:00xanswer:https://www.xanswer.com/search?q=">xanswer:https://www.xanswer.com/search?q=</a></p>
<p><a href="i:00mistral:https://chat.mistral.ai/chat?q=">mistral:https://chat.mistral.ai/chat?q=</a></p>
<p><a href="i:00mindfulq:https://www.mindfulq.com/s?q=">mindfulq:https://www.mindfulq.com/s?q=</a></p>
<p><a href="i:00searchgptool:https://searchgptool.ai/search?q=">searchgptool:https://searchgptool.ai/search?q=</a></p>
<p><a href="i:00iask:https://iask.ai/?q=">iask:https://iask.ai/?q=</a></p> <p><a href="i:00iask:https://iask.ai/?q=">iask:https://iask.ai/?q=</a></p>
<p><a href="i:00devv:https://devv.ai/search?agentMode=false&q=">devv:https://devv.ai/search?agentMode=false&amp;q=</a></p>
<p><a href="i:00perplexity:https://www.perplexity.ai/?q=">perplexity:https://www.perplexity.ai/?q=</a></p> <p><a href="i:00perplexity:https://www.perplexity.ai/?q=">perplexity:https://www.perplexity.ai/?q=</a></p>
<p><a href="i:00youChat:https://you.com/search?tbm=youchat&q=">youChat:https://you.com/search?tbm=youchat&amp;q=</a></p> <p><a href="i:00youChat:https://you.com/search?tbm=youchat&q=">youChat:https://you.com/search?tbm=youchat&amp;q=</a></p>
<p><a href="i:00youWrite:https://you.com/search?tbm=youwrite&q=">youWrite:https://you.com/search?tbm=youwrite&amp;q=</a></p> <p><a href="i:00youWrite:https://you.com/search?tbm=youwrite&q=">youWrite:https://you.com/search?tbm=youwrite&amp;q=</a></p>
<p><a href="i:00youImagine:https://you.com/search?tbm=imagine&q=">youImagine:https://you.com/search?tbm=imagine&amp;q=</a></p> <p><a href="i:00youImagine:https://you.com/search?tbm=imagine&q=">youImagine:https://you.com/search?tbm=imagine&amp;q=</a></p>
<p><a href="i:00you:https://you.com/search?q=">you:https://you.com/search?q=</a></p> <p><a href="i:00you:https://you.com/search?q=">you:https://you.com/search?q=</a></p>
<p><a href="i:00xdash:https://www.xdash.ai/search?q=">xdash:https://www.xdash.ai/search?q=</a></p>
<p><a href="i:00medisearch:https://medisearch.io/results/">medisearch:https://medisearch.io/results/</a></p> <p><a href="i:00medisearch:https://medisearch.io/results/">medisearch:https://medisearch.io/results/</a></p>
<p><a href="i:00explorer:https://explorer.globe.engineer/?q=">explorer:https://explorer.globe.engineer/?q=</a></p>
<p><a href="i:00consensus:https://consensus.app/results/?synthesize=on&q=">consensus:https://consensus.app/results/?synthesize=on&amp;q=</a></p> <p><a href="i:00consensus:https://consensus.app/results/?synthesize=on&q=">consensus:https://consensus.app/results/?synthesize=on&amp;q=</a></p>
<p><a href="i:00yoursearch:https://app.yoursearch.ai/?q=">yoursearch:https://app.yoursearch.ai/?q=</a></p> <p><a href="i:00yoursearch:https://app.yoursearch.ai/?q=">yoursearch:https://app.yoursearch.ai/?q=</a></p>
<p><a href="i:00awesomerepo:https://www.awesome-repositories.com/s/results-with-ai/">awesomerepo:https://www.awesome-repositories.com/s/results-with-ai/</a></p> <p><a href="i:00awesomerepo:https://www.awesome-repositories.com/s/results-with-ai/">awesomerepo:https://www.awesome-repositories.com/s/results-with-ai/</a></p>
<p><a href="i:00chatGPT:i:0/js/s2ta.js:https://chat.openai.com/?%s">chatGPT:i:0/js/s2ta.js:https://chat.openai.com/?%s</a></p> <p><a href="i:00searchGPT:https://chatgpt.com?hints=search&q=">searchGPT:https://chatgpt.com?hints=search&amp;q=</a></p>
<p><a href="i:00lepton:i:0/js/s2input.js:https://search.lepton.run/?%s">lepton:i:0/js/s2input.js:https://search.lepton.run/?%s</a></p> <p><a href="i:00claude:https://claude.ai/new?q=">claude:https://claude.ai/new?q=</a></p>
<p>Recommended engines (click or append any of the following to the file &quot;home5.search&quot;)<br> <p><a href="i:00floatsearch:i:0/js/uweb2ta.js:https://floatsearch.ai#uweb=%s">floatsearch:i:0/js/uweb2ta.js:https://floatsearch.ai#uweb=%s</a></p>
<p><a href="i:00morphic:i:0/js/uweb2ta.js:https://www.morphic.sh#uweb=%s">morphic:i:0/js/uweb2ta.js:https://www.morphic.sh#uweb=%s</a></p>
<p><a href="i:00lambda:i:0/js/uweb2ta.js:https://lambda.chat/chatui/#uweb=%s">lambda:i:0/js/uweb2ta.js:https://lambda.chat/chatui/#uweb=%s</a></p>
<p><a href="i:00blackbox:https://www.blackbox.ai/?q=">blackbox:https://www.blackbox.ai/?q=</a></p>
<p><a href="i:00EBAI:i:0/js/uweb2input.js:https://www.britannica.com/chatbot#uweb=%s">EBAI:i:0/js/uweb2input.js:https://www.britannica.com/chatbot#uweb=%s</a></p>
<p><a href="i:00graphthem:i:0/js/uweb2input.js:https://graphthem.com/search?#uweb=%s">graphthem:i:0/js/uweb2input.js:https://graphthem.com/search?#uweb=%s</a></p>
<p><a href="i:00correkt:i:0/js/uweb2ta.js:https://correkt.ai#uweb=%s">correkt:i:0/js/uweb2ta.js:https://correkt.ai#uweb=%s</a></p>
<p><a href="i:00devv:i:0/js/uweb2edit.js:https://devv.ai#uweb=%3Cp%3E%s%3C/p%3E">devv:i:0/js/uweb2edit.js:https://devv.ai#uweb=%3Cp%3E%s%3C/p%3E</a></p>
<p><a href="i:00duck.ai:https://duckduckgo.com?ia=chat&q=">duck.ai:https://duckduckgo.com?ia=chat&amp;q=</a></p>
<p><a href="i:00lepton:i:0/js/uweb2input.js:https://search.lepton.run/#uweb=%s">lepton:i:0/js/uweb2input.js:https://search.lepton.run/#uweb=%s</a></p>
<p><a href="i:00stepfun:i:0/js/uwebset.js:https://www.stepfun.com/chats/new#uweb=%s">stepfun:i:0/js/uwebset.js:https://www.stepfun.com/chats/new#uweb=%s</a></p>
<p><a href="i:00poe:https://poe.com/DeepSeek-R1?q=">poe:https://poe.com/DeepSeek-R1?q=</a></p>
<p><a href="i:00t3:https://www.t3.chat/new?q=">t3:https://www.t3.chat/new?q=</a></p>
<p>AI (The search tab must not be in background. Appending &quot;%250D&quot; after &quot;%s&quot; as ENTER for uweb or &quot;%0D&quot; for ebrowser.)<br>
<a href="i:00hika:i:0/js/uweb2input2.js:https://hika.fyi/search#uweb=%s">hika:i:0/js/uweb2input2.js:https://hika.fyi/search#uweb=%s</a></p>
<p><a id="mainSE">Recommended engines</a><br>
<a href="i:00Engines:i:40%s_00">Engines:i:40%s_00</a></p> <a href="i:00Engines:i:40%s_00">Engines:i:40%s_00</a></p>
<p><a href="i:00bing image:http://bing.com/images/search?q=">bing image:http://bing.com/images/search?q=</a></p> <p><a href="i:00bing image:http://bing.com/images/search?q=">bing image:http://bing.com/images/search?q=</a></p>
<p><a href="i:00google image:http://www.google.com/images?as_q=">google image:http://www.google.com/images?as_q=</a></p> <p><a href="i:00google image:http://www.google.com/images?as_q=">google image:http://www.google.com/images?as_q=</a></p>
@ -95,6 +139,7 @@
<p><a href="i:00bingvideo:https://www.bing.com/videos/search?q=">bingvideo:https://www.bing.com/videos/search?q=</a></p> <p><a href="i:00bingvideo:https://www.bing.com/videos/search?q=">bingvideo:https://www.bing.com/videos/search?q=</a></p>
<p><a href="i:00vsearch:https://www.vsearch.me/s?q=">vsearch:https://www.vsearch.me/s?q=</a></p> <p><a href="i:00vsearch:https://www.vsearch.me/s?q=">vsearch:https://www.vsearch.me/s?q=</a></p>
<p><a href="i:00crowdview:https://crowdview.ai/search?q=">crowdview:https://crowdview.ai/search?q=</a></p> <p><a href="i:00crowdview:https://crowdview.ai/search?q=">crowdview:https://crowdview.ai/search?q=</a></p>
<p><a href="i:00forumscout:https://forumscout.app/search?q=">forumscout:https://forumscout.app/search?q=</a></p>
<p><a href="i:00groups:http://groups.google.com/groups/search?q=">groups:http://groups.google.com/groups/search?q=</a></p> <p><a href="i:00groups:http://groups.google.com/groups/search?q=">groups:http://groups.google.com/groups/search?q=</a></p>
<p><a href="i:00wolfram:https://www.wolframalpha.com/input/?i=">wolfram:https://www.wolframalpha.com/input/?i=</a></p> <p><a href="i:00wolfram:https://www.wolframalpha.com/input/?i=">wolfram:https://www.wolframalpha.com/input/?i=</a></p>
<p><a href="i:00fxsolver:https://www.fxsolver.com/browse/?q=">fxsolver:https://www.fxsolver.com/browse/?q=</a></p> <p><a href="i:00fxsolver:https://www.fxsolver.com/browse/?q=">fxsolver:https://www.fxsolver.com/browse/?q=</a></p>
@ -103,25 +148,24 @@
<p><a href="i:00libgen:http://gen.lib.rus.ec/search.php?req=">libgen:http://gen.lib.rus.ec/search.php?req=</a></p> <p><a href="i:00libgen:http://gen.lib.rus.ec/search.php?req=">libgen:http://gen.lib.rus.ec/search.php?req=</a></p>
<p><a href="i:00google_file:https://google.com/search?q=intitle:index.of+%22parent+directory%22+">google_file:https://google.com/search?q=intitle:index.of+%22parent+directory%22+</a></p> <p><a href="i:00google_file:https://google.com/search?q=intitle:index.of+%22parent+directory%22+">google_file:https://google.com/search?q=intitle:index.of+%22parent+directory%22+</a></p>
<p><a href="i:00apkcombo:https://apkcombo.com/search/">apkcombo:https://apkcombo.com/search/</a></p> <p><a href="i:00apkcombo:https://apkcombo.com/search/">apkcombo:https://apkcombo.com/search/</a></p>
<p>Note: "Engines" needs file "engine.search"whose format is same as "home.search" except that the keyword part of url must be denoted with "%s". Pressing the right arrow button on the search result page will automatically query with next engine in the file.</p> <p>Note: &quot;Engines&quot; needs file &quot;engine.search&quot;whose format is same as &quot;home.search&quot; except that the keyword part of url must be denoted with &quot;%s&quot;. Pressing the right arrow button on the search result page will automatically query with next engine in the file.</p>
<p>Common engines:<br> <p><a id="commonSE">Common engines</a>:<br>
<a href="i:00google:https://google.com/search?q=">google:https://google.com/search?q=</a> <a href="i:00google:https://google.com/search?q=">google:https://google.com/search?q=</a></p>
<p><a href="i:00udm14:https://google.com/search?udm=14&q=">udm14:https://google.com/search?udm=14&amp;q=</a></p>
<p><a href="i:00bing:http://www.bing.com/search?q=">bing:http://www.bing.com/search?q=</a></p> <p><a href="i:00bing:http://www.bing.com/search?q=">bing:http://www.bing.com/search?q=</a></p>
<p><a href="i:00exa:https://exa.ai/search?c=all&q=">exa:https://exa.ai/search?c=all&amp;q=</a></p> <p><a href="i:00exa:https://exa.ai/search?c=all&q=">exa:https://exa.ai/search?c=all&amp;q=</a></p>
<p><a href="i:00togoda:https://togoda.com/search?query=">togoda:https://togoda.com/search?query=</a></p>
<p><a href="i:00marginalia:https://search.marginalia.nu/search?query=">marginalia:https://search.marginalia.nu/search?query=</a></p> <p><a href="i:00marginalia:https://search.marginalia.nu/search?query=">marginalia:https://search.marginalia.nu/search?query=</a></p>
<p><a href="i:00mojeek:https://www.mojeek.com/search?q=">mojeek:https://www.mojeek.com/search?q=</a></p> <p><a href="i:00mojeek:https://www.mojeek.com/search?q=">mojeek:https://www.mojeek.com/search?q=</a></p>
<p><a href="i:00rightdao:https://rightdao.com/search?q=">rightdao:https://rightdao.com/search?q=</a></p> <p><a href="i:00rightdao:https://rightdao.com/search?q=">rightdao:https://rightdao.com/search?q=</a></p>
<p><a href="i:00alexandria:https://www.alexandria.org/?q=">alexandria:https://www.alexandria.org/?q=</a></p>
<p><a href="i:00yep:https://yep.com/web?q=">yep:https://yep.com/web?q=</a></p> <p><a href="i:00yep:https://yep.com/web?q=">yep:https://yep.com/web?q=</a></p>
<p><a href="i:00seznam:https://search.seznam.cz/?q=">seznam:https://search.seznam.cz/?q=</a></p> <p><a href="i:00seznam:https://search.seznam.cz/?q=">seznam:https://search.seznam.cz/?q=</a></p>
<p><a href="i:00metager:https://metager.org/meta/meta.ger3?eingabe=">metager:https://metager.org/meta/meta.ger3?eingabe=</a></p> <p><a href="i:00metager:https://metager.org/meta/meta.ger3?eingabe=">metager:https://metager.org/meta/meta.ger3?eingabe=</a></p>
<p><a href="i:00seekr:https://www.seekr.com/search?query=">seekr:https://www.seekr.com/search?query=</a></p>
<p><a href="i:00brave:https://search.brave.com/search?q=">brave:https://search.brave.com/search?q=</a></p> <p><a href="i:00brave:https://search.brave.com/search?q=">brave:https://search.brave.com/search?q=</a></p>
<p><a href="i:00ellpedia:https://en.ellpedia.com/search?q=">ellpedia:https://en.ellpedia.com/search?q=</a></p> <p><a href="i:00ellpedia:https://en.ellpedia.com/search?q=">ellpedia:https://en.ellpedia.com/search?q=</a></p>
<p><a href="i:00gemini:https://portal.mozz.us/gemini/geminispace.info/search%3F">gemini:https://portal.mozz.us/gemini/geminispace.info/search%3F</a></p> <p><a href="i:00gemini:https://portal.mozz.us/gemini/geminispace.info/search%3F">gemini:https://portal.mozz.us/gemini/geminispace.info/search%3F</a></p>
<p><a href="i:00waldo:https://www.waldo.fyi/data?q=">waldo:https://www.waldo.fyi/data?q=</a></p> <p><a href="i:00waldo:https://waldo.com/search?q=">waldo:https://waldo.com/search?q=</a></p>
<p><a href="i:00xda:https://www.xda-developers.com/search/">xda:https://www.xda-developers.com/search/</a></p> <p><a href="i:00xda:https://www.xda-developers.com/search/">xda:https://www.xda-developers.com/search/</a></p>
<p><a href="i:00Feeling lucky:https://google.com/search?btnl=1&q=">Feeling lucky:https://google.com/search?btnl=1&amp;q=</a></p>
<p><a href="i:00pix:https://www.google.com/search?tbm=isch&q=">pix:https://www.google.com/search?tbm=isch&amp;q=</a></p> <p><a href="i:00pix:https://www.google.com/search?tbm=isch&q=">pix:https://www.google.com/search?tbm=isch&amp;q=</a></p>
<p><a href="i:00youtube:https://youtube.com/results?search_query=">youtube:https://youtube.com/results?search_query=</a></p> <p><a href="i:00youtube:https://youtube.com/results?search_query=">youtube:https://youtube.com/results?search_query=</a></p>
<p><a href="i:00news:https://news.search.yahoo.com/search/news?p=">news:https://news.search.yahoo.com/search/news?p=</a></p> <p><a href="i:00news:https://news.search.yahoo.com/search/news?p=">news:https://news.search.yahoo.com/search/news?p=</a></p>
@ -135,13 +179,10 @@
<p><a href="i:00audiobay:http://audiobookbay.se/?s=">audiobay:http://audiobookbay.se/?s=</a></p> <p><a href="i:00audiobay:http://audiobookbay.se/?s=">audiobay:http://audiobookbay.se/?s=</a></p>
<p><a href="i:00telegramsearcher:https://telegramsearcher.com/search?q=">telegramsearcher:https://telegramsearcher.com/search?q=</a></p> <p><a href="i:00telegramsearcher:https://telegramsearcher.com/search?q=">telegramsearcher:https://telegramsearcher.com/search?q=</a></p>
<p><a href="i:00lyzem:https://lyzem.com/search?q=">lyzem:https://lyzem.com/search?q=</a></p> <p><a href="i:00lyzem:https://lyzem.com/search?q=">lyzem:https://lyzem.com/search?q=</a></p>
<p><a href="i:00gramxlu:https://gramxly.com/s?q=">gramxlu:https://gramxly.com/s?q=</a></p> <p><a id="langSE">language</a>:<br>
<p>language:<br> <a href="i:00webster1913:https://www.websters1913.com/words/">webster1913:https://www.websters1913.com/words/</a></p>
<a href="i:00OED:https://www.oed.com/LIBRARY?dest=https%3A%2F%2Fwww.oed.com%2Fsearch%3FsearchType%3Ddictionary%26q%3D%s%26_searchBtn%3DSearch&acc_id=65585&library_card=12363257">OED:https://www.oed.com/LIBRARY?dest=https%3A%2F%2Fwww.oed.com%2Fsearch%3FsearchType%3Ddictionary%26q%3D%s%26_searchBtn%3DSearch&amp;acc_id=65585&amp;library_card=12363257</a></p>
<p><a href="i:00webster1913:https://www.websters1913.com/words/">webster1913:https://www.websters1913.com/words/</a></p>
<p><a href="i:00merriam-webster:https://www.merriam-webster.com/dictionary/">merriam-webster:https://www.merriam-webster.com/dictionary/</a></p> <p><a href="i:00merriam-webster:https://www.merriam-webster.com/dictionary/">merriam-webster:https://www.merriam-webster.com/dictionary/</a></p>
<p><a href="i:00dictionary:https://www.dictionary.com/browse/">dictionary:https://www.dictionary.com/browse/</a></p> <p><a href="i:00dictionary:https://www.dictionary.com/browse/">dictionary:https://www.dictionary.com/browse/</a></p>
<p><a href="i:00finedict:https://www.finedictionary.com/">finedict:https://www.finedictionary.com/</a></p>
<p><a href="i:00freedictionary:https://www.thefreedictionary.com/">freedictionary:https://www.thefreedictionary.com/</a></p> <p><a href="i:00freedictionary:https://www.thefreedictionary.com/">freedictionary:https://www.thefreedictionary.com/</a></p>
<p><a href="i:00legal_fd:https://legal-dictionary.thefreedictionary.com/">legal_fd:https://legal-dictionary.thefreedictionary.com/</a></p> <p><a href="i:00legal_fd:https://legal-dictionary.thefreedictionary.com/">legal_fd:https://legal-dictionary.thefreedictionary.com/</a></p>
<p><a href="i:00finance_fd:https://financial-dictionary.thefreedictionary.com/">finance_fd:https://financial-dictionary.thefreedictionary.com/</a></p> <p><a href="i:00finance_fd:https://financial-dictionary.thefreedictionary.com/">finance_fd:https://financial-dictionary.thefreedictionary.com/</a></p>
@ -152,13 +193,12 @@
<p><a href="i:00etymology:https://www.etymonline.com/search?q=">etymology:https://www.etymonline.com/search?q=</a></p> <p><a href="i:00etymology:https://www.etymonline.com/search?q=">etymology:https://www.etymonline.com/search?q=</a></p>
<p><a href="i:00powerthesaurus:https://www.powerthesaurus.org/%s/synonyms">powerthesaurus:https://www.powerthesaurus.org/%s/synonyms</a></p> <p><a href="i:00powerthesaurus:https://www.powerthesaurus.org/%s/synonyms">powerthesaurus:https://www.powerthesaurus.org/%s/synonyms</a></p>
<p><a href="i:00macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&q=">macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&amp;q=</a></p> <p><a href="i:00macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&q=">macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&amp;q=</a></p>
<p><a href="i:00lword:https://lword.top/word.html#">lword:https://lword.top/word.html#</a></p>
<p><a href="i:00ludwig:https://ludwig.guru/s/">ludwig:https://ludwig.guru/s/</a></p> <p><a href="i:00ludwig:https://ludwig.guru/s/">ludwig:https://ludwig.guru/s/</a></p>
<p><a href="i:00webster:https://www.merriam-webster.com/dictionary/">webster:https://www.merriam-webster.com/dictionary/</a></p> <p><a href="i:00webster:https://www.merriam-webster.com/dictionary/">webster:https://www.merriam-webster.com/dictionary/</a></p>
<p><a href="i:00googledict:http://googledictionary.freecollocation.com/meaning?word=">googledict:http://googledictionary.freecollocation.com/meaning?word=</a></p> <p><a href="i:00googledict:http://googledictionary.freecollocation.com/meaning?word=">googledict:http://googledictionary.freecollocation.com/meaning?word=</a></p>
<p><a href="i:00freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&Voice=ru-RU-Standard-A&id=undefined&type=0&TextMessage=">freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&amp;Voice=ru-RU-Standard-A&amp;id=undefined&amp;type=0&amp;TextMessage=</a></p> <p><a href="i:00freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&Voice=ru-RU-Standard-A&id=undefined&type=0&TextMessage=">freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&amp;Voice=ru-RU-Standard-A&amp;id=undefined&amp;type=0&amp;TextMessage=</a></p>
<p><a href="i:00freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&Voice=ar-XA-Standard-A&id=undefined&type=0&TextMessage=">freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&amp;Voice=ar-XA-Standard-A&amp;id=undefined&amp;type=0&amp;TextMessage=</a></p> <p><a href="i:00freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&Voice=ar-XA-Standard-A&id=undefined&type=0&TextMessage=">freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&amp;Voice=ar-XA-Standard-A&amp;id=undefined&amp;type=0&amp;TextMessage=</a></p>
<p>Science:<br> <p><a id="textbookSE">Science</a>:<br>
<a href="i:00britannica:https://www.britannica.com/search?query=">britannica:https://www.britannica.com/search?query=</a></p> <a href="i:00britannica:https://www.britannica.com/search?query=">britannica:https://www.britannica.com/search?query=</a></p>
<p><a href="i:00mathRef:https://reference.wolfram.com/search/?q=">mathRef:https://reference.wolfram.com/search/?q=</a></p> <p><a href="i:00mathRef:https://reference.wolfram.com/search/?q=">mathRef:https://reference.wolfram.com/search/?q=</a></p>
<p><a href="i:00mathSE:https://math.stackexchange.com/search?q=">mathSE:https://math.stackexchange.com/search?q=</a></p> <p><a href="i:00mathSE:https://math.stackexchange.com/search?q=">mathSE:https://math.stackexchange.com/search?q=</a></p>
@ -185,26 +225,23 @@
<p><a href="i:00human.libretexts:https://human.libretexts.org/Special:Search?q=">human.libretexts:https://human.libretexts.org/Special:Search?q=</a></p> <p><a href="i:00human.libretexts:https://human.libretexts.org/Special:Search?q=">human.libretexts:https://human.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=">socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=</a></p> <p><a href="i:00socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=">socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=">workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=</a></p> <p><a href="i:00workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=">workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=</a></p>
<p>More engines:<br> <p><a id="moreSE">More engines</a>:<br>
<a href="i:00oscobo:https://www.oscobo.com/search.php?q=">oscobo:https://www.oscobo.com/search.php?q=</a></p> <a href="i:00oscobo:https://www.oscobo.com/search.php?q=">oscobo:https://www.oscobo.com/search.php?q=</a></p>
<p><a href="i:00teoma:https://www.teoma.com/web?q=">teoma:https://www.teoma.com/web?q=</a></p>
<p><a href="i:00lycos:https://search.lycos.com/web/?q=">lycos:https://search.lycos.com/web/?q=</a></p> <p><a href="i:00lycos:https://search.lycos.com/web/?q=">lycos:https://search.lycos.com/web/?q=</a></p>
<p><a href="i:00technorati:http://technorati.com/search/index.php?q=">technorati:http://technorati.com/search/index.php?q=</a></p> <p><a href="i:00technorati:http://technorati.com/search/index.php?q=">technorati:http://technorati.com/search/index.php?q=</a></p>
<p><a href="i:00qwant:https://lite.qwant.com/?q=">qwant:https://lite.qwant.com/?q=</a></p> <p><a href="i:00qwant:https://lite.qwant.com/?q=">qwant:https://lite.qwant.com/?q=</a></p>
<p><a href="i:00swisscows:https://swisscows.com/web?query=">swisscows:https://swisscows.com/web?query=</a></p> <p><a href="i:00swisscows:https://swisscows.com/web?query=">swisscows:https://swisscows.com/web?query=</a></p>
<p><a href="i:00ecosia:https://www.ecosia.org/search?q=">ecosia:https://www.ecosia.org/search?q=</a></p> <p><a href="i:00ecosia:https://www.ecosia.org/search?q=">ecosia:https://www.ecosia.org/search?q=</a></p>
<p><a href="i:00ghostery:https://ghosterysearch.com/search?q=">ghostery:https://ghosterysearch.com/search?q=</a></p> <p><a href="i:00ghostery:https://ghosterysearch.com/search?q=">ghostery:https://ghosterysearch.com/search?q=</a></p>
<p><a href="i:00libreY:https://search.ahwx.org/search.php?q=">libreY:https://search.ahwx.org/search.php?q=</a></p>
<p><a href="i:00izito:https://www.izito.com/search?q=">izito:https://www.izito.com/search?q=</a></p> <p><a href="i:00izito:https://www.izito.com/search?q=">izito:https://www.izito.com/search?q=</a></p>
<p><a href="i:00duck:https://duckduckgo.com/?q=">duck:https://duckduckgo.com/?q=</a></p> <p><a href="i:00duck:https://duckduckgo.com/?q=">duck:https://duckduckgo.com/?q=</a></p>
<p><a href="i:00presearch:https://presearch.com/search?q=">presearch:https://presearch.com/search?q=</a></p> <p><a href="i:00presearch:https://presearch.com/search?q=">presearch:https://presearch.com/search?q=</a></p>
<p><a href="i:00gigablast:https://www.gigablast.com/search?c=main&qlangcountry=en-us&q=">gigablast:https://www.gigablast.com/search?c=main&amp;qlangcountry=en-us&amp;q=</a></p>
<p><a href="i:00yandex:https://yandex.com/search/?text=">yandex:https://yandex.com/search/?text=</a></p> <p><a href="i:00yandex:https://yandex.com/search/?text=">yandex:https://yandex.com/search/?text=</a></p>
<p><a href="i:00searx:https://searx.be/?q=">searx:https://searx.be/?q=</a></p> <p><a href="i:00searx:https://searx.be/?q=">searx:https://searx.be/?q=</a></p>
<p><a href="i:00startpage:https://startpage.com/do/search?query=">startpage:https://startpage.com/do/search?query=</a></p> <p><a href="i:00startpage:https://startpage.com/do/search?query=">startpage:https://startpage.com/do/search?query=</a></p>
<p><a href="i:00gibiru:https://gibiru.com/results.html?q=">gibiru:https://gibiru.com/results.html?q=</a></p> <p><a href="i:00gibiru:https://gibiru.com/results.html?q=">gibiru:https://gibiru.com/results.html?q=</a></p>
<p><a href="i:00zapmeta:https://www.zapmeta.com/search?q=">zapmeta:https://www.zapmeta.com/search?q=</a></p> <p><a href="i:00zapmeta:https://www.zapmeta.com/search?q=">zapmeta:https://www.zapmeta.com/search?q=</a></p>
<p>Medical:<br> <p><a id="medicalSE">Medical</a>:<br>
<a href="i:00medical_freedict:https://medical-dictionary.thefreedictionary.com/">medical_freedict:https://medical-dictionary.thefreedictionary.com/</a></p> <a href="i:00medical_freedict:https://medical-dictionary.thefreedictionary.com/">medical_freedict:https://medical-dictionary.thefreedictionary.com/</a></p>
<p><a href="i:00merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=">merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=</a></p> <p><a href="i:00merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=">merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=</a></p>
<p><a href="i:00openmd:https://openmd.com/search?q=">openmd:https://openmd.com/search?q=</a></p> <p><a href="i:00openmd:https://openmd.com/search?q=">openmd:https://openmd.com/search?q=</a></p>
@ -222,7 +259,7 @@
<p><a href="i:00piratebay:https://thepiratebay.org/search/%s/0/7/0">piratebay:https://thepiratebay.org/search/%s/0/7/0</a></p> <p><a href="i:00piratebay:https://thepiratebay.org/search/%s/0/7/0">piratebay:https://thepiratebay.org/search/%s/0/7/0</a></p>
<p><a href="i:00katcr:https://katcr.to/search/">katcr:https://katcr.to/search/</a></p> <p><a href="i:00katcr:https://katcr.to/search/">katcr:https://katcr.to/search/</a></p>
<p><a href="i:001337x:https://1337x.to/search/%s/1/">1337x:https://1337x.to/search/%s/1/</a></p> <p><a href="i:001337x:https://1337x.to/search/%s/1/">1337x:https://1337x.to/search/%s/1/</a></p>
<p>Scholar:<br> <p><a id="scholarSE">Scholar</a>:<br>
<a href="i:00classcentral:https://www.classcentral.com/search?q=">classcentral:https://www.classcentral.com/search?q=</a></p> <a href="i:00classcentral:https://www.classcentral.com/search?q=">classcentral:https://www.classcentral.com/search?q=</a></p>
<p><a href="i:00base:https://www.base-search.net/Search/Results?lookfor=">base:https://www.base-search.net/Search/Results?lookfor=</a></p> <p><a href="i:00base:https://www.base-search.net/Search/Results?lookfor=">base:https://www.base-search.net/Search/Results?lookfor=</a></p>
<p><a href="i:00science.gov:POST:fullRecord=%s:https://www.science.gov/scigov/search.html">science.gov:POST:fullRecord=%s:https://www.science.gov/scigov/search.html</a></p> <p><a href="i:00science.gov:POST:fullRecord=%s:https://www.science.gov/scigov/search.html">science.gov:POST:fullRecord=%s:https://www.science.gov/scigov/search.html</a></p>
@ -235,24 +272,19 @@
<p><a href="i:00xueshu:https://xueshu.baidu.com/s?wd=">xueshu:https://xueshu.baidu.com/s?wd=</a></p> <p><a href="i:00xueshu:https://xueshu.baidu.com/s?wd=">xueshu:https://xueshu.baidu.com/s?wd=</a></p>
<p><a href="i:00oalib:https://www.oalib.com/search?kw=">oalib:https://www.oalib.com/search?kw=</a></p> <p><a href="i:00oalib:https://www.oalib.com/search?kw=">oalib:https://www.oalib.com/search?kw=</a></p>
<p><a href="i:00connectedpapers:https://www.connectedpapers.com/search?q=">connectedpapers:https://www.connectedpapers.com/search?q=</a></p> <p><a href="i:00connectedpapers:https://www.connectedpapers.com/search?q=">connectedpapers:https://www.connectedpapers.com/search?q=</a></p>
<p>Developer:<br> <p><a id="devSE">Developer</a>:<br>
<a href="i:00devdocs:https://devdocs.io/#q=">devdocs:https://devdocs.io/#q=</a></p> <a href="i:00devdocs:https://devdocs.io/#q=">devdocs:https://devdocs.io/#q=</a></p>
<p><a href="i:00grep.app:https://grep.app/search?q=">grep.app:https://grep.app/search?q=</a></p> <p><a href="i:00grep.app:https://grep.app/search?q=">grep.app:https://grep.app/search?q=</a></p>
<p><a href="i:00git:https://github.com/search?type=Repositories&amp;q=">git:https://github.com/search?type=Repositories&amp;q=</a></p> <p><a href="i:00git:https://github.com/search?type=Repositories&amp;q=">git:https://github.com/search?type=Repositories&amp;q=</a></p>
<p><a href="i:00man:http://man.cx/">man:http://man.cx/</a></p> <p><a href="i:00man:http://man.cx/">man:http://man.cx/</a></p>
<p><a href="i:00code:http://searchcode.com/?q=">code:http://searchcode.com/?q=</a></p> <p><a href="i:00code:http://searchcode.com/?q=">code:http://searchcode.com/?q=</a></p>
<p><a href="i:00grep:https://grep.app/search?q=">grep:https://grep.app/search?q=</a></p>
<p><a href="i:00symbolhound:http://symbolhound.com/?q=">symbolhound:http://symbolhound.com/?q=</a></p> <p><a href="i:00symbolhound:http://symbolhound.com/?q=">symbolhound:http://symbolhound.com/?q=</a></p>
<p><a href="i:00vector:https://vector.me/search/">vector:https://vector.me/search/</a></p> <p><a href="i:00vector:https://vector.me/search/">vector:https://vector.me/search/</a></p>
<p><a href="i:00jsdelivr:http://www.jsdelivr.com/?query=">jsdelivr:http://www.jsdelivr.com/?query=</a></p> <p><a href="i:00jsdelivr:http://www.jsdelivr.com/?query=">jsdelivr:http://www.jsdelivr.com/?query=</a></p>
<p><a href="i:00greasyfork:https://greasyfork.org/en/scripts?sort=updated&q=">greasyfork:https://greasyfork.org/en/scripts?sort=updated&amp;q=</a></p> <p><a href="i:00greasyfork:https://greasyfork.org/en/scripts?sort=updated&q=">greasyfork:https://greasyfork.org/en/scripts?sort=updated&amp;q=</a></p>
<p><a href="i:00cdn.githubjs.cf:https://cdn.githubjs.cf/search?q=">cdn.githubjs.cf:https://cdn.githubjs.cf/search?q=</a></p>
<p><a href="i:00hub.yzuu:https://hub.yzuu.cf/search?q=">hub.yzuu:https://hub.yzuu.cf/search?q=</a></p>
<p><a href="i:00hub.nuaa:https://hub.nuaa.cf/search?q=">hub.nuaa:https://hub.nuaa.cf/search?q=</a></p>
<p><a href="i:00hub.njuu:https://hub.njuu.cf/search?q=">hub.njuu:https://hub.njuu.cf/search?q=</a></p>
<p>app:<br> <p>app:<br>
<a href="i:00App store:market://search?q=">App store:market://search?q=</a></p> <a href="i:00App store:market://search?q=">App store:market://search?q=</a></p>
<p>local engines(May need termux customized edition and tools like bcgnuplot etc.):<br> <p><a id="localSE">local engines</a>(May need termux customized edition and tools like bcgnuplot etc.):<br>
<a href="i:00bc:d:text/html:echo \'%s\'|bc -l -q:">bc:d:text/html:echo '%s'|bc -l -q:</a></p> <a href="i:00bc:d:text/html:echo \'%s\'|bc -l -q:">bc:d:text/html:echo '%s'|bc -l -q:</a></p>
<p><a href="i:002D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; plot %s\':">2D plot:d:image/svg+xml:gnuplot -e 'set term svg;set output; plot %s':</a></p> <p><a href="i:002D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; plot %s\':">2D plot:d:image/svg+xml:gnuplot -e 'set term svg;set output; plot %s':</a></p>
<p><a href="i:003D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; splot %s\':">3D plot:d:image/svg+xml:gnuplot -e 'set term svg;set output; splot %s':</a></p> <p><a href="i:003D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; splot %s\':">3D plot:d:image/svg+xml:gnuplot -e 'set term svg;set output; splot %s':</a></p>
@ -261,8 +293,8 @@
<a href="https://alternativeto.net/software/google-search/?feature=web-search">alternativeto</a></p> <a href="https://alternativeto.net/software/google-search/?feature=web-search">alternativeto</a></p>
</div> </div>
<p>Last Modified: 2 July 2024<br> <p>Last Modified: 5 December 2025<br>
update AI engines<br> add notes for &#39;%250D&#39;<br>
<pre>Add AI engines <pre>Add AI engines
</pre> </pre>
</p> </p>
@ -286,7 +318,7 @@ update AI engines<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/searchcat/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Search engine files</title> <title>Search engine files</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -46,7 +47,7 @@
</h1> </h1>
<ul class="tags"> <ul class="tags">
<li><a href="../tags/search%20engine/index.html#">search engine</a> </li> <li><a href="../tags/search-engine/index.html#">search-engine</a> </li>
</ul> </ul>
<p>Search engine file names have &quot;.search&quot; as postfix. When they are clicked, the associated bookmark files with postfix &quot;.search.html&quot; would be appended. Ex: the associated bookmark for &quot;foo.search&quot; is &quot;foo.search.html&quot;.</p> <p>Search engine file names have &quot;.search&quot; as postfix. When they are clicked, the associated bookmark files with postfix &quot;.search.html&quot; would be appended. Ex: the associated bookmark for &quot;foo.search&quot; is &quot;foo.search.html&quot;.</p>
@ -61,7 +62,7 @@
</ul> </ul>
<p>Limitations (they are here for performance reasons):</p> <p>Limitations (they are here for performance reasons):</p>
<ul> <ul>
<li>The first engine in the file must be the first type that has no '%s' in the engine url.</li> <li>The first engine in the file must be url without or with '%s'.</li>
<li>Internal scheme engine urls (such as i:, d:, c:) must have '%s', since '%s' format is more general (only type 2 is allowed, since POST makes no sense for internal schemes).</li> <li>Internal scheme engine urls (such as i:, d:, c:) must have '%s', since '%s' format is more general (only type 2 is allowed, since POST makes no sense for internal schemes).</li>
</ul> </ul>
<h4 id="local-engines">Local engines</h4> <h4 id="local-engines">Local engines</h4>
@ -69,8 +70,8 @@
d:mimetype:[command line with '%s' as keyword]:[base url for external resources]</p> d:mimetype:[command line with '%s' as keyword]:[base url for external resources]</p>
</div> </div>
<p>Last Modified: 8 April 2024<br> <p>Last Modified: 9 April 2025<br>
add associated bookmarks<br> fix broken links<br>
<pre></pre> <pre></pre>
</p> </p>
@ -93,7 +94,7 @@ add associated bookmarks<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -1,92 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<base href="https://jamesfengcao.codeberg.page/en/searchurl/bingAI/">
<title id="docTitle">NewBingGoGo</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.4/katex.min.css">
<link rel="stylesheet" type="text/css" href="./css/bing.css">
</head>
<body>
<div id="background" class="b"></div>
<div id="tail">
<div id="tail-in">
<input id="restartNewChat" class="onShow" type="button" value="new chat">
<input id="restart" type="button" value="🧹">
<div id="input-div">
<textarea id="input" type="text" enterkeyhint="send" autocapitalize="off" autocomplete="off" aria-autocomplete="both" spellcheck="false" aria-label="ask Bing" autocorrect="off" placeholder="type question here..."></textarea>
<input id="send" type="button" value="✓">
</div>
</div>
<div id="SearchSuggestions">
</div>
</div>
<div id="body">
<div id="popup">
<h5 style="text-align: center; margin:0;">输入魔法链接</h5>
<input type="text" id="url-input" style="width: 97%;display: inline-block;"
onkeydown="if (event.keyCode == 13) {let v=this.value;localStorage.setItem('GoGoUrl',v);}">
<h5 style="text-align: center; margin:0;">聊天方式</h5>
<select id="tallSelect" style="width: 100%;" onchange="localStorage.setItem('ChatHubWithMagic',this.selectedIndex);">
<option>复用聊天(最快)(用魔法创建聊天后在失效前都使用这个聊天)</option>
<option>正常聊天(推荐)(用魔法创建聊天后正常聊天)</option>
<option>魔法聊天(较慢)(用魔法创建聊天后继续使用魔法聊天)</option>
</select>
</div>
<div style="text-align: center;">
<h3>chat with bing</h3>
</div>
<div id="chatTypeDiv" style="opacity: 1;">
<div class="chatTypeChose" id="chatTypeChoseCreate">
<p>More</p>
<h3>Creative</h3>
</div>
<div class="chatTypeChose Chose" id="chatTypeChoseBalance">
<p>More</p>
<h3>Balanced</h3>
</div>
<div class="chatTypeChose" id="chatTypeChoseAccurate">
<p>More</p>
<h3>Precise</h3>
</div>
</div>
<div id="chat">
<div class="bing">
<div class="adaptiveCardsFatherDIV">
<div class="textBlock markdown-body">
I am ready to chat
</div>
<div class="throttling">
0 / 0
</div>
</div>
</div>
</div>
<div id="body-bottom"></div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/4.3.0/marked.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.4/katex.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.4/contrib/auto-render.min.js"></script>
<script>
async function getMagicUrl() {
let v = localStorage.GoGoUrl;
if(v && v.startsWith("http")) return v;
return "https://mybing.xn--xyza.top/";
}
function getStartProposes(){return ["","",""];}
function getStartMessage(){return "";}
</script>
<script type="text/javascript" src="./js/GetSet.js"></script>
<script type="text/javascript" src="./js/optionsSets.js"></script>
<script type="text/javascript" src="./js/bingChatHub.js"></script>
<script type="text/javascript" src="./js/parserReturn.js"></script>
<script type="text/javascript" src="./js/bing.js"></script>
</body>
</html>

View file

@ -1,205 +0,0 @@
/* 头部分 */
body {
font-family: "Segoe UI", Arial, "Microsoft Yahei", sans-serif;
font-size: 75%;
}
#head {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 4rem;
display: flex;
align-items: center;
justify-content: space-between;
backdrop-filter: blur(10px);
background-color: #ffffff78;
z-index: 99;
}
#head-img-div {
height: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
}
#head-img-div>img {
height: 100%;
}
#head-img-div-h2-img>* {
margin: 0;
}
#head-li-div {
display: flex;
flex-direction: row;
align-items: center;
}
#head-li-div>li {
list-style: none;
margin-right: 1rem;
font-size: 1rem;
}
#head-li-div>a {
display: inline-block;
list-style: none;
margin-right: 1rem;
font-size: 1rem;
color: inherit;
text-decoration: inherit;
}
#head-li-div>a:hover{
color: #ff8300;
}
/* 背景*/
#background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
background: repeating-linear-gradient(359deg, rgb(182 196 255) 0%, rgb(207 225 255 / 78%) 100%);
}
body.a #background,
body.a .ThemeColors {
transition: filter 1s;
filter: hue-rotate(10deg);
}
body.b #background,
body.b .ThemeColors {
transition: filter 1s;
filter: hue-rotate(-15deg);
}
body.c #background,
body.c .ThemeColors {
transition: filter 1s;
filter: hue-rotate(-40deg);
}
#body{
margin-top: 4rem;
overflow: hidden;
}
#DrawDiv{
background-color: #ffffff70;
min-height: 30rem;
max-width: 45rem;
margin: 1rem auto auto;
border-radius: 1.5rem;
overflow: hidden;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-items: stretch;
}
#inputDraw{
resize: none;
background-color: #ffffff00;
flex: 1;
margin-left: 1rem;
height: 2rem;
font-size: 1rem;
border: none;
outline:none;
line-height: 2rem;
}
#DrawInputDiv{
background-color: #ffffff;
margin-left: 1rem;
margin-right: 1rem;
margin-top: 1rem;
border-radius: 0.5rem;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: stretch;
}
#startDraw{
background-color: #0e00ff36;
border-radius: 0 0.5rem 0.5rem 0;
display: flex;
padding: 0.5rem;
align-items: center;
cursor: pointer;
font-size: 1rem;
}
#startDraw:hover{
background-color: rgba(14, 0, 255, 0.56);
}
#DrawInputDiv{
border: 1px solid rgba(0, 0, 0, 0.21);
}
#DrawInputDiv:has(#inputDraw:focus-visible){
border: 1px solid #0e00ff36;
}
#imgs{
margin-top: 1rem;
background-color: #c2b4ff29;
flex: 1;
border: 0.2rem solid #ffffff70;
border-top: none;
border-radius: 0 0 1.5rem 1.5rem;
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: stretch;
justify-content: space-around;
align-content: space-around;
color: #ff8300;
font-size: 1rem;
font-weight: bolder;
}
#imgs>img{
width: 49%;
margin: 0.5%;
transition: all 0.5s;
cursor: pointer;
}
#imgs>img:hover{
transform:translate(-0.5%, -0.5%);
}
@media screen and (max-width:500px) {
:root {
font-size: 3.5vmin;
}
#imgs>img{
width: 99%;
}
}
@media screen and (orientation:portrait) and (max-device-width:800px) and (max-device-height:1000px) {
:root {
font-size: 3.5vmin;
}
#imgs>img{
width: 99%;
}
}

View file

@ -1,582 +0,0 @@
/* 头部分 */
#head {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 4rem;
display: flex;
align-items: center;
justify-content: space-between;
backdrop-filter: blur(10px);
background-color: #ffffff78;
z-index: 99;
}
#head-img-div {
height: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
}
#head-img-div>img {
height: 100%;
}
#head-img-div-h2-img>* {
margin: 0;
}
#head-li-div {
margin-right: 2rem;
}
/* 背景*/
#background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
background: repeating-linear-gradient(359deg, rgb(182 196 255) 0%, rgb(207 225 255 / 78%) 100%);
transition: filter 1s;
}
#background.a {
filter: hue-rotate(10deg);
}
#background.b {
filter: hue-rotate(-5deg);
}
#background.c {
filter: hue-rotate(-20deg);
}
/* 尾部分 */
#tail {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 7rem;
display: flex;
justify-content: center;
backdrop-filter: blur(10px);
background-color: #ffffff78;
flex-direction: column-reverse;
align-items: center;
z-index: 99;
}
#SearchSuggestions {
position: fixed;
top: -3rem;
display: flex;
flex-wrap: nowrap;
flex-direction: row;
justify-content: center;
align-items: center;
width: 100%;
transition: opacity 0.2s
}
#SearchSuggestions>a {
backdrop-filter: blur(10px);
background-color: #ffffff82;
border-radius: 2rem;
padding: 0.5rem;
font-size: 0.9rem;
margin: 0.2rem;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
transition: flex 0.5s;
}
#SearchSuggestions>a:hover {
cursor: pointer;
background-color: #ffffff;
flex: none;
}
#tail-in {
display: flex;
width: 80%;
align-items: center;
justify-content: center;
height: 80%;
}
#restart:hover ,
#restartNewChat:hover
{
background-color: #ffffff;
cursor: pointer;
}
#restart ,
#restartNewChat
{
border: 0;
border-radius: 1.5rem;
background-color: #ffffff9e;
height: 100%;
font-size: 0.8rem;
transition: all 0.5s;
overflow: hidden;
white-space: normal;
}
#restart {
width: 0;
margin: 0;
padding: 0;
opacity: 0;
}
body:has(.my) #restart {
width: 5rem;
margin-right: 0.5rem;
padding: 0;
opacity: 1;
}
#restartNewChat{
width: 5rem;
margin-right: 0.5rem;
}
#restartNewChat.onShow{
width: 0;
margin: 0;
padding: 0;
opacity: 0;
}
#send {
border: 0;
margin: 0 1rem 1rem 0;
border-radius: 2rem;
background-color: #005fff38;
height: 1.8rem;
font-size: 0.8rem;
cursor: pointer;
min-width: 3rem;
transition: all 0.5s;
}
#send:hover {
background-color: #005fff80;
}
#input {
border: none;
resize: none;
outline: none;
width: 100%;
background-color: #ffffff00;
margin: 1rem 0 1rem 1rem;
height: -webkit-fill-available;
}
#input:focus-visible {
border: 0;
}
#input-div {
border-radius: 1.5rem;
flex: 1;
height: 100%;
background-color: #ffffff;
margin: 0 0;
display: flex;
flex-direction: row;
align-items: flex-end;
transition: all 0.5s;
}
/* 页面部分 */
body {
overflow-x: hidden;
}
#body-bottom {
height: 15rem;
width: 100%;
}
/* 聊天选项部分 */
#chatTypeDiv {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
flex-wrap: nowrap;
margin-bottom: 7rem;
transition: all 0.5s;
}
#chatTypeDiv>.chatTypeChose {
background-color: #ffffffcc;
border-radius: 2rem;
width: 9rem;
height: 4rem;
margin: 1rem 0.3rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: 0.5rem solid #ffffffcc;
cursor: pointer;
}
#chatTypeDiv>.chatTypeChose>p {
margin: 0;
text-align: center;
}
#chatTypeDiv>.chatTypeChose>h3 {
margin: 0;
text-align: center;
}
#chatTypeChoseCreate.Chose {
background-color: #904887;
color: white;
cursor: default;
}
#chatTypeChoseBalance.Chose {
background-color: #2870EA;
color: white;
cursor: default;
}
#chatTypeChoseAccurate.Chose {
background-color: #006880;
color: white;
cursor: default;
}
/* 聊天部分,在页面内 */
@keyframes acceptMeaaage {
from {
margin-top: 1em;
margin-left: -4em;
opacity: 0;
}
to {}
}
@keyframes sendMeaaage {
from {
margin-top: 1em;
margin-right: -4em;
opacity: 0;
}
to {}
}
.bing,
.my {
margin-bottom: 2rem;
}
.bing {
display: grid;
justify-items: start;
}
.bing>* {
animation: acceptMeaaage 0.5s;
}
.my>* {
animation: sendMeaaage 0.5s;
}
.my {
text-align: right;
font-size: 1.3rem;
}
.InternalSearchQuery,
.InternalLoaderMessage {
margin-left: 1rem;
font-size: 1rem;
}
.InternalSearchQuery>p,
.InternalLoaderMessage>p {
margin: 0;
margin-bottom: 1rem;
}
.adaptiveCardsFatherDIV,
.my>.bobo {
display: inline-block;
background-color: #ffffff;
border-radius: 1rem;
padding: 1rem 1rem;
max-width: 85vw;
margin-bottom: 1rem;
text-align: left;
}
.adaptiveCardsFatherDIV .throttling {
text-align: end;
font-size: 0.4rem;
margin-top: 0.5rem;
margin-bottom: -0.8rem;
border-top: 1px solid #0000005c;
}
.bing>.sourceAttributions {
font-size: 0.9rem;
max-width: 85vw;
margin: 0;
margin-bottom: 1rem;
display: inline-flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
background-color: #ffffff57;
border-radius: 2rem;
padding: 0.5rem;
}
.bing:has(.sourceAttributions) .adaptiveCardsFatherDIV {
margin-bottom: 1em;
}
.bing>.sourceAttributions>a {
display: inline-block;
background-color: #ffffff73;
border-radius: 1rem;
padding: 0.5rem;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
margin: 0.1rem;
color: #000000;
text-decoration: none;
transition: flex 0.5s;
}
.bing>.sourceAttributions>a:hover {
background-color: #ffffffb3;
flex: none;
}
/* 上标 */
#chat .superscript {
display: inline-block;
vertical-align: super;
border: 0.1rem solid #0969da;
border-radius: 1em;
min-width: 1em;
text-align: center;
line-height: 1em;
font-size: small;
color: #0969da;
}
#chat .superscript:hover {
background-color: #00000024;
}
/*暂时不知道如何解析的渲染卡片请求*/
.RenderCardRequest {
border-radius: 1em;
background-color: white;
overflow: auto;
padding: 1em;
width: 85vw;
max-width: 1100px;
}
.RenderCardRequest>iframe {
min-width: 768px;
width: 100%;
height: 602px;
border: 0;
}
/* 画图部分 */
.GenerateContentQuery {
background-color: #ffffff;
border-radius: 1rem;
max-width: 85%;
margin-bottom: 1rem;
text-align: center;
font-size: 1rem;
padding: 1rem;
overflow: hidden;
display: inline-table;
}
.GenerateContentQuery>img {
max-width: 24%;
margin: 0.5%;
transition: all 0.8s;
cursor: pointer;
}
.GenerateContentQuery>img:hover {
margin: 0.2% 0.8% 0.8% 0.2%;
box-shadow: #0000007a 2px 3px 5px 0px;
transition: all 0.3s;
}
/* 错误部分 */
#chat .error {
text-align: center;
color: red;
}
.NoPower {
text-align: center;
color: #ff6d00;
cursor: pointer;
margin: 1rem;
text-decoration: underline;
}
/* 用于适配不同设备 */
/* pc */
:root {
font-size: 1rem;
}
div.markdown-body {
font-size: 1rem;
overflow: auto;
}
/* 窄窗口 */
@media screen and (max-width:550px) {
#tail-in:has(#input:focus-visible) #restart,
#tail-in:has(#input:hover) #restart,
#tail-in:has(#input:focus-visible) #restartNewChat,
#tail-in:has(#input:hover) #restartNewChat {
width: 0;
margin: 0;
padding: 0;
opacity: 0;
}
.GenerateContentQuery>img {
max-width: 49%;
width: 49%;
}
#tail-in {
width: 90%;
}
.bing>.sourceAttributions {
flex-wrap: wrap;
}
}
/*手机 css*/
@media screen and (orientation:portrait) and (max-device-width:800px) and (max-device-height:1000px) {
.InternalSearchQuery,
.InternalLoaderMessage {
width: 90%;
}
.InternalSearchQuery>p,
.InternalLoaderMessage>p {
font-size: 1rem;
}
.bing>.sourceAttributions {
max-width: 88vw;
flex-wrap: wrap;
}
.adaptiveCardsFatherDIV,
.my>.bobo {
max-width: 88vw;
}
#tail-in {
width: 90%;
}
#restart {
font-size: 1em;
}
#input {
font-size: 1em;
}
.GenerateContentQuery>img {
max-width: 49%;
width: 49%;
}
#tail-in:has(#input:focus-visible) #restart,
#tail-in:has(#input:hover) #restart,
#tail-in:has(#input:focus-visible) #restartNewChat,
#tail-in:has(#input:hover) #restartNewChat {
width: 0;
margin: 0;
padding: 0;
opacity: 0;
}
/* 聊天部分,在页面内 */
@keyframes acceptMeaaage {
from {
margin-top: 1em;
margin-left: 0em;
opacity: 0;
}
to {}
}
@keyframes sendMeaaage {
from {
margin-top: 1em;
margin-right: 0em;
opacity: 0;
}
to {}
}
}

View file

@ -1,54 +0,0 @@
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<base href="https://jamesfengcao.codeberg.page/en/searchurl/bingAI/">
<title id="docTitle">Draw</title>
<link rel="stylesheet" href="./css/DrawImg.css">
<script>
function getMagicUrl() {
let v = localStorage.GoGoUrl;
if(v && v.startsWith("http")) return v;
return "https://mybing2.xn--xyza.top/";
}
const magicUrl = getMagicUrl();
</script>
<script type="text/javascript" src="./js/generateImages.js"></script>
</head>
<body>
<div id="DrawDiv">
<div id="DrawInputDiv">
<textarea id="inputDraw" placeholder="Describe your image" ></textarea>
<input id="startDraw" type="button" value="Draw" onClick="draw()">
</div>
<div id="imgs">
</div>
</div>
<script>
const inputDraw = document.getElementById('inputDraw');
const imgsDiv = document.getElementById('imgs');
async function draw() {
let text = inputDraw.value;
try {
imgsDiv.innerText = `正在生成'${text}'图片,请稍等..`;
imgs = await generateImages(text,undefined,(v)=>{
imgsDiv.innerText = `正在生成'${text}'图片,请稍等..${v}`;
});
}catch (error){}
imgsDiv.innerHTML = '';
imgs.forEach((v)=>{
let img = document.createElement('img');
img.src = v.mImg;
imgsDiv.appendChild(img);
img.onclick = ()=>{
window.open(v.img);
}
//在低分辨率图片加载完成后替换成高分辨率图片
img.onload = ()=>{
img.onload = undefined;
img.src = v.img;
}
});
}
</script>
</body>
</html>

View file

@ -1,42 +0,0 @@
async function setMagicUrl(url) {
localStorage.setItem('GoGoUrl',url);
}
// ture:开启使用魔法聊天|false:关闭使用魔法聊天|'repeat':开启聊天复用
async function setChatHubWithMagic(user) {
localStorage.setItem('ChatHubWithMagic',user);
}
// ture|false|'repeat'
async function getChatHubWithMagic() {
let v = localStorage.ChatHubWithMagic;
if (v) {
switch(v){
case 0:
break;
case 1:
return false;
case 2:
return true;
}
}
return 'repeat';
}
//设置上次创建的聊天
async function setLastChatJson(json) {
localStorage.setItem('LastChatJson',json);
}
//获取上次创建的聊天
async function getLastChatJson() {
return localStorage.LastChatJson;
}
//获取上次聊天聊到的消息id次数
async function getLastChatInvocationId(){
return localStorage.LastChatInvocationId;
}
//设置上次聊天聊到的消息id次数
async function setLastInvocationId(invocationId){
return localStorage.setItem('LastChatInvocationId',invocationId);
}

View file

@ -1,59 +0,0 @@
createChat(thisChatType).then((r) => {
if(r.ok) talk = r.obj;
});
/**重写重置聊天到初始状态函数 */
function reSetStartChatMessage(type) {
chat.innerHTML = ``;
isSpeaking = false;
}
/**重写函数 */
function isSpeakingStart(chatWithMagic, sendText) {
isSpeaking = true;
}
//重写
function isSpeakingFinish() {
isSpeaking = false;
}
//重写send函数
oldSend = send;
send = (text) => {
reSetStartChatMessage();
oldSend(text);
}
//重写porserTextBlock函数
/*
解析TextBlock body.type==TextBlock
*/
function porserTextBlock(body, father) {
if (!body.size) {
let div = getByClass('textBlock', 'div', father, 'markdown-body');
div.innerHTML = marked.marked(completeCodeBlock(body.text));
renderMathInElement(div,renderMathInElementOptions);
let aaas = div.getElementsByTagName('a');
//将超链接在新页面打开
for(let i=0;i<aaas.length;i++){
aaas[i].target = '_blank';
}
//如果是注释则加上上标样式
for(let i=0;i<aaas.length;i++){
let reg = new RegExp('^\\^(\\d+)\\^$');
if(reg.test(aaas[i].innerHTML)){
aaas[i].innerHTML = aaas[i].innerHTML.replace(reg,'$1');
aaas[i].classList.add('superscript');
}
}
} else if (body.size == 'small') {
//原本bing官网的small并没有输出
}
}
//重写send按钮点击事件
send_button.onclick = () => {
let text = input_text.value;
send(text);
};

View file

@ -1,294 +0,0 @@
var chat = document.getElementById('chat');
var chatTypeDiv = document.getElementById('chatTypeDiv');
var docTitle = document.getElementById('docTitle');
var restart_button = document.getElementById('restart');
var input_text = document.getElementById('input');
var send_button = document.getElementById('send');
let restartNewChat = document.getElementById('restartNewChat');
var thisChatType = chatTypes.balance;
//全局变量
var talk;
var returnMessage;
var isSpeaking = false;
reSetStartChatMessage();
//(string)
function addMyChat(message) {
let bobo = document.createElement('div');
bobo.style.whiteSpace = 'pre-wrap';
bobo.innerText = message;
bobo.classList.add('bobo');
bobo.classList.add('markdown-body');
let go = document.createElement('div');
go.classList.add('my');
go.appendChild(bobo);
chat.appendChild(go);
}
//(string)
function addError(message) {
let go = document.createElement('div');
go.classList.add('error');
go.innerHTML = message;
chat.appendChild(go);
}
let onMessageIsOKClose = false;
//(json)
function onMessage(json, returnMessage) {
if (json.type == "close") {
isSpeakingFinish();
if (!onMessageIsOKClose) {
addError("聊天异常中断了!可能是网络问题。");
}
return;
}
if (json.type == 'error') {
addError("连接发生错误:" + json.mess);
return;
}
onMessageIsOKClose = false
if (json.type == 3) {
onMessageIsOKClose = true;
returnMessage.getCatWebSocket().close(1000, 'ok');
} else {
localStorage.removeItem('LastChatJson');
if (json.type == 1) {
porserArguments(json.arguments);
} else if (json.type == 2) {
porserType2Item(json.item);
} else {
console.log(JSON.stringify(json));
}
}
}
//页面逻辑
//回车键发送 ctrl+回车换行
input_text.addEventListener('keydown', (event) => {
if (event.key === 'Enter' && !event.altKey) {
event.preventDefault();
//调用发送消息的函数
send_button.onclick();
} else if (event.key === 'Enter' && event.altKey) {
event.preventDefault();
// 插入换行符
input_text.value += "\n";
}
});
/**重置聊天框和聊天建议到初始状态 */
function reSetStartChatMessage(type) {
createChat(thisChatType).then((r) => {
if(r.ok) talk = r.obj;
});
getChatHubWithMagic().then(async a => {
let t = 0;
if (a == 'repeat') {
t = await getLastChatInvocationId();
}
chat.innerHTML = `
<div class="bing">
<div class="adaptiveCardsFatherDIV">
<div class="textBlock markdown-body">
</div>
<div class="throttling">
${t} / 0
</div>
</div>
</div>
`;
});
}
/**正在创建聊天 */
function isAskingToMagic() {
isSpeaking = true;
send_button.value = '施法中.';
}
/**bing正在回复 */
function isSpeakingStart(chatWithMagic, sendText) {
isSpeaking = true;
if (sendText) {
docTitle.innerText = sendText;
}
send_button.value = '响应中.';
}
/**bing回复结束 */
function isSpeakingFinish() {
isSpeaking = false;
send_button.value = 'submit';
}
function send(text) {
if (isSpeaking) {
return;
}
chatTypeDiv.style.opacity = 0;
addMyChat(text);
if (!talk) {
isAskingToMagic();
createChat(thisChatType).then((r) => {
if (!r.ok) {
addError(r.message);
isSpeakingFinish();
return;
}
talk = r.obj;
isSpeakingStart();
r = talk.sendMessage(text, onMessage);
if (!r.ok) {
isSpeakingFinish();
addError(r.message);
return;
}
returnMessage = r.obj;
isSpeakingStart(r.chatWithMagic, text);
});
return;
} else {
isSpeakingStart();
let r = talk.sendMessage(text, onMessage)
if (!r.ok) {
isSpeakingFinish();
addError(r.message);
return;
}
returnMessage = r.obj;
isSpeakingStart(r.chatWithMagic, text);
}
}
send_button.onclick = () => {
if (isSpeaking) {
return;
}
let text = input_text.value;
input_text.value = '';
input_update_input_text_sstyle_show_update({ target: input_text });
if (!text) {
alert('什么都没有输入呀!');
return;
}
send(text);
};
restart_button.onclick = () => {
onMessageIsOKClose = true;
if (returnMessage) {
returnMessage.getCatWebSocket().close(1000, 'ok');
returnMessage = undefined;
}
talk = undefined;
isSpeakingFinish();
reSetStartChatMessage();
chatTypeDiv.style.opacity = 1;
};
//滚动到底部显示收聊天建议
// 定义一个函数处理滚动事件
function handleScroll() {
// 获取文档的高度和滚动距离
var docHeight = document.body.scrollHeight;
var scrollPos = window.pageYOffset;
// 如果滚动到底部,显示元素,否则隐藏元素
}
// 添加滚动事件监听器
window.addEventListener("scroll", handleScroll);
//选择聊天类型,创造力,平衡,精准
let backgroundDIV = document.getElementById('background');
let chatTypeChoseCreate = document.getElementById('chatTypeChoseCreate');
let chatTypeChoseBalance = document.getElementById('chatTypeChoseBalance');
let chatTypeChoseAccurate = document.getElementById('chatTypeChoseAccurate');
//默认平衡
thisChatType = chatTypes.balance;
chatTypeChoseCreate.onclick = () => {
if (chatTypeDiv.style.opacity == 0) {
return;
}
chatTypeChoseCreate.classList.add('Chose');
chatTypeChoseBalance.classList.remove('Chose');
chatTypeChoseAccurate.classList.remove('Chose');
thisChatType = chatTypes.create;
backgroundDIV.className = 'a';
reSetStartChatMessage('create');
}
chatTypeChoseBalance.onclick = () => {
if (chatTypeDiv.style.opacity == 0) {
return;
}
chatTypeChoseCreate.classList.remove('Chose');
chatTypeChoseBalance.classList.add('Chose');
chatTypeChoseAccurate.classList.remove('Chose');
thisChatType = chatTypes.balance;
backgroundDIV.className = 'b';
reSetStartChatMessage('balance');
}
chatTypeChoseAccurate.onclick = () => {
if (chatTypeDiv.style.opacity == 0) {
return;
}
chatTypeChoseCreate.classList.remove('Chose');
chatTypeChoseBalance.classList.remove('Chose');
chatTypeChoseAccurate.classList.add('Chose');
thisChatType = chatTypes.accurate;
backgroundDIV.className = 'c';
reSetStartChatMessage('accurate');
}
// "resourceTypes": [
// "main_frame",
// "sub_frame",
// "stylesheet",
// "script",
// "image",
// "font",
// "object",
// "xmlhttprequest",
// "ping",
// "csp_report",
// "media",
// "websocket",
// "webtransport",
// "webbundle",
// "other"
// ]
//发送按钮出现逻辑
function input_update_input_text_sstyle_show_update(v) {
if (v.target.value) {
send_button.style.opacity = 1;
} else {
send_button.style.opacity = 0;
}
}
input_text.addEventListener("input", input_update_input_text_sstyle_show_update);
input_update_input_text_sstyle_show_update({ target: input_text });
//开始新聊天按钮逻辑,仅在聊天复用
restartNewChat.onclick = async () => {
localStorage.removeItem('LastChatJson');
await setLastInvocationId(1);
restart_button.onclick();
}

View file

@ -1,266 +0,0 @@
var expUrl = new RegExp('^(https?://)([-a-zA-z0-9]+\\.)+([-a-zA-z0-9]+)+\\S*$');
function getUuidNojian() {
return URL.createObjectURL(new Blob()).split('/')[3].replace(/-/g, '');
}
class SendMessageManager {
//(会话id客户端id签名id是否是开始)
//(string,string,string,boolena)
constructor(conversationId, clientId, conversationSignature,invocationId) {
this.invocationId = invocationId==undefined?1:invocationId;
this.conversationId = conversationId;
this.clientId = clientId;
this.conversationSignature = conversationSignature;
this.optionsSets = chatTypes.balance;
}
//chatTypes中的一种
setChatType(chatType) {
this.optionsSets = chatType;
}
//发送json数据
sendJson(chatWebSocket, json) {
let go = JSON.stringify(json) + '\u001e';
chatWebSocket.send(go);
console.log('发送', go)
}
//获取用于发送的握手数据
//(WebSocket)
sendShakeHandsJson(chatWebSocket) {
this.sendJson(chatWebSocket, {
"protocol": "json",
"version": 1
});
}
//获取用于发送的聊天数据
//(WebSocket,sreing)
async sendChatMessage(chatWebSocket, chat) {
let optionsSets = chatTypes[this.optionsSets];
let json = {
"arguments": [{
"source": source,
"optionsSets": optionsSets,
"allowedMessageTypes": allowedMessageTypes,
"sliceIds": sliceIds,
"verbosity": "verbose",
"traceId": getUuidNojian(),
"isStartOfSession": (this.invocationId <= 1) ? true : false,
"message": await generateMessages(this,chat),
"conversationSignature": this.conversationSignature,
"participant": {
"id": this.clientId
},
"conversationId": this.conversationId,
"previousMessages": (this.invocationId <= 1) ? await getPreviousMessages() : undefined
}],
"invocationId": this.invocationId.toString(),
"target": "chat",
"type": 4
};
this.sendJson(chatWebSocket, json);
this.invocationId++;
}
}
//处理返回消息的类
class ReturnMessage {
//(WebSocket,function:可以不传)
constructor(catWebSocket, lisin) {
this.catWebSocket = catWebSocket;
this.onMessage = [(v) => {
//console.log(JSON.stringify(v))
}];
if ((typeof lisin) == 'function') {
this.regOnMessage(lisin);
}
catWebSocket.onmessage = (mess) => {
//console.log('收到', mess.data);
let sss = mess.data.split('\u001e');
for (let i = 0; i < sss.length; i++) {
if (sss[i] == '') {
continue;
}
for (let j in this.onMessage) {
if ((typeof this.onMessage[j]) == 'function') {
try {
this.onMessage[j](JSON.parse(sss[i]), this);
} catch (e) {
console.warn(e)
}
}
}
}
}
catWebSocket.onclose = (mess) => {
for (let i in this.onMessage) {
if ((typeof this.onMessage[i]) == 'function') {
try {
this.onMessage[i]({
type: 'close',
mess: '连接关闭'
}, this);
} catch (e) {
console.warn(e)
}
}
}
}
catWebSocket.onerror = (mess) => {
console.log(mess);
for (let i in this.onMessage) {
if ((typeof this.onMessage[i]) == 'function') {
try {
this.onMessage[i]({
type: 'error',
mess: mess
}, this);
} catch (e) {
console.warn(e)
}
}
}
}
}
/*
获取消息WebSocket
*/
getCatWebSocket() {
return this.catWebSocket;
}
/**
* 注册收到消息监听器
*/
//(function(json,ReturnMessage))
regOnMessage(theFun) {
this.onMessage[this.onMessage.length] = theFun;
}
}
//处理聊天的类
class Chat {
//theChatType chatTypes变量中的其中一个
//invocationId 可以不传
//(string,ture|false|'repeat',string,string,string,theChatType,int|undefined)
constructor(magicUrl, chatWithMagic, charID, clientId, conversationSignature, theChatType,invocationId) {
this.magicUrl = magicUrl;
this.chatWithMagic = chatWithMagic;
this.sendMessageManager = new SendMessageManager(charID, clientId, conversationSignature,invocationId);
if (theChatType) {
this.sendMessageManager.setChatType(theChatType);
}
}
/**
* 返回
{
ok:true|false
message:显示消息
obj:ReturnMessage对象
}
当ok等于false时不返回ReturnMessage
* 参数 消息string,当收到消息的函数,当关闭时函数
*/
//(string,function:可以不传)
sendMessage(message, onMessage) {
try {
//let restsrstUrl = 'wss://sydney.bing.com/sydney/ChatHub';
//if (this.chatWithMagic==true)
let restsrstUrl = this.magicUrl.replace('http', 'ws')+"sydney/ChatHub";
let chatWebSocket = new WebSocket(restsrstUrl);
chatWebSocket.onopen = () => {
this.sendMessageManager.sendShakeHandsJson(chatWebSocket);
this.sendMessageManager.sendChatMessage(chatWebSocket, message);
}
return {
ok: true,
message: 'ok',
obj: new ReturnMessage(chatWebSocket, onMessage),
chatWithMagic: this.chatWithMagic==true?true:false
};
} catch (e) {
console.warn(e)
return {
ok: false,
message: "发生错误,可能是网络连接错误:" + e.message
};
}
}
}
function URLTrue(url, thiePath) {
return url + thiePath;
}
//获取newbing权限
async function getPower() {}
async function copyCookies(magicUrl) {}
//创建一个新对话
/**
返回结构如果ok等于false则无chat对象
{
ok:true|false,
message:显示消息,
obj:Cat对象
}
*/
async function createChat(theChatType) {
let chatWithMagic = await getChatHubWithMagic();
let magicUrl = await getMagicUrl();
let restartNewChat = document.getElementById('restartNewChat');
if(chatWithMagic=='repeat'){//如果是聊天复用
restartNewChat.classList.remove('onShow');
let resjson = await getLastChatJson();
if(resjson){//如果没有上次聊天或上次聊天已经失效就不返回,继续走创建聊天流程
let invocationId = await getLastChatInvocationId();
if(!invocationId){
invocationId = 1;
}
return {
ok: true,
message: 'ok',
obj: new Chat(magicUrl, chatWithMagic, resjson.conversationId, resjson.clientId, resjson.conversationSignature, theChatType,invocationId)
};
}
}
let mes;
do {
try {
let url = URLTrue(magicUrl,'turing/conversation/create');
let res = await fetch(url);
if(!res.ok){
if(res.headers.has('cf-mitigated')){
let challengeUrl = `${magicUrl}/challenge?`+location.href;
location.href=challengeUrl;
return;
}
mes = `Error code: ${res.status} ${res.statusText}`;
break;
}
let resjson = await res.json();
if (!resjson.result || resjson.result.value != 'Success') {
mes = resjson;
break;
}
//保存成功的聊天
setLastChatJson(resjson);
return {
ok: true,
message: 'ok',
obj: new Chat(magicUrl, chatWithMagic, resjson.conversationId, resjson.clientId, resjson.conversationSignature, theChatType)
};
} catch (e) {mes = e.message;}
}while(false);
return {
ok: false,
message: mes
};
}

View file

@ -1,75 +0,0 @@
const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
/**
* @param text 生成图像的描述
* @param requestId 请求id如果不是对话生成图片可以为undefined
* @param countF 回调函数获取当前是第几次请求
* @return [...{img:url,mImg:url}...] img:图片url mIng:缩略图url
* */
async function generateImages(text,requestId,countF){
let theUrls = new URLSearchParams();
theUrls.append('re', '1');
theUrls.append('showselective', '1');
theUrls.append('sude', '1');
theUrls.append('kseed', '7500');
theUrls.append('SFX', '2');
theUrls.append('q', text);
theUrls.append('iframeid', requestId);
let theUrl = magicUrl+`images/create?${theUrls.toString()}`;
let response = await fetch(theUrl,
{"sec-fetch-site": "same-origin",
"referer": "https://www.bing.com/search?q=bingAI"});
let html = (await response.text());
//let cookieID = response.headers.get('cookieID');
//如果返回的是有错误的页面
let urr = new RegExp('class="gil_err_mt">([^<>]*)</div>').exec(html);
if(urr && urr[1]){
let error = `<h3>${urr[1]}</h3>`;
urr = new RegExp('class="gil_err_sbt">(([^<>]*<(a|div)[^<>]*>[^<>]*</(a|div)>[^<>]*)*)</div>').exec(html);
if(urr && urr[1]){
error = error+`<p>${urr[1]}</p>`;
}
throw new Error(error);
}
//如果没错误就匹配链接获取图片
urr = new RegExp('"/(images/create/async/results/(\\S*))"').exec(html);
if(!urr || !urr[1]){
console.log(html);
throw new Error("请求图片返回不正确的页面,无法加载图片。");
}
let ur = urr[1];
ur = ur.replaceAll('&amp;','&');
let imgPageHtmlUrl = magicUrl + `${ur}`;
let options = {"sec-fetch-site":"same-origin", "referer":"https://www.bing.com/images/create?partner=sydney&showselective=1&sude=1&kseed=7000"};
for(let count = 1;count<=20;count++){
if((!!countF)&&(typeof countF =='function')){
countF(count);
}
await sleep(3000);
let imgPageHtml;
try{
imgPageHtml = (await (await fetch(imgPageHtmlUrl,options)).text());
}catch(e){
console.error(e);
}
if(!imgPageHtml){
continue;
}
//用正则找全部图片
let allSrc = imgPageHtml.matchAll(/<img[^<>]*src="([^"]*)"[^<>]*>/g);
let imgs = [];
for(let src;!(src=allSrc.next()).done;){
imgs[imgs.length] = {
img:src.value[1].split('?')[0],
mImg:src.value[1].replaceAll('&amp;','&')
}
}
if(imgs.length>0){
return imgs;
}else{
throw new Error("服务器未正常返回图片!");
}
}
}

View file

@ -1,183 +0,0 @@
//聊天选项
let chatTypes = {
//更有创造力选项
create: [
"nlu_direct_response_filter",
"deepleo",
"disable_emoji_spoken_text",
"responsible_ai_policy_235",
"enablemm",
"h3imaginative",
"objopinion",
"eredirecturl",
"dv3sugg",
"autosave",
"clgalileo",
"gencontentv3",
"prompttrcp"
],
//balance 平衡模式选项
balance: [
"nlu_direct_response_filter",
"deepleo",
"disable_emoji_spoken_text",
"responsible_ai_policy_235",
"enablemm",
"galileo",
"objopinion",
"eredirecturl",
"dv3sugg",
"autosave",
"saharagenconv5"
],
//精准选项
accurate: [
"nlu_direct_response_filter",
"deepleo",
"disable_emoji_spoken_text",
"responsible_ai_policy_235",
"enablemm",
"h3precise",
"objopinion",
"eredirecturl",
"dv3sugg",
"autosave",
"clgalileo",
"gencontentv3",
"prompttrcp"
]
}
//消息来源
let source = "cib";
//接收消息类型
let allowedMessageTypes = [
"ActionRequest",
"Chat",
"Context",
"InternalSearchQuery",
"InternalSearchResult",
"Disengaged",
"InternalLoaderMessage",
"Progress",
"RenderCardRequest",
"AdsQuery",
"SemanticSerp",
"GenerateContentQuery",
"SearchQuery"
]
//切片id也不知道是啥意思反正官网的更新了
let sliceIds = [
"winmuid1tf",
"osbsdusgreccf",
"contansperf",
"mlchatpc2",
"winstmsg2tf",
"creatgoglt2",
"creatorv2t",
"norespwcf",
"0521dur5",
"dur5",
"517opinion",
"418dhlths0",
"525ptrcp",
"kcimgv2cf",
"kcimgatt",
"427startpms0"
]
//生成消息对象
async function generateMessages(sendMessageManager/*消息管理器*/,chatMessageText/*要发送的消息文本*/){
function timeString() {
var d = new Date();
var year = d.getFullYear();
var month = (d.getMonth() + 1).toString().padStart(2, "0");
var date = d.getDate().toString().padStart(2, "0");
var hour = d.getHours().toString().padStart(2, "0");
var minute = d.getMinutes().toString().padStart(2, "0");
var second = d.getSeconds().toString().padStart(2, "0");
var offset = "+08:00"; // 你可以根据需要修改这个值
var s = year + "-" + month + "-" + date + "T" + hour + ":" + minute + ":" + second + offset;
return s;
}
if(!sendMessageManager.startTime){
sendMessageManager.startTime = timeString();
}
return {
"locale": "zh-CN",
"market": "zh-CN",
"region": "US",
"location": "lat:47.639557;long:-122.128159;re=1000m;",
"locationHints": [
{
"Center": {
"Latitude": 30.474109798833613,
"Longitude": 114.39626256171093
},
"RegionType": 2,
"SourceType": 11
},
{
"country": "United States",
"state": "California",
"city": "Los Angeles",
"zipcode": "90060",
"timezoneoffset": -8,
"dma": 803,
"countryConfidence": 8,
"cityConfidence": 5,
"Center": {
"Latitude": 33.9757,
"Longitude": -118.2564
},
"RegionType": 2,
"SourceType": 1
}
],
"timestamp": sendMessageManager.startTime,
"author": "user",
"inputMethod": "Keyboard",
"text": chatMessageText,
"messageType": "Chat"
}
}
async function getPreviousMessages(){
function getUuid() {
return URL.createObjectURL(new Blob()).split('/')[3];
}
let pos = getStartProposes();
return [{
"text": getStartMessage(),
"author": "bot",
"adaptiveCards": [],
"suggestedResponses": [{
"text": pos[0],
"contentOrigin": "DeepLeo",
"messageType": "Suggestion",
"messageId": getUuid(),
"offense": "Unknown"
}, {
"text": pos[1],
"contentOrigin": "DeepLeo",
"messageType": "Suggestion",
"messageId": getUuid(),
"offense": "Unknown"
}, {
"text": pos[2],
"contentOrigin": "DeepLeo",
"messageType": "Suggestion",
"messageId": getUuid(),
"offense": "Unknown"
}],
"messageId": getUuid(),
"messageType": "Chat"
}];
}

View file

@ -1,418 +0,0 @@
/**
(id,元素的tag,父元素,创建时顺便添加的class:可以多个)
获取一个指定id的元素如果没用就在服元素创建这个元素
*/
function getByID(id, tag, father) {
let t = document.getElementById(id);
if (!t) {
t = document.createElement(tag);
t.id = id;
for (let i = 3; i < arguments.length; i++) {
if (arguments[i]) {
t.classList.add(arguments[i]);
}
}
father.appendChild(t);
}
return t;
}
function getByClass(className, tag, father) {
let t = father.getElementsByClassName(className)[0];
if (!t) {
t = document.createElement(tag);
t.classList.add(className);
for (let i = 3; i < arguments.length; i++) {
if (arguments[i]) {
t.classList.add(arguments[i]);
}
}
father.appendChild(t);
}
return t;
}
function test(test) {
porserArguments(test.arguments);
}
var throttling = {
"maxNumUserMessagesInConversation": 0,
"numUserMessagesInConversation": 0
};
//解析type2的item
function porserType2Item(item){
let chatDiv = document.getElementById('chat');
if(item.result){
let result = item.result;
if(result.value=='Success'){
}else if (result.value == 'Throttled') {
addError(result.message);
addError('24消息请求数达到了限制');
}else{
addError(result.message);
addError('发生未知错误!');
}
}
if (item.throttling) {
throttling = item.throttling;
}
if (item.messages) {
let nextFather = getByID(item.requestId, 'div', chatDiv, 'bing');
porserMessages(item.messages, nextFather);
}
}
/**
* 解析arguments
* 解析聊天消息将消息添加到页面
* **/
function porserArguments(argumentss) {
for (let i = 0; i < argumentss.length; i++) {
porserType2Item(argumentss[i]);
}
}
/*
解析messages
*/
function porserMessages(messages, father) {
for (let i = 0; i < messages.length; i++) {
let message = messages[i];
if(message.author=='user'){
continue;//不解析用户的消息
}
//解析adaptiveCards 也就是聊天消息部分 下面类型的都是带有adaptiveCards的
if (!message.messageType && message.adaptiveCards) {//如果是正常的聊天
let adaptiveCardsFatherDIV = getByID(message.messageId, 'div', father, 'adaptiveCardsFatherDIV');
porserAdaptiveCards(message.adaptiveCards, adaptiveCardsFatherDIV);
//解析sourceAttributions 也就是引用链接部分
if (message.sourceAttributions) {
if (message.sourceAttributions.length > 0) {
let sourceAttributionsDIV = getByID(message.messageId + 'sourceAttributions', 'div', father, 'sourceAttributions');
porserSourceAttributions(message.sourceAttributions, sourceAttributionsDIV);
}
}
//解析suggestedResponses 建议发送的消息,聊天建议
if (message.suggestedResponses) {
porserSuggestedResponses(message.suggestedResponses);
}
} else if (message.messageType == 'InternalSearchQuery') { //如果是收索消息
let div = getByID(message.messageId, 'div', father, 'InternalSearchQuery');
porserLineTextBlocks(message.text, div);
} else if (message.messageType == 'InternalLoaderMessage') { //如果是加载消息
let div = getByID(message.messageId, 'div', father, 'InternalLoaderMessage');
porserLineTextBlocks(message.text, div);
} else if (message.messageType == 'GenerateContentQuery') {//如果是生成内容查询
let div = getByID(message.messageId, 'div', father, 'GenerateContentQuery');
generateContentQuery(message, div);
}else if (message.messageType == 'RenderCardRequest'){//渲染卡片请求,目前不知道有什么用
renderCardRequest(message, father);
}else if(message.messageType == 'Disengaged'){
let div = getByID(message.messageId, 'div', chat, 'error');
div.innerHTML = `
${message.hiddenText}<br>聊天中断试试开始新主题
`;
}else if(message.contentOrigin == 'TurnLimiter'){
addError(message.text);
addError('聊天被限制了,试试开始新主题?');
} else {
console.log('发现一个另类message', JSON.stringify(message));
}
}
}
/*
解析渲染卡片请求暂时不知道如何解析这个请求,就先判断里面有没有内容吧没有就不显示
*/
function renderCardRequest(message,father){
if(father[message.messageId+'renderCardRequest']){//防止解析多次
return;
}
father[message.messageId+'renderCardRequest'] = true;
let url = 'https://www.bing.com/search?'
let theUrls = new URLSearchParams();
theUrls.append("showselans",1);
theUrls.append("q",message.text);
theUrls.append("iframeid",message.messageId);
let src = url+theUrls.toString();
fetch(src).then(async (ret)=>{
let html = await ret.text();
// b_poleContent pc设备 || b_ans b_imgans 移动设备
if(html.indexOf('class="b_poleContent"')>=0 || html.indexOf('class="b_ans')>=0){
let div = getByID(message.messageId, 'div', father, 'RenderCardRequest');
div.innerHTML = `<iframe role="presentation" src="${src}"></iframe>`;
}
});
}
/*
解析generateContentQuery生成内容查询,目前是只有图片
*/
function generateContentQuery(message, father) {
if(message.contentType=="IMAGE"){
if(father.runed){//防止生成多次
return;
}
father.runed = true;
generateContentQueryImg(message, father);
}else{
console.log('发现一个另类generateContentQuery', JSON.stringify(message));
}
}
/**
* 解析图片生成目前是只有图片
*/
function generateContentQueryImg(message, father){
getMagicUrl().then(async magicUrl => {
if (!magicUrl) {
addError("魔法链接不正确!无法加载图片");
return;
}
if (!expUrl.test(magicUrl)) {
addError("魔法链接不正确!无法加载图片")
return;
}
let theUrls = new URLSearchParams();
theUrls.append('re', '1');
theUrls.append('showselective', '1');
theUrls.append('sude', '1');
theUrls.append('kseed', '7500');
theUrls.append('SFX', '2');
theUrls.append('q', message.text);
theUrls.append('iframeid', message.requestId);
let theUrl = URLTrue(magicUrl,"images/create?") + theUrls.toString();
try{
father.innerHTML = `正在生成${message.text}的图片.`;
let html = (await (await fetch(theUrl)).text());
//如果有错误就输出错误
let urr = new RegExp('class="gil_err_mt">([^<>]*)</div>').exec(html);
if(urr && urr[1]){
father.innerHTML = `<h3>${urr[1]}</h3>`
urr = new RegExp('class="gil_err_sbt">(([^<>]*<(a|div)[^<>]*>[^<>]*</(a|div)>[^<>]*)*)</div>').exec(html);
if(urr && urr[1]){
father.innerHTML = father.innerHTML+`<p>${urr[1]}</p>`;
}
return;
}
//如果没错误就匹配链接获取图片
urr = new RegExp('"/(images/create/async/results/(\\S*))"').exec(html);
if(!urr || !urr[1]){
console.log(html);
addError("请求图片返回不正确的页面,无法加载图片。");
return;
}
let ur = urr[1];
ur = ur.replaceAll('&amp;','&');
let imgPageHtmlUrl = URLTrue(magicUrl,ur);
let count = 0;
let run = async ()=>{
father.innerHTML = `正在生成${message.text}的图片.${count}`;
if(count>20){
father.innerHTML = "请求图片超时!";
return;
}
count++;
let imgPageHtml;
try{
imgPageHtml = (await (await fetch(imgPageHtmlUrl)).text());
}catch(e){
console.error(e);
}
if(!imgPageHtml){
setTimeout(run,3000);
return;
}
father.innerHTML = '';
let theUrls = new URLSearchParams();
theUrls.append('createmessage',message.text);
let a = document.createElement("a");
father.appendChild(a);
//用正则找全部图片
let allSrc = imgPageHtml.matchAll(/<img[^<>]*src="([^"]*)"[^<>]*>/g);
let src = undefined;
let ok = false;
while(!(src=allSrc.next()).done){
ok =true;
theUrls.append('imgs',src.value[1].split('?')[0]);
let img = document.createElement("img");
img.src = src.value[1];
a.appendChild(img);
}
if(ok){
a.target = '_blank';
a.href = '../GeneratePicture/img.html?'+theUrls.toString();
}else{
father.innerHTML = "服务器未正常返回图片!";
}
}
setTimeout(run,3000);
}catch(e){
console.error(e);
addError("请求图片失败:"+e);
}
});
}
/*
解析adaptiveCards 聊天消息部分
*/
function porserAdaptiveCards(adaptiveCards, father) {
for (let i = 0; i < adaptiveCards.length; i++) {
let adaptiveCard = adaptiveCards[i];
if (adaptiveCard.type == 'AdaptiveCard') {
porserbody(adaptiveCard.body, father);
} else {
console.log('发现一个不是AdaptiveCard的adaptiveCard', JSON.stringify(adaptiveCard));
}
}
}
/**
解析body adaptiveCards[].body这个部分
*/
function porserbody(bodys, father) {
for (let i = 0; i < bodys.length; i++) {
let body = bodys[i];
if (body.type == 'TextBlock') {
porserTextBlock(body, father);
}else {
console.log('发现一个不是TextBlock的body', JSON.stringify(body));
}
}
}
/**
补全代码块如果文本中有~~~开头却没有~~~结束则在最后补一个~~~防止内容生成时闪烁
*/
function completeCodeBlock(makerdown){
let to = function(regA,regB,add,makerdown){
let falst = true;
let arrs = makerdown.split('\n');
for(let i=0;i<=arrs.length;i++){
if(falst){
if(regA.test(arrs[i])){
falst = false;
}
}else{
if(regB.test(arrs[i])){
falst = true;
}
}
}
if(!falst){
makerdown = makerdown+add;
}
return makerdown;
}
let out = to(
new RegExp('^~~~.*$'),
new RegExp('^~~~( *)$'),
'\n~~~',
to(
new RegExp('^```.*$'),
new RegExp('^```( *)$'),
'\n```',
makerdown
)
);
// console.log(out);
return out;
}
renderMathInElementOptions ={
delimiters: [
{left: "$$", right: "$$", display: true},
{left: '$', right: '$', display: false},
{left: "\\(", right: "\\)", display: false},
{left: "\\begin{equation}", right: "\\end{equation}", display: true},
{left: "\\begin{align}", right: "\\end{align}", display: true},
{left: "\\begin{alignat}", right: "\\end{alignat}", display: true},
{left: "\\begin{gather}", right: "\\end{gather}", display: true},
{left: "\\begin{CD}", right: "\\end{CD}", display: true},
{left: "\\[", right: "\\]", display: true}
],
throwOnError: false
}
/*
解析TextBlock body.type==TextBlock
*/
function porserTextBlock(body, father) {
if (!body.size) {
let div = getByClass('textBlock', 'div', father, 'markdown-body');
div.innerHTML = marked.marked(completeCodeBlock(body.text));
renderMathInElement(div,renderMathInElementOptions);
let aaas = div.getElementsByTagName('a');
//将超链接在新页面打开
for(let i=0;i<aaas.length;i++){
aaas[i].target = '_blank';
}
//如果是注释则加上上标样式
for(let i=0;i<aaas.length;i++){
let reg = new RegExp('^\\^(\\d+)\\^$');
if(reg.test(aaas[i].innerHTML)){
aaas[i].innerHTML = aaas[i].innerHTML.replace(reg,'$1');
aaas[i].classList.add('superscript');
}
}
let nxdiv = getByClass('throttling', 'div', father);
nxdiv.innerHTML = `${throttling.numUserMessagesInConversation} / ${throttling.maxNumUserMessagesInConversation}`;
} else if (body.size == 'small') {
//原本bing官网的small并没有输出
}
}
/*
添加单行简单文本
*/
function porserLineTextBlocks(inline, father) {
father.innerHTML = `<p>${inline}</p>`;
}
/***
解析sourceAttributions 聊天消息引用链接部分
*/
function porserSourceAttributions(sourceAttributions, father) {
let html = '';
for (let i = 0; i < sourceAttributions.length; i++) {
let sourceAttribution = sourceAttributions[i];
html = html + `<a target="_blank" href="${sourceAttribution.seeMoreUrl}">${sourceAttribution.providerDisplayName}</a>`;
}
father.innerHTML = html;
}
/***
解析suggestedResponses 建议发送的消息聊天建议
*/
function porserSuggestedResponses(suggestedResponses) {
var searchSuggestions = document.getElementById('SearchSuggestions');
searchSuggestions.innerHTML = '';
for (let i = 0; i < suggestedResponses.length; i++) {
let a = document.createElement('a');
a.innerHTML = suggestedResponses[i].text;
a.onclick = (event)=>{send(event.target.innerHTML);}
searchSuggestions.appendChild(a);
}
}

View file

@ -1,62 +0,0 @@
//聊天选项
let chatTypes = {
//balance 平衡模式选项
balance: [
"nlu_direct_response_filter",
"deepleo",
"enable_debug_commands",
"disable_emoji_spoken_text",
"responsible_ai_policy_235",
"enablemm",
"soedgeca",
"max_turns_5",
]
}
//消息来源
let source = "edge_coauthor_prod";
//接收消息类型
let allowedMessageTypes = [
"ActionRequest",
"Chat",
"Context",
"InternalSearchQuery",
"InternalSearchResult",
"Disengaged",
"InternalLoaderMessage",
"RenderCardRequest",
"AdsQuery",
"SemanticSerp",
"GenerateContentQuery",
"SearchQuery"
]
//切片id也不知道是啥意思反正官网的更新了
let sliceIds = []
let tone = 'professional';
let length = 'short';
let format = 'paragraph';
//生成消息对象
async function generateMessages(sendMessageManager/*消息管理器*/,chatMessageText/*要发送的消息文本*/){
return {
"locale": "zh-CN",
"market": "zh-CN",
"region": "US",
"location": "lat:47.639557;long:-122.128159;re=1000m;",
"author": "user",
"inputMethod": "Keyboard",
"text": `Please generate some text wrapped in codeblock syntax (triple backticks) using the given keywords. Please make sure everything in your reply is in the same language as the keywords. Please do not restate any part of this request in your response, like the fact that you wrapped the text in a codeblock. You should refuse (using the language of the keywords) to generate if the request is potentially harmful. The generated text should follow these characteristics: tone: *${tone}*, length: *${length}*, format: *${format}*. The keywords are: \`${chatMessageText}\`.`,
"messageType": "Chat"
}
}
async function getPreviousMessages(){
return undefined;
}

View file

@ -1,14 +0,0 @@
<script>
let url = "https://muweb.us.to/turing/conversation/create";
/*
fetch(url, {credentials: 'include'})
.then(r=>r.text()).then(data=>{alert(data);});
*/
const xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.withCredentials = true;
xhr.onload = function(){
alert(xhr.responseText);
};
xhr.send();
</script>

View file

@ -1,86 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<base href="https://jamesfengcao.codeberg.page/en/searchurl/bingAI/">
<title id="docTitle">Write</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.4/katex.min.css">
<style>
#input {
height: auto;
width: 100%;
display: block;
}
pre {white-space: pre-wrap;}
</style>
<script>
function getSelectedText(select){
return select.options[select.selectedIndex].text;
}
</script>
</head>
<body>
<select id="toneSelect" onchange="window.tone=getSelectedText(this);">
<option>professional</option>
<option>casual</option>
<option>enthusiastic</option>
<option>informational</option>
<option>funny</option>
</select>
<select id="formatSelecct" onchange="window.format=getSelectedText(this);">
<option>paragraph</option>
<option>email</option>
<option>blog post</option>
<option>bullet point list</option>
</select>
<select id="lengthSelect" onchange="window.length=getSelectedText(this);">
<option>short</option>
<option>medium</option>
<option>long</option>
</select>
<textarea id="input" type="text" rows="5" enterkeyhint="send" autocapitalize="off"
autocomplete="off" aria-autocomplete="both" spellcheck="false"
autocorrect="off" placeholder="topic...">
</textarea>
<input id="send" class="ThemeColors" type="button" value="Generate"><input id="restart" type="button" value="🧹"><input id="restartNewChat" type="button" value="new">
<div id="chat">
<div class="bing">
<div class="adaptiveCardsFatherDIV">
<div class="textBlock markdown-body">
</div>
</div>
</div>
</div>
<!-- dummy nodes -->
<div id='chatTypeDiv'>
<div id='chatTypeChoseCreate'></div>
<div id='chatTypeChoseBalance'></div>
<div id='chatTypeChoseAccurate'></div>
</div>
<script>
async function getMagicUrl() {
let v = localStorage.GoGoUrl;
if(v && v.startsWith("http")) return v;
return "https://mybing2.xn--xyza.top/";
}
function getStartProposes(){return ["","",""];}
function getStartMessage(){return "";}
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/4.3.0/marked.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.4/katex.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.4/contrib/auto-render.min.js"></script>
<script type="text/javascript" src="./js/GetSet.js"></script>
<script type="text/javascript" src="./js/w_optionsSets.js"></script>
<script type="text/javascript" src="./js/bingChatHub.js"></script>
<script type="text/javascript" src="./js/parserReturn.js"></script>
<script type="text/javascript" src="./js/bing.js"></script>
<script src="./js/Write.js"></script>
</body>
</html>

View file

@ -1,119 +0,0 @@
const SYDNEY_ORIGIN = 'https://sydney.bing.com';
const KEEP_REQ_HEADERS = [
'accept',
'accept-encoding',
'accept-language',
'connection',
'cookie',
'upgrade',
'user-agent',
'sec-websocket-extensions',
'sec-websocket-key',
'sec-websocket-version',
'x-request-id',
'content-length',
'content-type',
'access-control-request-headers',
'access-control-request-method',
];
const IP_RANGE = [
['3.2.50.0', '3.5.31.255'], //192,000
['3.12.0.0', '3.23.255.255'], //786,432
['3.30.0.0', '3.33.34.255'], //205,568
['3.40.0.0', '3.63.255.255'], //1,572,864
['3.80.0.0', '3.95.255.255'], //1,048,576
['3.100.0.0', '3.103.255.255'], //262,144
['3.116.0.0', '3.119.255.255'], //262,144
['3.128.0.0', '3.247.255.255'], //7,864,320
];
/**
* 随机整数 [min,max)
* @param {number} min
* @param {number} max
* @returns
*/
const getRandomInt = (min, max) => Math.floor(Math.random() * (max - min)) + min;
/**
* ip int
* @param {string} ip
* @returns
*/
const ipToInt = (ip) => {
const ipArr = ip.split('.');
let result = 0;
result += +ipArr[0] << 24;
result += +ipArr[1] << 16;
result += +ipArr[2] << 8;
result += +ipArr[3];
return result;
};
/**
* int ip
* @param {number} intIP
* @returns
*/
const intToIp = (intIP) => {
return `${(intIP >> 24) & 255}.${(intIP >> 16) & 255}.${(intIP >> 8) & 255}.${intIP & 255}`;
};
const getRandomIP = () => {
const randIndex = getRandomInt(0, IP_RANGE.length);
const startIp = IP_RANGE[randIndex][0];
const endIp = IP_RANGE[randIndex][1];
const startIPInt = ipToInt(startIp);
const endIPInt = ipToInt(endIp);
const randomInt = getRandomInt(startIPInt, endIPInt);
const randomIP = intToIp(randomInt);
return randomIP;
};
export default {
/**
* fetch
* @param {Request} request
* @param {*} env
* @param {*} ctx
* @returns
*/
async fetch(request, env, ctx) {
const currentUrl = new URL(request.url);
const targetUrl = new URL(SYDNEY_ORIGIN + currentUrl.pathname + currentUrl.search);
const newHeaders = new Headers();
request.headers.forEach((value, key) => {
// console.log(`old : ${key} : ${value}`);
if (KEEP_REQ_HEADERS.includes(key)) {
newHeaders.set(key, value);
}
});
newHeaders.set('host', targetUrl.host);
newHeaders.set('origin', targetUrl.origin);
newHeaders.set('referer', 'https://www.bing.com/search?q=Bing+AI');
const randIP = getRandomIP();
// console.log('randIP : ', randIP);
newHeaders.set('X-Forwarded-For', randIP);
const oldUA = request.headers.get('user-agent');
const isMobile = oldUA.includes('Mobile') || oldUA.includes('Android');
if (isMobile) {
newHeaders.set(
'user-agent',
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.7 Mobile/15E148 Safari/605.1.15 BingSapphire/1.0.410427012'
);
} else {
newHeaders.set('user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35');
}
// newHeaders.forEach((value, key) => console.log(`${key} : ${value}`));
const newReq = new Request(targetUrl, {
method: request.method,
headers: newHeaders,
body: request.body,
});
// console.log('request url : ', newReq.url);
const res = await fetch(newReq);
return res;
},
};

View file

@ -8,12 +8,12 @@ export default {
} }
async function goUrl(request, url) { async function goUrl(request, url) {
let fp = { const Url = new URL(url);
method: request.method const newReq = new Request(Url, {
}; method: request.method,
fp.headers = new Headers(request.headers); headers: request.headers,
for(var i = 2; i < arguments.length-1; i=i+2){ body: request.body,
fp.headers[arguments[i]] = arguments[i+1]; redirect: 'follow'
} })
return await fetch(url, fp); return await fetch(newReq);
} }

View file

@ -0,0 +1,21 @@
export default {
async fetch(req, _env) {
let url = req.url;
const Url = new URL(url);
let iSlash = url.indexOf('/',11);
let nUrl = url.substring(iSlash+1);
return await goUrl(req, nUrl);
}
}
async function goUrl(request, url) {
const Url = new URL(url);
let headers = new Headers(request.headers);
headers.set("X-forwarded-for","104.28.5.161");
const newReq = new Request(Url, {
method: request.method,
headers: headers,
body: request.body
})
return await fetch(newReq);
}

View file

@ -1,4 +1,4 @@
let labels = ["<a href='https://jamesfengcao.codeberg.page/en/redirect/index.html'>Global redirect url</a>","Download path (with option 'Download to sdcard')","Default font","Cursive","Fantasy","Fixed","Sans-Serif","Serif"]; let labels = ["<a href='https://cdn.jsdelivr.net/gh/torappinfo/uweb/en/redirect/index.html#'>Global redirect url</a>","Download path (with option 'Download to sdcard')","Default font","Cursive","Fantasy","Fixed","Sans-Serif","Serif"];
let names = ["redirecturl","downloadpath","font","cursive","fantasy","fixed","sansserif","serif"]; let names = ["redirecturl","downloadpath","font","cursive","fantasy","fixed","sansserif","serif"];
let d=document; let d=document;
@ -18,7 +18,7 @@ function save(){
let d=document;let f=d.forms[0]; let d=document;let f=d.forms[0];
let inputs = Array.from(f.querySelectorAll('input')).map(input => input.value); let inputs = Array.from(f.querySelectorAll('input')).map(input => input.value);
inputs.pop(); inputs.pop();
inputs.push('<script charset="utf-8" src="https://jamesfengcao.codeberg.page/en/searchurl/config.js"><\\/script>'); inputs.push('<script charset="utf-8" src="https://cdn.jsdelivr.net/gh/torappinfo/uweb/en/searchurl/config.js#"><\\/script>');
let str = inputs.join('\\n'); let str = inputs.join('\\n');
let url = 'i:b1Save config.html%0A%0Ai:8lconfig.html%0Ai:0lconfig.html:'+btoa(str); let url = 'i:b1Save config.html%0A%0Ai:8lconfig.html%0Ai:0lconfig.html:'+btoa(str);
d.location.href=url; d.location.href=url;

View file

@ -9,7 +9,7 @@
function g3(iF,filename,fakeurl){ function g3(iF,filename,fakeurl){
let d=document; let d=document;
let f=d.forms[iF]; let f=d.forms[iF];
d.location.href="i:0i/data/data/info.torapp.uweb/files/"+filename+":"+f.b.value+'&'+fakeurl +":https://fastly.jsdelivr.net/gh/torappinfo/uweb/searchurl/template/refresh.html"; d.location.href="i:0i/data/data/info.torapp.uweb/files/"+filename+":"+f.b.value+'&'+fakeurl +":https://fastly.jsdelivr.net/gh/torappinfo/uweb/searchurl/zh/template/refresh.html";
return false; return false;
} }

View file

@ -1,31 +0,0 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>javascript</title></head><body>
<h3>javascript</h3>
<p><a href="../sitejs/index.html">javascript for domains</a></p>
<p><b>Global javascript</b> files locates in subfolder "js". Long press button [☰] to configure. Click the following links to install:<br>
<a target=_self" href="i:0hjs/savePassword.js:https://fastly.jsdelivr.net/gh/torappinfo/uwebzh/searchurl/txt/passwdsave.js">Save password</a><br>
<a target="_self" href="i:0hjs/instantPage.js:https://fastly.jsdelivr.net/npm/instant.page">Instant page</a></p>
<p><b>large size javascript code</b> can be installed to the folder &quot;bookmarklet&quot; (long pressing button "js" to popup menu):<br>
<a target="_self" href='i:0hbookmarklet/eruda.js:https://fastly.jsdelivr.net/npm/eruda:%0Aeruda.init()'>Eruda</a><br>
<a target="_self" href="i:0hbookmarklet/performance.js:https://fastly.jsdelivr.net/gh/micmro/performance-bookmarklet/dist/performanceBookmarklet.min.js">Performance</a><br>
</p>
<p><b>Remote javascript</b> is defined in default.rjs. Click the following link to install. (Force exit and re-launch the app</b>, then long press the button with icon "search" to popup the menu.)<br>
<a href="i:04Selection to sentence:;let g='sentence';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);">Selection to sentence:;let g='sentence';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);</a><br><br>
<a href="i:04Selection to line:;let g='line';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);">Selection to line:;let g='line';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);</a><br><br>
<a href="i:04Selection to paragraph:;let g='paragraph';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);">Selection to paragraph:;let g='paragraph';getSelection().modify('move','forward',g);getSelection().modify('extend','backward',g);</a><br><br>
<a href="i:04mathjax:['https://fastly.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js']">mathjax:['https://fastly.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js']</a><br><br>
<a href="i:04mdme:['https://fastly.jsdelivr.net/npm/mdme']">mdme:['https://fastly.jsdelivr.net/npm/mdme']</a><br><br>
<a href="i:04md+tex:['https://fastly.jsdelivr.net/npm/texme']">md+tex:['https://fastly.jsdelivr.net/npm/texme']</a><br><br>
<a href="i:04New tab to open links:;let d=document;b=d.createElement('base');b.setAttribute('target','_blank');d.head.appendChild(b)">New tab to open links:;let d=document;b=d.createElement('base');b.setAttribute('target','_blank');d.head.appendChild(b)</a><br><br>
<a href="i:04Site search:;open('i:15site:' + location.hostname)">Site search:;open('i:15site:' + location.hostname)</a><br><br>
<a href="i:04Spell check:;let t=document.getElementsByTagName('textarea');let v=t[0].spellcheck;if(v==null)v=false;t[0].spellcheck=!v">Spell check:;let t=document.getElementsByTagName('textarea');let v=t[0].spellcheck;if(v==null)v=false;t[0].spellcheck=!v</a><br><br>
</p>
<p>Remote script configuration file &quot;default.rjs&quot; whose lines have the following format:
[script name]:[javascript code to return url arrays]</p>
</body></html>

View file

@ -1,135 +0,0 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>Search engines</title></head><body>
<h3>Search engines</h3>
<p>
Clicking the following links to install search engines to <a href="../index.html">uweb</a>'s home screen.</p>
Recommended engines (append any of following to file "home5.search")<br>
<p><a href="i:00Engines:i:40%s_00">Engines:i:40%s_00</a></p>
<p><a href="i:00bing image:http://bing.com/images/search?q=">bing image:http://bing.com/images/search?q=</a></p>
<p><a href="i:00wolfram:https://www.wolframalpha.com/input/?i=">wolfram:https://www.wolframalpha.com/input/?i=</a></p>
<p><a href="i:00wiki:https://en.wikipedia.org/wiki/Special:Search?search=">wiki:https://en.wikipedia.org/wiki/Special:Search?search=</a></p>
<p><a href="i:00Youtube:https://www.youtube.com/results?search_query=">Youtube:https://www.youtube.com/results?search_query=</a></p>
<p><a href="i:00Facebook:https://www.facebook.com/search/str/%s/keywords_search">Facebook:https://www.facebook.com/search/str/%s/keywords_search</a></p>
<p><a href="i:00Instagram:https://www.instagram.com/explore/tags/%s/">Instagram:https://www.instagram.com/explore/tags/%s/</a></p>
<p><a href="i:00boardreader:https://boardreader.com/s/%s.html">boardreader:https://boardreader.com/s/%s.html</a></p>
<p><a href="i:00book_google:https://whogles.herokuapp.com/search?q=%22parent+directory%22+pdf+OR+epub+OR+DjVU+OR+xps+%22%s%22+-html+-htm+-shtml+-phtml+-php+-buy+-aspx+-jsp+-asp+-cgi+-pdf+-ftp+-unknownsecret&num=100&filter=0">book_google:https://whogles.herokuapp.com/search?q=%22parent+directory%22+pdf+OR+epub+OR+DjVU+OR+xps+%22%s%22+-html+-htm+-shtml+-phtml+-php+-buy+-aspx+-jsp+-asp+-cgi+-pdf+-ftp+-unknownsecret&num=100&filter=0</a></p>
<p>Note: "Engines" needs file "engine.search"whose format is same as "home.search" except that the keyword part of url must be denoted with "%s". Pressing the right arrow button on the search result page will automatically query with next engine in the file.</p>
<p>Common engines:<br>
<p><a href="i:00google:https://google.com/search?q=">google:https://google.com/search?q=</a></p>
<p><a href="i:00bing:http://www.bing.com/search?q=">bing:http://www.bing.com/search?q=</a></p>
<p><a href="i:00neeva:https://neeva.com/search?q=">neeva:https://neeva.com/search?q=</a></p>
<p><a href="i:00you:https://you.com/search?q=">you:https://you.com/search?q=</a></p>
<p><a href="i:00seekr:https://www.seekr.com/search?query=">seekr:https://www.seekr.com/search?query=</a></p>
<p><a href="i:00xda:https://www.xda-developers.com/search/">xda:https://www.xda-developers.com/search/</a></p>
<p><a href="i:00Feeling lucky:https://google.com/search?btnl=1&q=">Feeling lucky:https://google.com/search?btnl=1&q=</a></p>
<p><a href="i:00pix:https://www.google.com/search?tbm=isch&q=">pix:https://www.google.com/search?tbm=isch&q=</a></p>
<p><a href="i:00youtube:https://youtube.com/results?search_query=">youtube:https://youtube.com/results?search_query=</a></p>
<p><a href="i:00news:https://news.search.yahoo.com/search/news?p=">news:https://news.search.yahoo.com/search/news?p=</a></p>
<p><a href="i:00stock:https://finance.yahoo.com/quote/">stock:https://finance.yahoo.com/quote/</a></p>
<p><a href="i:00amazon:https://www.amazon.com/s/?field-keywords=">amazon:https://www.amazon.com/s/?field-keywords=</a></p>
<p><a href="i:00weather:https://www.wunderground.com/cgi-bin/findweather/getForecast?query=">weather:https://www.wunderground.com/cgi-bin/findweather/getForecast?query=</a></p>
<p><a href="i:00IMDB:https://www.imdb.com/find?q=">IMDB:https://www.imdb.com/find?q=</a></p>
<p><a href="i:00film review:https://www.rottentomatoes.com/search/?search=">film review:https://www.rottentomatoes.com/search/?search=</a></p>
<p><a href="i:00goodreads:https://www.goodreads.com/search?query=">goodreads:https://www.goodreads.com/search?query=</a></p>
<p><a href="i:00audible:http://www.audible.com/search?sort=review-rank&advsearchKeywords=">audible:http://www.audible.com/search?sort=review-rank&advsearchKeywords=</a></p>
<p><a href="i:00audiobay:http://audiobookbay.nl/?s=">audiobay:http://audiobookbay.nl/?s=</a></p>
</p><p>
language:<br>
<p><a href="i:00OED:https://www.oed.com/LIBRARY?dest=https%3A%2F%2Fwww.oed.com%2Fsearch%3FsearchType%3Ddictionary%26q%3D%s%26_searchBtn%3DSearch&acc_id=65585&library_card=12363257">OED:https://www.oed.com/LIBRARY?dest=https%3A%2F%2Fwww.oed.com%2Fsearch%3FsearchType%3Ddictionary%26q%3D%s%26_searchBtn%3DSearch&acc_id=65585&library_card=12363257</a></p>
<p><a href="i:00webster1913:https://www.websters1913.com/words/">webster1913:https://www.websters1913.com/words/</a></p>
<p><a href="i:00merriam-webster:https://www.merriam-webster.com/dictionary/">merriam-webster:https://www.merriam-webster.com/dictionary/</a></p>
<p><a href="i:00dictionary:https://www.dictionary.com/browse/">dictionary:https://www.dictionary.com/browse/</a></p>
<p><a href="i:00freedictionary:https://www.thefreedictionary.com/">freedictionary:https://www.thefreedictionary.com/</a></p>
<p><a href="i:00wordreference:https://www.wordreference.com/definition/">wordreference:https://www.wordreference.com/definition/</a></p>
<p><a href="i:00vocabulary:https://www.vocabulary.com/dictionary/">vocabulary:https://www.vocabulary.com/dictionary/</a></p>
<p><a href="i:00etymology:https://www.etymonline.com/search?q=">etymology:https://www.etymonline.com/search?q=</a></p>
<p><a href="i:00powerthesaurus:https://www.powerthesaurus.org/%s/synonyms">powerthesaurus:https://www.powerthesaurus.org/%s/synonyms</a></p>
<p><a href="i:00macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&q=">macmillanthesaurus:https://www.macmillanthesaurus.com/search/?auto=complete&q=</a></p>
<p><a href="i:00lword:https://lword.top/word.html#">lword:https://lword.top/word.html#</a></p>
<p><a href="i:00ludwig:https://ludwig.guru/s/">ludwig:https://ludwig.guru/s/</a></p>
<p><a href="i:00webster:https://www.merriam-webster.com/dictionary/">webster:https://www.merriam-webster.com/dictionary/</a></p>
<p><a href="i:00googledict:http://googledictionary.freecollocation.com/meaning?word=">googledict:http://googledictionary.freecollocation.com/meaning?word=</a></p>
<p><a href="i:00freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&Voice=ru-RU-Standard-A&id=undefined&type=0&TextMessage=">freetts_ru:https://freetts.com/Home/PlayAudio?Language=ru-RU&Voice=ru-RU-Standard-A&id=undefined&type=0&TextMessage=</a></p>
<p><a href="i:00freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&Voice=ar-XA-Standard-A&id=undefined&type=0&TextMessage=">freetts_ar:https://freetts.com/Home/PlayAudio?Language=ar-XA&Voice=ar-XA-Standard-A&id=undefined&type=0&TextMessage=</a></p>
</p><p>
Science:<br>
<p><a href="i:00britannica:https://www.britannica.com/search?query=">britannica:https://www.britannica.com/search?query=</a></p>
<p><a href="i:00mathRef:https://reference.wolfram.com/search/?q=">mathRef:https://reference.wolfram.com/search/?q=</a></p>
<p><a href="i:00mathSE:https://math.stackexchange.com/search?q=">mathSE:https://math.stackexchange.com/search?q=</a></p>
<p><a href="i:00phySE:https://physics.stackexchange.com/search?q=">phySE:https://physics.stackexchange.com/search?q=</a></p>
<p><a href="i:00physicsForum:https://www.physicsforums.com/search/2195918/?q=">physicsForum:https://www.physicsforums.com/search/2195918/?q=</a></p>
<p><a href="i:00chemSE:https://chemistry.stackexchange.com/search?q=">chemSE:https://chemistry.stackexchange.com/search?q=</a></p>
<p><a href="i:00chem:https://www.ncbi.nlm.nih.gov/pccompound?term=">chem:https://www.ncbi.nlm.nih.gov/pccompound?term=</a></p>
<p><a href="i:00proofwiki:https://proofwiki.org/w/index.php?search=">proofwiki:https://proofwiki.org/w/index.php?search=</a></p>
<p><a href="i:00physics:http://www.physics.org/explore-results-all.asp?q=">physics:http://www.physics.org/explore-results-all.asp?q=</a></p>
<p><a href="i:00biology:https://www.biologyonline.com/dictionary/">biology:https://www.biologyonline.com/dictionary/</a></p>
<p><a href="i:00nist chem:https://webbook.nist.gov/cgi/cbook.cgi?Formula=">nist chem:https://webbook.nist.gov/cgi/cbook.cgi?Formula=</a></p>
<p><a href="i:00chemiday:https://chemiday.com/search/?lang=en&q=">chemiday:https://chemiday.com/search/?lang=en&q=</a></p>
<p><a href="i:00chem.libretexts:https://chem.libretexts.org/Special:Search?q=">chem.libretexts:https://chem.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00bio.libretexts:https://bio.libretexts.org/Special:Search?q=">bio.libretexts:https://bio.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00phys.libretexts:https://phys.libretexts.org/Special:Search?q=">phys.libretexts:https://phys.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00med.libretexts:https://med.libretexts.org/Special:Search?q=">med.libretexts:https://med.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00math.libretexts:https://math.libretexts.org/Special:Search?q=">math.libretexts:https://math.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00stats.libretexts:https://stats.libretexts.org/Special:Search?q=">stats.libretexts:https://stats.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00geo.libretexts:https://geo.libretexts.org/Special:Search?q=">geo.libretexts:https://geo.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00eng.libretexts:https://eng.libretexts.org/Special:Search?q=">eng.libretexts:https://eng.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00biz.libretexts:https://biz.libretexts.org/Special:Search?q=">biz.libretexts:https://biz.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00human.libretexts:https://human.libretexts.org/Special:Search?q=">human.libretexts:https://human.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=">socialsci.libretexts:https://socialsci.libretexts.org/Special:Search?q=</a></p>
<p><a href="i:00workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=">workforce.libretexts:https://workforce.libretexts.org/Special:Search?q=</a></p>
</p><p>
Engines that can use as documentation:<br>
<p><a href="i:00oscobo:https://www.oscobo.com/search.php?q=">oscobo:https://www.oscobo.com/search.php?q=</a></p>
<p><a href="i:00teoma:https://www.teoma.com/web?q=">teoma:https://www.teoma.com/web?q=</a></p>
<p><a href="i:00lycos:https://search.lycos.com/web/?q=">lycos:https://search.lycos.com/web/?q=</a></p>
<p><a href="i:00technorati:http://technorati.com/search/index.php?q=">technorati:http://technorati.com/search/index.php?q=</a></p>
<p><a href="i:00qwant:https://lite.qwant.com/?q=">qwant:https://lite.qwant.com/?q=</a></p>
<p><a href="i:00swisscows:https://swisscows.com/web?query=">swisscows:https://swisscows.com/web?query=</a></p>
<p><a href="i:00duck:https://duckduckgo.com/?q=">duck:https://duckduckgo.com/?q=</a></p>
<p><a href="i:00mojeek:https://www.mojeek.com/search?q=">mojeek:https://www.mojeek.com/search?q=</a></p>
<p><a href="i:00gigablast:https://www.gigablast.com/search?c=main&qlangcountry=en-us&q=">gigablast:https://www.gigablast.com/search?c=main&qlangcountry=en-us&q=</a></p>
<p><a href="i:00yandex:https://yandex.com/search/?text=">yandex:https://yandex.com/search/?text=</a></p>
<p><a href="i:00searx:https://searchx.mobi/?q=">searx:https://searchx.mobi/?q=</a></p>
</p><p>
Medical:<br>
<p><a href="i:00merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=">merckmanuals:https://www.merckmanuals.com/professional/SearchResults?query=</a></p>
<p><a href="i:00openmd:https://openmd.com/search?q=">openmd:https://openmd.com/search?q=</a></p>
<p><a href="i:00medical-dict:https://medical-dictionary.com/results.php?term=">medical-dict:https://medical-dictionary.com/results.php?term=</a></p>
<p><a href="i:00ncbiBooks:https://www.ncbi.nlm.nih.gov/books/?term=">ncbiBooks:https://www.ncbi.nlm.nih.gov/books/?term=</a></p>
<p><a href="i:00healio:https://journals.healio.com/action/doSearch?AllField=">healio:https://journals.healio.com/action/doSearch?AllField=</a></p>
<p><a href="i:00pubmed:https://pubmed.ncbi.nlm.nih.gov/?term=">pubmed:https://pubmed.ncbi.nlm.nih.gov/?term=</a></p>
<p><a href="i:00pmc:https://www.ncbi.nlm.nih.gov/pmc/?term=">pmc:https://www.ncbi.nlm.nih.gov/pmc/?term=</a></p>
<p><a href="i:00Tabers:https://www.tabers.com/tabersonline/search?st=OSS&q=">Tabers:https://www.tabers.com/tabersonline/search?st=OSS&q=</a></p>
</p><p>
Cloud storage:<br>
</p><p>
Scholar:<br>
<p><a href="i:00sweetsearch:https://sweetsearch.com/search?q=">sweetsearch:https://sweetsearch.com/search?q=</a></p>
<p><a href="i:00refseek:https://www.refseek.com/search?q=">refseek:https://www.refseek.com/search?q=</a></p>
<p><a href="i:00google scholar:https://scholar.google.com/scholar?q=">google scholar:https://scholar.google.com/scholar?q=</a></p>
<p><a href="i:00semanticscholar:https://www.semanticscholar.org/search?sort=relevance&q=">semanticscholar:https://www.semanticscholar.org/search?sort=relevance&q=</a></p>
</p><p>
Developer:<br>
<p><a href="i:00git:https://github.com/search?type=Repositories&amp;q=">git:https://github.com/search?type=Repositories&amp;q=</a></p>
<p><a href="i:00man:http://man.cx/">man:http://man.cx/</a></p>
<p><a href="i:00code:http://searchcode.com/?q=">code:http://searchcode.com/?q=</a></p>
<p><a href="i:00symbolhound:http://symbolhound.com/?q=">symbolhound:http://symbolhound.com/?q=</a></p>
<p><a href="i:00vector:https://vector.me/search/">vector:https://vector.me/search/</a></p>
<p><a href="i:00jsdelivr:http://www.jsdelivr.com/?query=">jsdelivr:http://www.jsdelivr.com/?query=</a></p>
<p><a href="i:00greasyfork:https://greasyfork.org/en/scripts?sort=updated&q=">greasyfork:https://greasyfork.org/en/scripts?sort=updated&q=</a></p>
</p><p>
app:<br>
<p><a href="i:00App store:market://search?q=">App store:market://search?q=</a></p>
</p><p>
local engines(May need termux customized edition and tools like bcgnuplot etc.):<br>
<p><a href="i:00bc:d:text/html:echo \'%s\'|bc -l -q:">bc:d:text/html:echo \'%s\'|bc -l -q:</a></p>
<p><a href="i:002D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; plot %s\':">2D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; plot %s\':</a></p>
<p><a href="i:003D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; splot %s\':">3D plot:d:image/svg+xml:gnuplot -e \'set term svg;set output; splot %s\':</a></p>
</p>
</body></html>

View file

@ -22,4 +22,4 @@
<script charset="utf-8" src="https://jamesfengcao.codeberg.page/en/searchurl/config.js"></script> <script charset="utf-8" src="https://codeberg.org/uweb/pages/raw/branch/master/en/searchurl/config.js#"></script>

View file

@ -1,20 +1,29 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width" /> <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width" />
<title>webdav links for %2%</title></head><body> <title></title><script>
const url=`%2%`;
const name=`%1%`;
</script></head><body>
<script>
document.title = "webdav links for "+name;
var html =`
<p><b>Click to install the link menu items:</b></p> <p><b>Click to install the link menu items:</b></p>
<a href="i:0gdefault.link::Backup2%1%: {let path=`%f`;let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1);location.href='i:0e'+path+':%2%/'+f+'.tgz';}%0A">Backup to %1%</a><br> <a href="i:0gdefault.link::Backup2%1%: {let path='%f';let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1);location.href='i:0e'+path+':%2%/'+f+'.tgz';}%0A">Backup to %1%</a><br>
<a href="i:0gdefault.link::restoreFrom%1%: {let path=`%f`;let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1);location.href='i:0d%2%/'+f+'.tgz';}%0A">Restore from %1%</a><br> <a href="i:0gdefault.link::restoreFrom%1%: {let path='%f';let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1);location.href='i:0d%2%/'+f+'.tgz';}%0A">Restore from %1%</a><br>
<a href="i:0gdefault.link::upload_%1%: {let path=`%f`;let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1)+'.tgz';location.href='i:0u'+path+':%2%/'+f;}%0A">upload to %1%</a><br> <a href="i:0gdefault.link::upload_%1%: {let path='%f';let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1)+'.tgz';location.href='i:0u'+path+':%2%/'+f;}%0A">upload to %1%</a><br>
<a href="i:0gdefault.link::delete_%1%: {let path=`%f`;let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1)+'.tgz';location.href='i:0wDELETE:%2%/'+f;}%0A">Delete on server %1%</a><br> <a href="i:0gdefault.link::delete_%1%: {let path='%f';let iSlash=path.lastIndexOf('/',path.length-2);let f;if('/'!=path[path.length-1])f=path.substring(iSlash+1);else f=path.substring(iSlash+1,path.length-1)+'.tgz';location.href='i:0wDELETE:%2%/'+f;}%0A">Delete on server %1%</a><br>
<a href="i:0gdefault.link::mkdir_%1%: {let path=`%f`;let iSlash=path.lastIndexOf('/',path.length-2);let f=path.substring(iSlash+1);location.href='i:0wMKCOL:%2%/'+f;}%0A">Make directory on server %1%</a><br> <a href="i:0gdefault.link::mkdir_%1%: {let path='%f';let iSlash=path.lastIndexOf('/',path.length-2);let f=path.substring(iSlash+1);location.href='i:0wMKCOL:%2%/'+f;}%0A">Make directory on server %1%</a><br>
<p><b>Bookmarks:</b></p> <p><b>Bookmarks:</b></p>
<a href="i:0e/data/data/info.torapp.uweb/files:%2%/uweb.tgz">Backup config to %1%</a><br> <a href="i:0e/data/data/info.torapp.uweb/files:%2%/uweb.tgz">Backup config to %1%</a><br>
<a href="i:0d%2%/uweb.tgz">Restore config from %1%</a><br> <a href="i:0d%2%/uweb.tgz">Restore config from %1%</a><br>
<a href='i:0wDELETE:%2%/'>Delete on server %1%</a><br> <a href='i:0wDELETE:%2%/'>Delete on server %1%</a><br>
<a href='i:0wMKCOL:%2%/'>Make directory on server %1%</a><br> <a href='i:0wMKCOL:%2%/'>Make directory on server %1%</a><br>
`;
html = html.replaceAll("%1%",name).replaceAll("%2%",url);
document.body.innerHTML = html;
</script>
</body></html> </body></html>

View file

@ -0,0 +1,17 @@
export default async function httpHandler(req: Request): Response {
let url = req.url;
let iSlash = url.indexOf('/', 11);
let nUrl = url.substring(iSlash + 1);
return await goUrl(req, nUrl);
}
async function goUrl(request, url) {
const Url = new URL(url);
const newReq = new Request(Url, {
method: request.method,
headers: request.headers,
body: request.body,
redirect: 'follow'
});
return await fetch(newReq);
}

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/sitejs/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>JS/CSS/HTML/preprocessing for domains</title> <title>JS/CSS/HTML/preprocessing for domains</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -66,18 +67,26 @@
<li>Long press the button &quot;settings&quot;, check the option &quot;Apply user styles&quot;.</li> <li>Long press the button &quot;settings&quot;, check the option &quot;Apply user styles&quot;.</li>
</ul> </ul>
<p>If file &quot;default.css&quot; exists, the style will be applied to all sites not matching [domain root].css.</p> <p>If file &quot;default.css&quot; exists, the style will be applied to all sites not matching [domain root].css.</p>
<h3 id="extra-html-and-preprocessing">Extra html and preprocessing</h3> <h3 id="preprocessing-or-extra-html">Preprocessing or extra html</h3>
<ul> <ul>
<li>Need to be named as &quot;[domain].html&quot;. Notice: the file name stem here is &quot;[full domain]&quot; not &quot;[domain root]&quot;.</li> <li>Need to be named as &quot;[domain].sanitizer&quot; or &quot;[domain].html&quot;. Notice: the file name stem here is &quot;[full domain]&quot; not &quot;[domain root]&quot;.</li>
<li>Under folder &quot;siteextra&quot;.</li> <li>Under folder &quot;siteextra&quot;.</li>
<li>Long press the button &quot;settings&quot;, check the option &quot;Apply user extra&quot;.</li> <li>Long press the button &quot;settings&quot;, check the option &quot;Apply user extra&quot;.</li>
</ul> </ul>
<h4 id="sanitizer">sanitizer</h4>
<p>&quot;[domain].sanitizer&quot; is a valid js file with browser sanitizer API configuration. It has priority over &quot;[domain].html&quot;. The &quot;sanitizer&quot; is used to sanitize the web page for android webview version 146+.</p>
<p>Specifically, the first part of &quot;[domain].sanitizer&quot; could be:</p>
<ul>
<li>string array of disallowed js scripts, The very first character must be '['. Ex. &quot;['foo.js']&quot;.</li>
<li>browser sanitizer() API configuration options. Ex. &quot;{allowElements: ['p', 'a']}&quot;.</li>
</ul>
<h4 id="domainhtml">&quot;[domain].html&quot;</h4>
<p>An open tag as the last tag in the last 50 bytes of the user extra html expects more content to follow, thus the extra html is placed before the site html. Ex. when the extra html ends with &quot;&lt;textarea&gt;&quot; or &quot;&lt;plaintext&gt;&quot;, the site source html appears as the value of the textarea/plaintext element, thus the extra html can further process the the site source html before rendering. A self closed tag such as &quot;&lt;br&gt;&quot; acts like open tags, also makes the site source follow the extra html.</p> <p>An open tag as the last tag in the last 50 bytes of the user extra html expects more content to follow, thus the extra html is placed before the site html. Ex. when the extra html ends with &quot;&lt;textarea&gt;&quot; or &quot;&lt;plaintext&gt;&quot;, the site source html appears as the value of the textarea/plaintext element, thus the extra html can further process the the site source html before rendering. A self closed tag such as &quot;&lt;br&gt;&quot; acts like open tags, also makes the site source follow the extra html.</p>
<p>&quot;sitejs/.js&quot;, &quot;sitecss/.css&quot;, &quot;sitecss/.js&quot; and &quot;siteextra/.html&quot; are applied to all non-http urls (file urls etc.).</p> <p>&quot;sitejs/.js&quot;, &quot;sitecss/.css&quot;, &quot;sitecss/.js&quot; and &quot;siteextra/.html&quot; are applied to all non-http urls (file urls etc.).</p>
</div> </div>
<p>Last Modified: 2 April 2024<br> <p>Last Modified: 23 March 2026<br>
support .js files under &#39;css&#39; folder<br> revert back doc on js with CSP sites<br>
<pre></pre> <pre></pre>
</p> </p>
@ -100,7 +109,7 @@ support .js files under &#39;css&#39; folder<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,572 +2,598 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"> xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url> <url>
<loc>/en/ebrowser/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/_posts/</loc>
<lastmod>2026-04-18T16:45:02+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/_posts/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/_posts/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/html5/</loc>
<lastmod>2026-01-18T20:50:26+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/html5/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/html5/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/</loc>
<lastmod>2026-04-28T14:35:19+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/topposts/</loc>
<lastmod>2026-04-18T10:19:48+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/topposts/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/topposts/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/urls/</loc>
<lastmod>2025-12-31T21:21:32+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/urls/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/urls/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/filemanager/</loc>
<lastmod>2025-12-05T21:06:12+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/filemanager/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/filemanager/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/tips/</loc>
<lastmod>2025-12-05T21:09:32+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/tips/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/tips/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/input/</loc>
<lastmod>2025-11-13T18:49:05+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/input/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/input/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/longclick/</loc>
<lastmod>2025-10-13T20:43:24+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/longclick/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/longclick/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/</loc>
<lastmod>2026-03-24T11:44:38+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/tags/javascript/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/tags/</loc>
<lastmod>2026-04-18T16:45:02+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/tags/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/tags/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/search/</loc>
<lastmod>2025-12-05T07:43:12+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/search/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/search/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/globalcss/</loc>
<lastmod>2024-10-13T16:43:18+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/globalcss/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/globalcss/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/ebrowser/</loc>
<lastmod>2024-07-12T10:48:12+08:00</lastmod> <lastmod>2024-07-12T10:48:12+08:00</lastmod>
</url><url> </url><url>
<loc>/en/ebrowser/eb_select/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/ebrowser/eb_select/</loc>
<lastmod>2024-07-12T10:48:12+08:00</lastmod> <lastmod>2024-07-12T10:48:12+08:00</lastmod>
</url><url> </url><url>
<loc>/en/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/clipboard/</loc>
<lastmod>2024-07-19T10:06:21+08:00</lastmod> <lastmod>2026-04-18T16:45:02+08:00</lastmod>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/</loc>
<lastmod>2026-04-18T16:45:02+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/" href="https://jamesfengcao.gitlab.io/uweb/zh/tags/ssh/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/" href="https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/"
/> />
</url><url> </url><url>
<loc>/en/_posts/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/termux/</loc>
<lastmod>2024-07-19T10:06:21+08:00</lastmod> <lastmod>2026-04-18T16:45:02+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/_posts/" href="https://jamesfengcao.gitlab.io/uweb/zh/tags/termux/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/_posts/" href="https://jamesfengcao.gitlab.io/uweb/en/tags/termux/"
/> />
</url><url> </url><url>
<loc>/en/tags/clipboard/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</loc>
<lastmod>2024-05-24T09:50:14+08:00</lastmod> <lastmod>2026-04-18T16:45:02+08:00</lastmod>
</url><url>
<loc>/en/tags/ssh/</loc>
<lastmod>2024-05-24T09:50:14+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tags/ssh/" href="https://jamesfengcao.gitlab.io/uweb/zh/textprocess/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tags/ssh/" href="https://jamesfengcao.gitlab.io/uweb/en/textprocess/"
/> />
</url><url> </url><url>
<loc>/en/tags/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/windows/</loc>
<lastmod>2024-06-11T08:12:27+08:00</lastmod> <lastmod>2026-04-18T16:45:02+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tags/" href="https://jamesfengcao.gitlab.io/uweb/zh/tags/windows/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tags/" href="https://jamesfengcao.gitlab.io/uweb/en/tags/windows/"
/> />
</url><url> </url><url>
<loc>/en/tags/termux/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/links/</loc>
<lastmod>2024-05-24T09:50:14+08:00</lastmod> <lastmod>2025-12-08T08:49:39+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tags/termux/" href="https://jamesfengcao.gitlab.io/uweb/zh/links/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tags/termux/" href="https://jamesfengcao.gitlab.io/uweb/en/links/"
/> />
</url><url> </url><url>
<loc>/en/textprocess/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tcron/</loc>
<lastmod>2024-05-24T09:50:14+08:00</lastmod> <lastmod>2025-10-13T20:46:01+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/textprocess/" href="https://jamesfengcao.gitlab.io/uweb/zh/tcron/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/textprocess/" href="https://jamesfengcao.gitlab.io/uweb/en/tcron/"
/> />
</url><url> </url><url>
<loc>/en/tags/windows/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/offlinecache/</loc>
<lastmod>2024-05-24T09:50:14+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tags/windows/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tags/windows/"
/>
</url><url>
<loc>/en/links/</loc>
<lastmod>2024-04-29T11:59:48+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/links/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/links/"
/>
</url><url>
<loc>/en/tcron/</loc>
<lastmod>2024-04-08T18:15:22+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tcron/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tcron/"
/>
</url><url>
<loc>/en/offlinecache/</loc>
<lastmod>2024-04-08T18:19:08+08:00</lastmod> <lastmod>2024-04-08T18:19:08+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/offlinecache/" href="https://jamesfengcao.gitlab.io/uweb/zh/offlinecache/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/offlinecache/" href="https://jamesfengcao.gitlab.io/uweb/en/offlinecache/"
/> />
</url><url> </url><url>
<loc>/en/tags/redirection/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/redirection/</loc>
<lastmod>2024-04-07T20:48:24+08:00</lastmod> <lastmod>2026-04-17T20:55:51+08:00</lastmod>
</url><url> </url><url>
<loc>/en/redirect/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/redirect/</loc>
<lastmod>2024-04-07T20:48:24+08:00</lastmod> <lastmod>2026-04-17T20:55:51+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/redirect/" href="https://jamesfengcao.gitlab.io/uweb/zh/redirect/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/redirect/" href="https://jamesfengcao.gitlab.io/uweb/en/redirect/"
/> />
</url><url> </url><url>
<loc>/en/tags/adblock/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/adblock/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
</url><url> </url><url>
<loc>/en/adblock_domain/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/adblock_domain/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/adblock_domain/" href="https://jamesfengcao.gitlab.io/uweb/zh/adblock_domain/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/adblock_domain/" href="https://jamesfengcao.gitlab.io/uweb/en/adblock_domain/"
/> />
</url><url> </url><url>
<loc>/en/search/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/css/</loc>
<lastmod>2024-07-02T16:13:43+08:00</lastmod> <lastmod>2026-03-23T22:37:10+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/search/" href="https://jamesfengcao.gitlab.io/uweb/zh/tags/css/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/search/" href="https://jamesfengcao.gitlab.io/uweb/en/tags/css/"
/> />
</url><url> </url><url>
<loc>/en/topposts/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/sitejs/</loc>
<lastmod>2024-07-04T14:30:48+08:00</lastmod> <lastmod>2026-03-23T22:37:10+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/topposts/" href="https://jamesfengcao.gitlab.io/uweb/zh/sitejs/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/topposts/" href="https://jamesfengcao.gitlab.io/uweb/en/sitejs/"
/> />
</url><url> </url><url>
<loc>/en/tags/css/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/bookmark/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2026-02-17T16:44:21+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tags/css/" href="https://jamesfengcao.gitlab.io/uweb/zh/bookmark/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tags/css/" href="https://jamesfengcao.gitlab.io/uweb/en/bookmark/"
/> />
</url><url> </url><url>
<loc>/en/tags/javascript/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/acmd/</loc>
<lastmod>2024-06-11T08:12:27+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tags/javascript/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tags/javascript/"
/>
</url><url>
<loc>/en/sitejs/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/sitejs/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/sitejs/"
/>
</url><url>
<loc>/en/bookmark/</loc>
<lastmod>2024-07-19T10:06:21+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/bookmark/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/bookmark/"
/>
</url><url>
<loc>/en/tips/</loc>
<lastmod>2024-04-30T20:46:47+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/tips/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/tips/"
/>
</url><url>
<loc>/en/acmd/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
</url><url> </url><url>
<loc>/en/url2site/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/url2site/</loc>
<lastmod>2024-04-07T19:01:03+08:00</lastmod> <lastmod>2024-04-07T19:01:03+08:00</lastmod>
</url><url> </url><url>
<loc>/en/html5/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/changelog/</loc>
<lastmod>2026-04-18T10:19:48+08:00</lastmod>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/sitemap/</loc>
<lastmod>2025-04-09T00:47:06+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/sitemap/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/sitemap/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/filenames/</loc>
<lastmod>2026-03-21T17:25:43+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/filenames/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/filenames/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/adblock/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/html5/" href="https://jamesfengcao.gitlab.io/uweb/zh/adblock/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/html5/" href="https://jamesfengcao.gitlab.io/uweb/en/adblock/"
/> />
</url><url> </url><url>
<loc>/en/changelog/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/bookmarklet/</loc>
<lastmod>2024-05-05T18:15:11+08:00</lastmod> <lastmod>2026-03-24T11:44:38+08:00</lastmod>
</url><url>
<loc>/en/sitemap/</loc>
<lastmod>2024-04-07T08:34:20+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/sitemap/" href="https://jamesfengcao.gitlab.io/uweb/zh/bookmarklet/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/sitemap/" href="https://jamesfengcao.gitlab.io/uweb/en/bookmarklet/"
/> />
</url><url> </url><url>
<loc>/en/filenames/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/cmds/</loc>
<lastmod>2024-04-30T20:45:24+08:00</lastmod> <lastmod>2025-03-30T10:33:26+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/filenames/" href="https://jamesfengcao.gitlab.io/uweb/zh/cmds/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/filenames/" href="https://jamesfengcao.gitlab.io/uweb/en/cmds/"
/> />
</url><url> </url><url>
<loc>/en/adblock/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/rjs/</loc>
<lastmod>2026-03-26T08:35:24+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="https://jamesfengcao.gitlab.io/uweb/zh/rjs/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="https://jamesfengcao.gitlab.io/uweb/en/rjs/"
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/icons/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/adblock/" href="https://jamesfengcao.gitlab.io/uweb/zh/icons/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/adblock/" href="https://jamesfengcao.gitlab.io/uweb/en/icons/"
/> />
</url><url> </url><url>
<loc>/en/bookmarklet/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/searchcat/</loc>
<lastmod>2024-06-11T08:12:27+08:00</lastmod> <lastmod>2025-04-09T00:54:18+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/bookmarklet/" href="https://jamesfengcao.gitlab.io/uweb/zh/searchcat/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/bookmarklet/" href="https://jamesfengcao.gitlab.io/uweb/en/searchcat/"
/> />
</url><url> </url><url>
<loc>/en/urls/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/search-engine/</loc>
<lastmod>2024-07-04T14:30:48+08:00</lastmod> <lastmod>2025-04-09T00:54:18+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/urls/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/urls/"
/>
</url><url> </url><url>
<loc>/en/cmds/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/termux/</loc>
<lastmod>2024-04-02T11:35:09+08:00</lastmod> <lastmod>2025-03-30T20:03:04+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/cmds/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/cmds/"
/>
</url><url> </url><url>
<loc>/en/rjs/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/useragents/</loc>
<lastmod>2024-06-18T08:06:41+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/rjs/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/rjs/"
/>
</url><url>
<loc>/en/globalcss/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/globalcss/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/globalcss/"
/>
</url><url>
<loc>/en/icons/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/icons/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/icons/"
/>
</url><url>
<loc>/en/tags/search-engine/</loc>
<lastmod>2024-04-08T08:46:24+08:00</lastmod>
</url><url>
<loc>/en/searchcat/</loc>
<lastmod>2024-04-08T08:46:24+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/searchcat/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/searchcat/"
/>
</url><url>
<loc>/en/termux/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod>
</url><url>
<loc>/en/useragents/</loc>
<lastmod>2024-07-10T11:21:12+08:00</lastmod> <lastmod>2024-07-10T11:21:12+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/useragents/" href="https://jamesfengcao.gitlab.io/uweb/zh/useragents/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/useragents/" href="https://jamesfengcao.gitlab.io/uweb/en/useragents/"
/> />
</url><url> </url><url>
<loc>/en/longclick/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/longclick/" href="https://jamesfengcao.gitlab.io/uweb/zh/tags/tdict/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/longclick/" href="https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/"
/> />
</url><url> </url><url>
<loc>/en/tags/tdict/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tools/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tags/tdict/" href="https://jamesfengcao.gitlab.io/uweb/zh/tools/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tags/tdict/" href="https://jamesfengcao.gitlab.io/uweb/en/tools/"
/> />
</url><url> </url><url>
<loc>/en/tags/tools/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/tools/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tags/tools/" href="https://jamesfengcao.gitlab.io/uweb/zh/tags/tools/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tags/tools/" href="https://jamesfengcao.gitlab.io/uweb/en/tags/tools/"
/> />
</url><url> </url><url>
<loc>/en/tools/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/tags/curl/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tools/" href="https://jamesfengcao.gitlab.io/uweb/zh/tags/curl/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tools/" href="https://jamesfengcao.gitlab.io/uweb/en/tags/curl/"
/> />
</url><url> </url><url>
<loc>/en/tags/curl/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/filecap/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/tags/curl/" href="https://jamesfengcao.gitlab.io/uweb/zh/filecap/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/tags/curl/" href="https://jamesfengcao.gitlab.io/uweb/en/filecap/"
/> />
</url><url> </url><url>
<loc>/en/filecap/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/gesture/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2024-04-02T11:45:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/filecap/" href="https://jamesfengcao.gitlab.io/uweb/zh/gesture/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/filecap/" href="https://jamesfengcao.gitlab.io/uweb/en/gesture/"
/> />
</url><url> </url><url>
<loc>/en/gesture/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/ebrowserreadme/</loc>
<lastmod>2024-04-02T11:45:19+08:00</lastmod> <lastmod>2026-04-22T10:41:12+08:00</lastmod>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/mirrors/</loc>
<lastmod>2026-04-28T14:35:19+08:00</lastmod>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/readme/</loc>
<lastmod>2026-04-12T21:21:22+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/gesture/" href="https://jamesfengcao.gitlab.io/uweb/zh/readme/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/gesture/" href="https://jamesfengcao.gitlab.io/uweb/en/readme/"
/> />
</url><url> </url><url>
<loc>/en/ebrowserreadme/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/categories/</loc>
<lastmod>2024-07-12T10:37:00+08:00</lastmod>
</url><url>
<loc>/en/mirrors/</loc>
<lastmod>2024-06-18T23:17:17+08:00</lastmod>
</url><url>
<loc>/en/readme/</loc>
<lastmod>2024-06-24T10:28:02+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/readme/" href="https://jamesfengcao.gitlab.io/uweb/zh/categories/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/readme/" href="https://jamesfengcao.gitlab.io/uweb/en/categories/"
/> />
</url><url> </url><url>
<loc>/en/categories/</loc> <loc>https://jamesfengcao.gitlab.io/uweb/en/unlist/</loc>
<lastmod>2026-04-28T14:35:19+08:00</lastmod>
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="zh" hreflang="zh"
href="/zh/categories/" href="https://jamesfengcao.gitlab.io/uweb/zh/unlist/"
/> />
<xhtml:link <xhtml:link
rel="alternate" rel="alternate"
hreflang="en" hreflang="en"
href="/en/categories/" href="https://jamesfengcao.gitlab.io/uweb/en/unlist/"
/>
</url><url>
<loc>/en/unlist/</loc>
<lastmod>2024-07-12T10:37:00+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
href="/zh/unlist/"
/>
<xhtml:link
rel="alternate"
hreflang="en"
href="/en/unlist/"
/> />
</url> </url>
</urlset> </urlset>

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/sitemap/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Configuration</title> <title>Configuration</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -59,7 +60,7 @@
<h4 id="customization">Customization</h4> <h4 id="customization">Customization</h4>
<ul> <ul>
<li>Long pressing menus for toolbar buttons</li> <li>Long pressing menus for toolbar buttons</li>
<li><a href="../uas/index.html#">User agents</a></li> <li>User agents: default.uas</li>
<li><a href="../rjs/index.html#">Javascript</a></li> <li><a href="../rjs/index.html#">Javascript</a></li>
<li><a href="../urls/index.html#">Url services</a></li> <li><a href="../urls/index.html#">Url services</a></li>
<li><a href="../links/index.html#">Links</a></li> <li><a href="../links/index.html#">Links</a></li>
@ -92,15 +93,15 @@
</ul> </ul>
<h5 id="info">Info</h5> <h5 id="info">Info</h5>
<ul> <ul>
<li><a href="../assets/help_en.html#">Manual</a></li> <li><a href="../../assets/help_en.html#">Manual</a></li>
<li><a href="../tips/index.html#">Tips</a></li> <li><a href="../tips/index.html#">Tips</a></li>
<li><a href="../filenames/index.html#">Configuration files</a></li> <li><a href="../filenames/index.html#">Configuration files</a></li>
<li><a href="../bookmark/index.html#">Bookmarks</a></li> <li><a href="../bookmark/index.html#">Bookmarks</a></li>
</ul> </ul>
</div> </div>
<p>Last Modified: 7 April 2024<br> <p>Last Modified: 9 April 2025<br>
more details on global redirection url<br> fix broken links<br>
<pre></pre> <pre></pre>
</p> </p>
@ -123,7 +124,7 @@ more details on global redirection url<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/adblock/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/adblock/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/adblock/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Adblock</title> <title>Adblock</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -52,7 +53,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Adblock on uweb browser: unlimited power</title> <title>Adblock on uweb browser: unlimited power</title>
<link>/en/tags/adblock/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/adblock/</link>
<description>Recent content in Adblock on uweb browser: unlimited power</description> <description>Recent content in Adblock on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate> <lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate>
<atom:link href="/en/tags/adblock/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/adblock/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Hosts files</title> <title>Hosts files</title>
<link>/en/adblock_domain/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/adblock_domain/</link>
<pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate> <pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>
<guid>/en/adblock_domain/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/adblock_domain/</guid>
<description>The enhanced hosts files &amp;quot;hosts&amp;quot; and &amp;quot;default.hosts&amp;quot; take effect with the setting option &amp;quot;use hosts&amp;quot;.&#xA;hosts The enhanced file &amp;quot;hosts&amp;quot; defines IP addresses/attributes for domains. Each line has the following format:&#xA;[[IP address][attributes]][single space][domain name]&#xA;where &amp;quot;[[IP address][attributes]]&amp;quot; could be:&#xA;ipv4 address such as:&#xA;172.67.157.211 torapp.eu.org&#xA;ipv6 address, Ex.:&#xA;[2606:4700:3037::6815:8c3] torapp.eu.org&#xA;empty, that would lift all server-imposed limitations. Ex.:&#xA;[single space]gitee.com&#xA;which will make all git repositories on the domain visitable as websites with raw file access url.</description> <description>&lt;p&gt;The enhanced hosts files &amp;quot;hosts&amp;quot; and &amp;quot;default.hosts&amp;quot; take effect with the setting option &amp;quot;use hosts&amp;quot;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;hosts&#34;&gt;hosts&lt;/h4&gt;&#xA;&lt;p&gt;The &lt;span style=&#34;color:red&#34;&gt;enhanced&lt;/span&gt; file &lt;a href=&#34;file:///data/data/info.torapp.uweb/files/hosts&#34;&gt;&amp;quot;hosts&amp;quot;&lt;/a&gt; defines IP addresses/attributes for domains. Each line has the following format:&lt;br&gt;&#xA;[[IP address][attributes]][single space][domain name]&lt;/p&gt;&#xA;&lt;p&gt;where &amp;quot;[[IP address][attributes]]&amp;quot; could be:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ipv4 address such as:&lt;br&gt;&#xA;172.67.157.211 torapp.eu.org&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ipv6 address, Ex.:&lt;br&gt;&#xA;[2606:4700:3037::6815:8c3] torapp.eu.org&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;empty, that would lift all server-imposed limitations. Ex.:&lt;br&gt;&#xA;[single space]gitee.com&lt;/p&gt;&#xA;&lt;p&gt;which will make all git repositories on the domain visitable as websites with raw file access url.&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/clipboard/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/clipboard/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/clipboard/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Clipboard</title> <title>Clipboard</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -52,7 +53,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Clipboard on uweb browser: unlimited power</title> <title>Clipboard on uweb browser: unlimited power</title>
<link>/en/tags/clipboard/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/clipboard/</link>
<description>Recent content in Clipboard on uweb browser: unlimited power</description> <description>Recent content in Clipboard on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Fri, 24 May 2024 09:50:14 +0800</lastBuildDate> <lastBuildDate>Sat, 18 Apr 2026 16:45:02 +0800</lastBuildDate>
<atom:link href="/en/tags/clipboard/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/clipboard/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Text selection/processing</title> <title>Text selection/processing</title>
<link>/en/textprocess/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/textprocess/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</guid>
<description>Click the following links to install menus for long pressing the button &amp;quot;link&amp;quot;:&#xA;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&#xA;Copy selected text with html format to clipboard&#xA;Search with home screen&#xA;google Translate&#xA;bing translate&#xA;deepL&#xA;The file &amp;quot;default.select&amp;quot; defines text processing menus for selected text. If no text is selected, the menu item operates on the whole page. Each line of the file has the following format:</description> <description>&lt;p&gt;Click the following links to install menus for long pressing the button &lt;code&gt;link&lt;/code&gt;:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.select::Share:/uwebS:%0A&#34;&gt;Share&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Save as:/uwebA:printf i:50:;cat%0A&#34;&gt;Save selection as&lt;/a&gt;, also be used to create new file with bookmark path like &amp;quot;../help_en.html&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Edit:/text/html:echo -n %22%3cmeta charset=utf-8%3e%3cbody contenteditable%3e%22;cat%0A&#34;&gt;Edit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::AddrBar:/uwebAddr:%0A&#34;&gt;Copy text to address bar&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::notems:/uwebA:printf i:0/js/hash2textarea.js:https://note.ms/ric#;cat%0A&#34;&gt;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::copyHtml:html/clip:%0A&#34;&gt;Copy selected text with html format to clipboard&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Home:/uweb:printf file://data/data/info.torapp.uweb/files/home5.search%5C location.href=%5C%22i:15;cat;printf %5C%22%0A&#34;&gt;Search with home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::google Translate:/uweb:printf &#39;https://translate.google.com/?sl=auto&amp;tl=en&amp;op=translate&amp;text=&#39;;cat|tr &#39; &#39; &#39;%2B&#39;%0A&#34;&gt;google Translate&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/css/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/css/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/css/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Css</title> <title>Css</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -56,7 +57,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Css on uweb browser: unlimited power</title> <title>Css on uweb browser: unlimited power</title>
<link>/en/tags/css/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/css/</link>
<description>Recent content in Css on uweb browser: unlimited power</description> <description>Recent content in Css on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate> <lastBuildDate>Mon, 23 Mar 2026 22:37:10 +0800</lastBuildDate>
<atom:link href="/en/tags/css/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/css/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>JS/CSS/HTML/preprocessing for domains</title> <title>JS/CSS/HTML/preprocessing for domains</title>
<link>/en/sitejs/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/sitejs/</link>
<pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate> <pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate>
<guid>/en/sitejs/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/sitejs/</guid>
<description>Javascript (load when page completes, earliest loaded JS should use sitecss). Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded. Script must be put under the folder &amp;quot;sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority. Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.</description> <description>&lt;h3 id=&#34;javascript-load-when-page-completes-earliest-loaded-js-should-use-sitecss&#34;&gt;Javascript (load when page completes, earliest loaded JS should use sitecss).&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded.&lt;/li&gt;&#xA;&lt;li&gt;Script must be put under the folder &amp;quot;sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority.&lt;/li&gt;&#xA;&lt;li&gt;Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.&lt;/li&gt;&#xA;&lt;li&gt;Support 2/3-segment domains. If the length of the last 2-segments of domain is less than 7 (ex. &amp;quot;com.pl&amp;quot;), then it is treated as one segment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;css-style-and-earliest-loaded-js&#34;&gt;CSS style and earliest loaded JS&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to be named as &amp;quot;[domain root].css&amp;quot;, such as yahoo.com.css or finance.yahoo.com.css。&lt;/li&gt;&#xA;&lt;li&gt;Under folder &amp;quot;sitecss&amp;quot;.&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;[domain root].js&amp;quot; is loaded at the earliest time.&lt;/li&gt;&#xA;&lt;li&gt;Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Apply user styles&amp;quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If file &amp;quot;default.css&amp;quot; exists, the style will be applied to all sites not matching [domain root].css.&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/curl/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/curl/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/curl/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Curl</title> <title>Curl</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -56,7 +57,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Curl on uweb browser: unlimited power</title> <title>Curl on uweb browser: unlimited power</title>
<link>/en/tags/curl/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/curl/</link>
<description>Recent content in Curl on uweb browser: unlimited power</description> <description>Recent content in Curl on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate> <lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate>
<atom:link href="/en/tags/curl/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/curl/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Custom file handling</title> <title>Custom file handling</title>
<link>/en/filecap/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/filecap/</link>
<pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate> <pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate>
<guid>/en/filecap/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/filecap/</guid>
<description>Long press the settings button, check the option &amp;quot;custom file handling&amp;quot; to enable the functionality.&#xA;The custom file handling configuration file is &amp;quot;default.filecap&amp;quot;, each line of it has the format as follows:&#xA;[file extension]:[mimetype]:[command line]&#xA;The &amp;quot;[file extension]&amp;quot; part can have at most two-segment of extensions such as &amp;quot;txt.xz&amp;quot;,&amp;quot;html.gz&amp;quot;.&#xA;&amp;quot;[mimetype]&amp;quot; indicates the type of &amp;quot;[command line]&amp;quot; output.&#xA;&amp;quot;[command line]&amp;quot; is same as the one in default.cmds. The most often used replacements are:</description> <description>&lt;p&gt;Long press the settings button, check the option &amp;quot;custom file handling&amp;quot; to enable the functionality.&lt;/p&gt;&#xA;&lt;p&gt;The custom file handling configuration file is &amp;quot;default.filecap&amp;quot;, each line of it has the format as follows:&lt;br&gt;&#xA;[file extension]:[mimetype]:[command line]&lt;/p&gt;&#xA;&lt;p&gt;The &amp;quot;[file extension]&amp;quot; part can have at most two-segment of extensions such as &amp;quot;txt.xz&amp;quot;,&amp;quot;html.gz&amp;quot;.&lt;br&gt;&#xA;&amp;quot;[mimetype]&amp;quot; indicates the type of &amp;quot;[command line]&amp;quot; output.&lt;br&gt;&#xA;&amp;quot;[command line]&amp;quot; is same as the one in &lt;a href=&#34;../cmds/index.html#&#34;&gt;default.cmds&lt;/a&gt;. The most often used replacements are:&lt;br&gt;&#xA;%u (url), %U (urlencoded url), %c (cookie), %p (site password, curl format).&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -15,7 +15,7 @@
<li><a href="redirection/index.html#">Redirection</a> 1</li> <li><a href="redirection/index.html#">Redirection</a> 1</li>
<li><a href="search%20engine/index.html#">Search Engine</a> 1</li> <li><a href="search-engine/index.html#">Search-Engine</a> 1</li>
<li><a href="ssh/index.html#">Ssh</a> 1</li> <li><a href="ssh/index.html#">Ssh</a> 1</li>

View file

@ -2,94 +2,94 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Tags on uweb browser: unlimited power</title> <title>Tags on uweb browser: unlimited power</title>
<link>/en/tags/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/</link>
<description>Recent content in Tags on uweb browser: unlimited power</description> <description>Recent content in Tags on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Tue, 11 Jun 2024 08:12:27 +0800</lastBuildDate> <lastBuildDate>Sat, 18 Apr 2026 16:45:02 +0800</lastBuildDate>
<atom:link href="/en/tags/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Javascript</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/</link>
<pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/</guid>
<description></description>
</item>
<item> <item>
<title>Clipboard</title> <title>Clipboard</title>
<link>/en/tags/clipboard/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/clipboard/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/clipboard/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/clipboard/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Ssh</title> <title>Ssh</title>
<link>/en/tags/ssh/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/ssh/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Termux</title> <title>Termux</title>
<link>/en/tags/termux/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/termux/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/termux/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/termux/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Windows</title> <title>Windows</title>
<link>/en/tags/windows/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/windows/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/windows/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/windows/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Redirection</title> <title>Redirection</title>
<link>/en/tags/redirection/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/redirection/</link>
<pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate> <pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/redirection/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/redirection/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Adblock</title> <title>Adblock</title>
<link>/en/tags/adblock/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/adblock/</link>
<pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate> <pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/adblock/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/adblock/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Css</title> <title>Css</title>
<link>/en/tags/css/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/css/</link>
<pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate> <pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/css/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/css/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Javascript</title> <title>Search-Engine</title>
<link>/en/tags/javascript/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/search-engine/</link>
<pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate>
<guid>/en/tags/javascript/</guid>
<description></description>
</item>
<item>
<title>Search Engine</title>
<link>/en/tags/search-engine/</link>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate> <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
<guid>/en/tags/search-engine/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/search-engine/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Tdict</title> <title>Tdict</title>
<link>/en/tags/tdict/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/</link>
<pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate> <pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate>
<guid>/en/tags/tdict/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Tools</title> <title>Tools</title>
<link>/en/tags/tools/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/tools/</link>
<pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate> <pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate>
<guid>/en/tags/tools/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/tools/</guid>
<description></description> <description></description>
</item> </item>
<item> <item>
<title>Curl</title> <title>Curl</title>
<link>/en/tags/curl/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/curl/</link>
<pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate> <pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate>
<guid>/en/tags/curl/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tags/curl/</guid>
<description></description> <description></description>
</item> </item>
</channel> </channel>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/javascript/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Javascript</title> <title>Javascript</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -44,6 +45,12 @@
<h1 class="title">Javascript</h1> <h1 class="title">Javascript</h1>
<ul class="posts"> <ul class="posts">
<li class="post">
<a href="../../longclick/index.html#">
<span>Context menu</span>
</a>
</li>
<li class="post"> <li class="post">
<a href="../../sitejs/index.html#"> <a href="../../sitejs/index.html#">
<span>JS/CSS/HTML/preprocessing for domains</span> <span>JS/CSS/HTML/preprocessing for domains</span>
@ -56,19 +63,13 @@
</a> </a>
</li> </li>
<li class="post">
<a href="../../longclick/index.html#">
<span>Long pressed link menu</span>
</a>
</li>
</ul> </ul>
<ul> <ul>
</div> </div>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,32 +2,32 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Javascript on uweb browser: unlimited power</title> <title>Javascript on uweb browser: unlimited power</title>
<link>/en/tags/javascript/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/</link>
<description>Recent content in Javascript on uweb browser: unlimited power</description> <description>Recent content in Javascript on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Tue, 11 Jun 2024 08:12:27 +0800</lastBuildDate> <lastBuildDate>Tue, 24 Mar 2026 11:44:38 +0800</lastBuildDate>
<atom:link href="/en/tags/javascript/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/javascript/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Context menu</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/longclick/</link>
<pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/longclick/</guid>
<description>&lt;h4 id=&#34;the-command-submenus&#34;&gt;The &amp;quot;command&amp;quot; submenus&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;File &amp;quot;&lt;a href=&#34;../links/index.html#&#34;&gt;image.link&lt;/a&gt;&amp;quot;: defines &amp;quot;command&amp;quot; submenus of the context menu for images.&lt;/li&gt;&#xA;&lt;li&gt;File &amp;quot;&lt;a href=&#34;../links/index.html#&#34;&gt;download.link&lt;/a&gt;&amp;quot;: &amp;quot;command&amp;quot; submenus for download options menu.&lt;/li&gt;&#xA;&lt;li&gt;File &amp;quot;context.link&amp;quot;: &amp;quot;command&amp;quot; submenus in all other cases.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The &amp;quot;command&amp;quot; submenus can be toggled with &lt;a href=&#34;i:61:../searchurl/func.html&#34;&gt;UI options&lt;/a&gt;. The &amp;quot;command&amp;quot; submenus are default ( service urls or image.link or download.link), links, commands or service urls (default.urls when both link and command options are ticked).&lt;/p&gt;&#xA;&lt;h4 id=&#34;to-run-commands&#34;&gt;To run commands&lt;/h4&gt;&#xA;&lt;p&gt;Each line of file &amp;quot;&lt;a href=&#34;file:///data/data/info.torapp.uweb/files/default.longclick&#34;&gt;default.longclick&lt;/a&gt;&amp;quot; has the following format: (same as &lt;a href=&#34;../cmds/index.html#&#34;&gt;default.cmds&lt;/a&gt;)&lt;br&gt;&#xA;[Name]:[mimetype]:[command line]&lt;br&gt;&#xA;in which [command line] can have &lt;a href=&#34;../cmds/index.html#&#34;&gt;&amp;quot;%c&amp;quot; (cookie), &amp;quot;%u&amp;quot; (current url), &amp;quot;%t&amp;quot; (title)&lt;/a&gt; etc.&lt;/p&gt;</description>
</item>
<item> <item>
<title>JS/CSS/HTML/preprocessing for domains</title> <title>JS/CSS/HTML/preprocessing for domains</title>
<link>/en/sitejs/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/sitejs/</link>
<pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate> <pubDate>Sat, 28 Jan 2023 00:00:00 +0000</pubDate>
<guid>/en/sitejs/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/sitejs/</guid>
<description>Javascript (load when page completes, earliest loaded JS should use sitecss). Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded. Script must be put under the folder &amp;quot;sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority. Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.</description> <description>&lt;h3 id=&#34;javascript-load-when-page-completes-earliest-loaded-js-should-use-sitecss&#34;&gt;Javascript (load when page completes, earliest loaded JS should use sitecss).&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to be named as &amp;quot;[domain root].js&amp;quot;, such as &amp;quot;yahoo.com.js&amp;quot; or &amp;quot;finance.yahoo.com.js&amp;quot;. The script will be loaded on the whole domain tree sites. If several files matches the domain, then the script with longest file name is loaded.&lt;/li&gt;&#xA;&lt;li&gt;Script must be put under the folder &amp;quot;sitejs&amp;quot; or &amp;quot;/data/data/info.torapp.uweb/files/sitejs&amp;quot;. The later folder has the priority.&lt;/li&gt;&#xA;&lt;li&gt;Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Run user scripts&amp;quot;.&lt;/li&gt;&#xA;&lt;li&gt;Support 2/3-segment domains. If the length of the last 2-segments of domain is less than 7 (ex. &amp;quot;com.pl&amp;quot;), then it is treated as one segment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;css-style-and-earliest-loaded-js&#34;&gt;CSS style and earliest loaded JS&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Need to be named as &amp;quot;[domain root].css&amp;quot;, such as yahoo.com.css or finance.yahoo.com.css。&lt;/li&gt;&#xA;&lt;li&gt;Under folder &amp;quot;sitecss&amp;quot;.&lt;/li&gt;&#xA;&lt;li&gt;&amp;quot;[domain root].js&amp;quot; is loaded at the earliest time.&lt;/li&gt;&#xA;&lt;li&gt;Long press the button &amp;quot;settings&amp;quot;, check the option &amp;quot;Apply user styles&amp;quot;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If file &amp;quot;default.css&amp;quot; exists, the style will be applied to all sites not matching [domain root].css.&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Bookmarklets</title> <title>Bookmarklets</title>
<link>/en/bookmarklet/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/bookmarklet/</link>
<pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate> <pubDate>Fri, 24 Jun 2022 00:00:00 +0000</pubDate>
<guid>/en/bookmarklet/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/bookmarklet/</guid>
<description>With uweb browser, long pressing any bookmarklet link, click &amp;quot;Open in new tab&amp;quot;, the bookmarklet will be run on the last other tab.&#xA;List all script urls&#xA;User agent&#xA;Cookie&#xA;Source code&#xA;Last modified date&#xA;Eruda: mobile console&#xA;QR code generation&#xA;Use &amp;quot;GET&amp;quot; method for &amp;quot;POST&amp;quot;&#xA;Shows all form elements&#xA;Enables all form elements&#xA;Toggle checkboxes&#xA;Check all checkboxes&#xA;Uncheck all checkboxes&#xA;Toggle all checkboxes in forms&#xA;Enable selection&#xA;Restore context menu</description> <description>&lt;p&gt;With &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;, long pressing any bookmarklet link, click &amp;quot;Open in new tab&amp;quot;, the bookmarklet will be run on the last other tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:{let es=document.getElementsByTagName(&#39;script&#39;);let urls=&#39;&#39;;for(let i=0;i&lt;es.length;i++){if(es[i].src)urls+=es[i].src+&#39;&lt;br&gt;&#39;;}let w=window.open(&#39;&#39;),s=w.document;s.write(urls);s.close();}&#34;&gt;List all script urls&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a target=&#34;_self&#34; href=&#34;javascript:alert(navigator.userAgent)&#34;&gt;User agent&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var w=window.open(&#39;&#39;),s=w.document;s.write(&#39;&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;&#39;);s.close();var pre=s.body.appendChild(s.createElement(&#39;pre&#39;));pre.style.overflow=&#39;auto&#39;;pre.style.whiteSpace=&#39;pre-wrap&#39;;pre.appendChild(s.createTextNode(document.cookie))})()&#34;&gt;Cookie&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var w=window.open(&#39;&#39;),s=w.document;s.write(&#39;&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;&#39;);s.close();var pre=s.body.appendChild(s.createElement(&#39;pre&#39;));pre.style.overflow=&#39;auto&#39;;pre.style.whiteSpace=&#39;pre-wrap&#39;;pre.appendChild(s.createTextNode(document.documentElement.innerHTML))})()&#34;&gt;Source code&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:function%20gett(w){try{var%20lm=new%20Date(w.document.lastModified);if(lm&gt;maxd)maxd=lm;for(var%20i=0;F=w.frames[i];i++){gett(F);}}catch(e){}}var%20now=new%20Date();var%20maxd=new%20Date(document.lastModified);gett(window);if(maxd.getTime()==0||now.toUTCString()==maxd.toUTCString()){alert(&#39;Page%20is%20dynamically%20generated,%20cannot%20determine%20date.&#39;);}else{alert(&#39;Page%20was%20last%20modified%20&#39;+maxd.toLocaleString());}&#34; class=&#34;bookmarklet&#34; rel=&#34;nofollow&#34;&gt;Last modified date&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:(function(){var script=document.createElement(&#39;script&#39;);script.src=&#39;//fastly.jsdelivr.net/npm/eruda&#39;;document.body.appendChild(script);script.onload=function(){eruda.init()}})()&#34;&gt;Eruda: mobile console&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:window.open(&#39;https://api.qrserver.com/v1/create-qr-code/?size=150x150&amp;data=&#39;%20+%20decodeURIComponent(location.href));void(0);&#34;&gt;QR code generation&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;javascript:(function(){var x,i; x = document.forms; for (i = 0; i &amp;lt; x.length; ++i) x[i].method=&amp;quot;get&amp;quot;; alert(&amp;quot;Changed &amp;quot; + x.length + &amp;quot; forms to use the GET method. After submitting a form from this page, you should be able to bookmark the result.&amp;quot;); })();&#34;&gt;Use &amp;quot;GET&amp;quot; method for &amp;quot;POST&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var i,f,j,e,div,label,ne; for(i=0;f=document.forms[i];++i)for(j=0;e=f[j];++j)if(e.type==&amp;quot;hidden&amp;quot;){ D=document; function C(t){return D.createElement(t);} function A(a,b){a.appendChild(b);} div=C(&amp;quot;div&amp;quot;); label=C(&amp;quot;label&amp;quot;); A(div, label); A(label, D.createTextNode(e.name + &amp;quot;: &amp;quot;)); e.parentNode.insertBefore(div, e); e.parentNode.removeChild(e); ne=C(&amp;quot;input&amp;quot;);/*for ie*/ ne.type=&amp;quot;text&amp;quot;; ne.value=e.value; A(label, ne); --j;}})()&#34;&gt;Shows all form elements&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;javascript:(function(){var x,k,f,j;x=document.forms;for (k=0;k&amp;lt;x.length;++k){f=x[k];for(j=0;j&amp;lt;f.length;++j){f[j].disabled=false; f[j].readOnly=false;}}})()&#34;&gt;Enables all form elements&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>Long pressed link menu</title>
<link>/en/longclick/</link>
<pubDate>Fri, 06 Nov 2020 00:00:00 +0000</pubDate>
<guid>/en/longclick/</guid>
<description>To run commands Each line of file &amp;quot;default.longclick&amp;quot; has the following format: (same as default.cmds)&#xA;[Name]:[mimetype]:[command line]&#xA;in which [command line] can have &amp;quot;%c&amp;quot; (cookie), &amp;quot;%u&amp;quot; (current url), &amp;quot;%t&amp;quot; (title) etc.&#xA;To visit url and load javascript file All &amp;quot;.js&amp;quot; files under the folder &amp;quot;longclick&amp;quot; are part of the popup menu.&#xA;These javascript files are in the following format:&#xA;The very first line can begin with &amp;quot;//&amp;quot; followed by website url that can have &amp;quot;%u&amp;quot; (current url), &amp;quot;%t&amp;quot; (title) etc.</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/redirection/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/redirection/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/redirection/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Redirection</title> <title>Redirection</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -52,7 +53,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Redirection on uweb browser: unlimited power</title> <title>Redirection on uweb browser: unlimited power</title>
<link>/en/tags/redirection/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/redirection/</link>
<description>Recent content in Redirection on uweb browser: unlimited power</description> <description>Recent content in Redirection on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Sun, 07 Apr 2024 20:48:24 +0800</lastBuildDate> <lastBuildDate>Fri, 17 Apr 2026 20:55:51 +0800</lastBuildDate>
<atom:link href="/en/tags/redirection/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/redirection/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Resource redirection</title> <title>Resource redirection</title>
<link>/en/redirect/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/redirect/</link>
<pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate> <pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
<guid>/en/redirect/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/redirect/</guid>
<description>Redirection forwards cookies with the setting option &amp;quot;Redirect cookies&amp;quot; enabled, so use the options with care.&#xA;Setting options: &amp;quot;Url redirection&amp;quot; vs. &amp;quot;Resource redirection&amp;quot; &amp;quot;Url redirection&amp;quot; redirects the main/page url only while &amp;quot;Resource redirection&amp;quot; is for all urls in the page.&#xA;Global redirection Global redirection is enabled with the setting option &amp;quot;Resource redirection&amp;quot; or both &amp;quot;Url redirection&amp;quot; and &amp;quot;Redirect cookies&amp;quot;.&#xA;When a valid global redirection url is set, the &amp;quot;default.redirect&amp;quot; has no effect, and any url resource is fetched with the new url by appending the original url to the global redirection url.</description> <description>&lt;p&gt;⚠️&lt;span style=&#34;color:red&#34;&gt;Redirection forwards cookies&lt;/span&gt; with the setting option &amp;quot;Redirect cookies&amp;quot; enabled, so use the option with care.&lt;/p&gt;&#xA;&lt;h4 id=&#34;setting-options-url-redirection-vs-resource-redirection&#34;&gt;Setting options: &amp;quot;Url redirection&amp;quot; vs. &amp;quot;Resource redirection&amp;quot;&lt;/h4&gt;&#xA;&lt;p&gt;&amp;quot;Url redirection&amp;quot; redirects the main/page url only while &amp;quot;Resource redirection&amp;quot; is for all urls in the page.&lt;/p&gt;&#xA;&lt;h4 id=&#34;global-redirection&#34;&gt;Global redirection&lt;/h4&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:60/data/data/info.torapp.uweb/files/config.html:https://codeberg.org/uweb/pages/raw/branch/master/en/searchurl/config.html&#34;&gt;Global redirection&lt;/a&gt; is enabled with the setting option &amp;quot;Resource redirection&amp;quot; or both &amp;quot;Url redirection&amp;quot; and &amp;quot;Redirect cookies&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;When a valid global redirection url is set, the &amp;quot;default.redirect&amp;quot; has no effect, and any url resource is fetched with the new url by appending the original url to the global redirection url.&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/search-engine/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/search-engine/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/search-engine/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Search Engine</title> <title>Search-Engine</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -37,7 +38,7 @@
<br /> <br />
<div class="container"> <div class="container">
<h1 class="title">Search Engine</h1> <h1 class="title">Search-Engine</h1>
<ul class="posts"> <ul class="posts">
<li class="post"> <li class="post">
@ -52,7 +53,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Search Engine on uweb browser: unlimited power</title> <title>Search-Engine on uweb browser: unlimited power</title>
<link>/en/tags/search-engine/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/search-engine/</link>
<description>Recent content in Search Engine on uweb browser: unlimited power</description> <description>Recent content in Search-Engine on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Mon, 08 Apr 2024 08:46:24 +0800</lastBuildDate> <lastBuildDate>Wed, 09 Apr 2025 00:54:18 +0800</lastBuildDate>
<atom:link href="/en/tags/search-engine/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/search-engine/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Search engine files</title> <title>Search engine files</title>
<link>/en/searchcat/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/searchcat/</link>
<pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate> <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
<guid>/en/searchcat/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/searchcat/</guid>
<description>Search engine file names have &amp;quot;.search&amp;quot; as postfix. When they are clicked, the associated bookmark files with postfix &amp;quot;.search.html&amp;quot; would be appended. Ex: the associated bookmark for &amp;quot;foo.search&amp;quot; is &amp;quot;foo.search.html&amp;quot;.&#xA;Any &amp;quot;.search&amp;quot; file can be opened as search engine file, each line of which has one of the following formats:&#xA;[Engine name]:[url without &#39;%s&#39; inside]&#xA;[Engine name]:[url with &#39;%s&#39; as keyword]&#xA;[Engine name]:POST:[post params with &#39;%s&#39; as keyword]:[url]&#xA;[Engine name]:[Extra request headers]:[post params with &#39;%s&#39; as keyword]:[url]</description> <description>&lt;p&gt;Search engine file names have &amp;quot;.search&amp;quot; as postfix. When they are clicked, the associated bookmark files with postfix &amp;quot;.search.html&amp;quot; would be appended. Ex: the associated bookmark for &amp;quot;foo.search&amp;quot; is &amp;quot;foo.search.html&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;Any &amp;quot;.search&amp;quot; file can be opened as search engine file, each line of which has one of the following formats:&lt;br&gt;&#xA;[Engine name]:[url without &#39;%s&#39; inside]&lt;br&gt;&#xA;[Engine name]:[url with &#39;%s&#39; as keyword]&lt;br&gt;&#xA;[Engine name]:POST:[post params with &#39;%s&#39; as keyword]:[url]&lt;br&gt;&#xA;[Engine name]:[Extra request headers]:[post params with &#39;%s&#39; as keyword]:[url]&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/ssh/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Ssh</title> <title>Ssh</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -56,7 +57,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Ssh on uweb browser: unlimited power</title> <title>Ssh on uweb browser: unlimited power</title>
<link>/en/tags/ssh/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/</link>
<description>Recent content in Ssh on uweb browser: unlimited power</description> <description>Recent content in Ssh on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Fri, 24 May 2024 09:50:14 +0800</lastBuildDate> <lastBuildDate>Sat, 18 Apr 2026 16:45:02 +0800</lastBuildDate>
<atom:link href="/en/tags/ssh/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/ssh/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Text selection/processing</title> <title>Text selection/processing</title>
<link>/en/textprocess/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/textprocess/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</guid>
<description>Click the following links to install menus for long pressing the button &amp;quot;link&amp;quot;:&#xA;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&#xA;Copy selected text with html format to clipboard&#xA;Search with home screen&#xA;google Translate&#xA;bing translate&#xA;deepL&#xA;The file &amp;quot;default.select&amp;quot; defines text processing menus for selected text. If no text is selected, the menu item operates on the whole page. Each line of the file has the following format:</description> <description>&lt;p&gt;Click the following links to install menus for long pressing the button &lt;code&gt;link&lt;/code&gt;:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.select::Share:/uwebS:%0A&#34;&gt;Share&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Save as:/uwebA:printf i:50:;cat%0A&#34;&gt;Save selection as&lt;/a&gt;, also be used to create new file with bookmark path like &amp;quot;../help_en.html&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Edit:/text/html:echo -n %22%3cmeta charset=utf-8%3e%3cbody contenteditable%3e%22;cat%0A&#34;&gt;Edit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::AddrBar:/uwebAddr:%0A&#34;&gt;Copy text to address bar&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::notems:/uwebA:printf i:0/js/hash2textarea.js:https://note.ms/ric#;cat%0A&#34;&gt;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::copyHtml:html/clip:%0A&#34;&gt;Copy selected text with html format to clipboard&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Home:/uweb:printf file://data/data/info.torapp.uweb/files/home5.search%5C location.href=%5C%22i:15;cat;printf %5C%22%0A&#34;&gt;Search with home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::google Translate:/uweb:printf &#39;https://translate.google.com/?sl=auto&amp;tl=en&amp;op=translate&amp;text=&#39;;cat|tr &#39; &#39; &#39;%2B&#39;%0A&#34;&gt;google Translate&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

34
en/tags/style.css Normal file
View file

@ -0,0 +1,34 @@
h1{font-size:100%;}
header.header{
position: fixed;
z-index: 2;
top:0;
}
header.header>a.logo {
color:inherit;
text-decoration:inherit;
font-size:16px;
}
ul.posts{
list-style-type:none
}
ul.posts>li.post {
line-height:2;
}
ul.posts>li.post>a{
color:inherit;
text-decoration:inherit;
}
ul.tags{
list-style-type:none
}
ul.tags>li{
display:inline;
}

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/tdict/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Tdict</title> <title>Tdict</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -56,7 +57,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Tdict on uweb browser: unlimited power</title> <title>Tdict on uweb browser: unlimited power</title>
<link>/en/tags/tdict/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/</link>
<description>Recent content in Tdict on uweb browser: unlimited power</description> <description>Recent content in Tdict on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate> <lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate>
<atom:link href="/en/tags/tdict/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/tdict/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Tools</title> <title>Tools</title>
<link>/en/tools/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tools/</link>
<pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate> <pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate>
<guid>/en/tools/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tools/</guid>
<description>This page is for uweb browser.&#xA;install tdict_local (search with local indexes and remote content) Click to install the following local indexes with corresponding search engines (for test only).&#xA;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&#xA;Install AHD to home screen&#xA;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&#xA;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&#xA;Indexes for SOED6&#xA;install SOED&#xA;The following dictionaries work better with markdown processor.&#xA;Install markdown processor</description> <description>&lt;p&gt;This page is for &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;install-tdict_local-search-with-local-indexes-and-remote-content&#34;&gt;&lt;a href=&#34;i:0bhttps://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/tdict_loc.tar.gz&#34;&gt;install tdict_local (search with local indexes and remote content)&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Click to install the following local indexes with corresponding search engines (for test only).&lt;br&gt;&#xA;&lt;a href=&#34;i:0hahd.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/ahd.tidx&#34;&gt;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00AHD:d:text/html:tdict_loc ahd \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/HxY9QT5cdp63ZPK/download?path=%2F&amp;files=ahd.dict\&#39;:&#34;&gt;Install AHD to home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0henja.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/enja.tidx&#34;&gt;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00enja:d:text/html:tdict_loc enja \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=enja.dict\&#39;:&#34;&gt;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0hsoed.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/soed.tidx&#34;&gt;Indexes for SOED6&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00soed:d:text/html:tdict_loc soed \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=soed.dict\&#39;:&#34;&gt;install SOED&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The following dictionaries work better with markdown processor.&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmd.html:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/txt/mdme.html&#34;&gt;Install markdown processor&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmwi.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/mwi.tidx&#34;&gt;Indexes for &amp;quot;Merriam Webster International Unabridged&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00mwi:d:text/html:tdict_loc mwi \&#39;%s\&#39;|loc2html text/html.md.html \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=mwi.dict\&#39;:&#34;&gt;Install MWI&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/termux/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/termux/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/termux/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Termux</title> <title>Termux</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -68,7 +69,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,32 +2,32 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Termux on uweb browser: unlimited power</title> <title>Termux on uweb browser: unlimited power</title>
<link>/en/tags/termux/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/termux/</link>
<description>Recent content in Termux on uweb browser: unlimited power</description> <description>Recent content in Termux on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Fri, 24 May 2024 09:50:14 +0800</lastBuildDate> <lastBuildDate>Sat, 18 Apr 2026 16:45:02 +0800</lastBuildDate>
<atom:link href="/en/tags/termux/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/termux/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Text selection/processing</title> <title>Text selection/processing</title>
<link>/en/textprocess/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/textprocess/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</guid>
<description>Click the following links to install menus for long pressing the button &amp;quot;link&amp;quot;:&#xA;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&#xA;Copy selected text with html format to clipboard&#xA;Search with home screen&#xA;google Translate&#xA;bing translate&#xA;deepL&#xA;The file &amp;quot;default.select&amp;quot; defines text processing menus for selected text. If no text is selected, the menu item operates on the whole page. Each line of the file has the following format:</description> <description>&lt;p&gt;Click the following links to install menus for long pressing the button &lt;code&gt;link&lt;/code&gt;:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.select::Share:/uwebS:%0A&#34;&gt;Share&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Save as:/uwebA:printf i:50:;cat%0A&#34;&gt;Save selection as&lt;/a&gt;, also be used to create new file with bookmark path like &amp;quot;../help_en.html&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Edit:/text/html:echo -n %22%3cmeta charset=utf-8%3e%3cbody contenteditable%3e%22;cat%0A&#34;&gt;Edit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::AddrBar:/uwebAddr:%0A&#34;&gt;Copy text to address bar&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::notems:/uwebA:printf i:0/js/hash2textarea.js:https://note.ms/ric#;cat%0A&#34;&gt;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::copyHtml:html/clip:%0A&#34;&gt;Copy selected text with html format to clipboard&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Home:/uweb:printf file://data/data/info.torapp.uweb/files/home5.search%5C location.href=%5C%22i:15;cat;printf %5C%22%0A&#34;&gt;Search with home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::google Translate:/uweb:printf &#39;https://translate.google.com/?sl=auto&amp;tl=en&amp;op=translate&amp;text=&#39;;cat|tr &#39; &#39; &#39;%2B&#39;%0A&#34;&gt;google Translate&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Tools</title> <title>Tools</title>
<link>/en/tools/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tools/</link>
<pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate> <pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate>
<guid>/en/tools/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tools/</guid>
<description>This page is for uweb browser.&#xA;install tdict_local (search with local indexes and remote content) Click to install the following local indexes with corresponding search engines (for test only).&#xA;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&#xA;Install AHD to home screen&#xA;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&#xA;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&#xA;Indexes for SOED6&#xA;install SOED&#xA;The following dictionaries work better with markdown processor.&#xA;Install markdown processor</description> <description>&lt;p&gt;This page is for &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;install-tdict_local-search-with-local-indexes-and-remote-content&#34;&gt;&lt;a href=&#34;i:0bhttps://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/tdict_loc.tar.gz&#34;&gt;install tdict_local (search with local indexes and remote content)&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Click to install the following local indexes with corresponding search engines (for test only).&lt;br&gt;&#xA;&lt;a href=&#34;i:0hahd.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/ahd.tidx&#34;&gt;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00AHD:d:text/html:tdict_loc ahd \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/HxY9QT5cdp63ZPK/download?path=%2F&amp;files=ahd.dict\&#39;:&#34;&gt;Install AHD to home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0henja.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/enja.tidx&#34;&gt;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00enja:d:text/html:tdict_loc enja \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=enja.dict\&#39;:&#34;&gt;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0hsoed.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/soed.tidx&#34;&gt;Indexes for SOED6&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00soed:d:text/html:tdict_loc soed \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=soed.dict\&#39;:&#34;&gt;install SOED&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The following dictionaries work better with markdown processor.&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmd.html:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/txt/mdme.html&#34;&gt;Install markdown processor&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmwi.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/mwi.tidx&#34;&gt;Indexes for &amp;quot;Merriam Webster International Unabridged&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00mwi:d:text/html:tdict_loc mwi \&#39;%s\&#39;|loc2html text/html.md.html \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=mwi.dict\&#39;:&#34;&gt;Install MWI&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
<item> <item>
<title>Custom file handling</title> <title>Custom file handling</title>
<link>/en/filecap/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/filecap/</link>
<pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate> <pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate>
<guid>/en/filecap/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/filecap/</guid>
<description>Long press the settings button, check the option &amp;quot;custom file handling&amp;quot; to enable the functionality.&#xA;The custom file handling configuration file is &amp;quot;default.filecap&amp;quot;, each line of it has the format as follows:&#xA;[file extension]:[mimetype]:[command line]&#xA;The &amp;quot;[file extension]&amp;quot; part can have at most two-segment of extensions such as &amp;quot;txt.xz&amp;quot;,&amp;quot;html.gz&amp;quot;.&#xA;&amp;quot;[mimetype]&amp;quot; indicates the type of &amp;quot;[command line]&amp;quot; output.&#xA;&amp;quot;[command line]&amp;quot; is same as the one in default.cmds. The most often used replacements are:</description> <description>&lt;p&gt;Long press the settings button, check the option &amp;quot;custom file handling&amp;quot; to enable the functionality.&lt;/p&gt;&#xA;&lt;p&gt;The custom file handling configuration file is &amp;quot;default.filecap&amp;quot;, each line of it has the format as follows:&lt;br&gt;&#xA;[file extension]:[mimetype]:[command line]&lt;/p&gt;&#xA;&lt;p&gt;The &amp;quot;[file extension]&amp;quot; part can have at most two-segment of extensions such as &amp;quot;txt.xz&amp;quot;,&amp;quot;html.gz&amp;quot;.&lt;br&gt;&#xA;&amp;quot;[mimetype]&amp;quot; indicates the type of &amp;quot;[command line]&amp;quot; output.&lt;br&gt;&#xA;&amp;quot;[command line]&amp;quot; is same as the one in &lt;a href=&#34;../cmds/index.html#&#34;&gt;default.cmds&lt;/a&gt;. The most often used replacements are:&lt;br&gt;&#xA;%u (url), %U (urlencoded url), %c (cookie), %p (site password, curl format).&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/tools/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/tools/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/tools/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Tools</title> <title>Tools</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -56,7 +57,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Tools on uweb browser: unlimited power</title> <title>Tools on uweb browser: unlimited power</title>
<link>/en/tags/tools/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/tools/</link>
<description>Recent content in Tools on uweb browser: unlimited power</description> <description>Recent content in Tools on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate> <lastBuildDate>Tue, 02 Apr 2024 11:45:19 +0800</lastBuildDate>
<atom:link href="/en/tags/tools/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/tools/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Tools</title> <title>Tools</title>
<link>/en/tools/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tools/</link>
<pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate> <pubDate>Sun, 06 Sep 2020 00:00:00 +0000</pubDate>
<guid>/en/tools/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/tools/</guid>
<description>This page is for uweb browser.&#xA;install tdict_local (search with local indexes and remote content) Click to install the following local indexes with corresponding search engines (for test only).&#xA;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&#xA;Install AHD to home screen&#xA;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&#xA;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&#xA;Indexes for SOED6&#xA;install SOED&#xA;The following dictionaries work better with markdown processor.&#xA;Install markdown processor</description> <description>&lt;p&gt;This page is for &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;install-tdict_local-search-with-local-indexes-and-remote-content&#34;&gt;&lt;a href=&#34;i:0bhttps://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/tdict_loc.tar.gz&#34;&gt;install tdict_local (search with local indexes and remote content)&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Click to install the following local indexes with corresponding search engines (for test only).&lt;br&gt;&#xA;&lt;a href=&#34;i:0hahd.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/ahd.tidx&#34;&gt;install the indexes for &amp;quot;American heritage dictionary (en-en&amp;amp;zh with AHD/D.J./K.K. pronunciation)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00AHD:d:text/html:tdict_loc ahd \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/HxY9QT5cdp63ZPK/download?path=%2F&amp;files=ahd.dict\&#39;:&#34;&gt;Install AHD to home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0henja.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/enja.tidx&#34;&gt;Indexes for &amp;quot;研究社新編英和活用大辞典(English usage: en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00enja:d:text/html:tdict_loc enja \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=enja.dict\&#39;:&#34;&gt;Install &amp;quot;English usage (en-en&amp;amp;ja)&amp;quot;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0hsoed.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/soed.tidx&#34;&gt;Indexes for SOED6&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00soed:d:text/html:tdict_loc soed \&#39;%s\&#39;|loc2html text/plain \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=soed.dict\&#39;:&#34;&gt;install SOED&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The following dictionaries work better with markdown processor.&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmd.html:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/txt/mdme.html&#34;&gt;Install markdown processor&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:0hmwi.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/mwi.tidx&#34;&gt;Indexes for &amp;quot;Merriam Webster International Unabridged&amp;quot;&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;i:00mwi:d:text/html:tdict_loc mwi \&#39;%s\&#39;|loc2html text/html.md.html \&#39;https://s1.asytech.cn/s/oaoGniEBKLnWzoj/download?path=%2F&amp;files=mwi.dict\&#39;:&#34;&gt;Install MWI&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,11 +3,12 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="alternate" type="application/rss+xml" href="../../../en/tags/windows/index.xml" title="uweb browser: unlimited power"> <link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tags/windows/" />
<link rel="alternate" type="application/rss+xml" href="https://jamesfengcao.gitlab.io/uweb/en/tags/windows/index.xml" title="uweb browser: unlimited power">
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Windows</title> <title>Windows</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -56,7 +57,7 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -2,18 +2,18 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>Windows on uweb browser: unlimited power</title> <title>Windows on uweb browser: unlimited power</title>
<link>/en/tags/windows/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/tags/windows/</link>
<description>Recent content in Windows on uweb browser: unlimited power</description> <description>Recent content in Windows on uweb browser: unlimited power</description>
<generator>Hugo</generator> <generator>Hugo</generator>
<language>en</language> <language>en</language>
<lastBuildDate>Fri, 24 May 2024 09:50:14 +0800</lastBuildDate> <lastBuildDate>Sat, 18 Apr 2026 16:45:02 +0800</lastBuildDate>
<atom:link href="/en/tags/windows/index.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://jamesfengcao.gitlab.io/uweb/en/tags/windows/index.xml" rel="self" type="application/rss+xml" />
<item> <item>
<title>Text selection/processing</title> <title>Text selection/processing</title>
<link>/en/textprocess/</link> <link>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</link>
<pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate> <pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate>
<guid>/en/textprocess/</guid> <guid>https://jamesfengcao.gitlab.io/uweb/en/textprocess/</guid>
<description>Click the following links to install menus for long pressing the button &amp;quot;link&amp;quot;:&#xA;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&#xA;Copy selected text with html format to clipboard&#xA;Search with home screen&#xA;google Translate&#xA;bing translate&#xA;deepL&#xA;The file &amp;quot;default.select&amp;quot; defines text processing menus for selected text. If no text is selected, the menu item operates on the whole page. Each line of the file has the following format:</description> <description>&lt;p&gt;Click the following links to install menus for long pressing the button &lt;code&gt;link&lt;/code&gt;:&lt;br&gt;&#xA;&lt;a href=&#34;i:0gdefault.select::Share:/uwebS:%0A&#34;&gt;Share&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Save as:/uwebA:printf i:50:;cat%0A&#34;&gt;Save selection as&lt;/a&gt;, also be used to create new file with bookmark path like &amp;quot;../help_en.html&amp;quot;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Edit:/text/html:echo -n %22%3cmeta charset=utf-8%3e%3cbody contenteditable%3e%22;cat%0A&#34;&gt;Edit&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::AddrBar:/uwebAddr:%0A&#34;&gt;Copy text to address bar&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::notems:/uwebA:printf i:0/js/hash2textarea.js:https://note.ms/ric#;cat%0A&#34;&gt;note.ms: cloud text sharing, please replace &amp;quot;ric&amp;quot; with your favorite ID&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::copyHtml:html/clip:%0A&#34;&gt;Copy selected text with html format to clipboard&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::Home:/uweb:printf file://data/data/info.torapp.uweb/files/home5.search%5C location.href=%5C%22i:15;cat;printf %5C%22%0A&#34;&gt;Search with home screen&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:0gdefault.select::google Translate:/uweb:printf &#39;https://translate.google.com/?sl=auto&amp;tl=en&amp;op=translate&amp;text=&#39;;cat|tr &#39; &#39; &#39;%2B&#39;%0A&#34;&gt;google Translate&lt;/a&gt;&lt;/p&gt;</description>
</item> </item>
</channel> </channel>
</rss> </rss>

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tcron/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>cron</title> <title>Cron</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -40,7 +41,7 @@
<br /> <br />
<div class="container"> <div class="container">
<h1 class="title">cron <h1 class="title">Cron
<br> <br>
<span class="subtitle"></span> <span class="subtitle"></span>
</h1> </h1>
@ -48,6 +49,7 @@
</ul> </ul>
<h4 id="crontab-with-enhanced-semantics">crontab (with enhanced semantics)</h4> <h4 id="crontab-with-enhanced-semantics">crontab (with enhanced semantics)</h4>
<p>Some battery restrictions on android 13+ may disallow new instance of uweb browser by alarm events. Users can either keep uweb instance (no battery consumption) or remove the restriction for uweb.</p>
<p>For performance, the file &quot;crontab&quot; uses single space as field separator. Letters are not suppored currently. So use &quot;1&quot; for &quot;January&quot; and 2 for &quot;Tuesday&quot; etc.</p> <p>For performance, the file &quot;crontab&quot; uses single space as field separator. Letters are not suppored currently. So use &quot;1&quot; for &quot;January&quot; and 2 for &quot;Tuesday&quot; etc.</p>
<p>The sixth field in crontab file could be in the format of <a href="../links/index.html#">internal links</a>. Specifically, &quot;c:&quot; to execute the following commands in termux and &quot;!&quot; to execute commands directly. If the sixth field is not in any of above formats, then the field will appear as the message of alarm clock.</p> <p>The sixth field in crontab file could be in the format of <a href="../links/index.html#">internal links</a>. Specifically, &quot;c:&quot; to execute the following commands in termux and &quot;!&quot; to execute commands directly. If the sixth field is not in any of above formats, then the field will appear as the message of alarm clock.</p>
<p>To make crontab more powerful, we changed the semantics as follows:<br> <p>To make crontab more powerful, we changed the semantics as follows:<br>
@ -83,8 +85,8 @@ tcron /sdcard/b &quot;rm -rf /sdcard/baidu/*;toybox touch /sdcard/b&quot; 720</p
<p><a target="_self" href="i:0hdefault.rc:../searchurl/txt/default.rc">Install example default.rc file for termux</a></p> <p><a target="_self" href="i:0hdefault.rc:../searchurl/txt/default.rc">Install example default.rc file for termux</a></p>
</div> </div>
<p>Last Modified: 8 April 2024<br> <p>Last Modified: 13 October 2025<br>
fix typos<br> enable address bar as IME<br>
<pre></pre> <pre></pre>
</p> </p>
@ -107,7 +109,7 @@ fix typos<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/termux/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Termux</title> <title>Termux</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -50,18 +51,24 @@
<a href="c:bc -l *.bc">bc with all extensions</a></p> <a href="c:bc -l *.bc">bc with all extensions</a></p>
<h4 id="click-the-following-links-to-install-termux-configurations">Click the following links to install termux configurations:</h4> <h4 id="click-the-following-links-to-install-termux-configurations">Click the following links to install termux configurations:</h4>
<p><a href="i:0h/data/data/com.termux/files/home/.bashrc:../../termux/bashrc">.bashrc</a></p> <p><a href="i:0h/data/data/com.termux/files/home/.bashrc:../../termux/bashrc">.bashrc</a></p>
<p><a href="i:0h/data/data/com.termux/files/home/.profile:../../termux/profile">.profile</a></p>
<p><a href="i:0h/data/data/com.termux/files/home/.inputrc:../../termux/inputrc">.inputrc</a></p> <p><a href="i:0h/data/data/com.termux/files/home/.inputrc:../../termux/inputrc">.inputrc</a></p>
<p><a href="i:0h/data/data/com.termux/files/home/z.sh:https://fastly.jsdelivr.net/gh/rupa/z/z.sh">z.sh</a></p> <p><a href="i:0h/data/data/com.termux/files/home/z.sh:https://fastly.jsdelivr.net/gh/rupa/z/z.sh">z.sh</a></p>
<p><a href="i:0h/data/data/com.termux/files/home/commacd.sh:https://fastly.jsdelivr.net/gh/shyiko/commacd/commacd.sh">commacd.sh</a></p> <p><a href="i:0h/data/data/com.termux/files/home/commacd.sh:https://fastly.jsdelivr.net/gh/shyiko/commacd/commacd.sh">commacd.sh</a></p>
<p><a href="i:0h/data/data/com.termux/files/home/.profile:../../termux/profile">.profile</a> : only for kshell with naked termux (no initial packages, need the following fix for termux quick crash to be launched)</p>
<h4 id="copy-existing-termux-installation-to-other-devices">Copy existing termux installation to other devices</h4> <h4 id="copy-existing-termux-installation-to-other-devices">Copy existing termux installation to other devices</h4>
<p>Using uweb to copy (Long pressing the following links and &quot;open in new tab&quot; to fix/send/receive):</p> <h5 id="copyinit-from-bootstrapzip-expert-only">Copy/init from bootstrap.zip (expert only)</h5>
<ul>
<li>Extract <a href="https://github.com/termux/termux-packages/releases">bootstrap.zip</a> to &quot;/data/data/com.termux/files/usr&quot;.</li>
<li>Make sure all symbolic links are unzipped properly, especially those to coreutils.<br>
Note: &quot;/system/bin/unzip&quot; fails to extract all files and does not handle symbolic links.</li>
</ul>
<h5 id="using-uweb-to-copy-long-pressing-the-following-links-and-open-in-new-tab-to-fixsendreceive">Using uweb to copy (Long pressing the following links and &quot;open in new tab&quot; to fix/send/receive):</h5>
<ul> <ul>
<li>target device: install termux app.</li> <li>target device: install termux app.</li>
<li>(optional)<a href="d::mkdir -p /data/user/0/com.termux/files/home/.termux;cd /data/user/0/com.termux/files;mkdir usr;cd home/.termux;ln -s /system/bin/sh shell:">fix termux quick crash with &quot;updateonly&quot; versions</a> by long click this link.</li> <li>(optional)<a href="d::mkdir -p /data/user/0/com.termux/files/home/.termux;cd /data/user/0/com.termux/files;mkdir usr;cd home/.termux;ln -s /system/bin/sh shell:">fix termux quick crash with &quot;updateonly&quot; versions</a> by long click this link.</li>
<li>both devices: launch termux and acquire wakelocks. uweb to checke option &quot;Use termux&quot; in UI configuration page for long time tranferring. Uweb itself does not hold any wakelock thus may have issues for huge data transmission.</li> <li>both devices: launch termux and acquire wakelocks. uweb to checke option &quot;Use termux&quot; in UI configuration page for long time tranferring. Uweb itself does not hold any wakelock thus may have issues for huge data transmission.</li>
<li>source device: uweb to visit <a href="files:///data/data/com.termux/files">termux folder</a> by long click, then long click &quot;usr&quot; folder to send to network.</li> <li>source device: uweb to visit <a href="file:///data/data/com.termux/files/">termux folder</a> by long click, then long click &quot;usr&quot; folder to send to network.</li>
<li>target device: uweb to visit <a href="files:///data/data/com.termux/files">termux folder</a> by long click, then long click &quot;right arrow&quot; button to receive from network.</li> <li>target device: uweb to visit <a href="file:///data/data/com.termux/files/">termux folder</a> by long click, then long click &quot;right arrow&quot; button to receive from network.</li>
</ul> </ul>
<h5 id="using-ssh-to-copy">Using ssh to copy</h5> <h5 id="using-ssh-to-copy">Using ssh to copy</h5>
<ul> <ul>
@ -72,12 +79,19 @@
<li>target device: Run the command &quot;scp -P 8022 -r [source ip]:.. ..&quot;</li> <li>target device: Run the command &quot;scp -P 8022 -r [source ip]:.. ..&quot;</li>
</ul> </ul>
<h4 id="tips">Tips</h4> <h4 id="tips">Tips</h4>
<ul>
<li>
<p><a href="i:16::com.android.documentsui:">documentsUI</a> and <a href="https://wiki.termux.com/wiki/Internal_and_external_storage">other file managers</a> have full access on termux internal folders.</p>
</li>
<li>
<p>File system navigation:<br> <p>File system navigation:<br>
With <a href="https://github.com/rupa/z">z.sh</a> and <a href="https://github.com/shyiko/commacd">commacd</a>, user can reach any folder with few key stokes. Run &quot;v&quot; to launch uweb file manager on the current working directory, long click any file link to share.</p> With <a href="https://github.com/rupa/z">z.sh</a> and <a href="https://github.com/shyiko/commacd">commacd</a>, user can reach any folder with few key stokes. Run &quot;v&quot; to launch uweb file manager on the current working directory, long click any file link to share.</p>
</li>
</ul>
</div> </div>
<p>Last Modified: 2 April 2024<br> <p>Last Modified: 30 March 2025<br>
add js function in README<br> use LD_LIBRARY_PATH for tdict<br>
<pre></pre> <pre></pre>
</p> </p>
@ -100,7 +114,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/textprocess/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Text selection/processing</title> <title>Text selection/processing</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -55,14 +56,18 @@
<li><a href="../tags/windows/index.html#">windows</a> </li> <li><a href="../tags/windows/index.html#">windows</a> </li>
</ul> </ul>
<p>Click the following links to install menus for long pressing the button &quot;link&quot;:<br> <p>Click the following links to install menus for long pressing the button <code>link</code>:<br>
<a href="i:0gdefault.select::notems:/uwebA:printf i:0/js/hash2textarea.js:https://note.ms/ric#;cat%0A">note.ms: cloud text sharing, please replace &quot;ric&quot; with your favorite ID</a></p> <a href="i:0gdefault.select::Share:/uwebS:%0A">Share</a></p>
<p><a href="i:0gdefault.select::Save as:/uwebA:printf i:50:;cat%0A">Save selection as</a>, also be used to create new file with bookmark path like &quot;../help_en.html&quot;.</p>
<p><a href="i:0gdefault.select::Edit:/text/html:echo -n %22%3cmeta charset=utf-8%3e%3cbody contenteditable%3e%22;cat%0A">Edit</a></p>
<p><a href="i:0gdefault.select::AddrBar:/uwebAddr:%0A">Copy text to address bar</a></p>
<p><a href="i:0gdefault.select::notems:/uwebA:printf i:0/js/hash2textarea.js:https://note.ms/ric#;cat%0A">note.ms: cloud text sharing, please replace &quot;ric&quot; with your favorite ID</a></p>
<p><a href="i:0gdefault.select::copyHtml:html/clip:%0A">Copy selected text with html format to clipboard</a></p> <p><a href="i:0gdefault.select::copyHtml:html/clip:%0A">Copy selected text with html format to clipboard</a></p>
<p><a href="i:0gdefault.select::Home:/uweb:printf file://data/data/info.torapp.uweb/files/home5.search%5C location.href=%5C%22i:15;cat;printf %5C%22%0A">Search with home screen</a></p> <p><a href="i:0gdefault.select::Home:/uweb:printf file://data/data/info.torapp.uweb/files/home5.search%5C location.href=%5C%22i:15;cat;printf %5C%22%0A">Search with home screen</a></p>
<p><a href="i:0gdefault.select::google Translate:/uweb:printf 'https://translate.google.com/?sl=auto&tl=en&op=translate&text=';cat|tr ' ' '%2B'%0A">google Translate</a></p> <p><a href="i:0gdefault.select::google Translate:/uweb:printf 'https://translate.google.com/?sl=auto&tl=en&op=translate&text=';cat|tr ' ' '%2B'%0A">google Translate</a></p>
<p><a href="i:0gdefault.select::bing Translate:/uweb:printf 'https://cn.bing.com/translator/?from=&to=en&text=';cat|tr ' ' '%2B'%0A">bing translate</a></p> <p><a href="i:0gdefault.select::bing Translate:/uweb:printf 'https://cn.bing.com/translator/?from=&to=en&text=';cat|tr ' ' '%2B'%0A">bing translate</a></p>
<p><a href="i:0gdefault.select::deepL:/uweb:printf https://www.deepl.com/translator-mobile#auto/en/;cat|sed 's/ /%2520/g'%0A">deepL</a></p> <p><a href="i:0gdefault.select::deepL:/uweb:printf https://www.deepl.com/translator-mobile#auto/en/;cat|sed 's/ /%2520/g'%0A">deepL</a></p>
<p>The file &quot;default.select&quot; defines text processing menus for selected text. If no text is selected, the menu item operates on the whole page. Each line of the file has the following format:<br> <p>The file <code>default.select</code> defines text processing menus for selected text. If no text is selected, the menu item operates on the whole page. Each line of the file has the following format:<br>
[Name]:[mimetype]:[command line]</p> [Name]:[mimetype]:[command line]</p>
<p>[mimetype] specifies input/output for [command line].<br> <p>[mimetype] specifies input/output for [command line].<br>
It formats as &quot;[input mimetype]/[output mimetype]&quot;.<br> It formats as &quot;[input mimetype]/[output mimetype]&quot;.<br>
@ -77,6 +82,8 @@ It formats as &quot;[input mimetype]/[output mimetype]&quot;.<br>
<li>regular mimetype such as &quot;text/html&quot;: output as the mimetype</li> <li>regular mimetype such as &quot;text/html&quot;: output as the mimetype</li>
<li>&quot;uweb&quot;: output as links</li> <li>&quot;uweb&quot;: output as links</li>
<li>&quot;uwebA&quot;: output as &quot;A&quot; link, all characters including newlines are part of the link.</li> <li>&quot;uwebA&quot;: output as &quot;A&quot; link, all characters including newlines are part of the link.</li>
<li>&quot;uwebAddr&quot;: output to address bar</li>
<li>&quot;uwebS&quot;: output for sharing</li>
<li>&quot;clip&quot;: output to clipboard</li> <li>&quot;clip&quot;: output to clipboard</li>
<li>&quot;termux&quot;: output as termux command</li> <li>&quot;termux&quot;: output as termux command</li>
</ul> </ul>
@ -91,8 +98,8 @@ To use ssh or scp, users need to install uweb compatible Termux provided on the
PCs need command &quot;xsel&quot; available to operate on copy/paste.</p> PCs need command &quot;xsel&quot; available to operate on copy/paste.</p>
</div> </div>
<p>Last Modified: 24 May 2024<br> <p>Last Modified: 18 April 2026<br>
add thinkany ai search<br> cleanup<br>
<pre></pre> <pre></pre>
</p> </p>
@ -115,7 +122,7 @@ add thinkany ai search<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

37
en/tips.md Normal file
View file

@ -0,0 +1,37 @@
---
title: Resource redirection
date: 2023-04-11
tags: [redirection]
---
⚠️<span style="color:red">Redirection forwards cookies</span> with the setting option "Redirect cookies" enabled, so use the option with care.
#### Setting options: "Url redirection" vs. "Resource redirection"
"Url redirection" redirects the main/page url only while "Resource redirection" is for all urls in the page.
#### Global redirection
<a href="i:60/data/data/info.torapp.uweb/files/config.html:https://codeberg.org/uweb/pages/raw/branch/master/en/searchurl/config.html">Global redirection</a> is enabled with the setting option "Resource redirection" or both "Url redirection" and "Redirect cookies".
When a valid global redirection url is set, the "default.redirect" has no effect, and any url resource is fetched with the new url by appending the original url to the global redirection url.
- If the global redirection url ends with '/', '?', or '=', then the resource is fetched with by the url "[global redirection url] + [url]". For example, "https://domain.com/pathXXX/https://cnn.com".
- (to provide more options to users) If the global redirection url does not end with '/', '?' or '=', it means the global redirection url is naked. then the resource is fetched with by the url "[global redirection url] + '/'+ [scheme]+ '/' + [url without scheme]". For example, when the global redirection url is "https://domain.com/pathXXX", the real url to visit "https://cnn.com" is "https://domain.com/pathXXX/https/cnn.com".
Example: "https://muweb.pages.dev/redirect?"
[global redirection code for cloudflare worker](../searchurl/cloudflare/redirect.js) free deployment: The global redirection url is "https://name.username.workers.dev/", which is just the worker's domain name.
#### "default.redirect" (valid only without global redirection url)
Click the following links to append mirrors to the file "default.redirect":
<a target="_self" href="i:0gdefault.redirect:../../zh/searchurl/txt/redirect.cfg">google recaptcha mirror</a>
Each line of the file "default.redirect" has the following format:
[domain name]:[regular expression]:[replacement expression]
in which "[regular expression]" is as defined by java language, and cannot have ":" inside; if empty, it defaults to be same as "[domain name]".
##### Ways to enable domain redirection:
- [Long pressing the image button](../urls/index.html#)。
- Long pressing the setting button, enable the option "url redirection".
- Long pressing the setting button, enable the option "Resource redirection".

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tips/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Tips</title> <title>Tips</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -47,21 +48,27 @@
<ul class="tags"> <ul class="tags">
</ul> </ul>
<p><strong>Text processing for clipboard data</strong>:<br> <p><strong>Address bar autocompletion as input method when starting with space</strong><br>
When address bar text starts with space, the autocompletion selection is inserted to the focused element on the web page. It could be used to choose AI prompts.</p>
<p><strong>Text processing for clipboard data</strong><br>
On home screen, pressing the sharing button of the bottom toolbar popups the <a href="../textprocess/index.html#">text processing menu</a> for clipboard data.</p> On home screen, pressing the sharing button of the bottom toolbar popups the <a href="../textprocess/index.html#">text processing menu</a> for clipboard data.</p>
<p><strong>To show web pages in desktop mode</strong>:<br> <p><strong>To show web pages in desktop mode</strong><br>
PC button + option &quot;wide viewport&quot; + global js &quot;force page resizable&quot;.</p> PC button + option &quot;wide viewport&quot; + global js &quot;force page resizable&quot;.<br>
If some dialog is wider than the screen, press &quot;📄&quot; on the bottom toolbar.</p>
<p><strong>Playing audio when screen off</strong><br> <p><strong>Playing audio when screen off</strong><br>
Option &quot;Floating video&quot; + video fullscreen playing</p> Option &quot;Floating video&quot; + video fullscreen playing</p>
<p><strong>Multiple home screens and Next/Prev page</strong>:<br> <p><strong>Multiple home screens and Next/Prev page</strong><br>
home5.html, home6.mht(or .search or .html), home7.mht(or .search or .html), ... can be visited via pressing the right arrow button while home4.mht(or .search or .html), home3.mht(or .search or .html) ... with long pressing the left arrow.</p> home5.html, home6.mht(or .search or .html), home7.mht(or .search or .html), ... can be visited via pressing the right arrow button while home4.mht(or .search or .html), home3.mht(or .search or .html) ... with long pressing the left arrow.</p>
<p>Click download button on the bottom toolbar to save remote webpage, the resulted offline file can be used as one of the home screens.</p> <p><strong>Configuration files with special extensions</strong><br>
<p><strong>Configuration folder and file managers</strong><br> If the current page is not the internal file manager, visiting the configuration files with extensions such as .autoc, .links etc. applies them. Since clicking the file name in the internal file manager shows the content of the file instead, you can either bookmark it, or &quot;open in new tab&quot; to apply it.</p>
<p><strong>Click download button on the bottom toolbar to save remote webpage</strong><br>
The resulted offline file can be used as one of the home screens.</p>
<p><strong>Configuration folder and <a href="../filemanager/index.html#">file manager</a></strong><br>
With <a href="../bookmark/index.html#">bookmark</a>, configuration folders can be symbolic linked to other public folders or managed by 3rd party file managers via termux.</p> With <a href="../bookmark/index.html#">bookmark</a>, configuration folders can be symbolic linked to other public folders or managed by 3rd party file managers via termux.</p>
</div> </div>
<p>Last Modified: 30 April 2024<br> <p>Last Modified: 5 December 2025<br>
urlInc() prefers .search to .html<br> add filemanager.md<br>
<pre></pre> <pre></pre>
</p> </p>
@ -84,7 +91,7 @@ urlInc() prefers .search to .html<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

View file

@ -3,10 +3,11 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/tools/" />
<link rel="stylesheet" href="../style.css#" type="text/css" /> <link rel="stylesheet" href="../style.css#" type="text/css" />
<title>Tools</title> <title>Tools</title>
<script type="text/javascript"> <script>
function findLang(){ function findLang(){
let href = location.href; let href = location.href;
for(let i=href.length-1;i>0;i--){ for(let i=href.length-1;i>0;i--){
@ -54,7 +55,7 @@
</ul> </ul>
<p>This page is for <a href="../index.html#">uweb browser</a>.</p> <p>This page is for <a href="../index.html#">uweb browser</a>.</p>
<h4 id="a-hrefi0bhttpsfastlyjsdelivrnetghtorappinfouwebjsbintdict_loctargzinstall-tdict_local-search-with-local-indexes-and-remote-contenta"><a href="i:0bhttps://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/tdict_loc.tar.gz">install tdict_local (search with local indexes and remote content)</a></h4> <h4 id="install-tdict_local-search-with-local-indexes-and-remote-content"><a href="i:0bhttps://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/tdict_loc.tar.gz">install tdict_local (search with local indexes and remote content)</a></h4>
<p>Click to install the following local indexes with corresponding search engines (for test only).<br> <p>Click to install the following local indexes with corresponding search engines (for test only).<br>
<a href="i:0hahd.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/ahd.tidx">install the indexes for &quot;American heritage dictionary (en-en&amp;zh with AHD/D.J./K.K. pronunciation)&quot;</a><br> <a href="i:0hahd.tidx:https://fastly.jsdelivr.net/gh/torappinfo/uwebjs/bin/ahd.tidx">install the indexes for &quot;American heritage dictionary (en-en&amp;zh with AHD/D.J./K.K. pronunciation)&quot;</a><br>
<a href="i:00AHD:d:text/html:tdict_loc ahd \'%s\'|loc2html text/plain \'https://s1.asytech.cn/s/HxY9QT5cdp63ZPK/download?path=%2F&files=ahd.dict\':">Install AHD to home screen</a></p> <a href="i:00AHD:d:text/html:tdict_loc ahd \'%s\'|loc2html text/plain \'https://s1.asytech.cn/s/HxY9QT5cdp63ZPK/download?path=%2F&files=ahd.dict\':">Install AHD to home screen</a></p>
@ -98,7 +99,7 @@ add js function in README<br>
<footer class="site-footer"> <footer class="site-footer">
<div class="container"> <div class="container">
&copy; 2018-2024 Richard H. Cao &copy; 2018-2026 Richard H. Cao
</div> </div>
</footer> </footer>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. --> <!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->

Some files were not shown because too many files have changed in this diff Show more