先日のはてなダイアリーへのエントリーを見ると、リンク部分の日本語がひどいことになってる。例えば
昨日に引き続いて、今日も ひきがえるの日記 で入力しました。
一体、なんのこっちゃ。本当は、
今日も
hatena-mode で入力しました
と書きたかった Xp。
はてな記法によるリンク
はてなの記法によると
- url
- [url:title]
- [url:title=TITLE]
というような書き方でリンクが張れる。
1 番目のリンクは、URL がそのまま表示される。2 番目のリンクは、リンク先のタイトルがアンカー名になる。3 番目のリンクはアンカー名を TITLE に指定する。
前回の記事では、リンク先のタイトルを確かめもせずに 2 番目のリンクの張り方をしたのが拙かった。不精せず、3 番目の書き方でリンク名を指定すべきだった。
quickurl を使う
この手のリンクは、Emacs の quickurl を使って入力するようにしているので、 hatena-mode にも対応させてみた。.emacs に書いた設定は以下の通り。
;;
;; quickurl
;;
(define-key mode-specific-map "q" 'quickurl)
(setq quickurl-grab-lookup-function #'quickurl-current-word)
(defun quickurl-current-word ()
(save-excursion
(let ((beg (progn (skip-chars-backward "A-Za-z0-9-") (point)))
(end (progn (skip-chars-forward "A-Za-z0-9-") (point))))
(buffer-substring-no-properties beg end))))
(defadvice quickurl-insert (after fold-html-if-available)
"Fold inserted url if fold-html-mode is t"
(when (and
(memq major-mode '(nxml-mode sgml-mode xml-mode html-mode yahtml-mode xhtml-mode))
(boundp 'html-fold-mode) html-fold-mode)
(html-fold-inline)))
(setq quickurl-format-function #'quickurl-mode-format-function)
(eval-after-load "quickurl"
'(progn
(defun quickurl-mode-format-function (url-list)
(let ((url (quickurl-url-url url-list))
(desc (quickurl-url-description url-list)))
(delete-region (point) (search-backward lookup))
(cond
((eq major-mode 'hatena-mode)
(format "[%s:title=%s]" url desc))
((memq major-mode '(nxml-mode sgml-mode xml-mode yahtml-mode))
(format "<a href=\"%s\">%s</a>" url desc))
((memq major-mode '(rd-mode))
(format "((<%s|URL:%s>))" desc url))
(t url))))
(ad-activate 'quickurl-insert)
))
quickurl については、以下の記事を参照されたし。
0 件のコメント:
コメントを投稿