ナビ兄ちゃん

このエントリーをはてなブックマークに追加
29名無しさん@お腹いっぱい。
本文中の URL に ttp:// がついていると [enter] だけで Netscape などでリ
ンク先に飛べるのはすごく便利ですね。

できれば、www.hoge.com/hoge.html みたいに URL に ttp:// さえついていな
いときに URL 風の文字列を認識してリンク先に飛べるようにはできないでしょ
うか。
30名無しさん@お腹いっぱい。:2001/08/10(金) 22:56
>>29
それはおいらが提案したのだ、エヘン ←コード書いてないのに威張るな
31名無しさん@お腹いっぱい。:2001/08/10(金) 23:20
書き込みに失敗した時、何で失敗したか表示できないだろーか。
32名無しさん@Emacs:2001/08/10(金) 23:44
>>28
スレ違いだけど,どういう条件で過去ログ倉庫に行くんですか?
突然消えてちとビビッた
33名無しさん@お腹いっぱい。:2001/08/11(土) 00:46
>>29
「www で始まる英数記号の文字列」を match させるだけでも
使いやすくなるかな。
以前挑戦したが、
navi2ch-article-url-regexp をいじればいいと思っただけでやめた。
3429:2001/08/11(土) 01:07
>>33
それだけでかなりの URL をカバーできそうな気がする。
35名無しさん@お腹いっぱい。:2001/08/11(土) 01:36
以前正規表現いじってみたけどクソ重くなったからやめた。
大抵 http か ttp ついてるし、必要な時コピペでよしだと思う。
3629:2001/08/11(土) 02:36
>>35
それなら仕方ないか。すまそ。
37名無しさん@お腹いっぱい。:2001/08/11(土) 02:40
つか、http:// を付け足して browse-url- するだけの専用関数作って bind
した方が効率良い。正規表現より人間様の方が偉いのだ。
38名無しさん@お腹いっぱい。:2001/08/11(土) 02:51
>>37
region 指定して?
39名無λ式:2001/08/11(土) 04:50
泥沼なコードだが、

(setq navi2ch-article-url-regexp
"h?ttps?://\\([-a-zA-Z0-9_=?#$@~`%&*+|\\/.,:]+\\)\\|\\(www\\.[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,:]+\\)")

navi2ch-article.elのnavi2ch-article-set-link-propertyを
(defun navi2ch-article-set-link-property ()
">>1 とか http:// に property を付ける"
(goto-char (point-min))
(while (re-search-forward
navi2ch-article-number-regexp nil t)
(add-text-properties
(match-beginning 0)
(match-end 0)
(list 'face 'navi2ch-article-link-face
'link t
'mouse-face 'highlight
'number (match-string 1))))
(goto-char (point-min))
(goto-char (point-min))
(while (re-search-forward
navi2ch-article-url-regexp nil t)
(add-text-properties
(match-beginning 0)
(match-end 0)
(list 'face 'navi2ch-article-link-face
'link t
'mouse-face 'highlight
'url (concat "http://" (cond ((match-string 1))
(t (match-string 2))))))))
とすればOK。最後のcondの辺りが苦しい。

ついでにhttps:も入れといた
40名無λ式:2001/08/11(土) 04:53
>>39
コメントつけとくか。

> 'url (concat "http://" (cond ((match-string 1)) ; for h?ttps?:
> (t (match-string 2)))))))) ; for www.
41名無λ式:2001/08/11(土) 07:58
>>39,40
駄目だこりゃ。https://が駄目

'url (cond ((match-string 2) ; for http://
(concat (match-string 2) (match-string 5)))
((match-string 3) ; for ttp://p
(concat "h" (match-string 3) (match-string 5)))
((match-string 4) ; for www.
(concat "http://" (match-string 4) (match-string 5))))))))
(setq navi2ch-article-url-regexp
"\\(\\(https?://\\)\\|\\(ttps?://\\)\\|\\(www\\.\\)\\)\\([-a-zA-Z0-9_=?#$@~`%&*+|\\/.,:]+\\)")

こうか…泥沼だな。関数に分離すべきだな。
42名無しさん@お腹いっぱい。:2001/08/11(土) 23:41
お疲れage