■掲示板に戻る■
全部
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
最新50
レス数が950を超えています。1000を超えると表示できなくなるよ。
2ch専用ブラウザ「Navi2ch」
895 :
名無しさん@お腹いっぱい。
:01/12/13 23:20
N.I.C.H. Monaic という2ちゃんねるブラウザの
スクリーンショットに刺激を受けたんで真似してみた。
Emacs 21以外だとダメかも。
http://monaic.sourceforge.net/thread.png
;;;
;;; レス一覧の先頭にその板のロゴを貼りつける。
;;;
(defun navi2ch-board-display-logo ()
(interactive)
(overlay-put inline-logo 'before-string nil)
(when (eq major-mode 'navi2ch-board-mode)
(let* ((file (navi2ch-bm-get-logo))
(image (navi2ch-board-create-logo-image file
:margin '(0 . 10)))
(string " "))
(when image
(setq string (concat (propertize string 'display image) "\n"))
(let ((buffer-read-only nil))
(overlay-put inline-logo 'before-string string))))))
(defun navi2ch-board-init-logo ()
(if (boundp 'inline-logo)
(delete-overlay inline-logo))
(make-variable-frame-local 'inline-logo)
(setq inline-logo (make-overlay (point-min) (point-min))))
(defun navi2ch-board-create-logo-image (file &rest props)
(and file
(condition-case nil
(or (apply 'create-image (append (list file nil) props))
;; その画像フォーマットに Emacs が対応してないとき
(catch 'found
(let ((newfile))
(dolist (format '(png xpm xbm))
(setq newfile (concat (file-name-sans-extension file)
"." (symbol-name format)))
(when (file-newer-than-file-p file newfile)
(call-process "convert" nil nil nil file newfile)
(throw 'found
(create-image newfile format props)))))))
(error . nil))))
896 :
名無しさん@お腹いっぱい。
:01/12/13 23:20
(add-hook 'navi2ch-board-select-board-hook
'navi2ch-board-init-logo)
(add-hook 'navi2ch-board-after-sync-hook
'navi2ch-board-display-logo)
(defun navi2ch-bm-get-logo ()
"そのロゴを替新する。返り値はキャッシュのフルパス。
ロゴを取得できなくて、キャッシュにもないときは、nil を返す。"
(interactive)
(let ((board (funcall navi2ch-bm-get-board-function
(funcall navi2ch-bm-get-property-function (point))))
(board-mode-p (eq major-mode 'navi2ch-board-mode))
file old-file)
(unless board-mode-p
(setq board (navi2ch-board-load-info board)))
(setq old-file (cdr (assq 'logo board)))
(if navi2ch-offline
(setq file old-file)
(setq file (file-name-nondirectory (navi2ch-net-download-logo board)))
(when file
(when (and old-file navi2ch-board-delete-old-logo
(not (string-equal file old-file)))
(delete-file (navi2ch-board-get-file-name board old-file)))
(if board-mode-p
(setq navi2ch-board-current-board board)
(navi2ch-board-save-info board))))
(if file
(navi2ch-board-get-file-name board file))))
(defun navi2ch-bm-view-logo ()
"その板のロゴを見る"
(interactive)
(let ((file (navi2ch-bm-get-logo)))
(if file
(apply 'start-process "navi2ch view logo"
nil navi2ch-board-view-logo-program
(append navi2ch-board-view-logo-args
(list file)))
(message "Can't find logo file"))))
897 :
名無しさん@お腹いっぱい。
:01/12/13 23:29
あ、動かないや。しまった。変な行が残ってる。
さっきのやつ、一番始めの関数を
;;;
(defun navi2ch-board-display-logo ()
(interactive)
(overlay-put inline-logo 'before-string nil)
(when (eq major-mode 'navi2ch-board-mode)
(let* ((file (navi2ch-bm-get-logo))
(image (navi2ch-board-create-logo-image file
- :margin '(0 . 10)))
(string " "))
(when image
してちょ。
続きを読む
掲示板に戻る
全部
前100
次100
最新50
名前:
E-mail
(省略可)
:
read.cgi ver5.26+ (01/10/21-)