[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
`shimbun.el' に定義された shimbun-article
メソッドは、ヘッダ
情報から Xref を取り出し、その URL のウェブページのソースを取得した後に、
そのソースを入れたワーキングバッファの中
で shimbun-make-contents
を呼びます。具体的な記事の加工
は shimbun-make-contents
の仕事です。
記事となるウェブページのソースが、どばっとワーキングバッファにぶちまけら
れていると想像して下さい。`shimbun.el' の標準
の shimbun-make-contents
は、そのバッファの先頭にまずヘッダ情報を
挿入し、その直後に `<html>' や `<body>' などを、また、バッファ
の末尾に `</body>', `</html>' を挿入してくれます。そうやっ
て HTML メールとして表示させるのです。
記事を何も加工する必要がなければ `sb-foobar.el' の中で
は shimbun-make-contents
について新たに定義する必要はありません。
単純に記事の前後に捨てたい部分があるだけならば、
shimbun-foobar-content-start
,
shimbun-foobar-content-end
に捨てたい部分を検索可能な正規表現を指
定しておきましょう。
(defvar shimbun-foobar-content-start "^$") (defvar shimbun-foobar-content-end "^<\/body>$") |
標準の shimbun-make-contents
から
呼び出された shimbun-clear-contents
は、これらの正規表現を利用し
て、point-min
から shimbun-foobar-content-start
まで、
shimbun-foobar-content-end
から point-max
までを切り捨てて
くれますよ。但し、これら二つのマッチはいずれかが成功しないと切り捨ては行
われませんので注意が必要です。
広告などの不要な情報があって、それを細かく検索して捨てたい場合は、
`sb-foobar.el' の中で独自の shimbun-clear-contents
を定義し
ておきます。
(luna-define-method shimbun-clear-contents :around ((shimbun shimbun-foobar) header) ;; cleaning up (while (re-search-forward "..." nil t nil) (delete-region (match-beginning 0) (match-end 0))) (luna-call-next-method)) |
より具体的な方法は、`sb-ibm-dev.el' が参考になるかもしれません。
先程、9.5.2 ウェブページのソース及びヘッダ情報を取得する の節で、記事毎に個 別に URL を持たない構造のウェブページの場合、ヘッダ情報取得の段階で、記 事の内容も取得しておき、Emacs のメモリに収めておく必要があると申し上げま した。この場合、`shimbun-article' では上記のような Xref 情報から の web page の取得は必要になりませんので、ただ Emacs のメモリから取り出 して、バッファに整形して挿入すれば足ります。具体的に は `sb-palmfan.el', `sb-dennou.el', `sb-tcup.el' の `shimbun-article' メソッドの定義を参照して下さ い。