⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user-hooks.scm

📁 一个很有名的浏览器
💻 SCM
字号:
;;; USER CODE(use-modules (ice-9 optargs)		;let-optional	     (ice-9 regex)	     (srfi srfi-2)		;and-let*	     (srfi srfi-8)		;receive	     (srfi srfi-13)		;string-lib	     );;; goto-url-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Handle search URLs;; Makes a searcher routine.  If the routine is called without any;; arguments, return the home page location.  Otherwise, construct a;; URL searching for the arguments specified.;; e.g.;;  (define f (make-searcher "http://www.google.com/";;                           "http://www.google.com/search?q=";;                           "&btnG=Google%20Search"));;  (f '());;   => "http://www.google.com/";;  (f '("google" "me"));;   => "http://www.google.com/search?q=google%20me&btnG=Google%20Search"(define (make-searcher home-page prefix . maybe-postfix)  (let-optional maybe-postfix ((postfix ""))    (lambda (words)      (if (null? words)	  home-page	  (string-append prefix (string-join words "%20") postfix)))));; TODO: ,gg -> gg: format update to the standard ELinks one. --pasky(define goto-url-searchers  `((",gg"   . ,(make-searcher "http://www.google.com/"			       "http://www.google.com/search?q=" "&btnG=Google%20Search"))    (",fm"   . ,(make-searcher "http://www.freshmeat.net/"			       "http://www.freshmeat.net/search/?q="))    (",dict" . ,(make-searcher "http://www.dictionary.com/"			       "http://www.dictionary.com/cgi-bin/dict.pl?db=%2A&term="))    (",wtf"  . ,(make-searcher "http://www.ucc.ie/cgi-bin/acronym?wtf"			       "http://www.ucc.ie/cgi-bin/acronym?"))))(add-hook! goto-url-hooks	   (lambda (url)	     (let* ((words (string-tokenize url))		    (key (car words))		    (rest (cdr words)))	       (cond ((assoc key goto-url-searchers) =>		      (lambda (x) ((cdr x) rest)))		     (else #f)))));;; goto-url-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Handle simple URLs(define goto-url-simples  `((",forecast" . "http://www.bom.gov.au/cgi-bin/wrap_fwo.pl?IDV10450.txt")    (",local" . "XXXXXXXXXXXXXXXXXXX")    ))(add-hook! goto-url-hooks	   (lambda (url)	     (cond ((assoc url goto-url-simples) => cdr)		   (else #f))));;; goto-url-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Expand ~/ and ~user/ URLs(define (home-directory . maybe-user)  (let-optional maybe-user ((user (cuserid)))    (and-let* ((user (catch 'misc-error			    (lambda () (getpwnam user))			    (lambda ignore #f))))	      (passwd:dir user))))(define (expand-tilde-file-name file-name)  (and (string-prefix? "~" file-name)       (let* ((slash/end (or (string-index file-name #\/)			     (string-length file-name)))	      (user (substring file-name 1 slash/end)))	 (string-append (if user			    (home-directory)			    (home-directory user))			(substring file-name slash/end)))))(add-hook! goto-url-hooks	   (lambda (url)	     (and (string-prefix? "~" url)		  (expand-tilde-file-name url))));;; pre-format-html-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mangle linuxgames.com pages(add-hook! pre-format-html-hooks	   (lambda (url html)	     (and (string-contains url "linuxgames.com")		  (and-let* ((start (string-contains html "<CENTER>"))			     (end (string-contains html "</center>" (+ start 1))))			    (string-append (substring/shared html 0 start)					   (substring/shared html (+ end 10)))))));;; pre-format-html-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mangle dictionary.com result pages(add-hook! pre-format-html-hooks  (lambda (url html)    (and (string-contains url "dictionary.reference.com/search?")	 (and-let* ((m (string-match			(string-append			 "<table border=\"0\" cellpadding=\"2\" width=\"100%\">"			 ".*<td width=\"120\" align=\"center\">")			html)))	   (string-append "<html><head><title>Dictionary.com lookup</title>"			  "</head><body>"			  (regexp-substitute/global #f			      "<br>\n<p><b>" (match:substring m 0)			    'pre "<br>\n<hr>\n<p><b>" 'post))))));;; get-proxy-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Some addresses require a special proxy (add-hook! get-proxy-hooks	   (lambda (url)	     (and (or (string-contains url "XXXXXXXXXXXXXX")		      (string-contains url "XXXXXXXXXXXXXX"))		  "XXXXXXXXXXXXXXXXXXXXXXXXXXX")));;; get-proxy-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Some addresses work better without a proxy(add-hook! get-proxy-hooks	   (lambda (url)	     (and (or (string-contains url "XXXXXXXXXXXXXXXXXXX")		      (string-contains url "XXXXXXXXXX"))		  "")));;; quit-hooks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Delete temporary files when quitting(define temporary-files '())(add-hook! quit-hooks	   (lambda ()	     (for-each delete-file temporary-files)));;; The end;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -