2007-02-16

HMV アフィリエイト用 XHTML 化 Elisp

HMV のアフィリエイト (in Linkshare) で、少し手間がかかるけど、個別リンクを作ることが出来ることは過去記事に書いた。

ここで、HMV 側が用意する HTML コードは、XHTML valid じゃない。つまり、XHTML なブログに HMV のコードを貼り付けると、場合によってはエラーになる。そこで、正常な XHTML に変換する Emacs Lisp コードを書いた。

コードは下記の通り。

;;
;; Linkshare
;;
(autoload 'sgml-quote "sgml-mode")
(defun linkshare-hmv-reformat-link ()
  (interactive)
  (save-excursion
    (while (re-search-forward "\\(?:href\\|src\\)=\"" nil t)
      (let ((beg (point))
     (end (search-forward "\"")))
 (sgml-quote beg end))))
  (save-excursion
    (let ((case-fold-search nil))
      (while (search-forward "IMG" nil t)
 (replace-match "img" t)
 (search-forward " >")
 (replace-match " alt=\"\"/>"))))
  (save-excursion
    (while (re-search-forward "=\\([01]\\) " nil t)
      (replace-match "=\"\\1\" "))))

HMV からコピーした HTML コードのあるバッファーで M-x linkshare-hmv-reformat-link とすると、

  • href 属性・src 属性値に含まれるの & を & に置換
  • <IMG ...><img ... alt=""/> に置換
  • 属性値をダブル・クォーテーションで囲む

といったことを実行する。

No comments:

Post a Comment