トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Browser

Table of Contents

browserex

 browserex 対応クローズボックスの表示

browser が開いている場合は,browser を閉じる。さもなくば,カレントバッファを閉じる。

(add-hook '*init-app-menus-hook*
          #'(lambda ()
              (add-menu-item *app-menu* 'close-box :close-box
                             #'(lambda () (interactive)
                                 (if (bx::browser-open-p)
                                     (bx:close-browser)
                                   (kill-selected-buffer))))))

 クリップボードの URI をブラウザで表示

クリップボードのデータが URI の場合は,ブラウザで開く。

(defun navigate-paste-from-clipboard ()
  (interactive)
  (let (url)
    (setq url (get-clipboard-data))
    (when (string-match ed::*url-scheme-regexp* url)
      (bx::navigate url))))

無理矢理 C-S-v でじっこ。

(require "wip/winapi")
(c:define-dll-entry c:short GetKeyState (c:int) "user32")
(global-set-key #\C-v #'(lambda ()
                          (interactive)
                          (if (or (minusp (GetKeyState 16))
                                  (minusp (GetKeyState 160)))
                              (navigate-paste-from-clipboard)
                            (next-page))))

 ネットワークコンピュータ上のファイルも browserex で開けるように

標準の navigate-current-buffer だとネットワークコンピュータ上のファイル(//hoge/share/piyo.html とか)がうまく開けないようだったので,書き換えてみた。

(in-package "browserex")
(defun navigate-current-buffer (&key position size temp-file)
  "カレントバッファを browser.dll で表示"
  (interactive)
  (let ((file (get-buffer-file-name)))
    (if file
        (progn
          (when (string-match "^//" file)
            (setq file (concat "file:" file)))
          (if (and *browser-use-refresh*
                   (browser-open-p)
                   (string/= file *browser-temp-file*)
                   (string= file *browser-navigate-url*))
              (refresh-browser)
            (navigate file :position position :size size)))
      (progn
        (unless temp-file
          (setq temp-file *browser-temp-file*))
        (with-open-file (out temp-file
                             :direction :output
                             :if-does-not-exist :create)
          (convert-encoding-from-internal
           (buffer-fileio-encoding)
           (buffer-substring (point-min) (point-max)) out))
        (navigate temp-file :position position :size size)))))
(in-package "user")

www-mode

 カレントバッファを www-mode で表示

www-open-current-buffer のバッファがファイルに関連付けされていない場合に対応版。

browserex.l から頂き。m(_ _)m

(defun my-www-open-current-buffer ()
  (interactive)
  (let ((file (get-buffer-file-name)))
    (if (and file (not (string-match "^//" file)))
        (www-open-current-buffer)
      (let ((temp-file (map-backslash-to-slash
                        (merge-pathnames "bufmenu-www-temp.html"
                                         (or (si:getenv "TEMP")
                                             (si:getenv "TMP")
                                             (user-homedir-pathname)
                                             (si:system-root))))))
        (with-open-file (out temp-file
                             :direction :output
                             :if-does-not-exist :create)
          (convert-encoding-from-internal
           (buffer-fileio-encoding)
           (buffer-substring (point-min) (point-max)) out))
        (www-open-local-file temp-file)))))

最終更新時間:2004年09月16日 00時12分40秒 GMT