[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9. ウェブ上の新聞を読むための道具

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Shimbun+Library"
"emacs-w3m/ウェブ上の新聞を読むための道具"へのコメント(無し)
検索全文Elisp

ウェブでは、ますます多くの新聞、メーリングリストのアーカイブ、掲示板、あ るいは個人の日記 (hyper nikki system、weblogs または blogs) が公開されて います。`Shimbun' ライブラリは、それらのコンテンツを貴方の好みのメー ラーで読むことができるようにします。具体的には、それらのコンテンツを、メー ルのように整形・整理する機能を提供します。

すべての `shimbun' モジュールは、普通のメールやニュースのように読む ことができる記事を生成することを目標にしています。しかしながら、ウェブサ イトがそれらの記事の html をしばしば変更するので、その度に私たちは困難に ぶつかります。

もし、無意味な画像や、記事とは関係の無いテキストが現れるのに気がついたら、 (たとえ些細なものでも) report-emacs-w3m-bug (see 節 11. メーリングリスト、バグリポート) を使って報告してください。

`Shimbun' ライブラリは、現在、朝日新聞、読売オンライン、Emacs Devel、 XEmacs Beta、Gnus/Mew/Wanderlust などのメーリングリスト、Slashdot、 Slashdot Japan、および他のたくさんのものに対応しています。具体的には、 9.5 新聞が読めるサイト を参照してください。

ところで、`Shimbun' ライブラリを利用する時は、著作権について注意が 必要です。`Shimbun' ライブラリによって加工・生成された記事の著作権 は、その記事を生成する元になったデータの著作者に帰属します。したがって、 得られた記事を利用する場合は、元のデータの著作者の権利を侵害しない範囲を 守る法律上の義務があります。つまり、著作権法に定められた「私的利用」の範 囲を守らなければならない、ということです。

`Shimbun' ライブラリを利用したことによって、万が一あなたが不利益を 被ったり、あなたが他者の権利を侵害したことによってあなたが訴えられたとし ても、emacs-w3m 開発チームは一切の責任を負いません。

`Shimbun' ライブラリはたくさんのモジュールのコレクションで、それら の各々は単独では何の役にも立ちません。 ここでは代表的な三つの `Shimbun' のアプリケーションプログラム (それ らのうちの二つは `Shimbun' ライブラリに含まれています) と、あなたが 自分で `Shimbun' モジュールを作る方法について説明します (Emacs Lisp プログラムを書くことができる必要があります)。

`Shimbun' ライブラリを利用するためには、emacs-w3m を構築してインス トールする前に FLIM パッケージ (加えて `nnshimbun' を使い たければ Gnus) をインストールする必要があることに注意してください。 FLIM パッケージには APEL パッケージが必要です。あな たは 2.3 Emacs-w3m を動作させるのに必要なもの も見るべきかもしれません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.1 Gnus をウェブブラウザにする!

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Nnshimbun"
"emacs-w3m/Gnusをウェブブラウザにする!"へのコメント(無し)
検索全文Elisp

`Nnshimbun' は Gnus のバックエンドです。しかしながら、例外的 に Gnus ではなくて emacs-w3m とともに配布されています。 `Nnshimbun' は Gnus を並外れて便利なウェブブラウザにすることができ ます。すべての広告に煩わされずに新聞社のウェブサーバで記事を拾い読みする ことができます。メーリングリストの記事アーカイブを、そのリストに講読登録 しているように読むことができます。掲示板の書き込みも読むことができます。 等々... でも Gnus は `nnshimbun' でウェブを介した投稿ができないので、 フォローしたいときは emacs-w3m を使わなければいけないことに注意してくだ さい。

さらに emacs-w3m で HTML メッセージを整形するには 6.1 Gnus で HTML メールを読む も参照して ください。

`Nnshimbun' を始めるための一番簡単な方法は、グループバッファで以下 のようなことをすることです:

M-x gnus-group-make-shimbun-group RET asahi RET national RET

`asahi' と `national' は、接続したいサーバーに対応したキーワー ドと興味のあるグループに、それぞれ置き換えてください。 TABSPC をタイプすることによって、それらの名 前を両方とも補完することができます。

もし gnus-group-mode-map に十分な空きがあるならば、以下のようなも のを `~/.gnus.el' ファイルに加えてください:

 
(eval-after-load "gnus-group"
  '(define-key gnus-group-mode-map "Gn"
     'gnus-group-make-shimbun-group))

すると、M-x gnus-group-make-shimbun-group の代わり に G n を使うことができます。

誰かこのキーを Gnus タワーに予約してくれませんか?

この他に、gnus-group-make-shimbun-groups コマンドを使って、指定し たサーバーのすべてのグループを作ることができます。

`Nnshimbun' は単にウェブサーバから HTML コンテンツを取り寄せて、そ れを記事として表示しますが、永続記 事 (see 節 `Persistent Articles' in

The Gnus Manual
) を作る場合を除いて、ローカルファイルに記事をセーブすることはあ りません。`Nnshimbun' は NOV ファイルを、それぞれ の `nnshimbun' グループで使います。そのバックエンド は `nnml' とほぼ同じです。

以下の `nnshimbun' に関する変数をカスタマイズすることが可能です:

nnshimbun-keep-backlog
この変数は `nnshimbun' グループで gnus-keep-backlog 変 数 (see 節 `Article Backlog' in
The Gnus Manual
) を 上書きします。もし nnshimbun-keep-backlog を数字 n に設定す ると、`nnshimbun' は最大で n の古い記事を後の再取得のためにバッ ファに溜めておきます。この変数が nil ではなく、数字でもない場合、 `nnshimbun' は すべて の既読記事を蓄えます (これは良い考えで はありません)。デフォルト値は 300 です。

`Nnshimbun' はあらかじめ取得した (prefetched) 記事の保存 に backlog を使うので、小さすぎる値は prefetch-articles 機能 (下 記参照) を損なうかもしれないことに注意してください。

nnshimbun-directory
`Nnshimbun' が NOV ファイルと印ファイルを保存するディレク トリです。デフォルト値は `~/News/shimbun/' です。これはサーバー変 数 (see 節 `Server Variables' in
The Gnus Manual
) で す。

nnshimbun-default-group-level
gnus-level-default-subscribed を上書きする、デフォルトのグループ レベルです。新たに作られた `nnshimbun' グループに適用されます。デフォ ルト値は nil です。これはサーバー変数 (see 節 `Server Variables' in
The Gnus Manual
) です。

nnshimbun-marks-is-evil
もし nil でなければ、Gnus は `shimbun' スプールのために 印 (marks) ファイルを作りも使いもしません。印ファイルを使うことによって、 `shimbun' グループを `.newsrc.eld' から切り放してバックアップ し、復元することが可能になります。何らかの理由でこれを t に設定し た後で、再び nil にする場合はいつも、グループの印ファイルを消さな ければなりません (普通それは `shimbun' グループのディレクトリにあ る `.marks' という名前のファイルですが、正確に は nnshimbun-marks-file-name の値を参照してください)。そうすれ ば Gnus によって印ファイルが再生成されるでしょう。デフォルト値 は nil です。これはサーバー変数 (see 節 `Server Variables' in
The Gnus Manual
) です。

`Nnshimbun' は Gnus が提供する標準のグループパラメー タ(7) に加えて、`nnshimbun' 専用に設けられたグループパラ メータを利用することができます。複数の `nnshimbun' 用のパラメータ が nnshimbun-group-parameters という単一のグループパラメータ (す べてのグループで違う値を持つことができる) にまとめられています。それはプ ロパティリストで、例えば次のような値です:

 
'(index-range all prefetch-articles off encapsulate-images on
              expiry-wait 6)

以降はこれらのグループパラメータと、関連する変数の説明です。

prefetch-articles
このグループパラメータが off または nil 以外の何かに設定さ れているグループでは、`nnshimbun' は新しい記事を探すだけではなく、 それらの記事のダウンロードも行います。これは新しい記事の検索を遅くします が、記事を閲覧するときに待たされません。このグループパラメータが設定され ていないか、その値が nil になっているグループでは、代わりに変 数 nnshimbun-pre-fetch-article の値 (デフォルトは off) が 使われます。

encapsulate-images
このグループパラメータが off または nil 以外の何かに設定さ れているグループでは、`nnshimbun' は元の記事に埋め込まれている画像 データを MIME の `multipart/related' パートとして記事にはめ込みます。 このグループパラメータが設定されていないか、その値が nil になって いるグループでは、代わりに変数 nnshimbun-encapsulate-images の値 が使われます。この変数 nnshimbun-encapsulate-images のデフォルト 値は、`shimbun' ライブラリによって提供される変 数 shimbun-encapsulate-images の値です (たぶんデフォルト値 は t です)。

index-range
グループパラメータ index-range で、ウェブサーバーから取得される記 事の範囲を指定することができます。範囲の指定には以下の値を使ってください:

nil
all
すべてのページ

last
最新のページだけ

`integer N'
最新の N ページ

`Nnshimbun' はサーバー上に存在する目次ページを解析して新しい記事の 有無を調べます。サーバーによってはそのような目次ページが複数存在する場合 があります。例えば、メーリングリストの記事を提供しているサーバーの場合は、 その記事が投稿された日付によって分類された目次になっていることが一般的で す。特に遅い回線を利用している時に、それらすべての巨大な目次を調べるには、 相当な時間がかかるでしょう。

`Nnshimbun' は前回の接続時に調べた目次については、なるべく調べずに 済ませるようになっています。更に時間を節約したい場合は last を使っ てください。これは `nnshimbun' に、最新の目次だけを参照して新しい記 事の検査を行なわせます。

グループパラメータ index-range が設定されていないか、値 が nil になっているグループでは、変 数 nnshimbun-index-range の値 (デフォルトは 2) が使われま す。

nnshimbun-group-parameters-alist
これは Emacs Lisp 変数で、グループ名の正規表現と `nnshimbun' 用グルー プパラメータの連想リストです。デフォルト値は nil です。各々の要素 は `(REGEXP KEYWORD VALUE KEYWORD VALUE...)' の形式を持ちます。例え ば:

 
'("^nnshimbun\\+asahi:" index-range all prefetch-articles off
  encapsulate-images on expiry-wait 6)

似た名前を持つ (すなわち、互いに似た性格を持っていそうな) 複数のグループ に対して同じ `nnshimbun' グループパラメータを指定することができるの で、個々のグループに対してそれぞれグループパラメータを設定する代わりに使 うことができて便利です。もしグループですでにグループパラメータの設定が行 なわれていた場合は、この変数よりもそちらが優先されます。

`Nnshimbun' には記事の期限切れ消去を行なわせることができま す(8)。記事が期限切 れ消去されると言っても、それが遠隔サーバーから削除されるわけではなく、そ れはずっとそこから取得可能であることを覚えておいてください。消えるのはあ なた自身の `nnshimbun' 用の NOV ファイ ル(9) の、 消去される記事に該当する行です。それによってその記事は二度と概略バッファ に現れなくなります。

`Nnshimbun' グループで記事の期限切れ消去を行なわない と NOV ファイルが際限無く太り続け、非常に古い記事があたかも存 在しているように見えるかもしれません (実際には、それらは新聞社のサーバー で三年前に期限切れ消去されてしまっているかもしれない!)。それを読もうとし ても記事バッファには何も現れないでしょう。一方、メーリングリストの記事を 提供しているたいていのサーバーは、一般的に過去の全記事を提供しています。 憂愁の彼方に去りし古き良き時代に、あなたが興じた記事を懐かしくうるうるし て読み返すことができるように、そういうグループでは期限切れ消去はさせたく ないと思うかもしれません。

他のメールバックエンドと同様に、`nnshimbun' のグループ毎に記事に自 動期限切れ消去の印を付けて、残しておく期間を設定することができます。ただ し `nnshimbun' バックエンドと他のメールバックエンドには、少し違いが あります:

`Nnshimbun' の期限切れ消去に関係するグループパラメータと変数は以下 の通りです:

expiry-wait
どうか混乱なさらないように。expiry-wait グループパラメータ が `nnshimbun' 専用に作られたグループパラメー タ nnshimbun-group-parameters の要素の一つとして提供されます。そ れは標準のグループパラメータと同じ名前を持ち、意味も同じです。あなたはど ちらを使っても構いません。もし `nnshimbun' 専用のもの が nil 以外の値に設定されると、標準のものよりも優先されます。これ は `nnshimbun' に関係するものを "Gnus Customize" バッファ (グルー プバッファで G c をタイプすると現れる) の一箇所に集めるためと、 変数 nnshimbun-group-parameters-alist で一括して管理できるように することを目的に用意したものです(10)。設定できる 値は標準のグループパラメータと同様に、時限消去の日数、never また は immediate です。

nnshimbun-keep-unparsable-dated-articles
この変数の値が nil でない場合は、作成された (または到着した) 時刻 がわからない記事は期限切れ消去されません。なにしろどのくらい古いのかわか らないんですから。デフォルト値は t です。nil に設定すると、 期限切れ消去の処理が行なわれるときに、期限がわからない記事でも無条件で消 されてしまいます。まあ、年の暮れの大掃除の役には立つことが判明するかもし れません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.2 Mew で新聞を読む

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Mew+Shimbun"
"emacs-w3m/Mewで新聞を読む"へのコメント(無し)
検索全文Elisp

Mew Shimbun は `shimbun' と Mew (version 2.1 以降) とともに使うこと を意図した Emacs Lisp プログラムです。Mew, APEL およ び FLIM もインストールされていれば、emacs-w3m をインストールす るときに一緒にインストールされます。

6.2 Mew で HTML メールを読む も参照することをお勧めします。

  1. 諸設定

    以下の各行を `~/.mew.el' ファイルの最後に書いてください:

     
    ;;; mew-shimbun のロード、キー定義
    

    ;; (setq mew-shimbun-use-unseen t) ;; (11)
     
    (require 'mew-shimbun)
    (define-key mew-summary-mode-map "G"  (make-sparse-keymap))
    (define-key mew-summary-mode-map "Gg" 'mew-shimbun-goto-folder)
    (define-key mew-summary-mode-map "GG" 'mew-shimbun-goto-unseen-folder)
    (define-key mew-summary-mode-map "Gi" 'mew-shimbun-retrieve)
    (define-key mew-summary-mode-map "GI" 'mew-shimbun-retrieve-all)
    (define-key mew-summary-mode-map "Gr" 'mew-shimbun-re-retrieve)
    (define-key mew-summary-mode-map "GR" 'mew-shimbun-re-retrieve-all)
    (define-key mew-summary-mode-map "Ge" 'mew-shimbun-expire)
    (define-key mew-summary-mode-map "GE" 'mew-shimbun-expire-all)
    
    ;; mew-shimbun-folder-groups に Mew で購読する `shimbun' servers 及び
    ;; group を設定します。それぞれの要素は
    ;; ("folder" ("server.group" . range) ...) の形式です。range には
    ;; all, last, および数字が指定できます。
    
    (setq mew-shimbun-folder-groups
          '(;; `+shimbun/yomiuri' という folder に `yomiuri.national',
            ;; `yomiuri.sports' などを一括して取得します。
            ("yomiuri"
             ("yomiuri.national" . 2)
             ("yomiuri.sports". 2)
             ("yomiuri.world". 2))
            ;; `+shimbun/security-memo' に `security-memo.memo' を取得します。
            ("security-memo"
             ("security-memo.memo" . 2))
            ("slashdot-jp"
             ("slashdot-jp.story" . last))
            ;; このように、異なる server の group も一つの folder
            ;; (`+shimbun/emacs') で読むことができます。
            ("emacs"
             ("airs.wl" . last)
             ("emacs-w3m.emacs-w3m" . last))
            ;; `+shimbun/hns/arisawa', `+shimbun/hns/miyoshi' にそれぞれの
            ;; 日記を取得します。
            ("hns/arisawa"
             ("hns.arisawa" . last))
            ("hns/miyoshi"
             ("hns.miyoshi" . last))))
    

    以上で基本的な設定は終了です。他のユーザ定義変数は mew-shimbun グ ループを M-x customize-group するか、ソースを見てください。

  2. 記事の購読

    1. 最初の購読

      上記の設定をしたあと、まず G I しましょ う (mew-shimbun-retrieve-all)。 mew-shimbun-folder-groups で種々の設定を行なった `shimbun' folder が `+shimbun' 以下に出来ます。また、新たに group を追加した ときも G I すると便利です。なお、 `+shimbun' は mew-shimbun-folder という変数で好みのものに変 更できます。

    2. `shimbun' folder への移動

      通常の g (mew-summary-goto-folder) でも `shimbun' folder への移動はできますが、 G g (mew-shimbun-goto-folder) を使うと `shimbun' folder 限定で移動できます。また C-u G g と prefix をつけたとき は、新規記事のある folder (まだ scan をしていない folder) のみ表示します。 G G でも同様です。

    3. folder 単位での記事の取得

      `shimbun' folder で G i (mew-shimbun-retrieve) す ると、現在の `shimbun' folder で新規記事を取得します。

    4. 更新された記事の取得

      特定の記事を表示した状態 で G r (mew-shimbun-re-retrieve) すると、その記事が更新 されていたら更新し、同時に新規記事も取得します。C-u G r とする と、mew-shimbun-mark-re-retrieve に指定したマーク (デフォルト値 は `@') の記事の更新を試みます。CNET などで使うと便利でしょう。

      G R (mew-shimbun-re-retrieve-all) では、すべての記事の 新規性を調べ取得しなおします。C-u G R ではリージョンで指定した 範囲の記事を対象とします。おそらくハイパー日記システムが稼働している日記 サイトでは有意義なコマンドでしょう。

  3. 未読管理

    `~/.mew.el' ファイルで以下の設定を行なっていると、

     
    (setq mew-shimbun-use-unseen t)
    

    新規に取得した記事に mew-shimbun-mark-unseen で設定したマーク (デ フォルトは `*') がつくようになり、読むと自動的に消えます。

    通常、Mew の summary モードでマークをつける、あるいは消した後、scan をし ないと `.mew-cache' ファイルに反映されませんが、`~/.mew.el' ファ イルで以下の設定を行なうことにより、

     
    (setq mew-shimbun-use-unseen-cache-save t)
    

    Mew の終了時や folder の kill 時 (C-c C-q を使ったと き) に `shimbun' folder は自動的に `.mew-cache' ファイルを保存 するようになります。ただし、確実 (12) に保存するわけではありません。既読になった情報を確実に cache に保存する には、その folder を読み終わったときに `scan update' をする習慣をつ けると良いでしょう。

    未読に使うマークが `*' じゃダメ、という方は、変 数 mew-shimbun-mark-unseen をカスタマイズしてください (上述)。 C-u N でそのマークを指定すると楽しい未読ライフをおくることがで きると思います。

  4. 期限切れ記事の消去

    事前に mew-shimbun-expires を設定しておくと、期限切れ記事の消去を 行なうことができます。例えば:

     
    (setq mew-shimbun-expires
          '(("yomiuri" . 7)
            ("asahi" . 1)
            ("slashdot-jp" . 7)
            ("emacs" . 7)))
    

    上記のように設定しておくと、`+shimbun/yomiuri' は 7日、 `+shimbun/asahi' は 1日と期限を設定することができます。指定されてい ない `shimbun' folder は消去しません。G e (mew-shimbun-expire) でその folder の期限切れ記事を消去します。 G e (mew-shimbun-expire) で設定したすべての folder で記 事の消去を実行します。なお、一度消去した記事は復旧出来ませんので注意して ください。

  5. 未読マークとして `$' を追加する方法

    `$' マークを新たに作成し、`$' マークを未読マークとして使うには、 次の記述を `~/.mew.el' ファイルに記述してください。なお、 `$' 以外の記号にしたければ、 http://www.mew.org/ml/mew-dist-2.0/msg01251.html を参照して記述を 生成してください。

     
    ;;----------------------------------------------------------------------
    ;;; `$' を未読マークとして使うための記述
    (setq mew-mark-unseen ?$)
    (setq mew-shimbun-mark-unseen mew-mark-unseen)
    (setq mew-mark-show-list (cons mew-mark-unseen mew-mark-show-list))
    (setq mew-mark-afterstep-spec
          (cons (cons mew-mark-unseen '(1 0 1 0 0 0 0))
                mew-mark-afterstep-spec))
    (setq mew-mark-spec
          (cons (list mew-mark-unseen "unseen" 0 nil nil nil nil nil)
                mew-mark-spec))
    (setq mew-highlight-mark-keywords
          (cons
           (cons mew-mark-unseen 'mew-face-mark-unseen)
           mew-highlight-mark-keywords))
    (defface mew-face-mark-unseen
      '((((class color) (type tty))
         (:foreground "green"))
        (((class color) (background light))
         (:foreground "deep pink" :bold t :italic t))
        (((class color) (background dark))
         (:foreground "thistle"))
        (t (:bold t)))
      "*Face to highlight the unseen mark"
      :group 'mew-highlight)
    (defun mew-summary-unseen (&optional count)
      "Put the unseen mark(default is '$') in COUNT times."
      (interactive "P")
      (mew-mark-put-mark-loop (function mew-summary-unseen-one) count nil))
    (defun mew-summary-unseen-one (&optional no-msg)
      "Put the unseen mark(default is '$') on this message."
      (mew-mark-put-mark mew-mark-unseen no-msg))
    (defun mew-summary-mark-unseen ()
      "Change the '*' mark into the '$' mark."
      (interactive)
      (mew-summary-exchange-mark mew-mark-review mew-mark-unseen))
    (defun mew-thread-mark-unseen ()
      "Put the '$' mark on all messages of the current sub-thread."
      (interactive)
      (mew-thread-mark mew-mark-unseen))
    
    (define-key mew-summary-mode-map "$"  'mew-summary-unseen)
    (define-key mew-summary-mode-map "m$" 'mew-summary-mark-unseen)
    (define-key mew-summary-mode-map "t$" 'mew-thread-mark-unseen)
    ;;----------------------------------------------------------------------
    



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.3 Wanderlust で新聞を読む

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Shimbun+with+Wanderlust"
"emacs-w3m/Wanderlustで新聞を読む"へのコメント(無し)
検索全文Elisp

Wanderlust には ELMO モジュールの一つとして `elmo-shimbun' が含まれ ているので、名前が `@' で始まるフォルダにアクセスするだけ で `shimbun' を読むことができます (see 節 `Shimbun Folder' in

The Wanderlust-ja Manual
)。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.4 新聞の取得にシェルスクリプトを使う

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Shimbun+local+mode"
"emacs-w3m/新聞の取得にシェルスクリプトを使う"へのコメント(無し)
検索全文Elisp

たくさんの新聞を読んでいると、新しい記事をチェックするのにいくらか時間が かかるでしょう。それは emacs-w3m が索引を一つずつ取得するからです。これ を高速に行ないたいなら、索引の取得にシェルスクリプトを使うことができます。 スクリプトは手動で (例えば Emacs の中から) 作動させても良いし、cron のよ うなスケジューラを介して自動で走らせることもできます。索引は特別な名前の ファイルにセーブされ、その後 emacs-w3m は w3m を呼ぶ代わりにそれらのファ イルを使うようになります。

以下の変数で、その「ローカルモード」を制御します:

shimbun-use-local
これを t に設定することによってローカルモードを有効にします。そう すると、もしローカルファイルとして索引が用意できていれば、emacs-w3m は最 初にそれをチェックします。もしそれが見つからなかったら、通常通り w3m を 通して取得します。

shimbun-local-path
新聞の (索引の) ファイルを格納するディレクトリです。デフォルト は w3m-default-save-directory です。

索引のためのファイルの名前は、URL の MD5 を最初の 10 文字に切り詰めたも のの後ろに `_shimbun' という文字列をくっつけたものになります。次の ように Emacs で簡単に索引のためのファイルを生成することができます:

 
(concat (substring (md5 "http://example/feed") 0 10) "_shimbun")

Gnus と `nnshimbun' を使っている人たちのために、シェルスクリプトを 生成する関数がすでにあります。それを使って、現在講読しているすべて の shimbun グループの索引をダウンロードすることができます。単 に nnshimbun-generate-download-script を呼んでください。すると新 しいバッファにシェルスクリプトが生成されるので、後でセーブしてください。 接頭引数を付けてその関数を呼ぶと、索引の取得を並行して行なうために、すべ ての w3m 呼び出しに `&' を付けます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.5 新聞が読めるサイト

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Shimbun+Sites"
"emacs-w3m/新聞が読めるサイト"へのコメント(無し)
検索全文Elisp

`Shimbun' ライブラリが対応しているサイトの一覧表です。

9.5.1 新聞社  
9.5.2 ニュースサイト  
9.5.3 メーリングリスト  
9.5.4 スポーツ  
9.5.5 その他  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.5.1 新聞社

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Newspapers+Supported+by+Shimbun"
"emacs-w3m/新聞社"へのコメント(無し)
検索全文Elisp

`Shimbun' ライブラリが対応している新聞社です。

朝日新聞
asahi.book asahi.book.column asahi.book.news asahi.book.paperback asahi.book.review asahi.book.special asahi.business asahi.car asahi.culture asahi.digital asahi.editorial asahi.edu asahi.english asahi.food asahi.health asahi.housing asahi.igo asahi.international asahi.international.asia asahi.international.column asahi.international.special asahi.international.world asahi.job asahi.kansai asahi.kansai.entertainment asahi.kansai.kokoro asahi.kansai.sumai asahi.kansai.taberu asahi.komimi asahi.life asahi.life.column asahi.national asahi.politics asahi.rss asahi.science asahi.shopping asahi.shopping.column asahi.shopping.yakimono asahi.shougi asahi.sports asahi.sports.baseball asahi.sports.battle asahi.sports.etc asahi.sports.football asahi.sports.golf asahi.sports.rugby asahi.sports.usa asahi.sports.winter asahi.tenjin asahi.travel asahi.wakata

これらのグループは、デフォルトでテキストだけの記事を作ります。それらに、 テキストだけでなく写真をも含む HTML の記事を生成させたいならば、以下の行 を `~/.emacs' ファイルに加えてください。

 
(setq shimbun-asahi-prefer-text-plain nil)

一方、HTML の記事を作るために `asahi-html' バックエンドを使うことも できます。それを使うには、例えばグループ名とし て `asahi.business' の代わりに `asahi-html.business' を指定し てください。

朝日新聞
asahi-mytown.(hokkaido...okinawa)

日本の全都道府県を網羅する朝日新聞の地方版です。

BBC
bbc.news

ディー・ヴェルト
welt-de.news

ディー・ツァイト
zeit-de.auto zeit-de.computer zeit-de.deutschland zeit-de.feuilleton zeit-de.gesundheit zeit-de.international zeit-de.leben zeit-de.literatur zeit-de.musik zeit-de.news zeit-de.reisen zeit-de.schule zeit-de.sport zeit-de.studium zeit-de.wirtschaft zeit-de.wissen zeit-de.zuender

ゲンダイネット
gendai-net.today gendai-net.syakai gendai-net.sports gendai-net.geino gendai-net.wadai gendai-net.kenko gendai-net.syoku gendai-net.book

毎日jp
(2007年10月に MSN から自社サイトに移行)
mainichi.flash mainichi.sports mainichi.entertainment mainichi.entertainment.art mainichi.mantan mainichi.electronics mainichi.weekly mainichi.opinion.editorial mainichi.opinion.yoroku mainichi.opinion.hasshinbako mainichi.opinion.eye mainichi.opinion.hito mainichi.opinion.kinji mainichi.opinion.yuraku mainichi.opinion.closeup mainichi.opinion.kaisetsu mainichi.opinion.newsup

これらのグループは、デフォルトで写真をも含む HTML の記事を作ります。それ らに、テキストだけの記事を生成させたいならば、以下の行 を `~/.emacs' ファイルに加えてください。

 
(setq shimbun-mainichi-prefer-text-plain t)

ニューヨークタイムズ
nytimes.homepage nytimes.news.business nytimes.news.business.media&advertising nytimes.news.business.worldbusiness nytimes.news.business.smallbusiness nytimes.news.business.yourmoney nytimes.news.business.dealbook nytimes.news.education nytimes.news.health nytimes.news.health.policy nytimes.news.health.psychology nytimes.news.world nytimes.news.world.africa nytimes.news.world.americas nytimes.news.world.asia nytimes.news.world.europe nytimes.news.world.middleeast nytimes.news.us nytimes.news.newyork nytimes.news.newyork.thecity nytimes.news.newyork.metro nytimes.news.obituaries nytimes.news.science nytimes.news.science.earth nytimes.news.science.nutrition nytimes.news.science.space nytimes.news.sports nytimes.news.sports.basketball.college nytimes.news.sports.football.college nytimes.news.sports.golf nytimes.news.sports.hockey nytimes.news.sports.other nytimes.news.sports.baseball.pro nytimes.news.sports.basketball.pro nytimes.news.sports.football.pro nytimes.news.sports.soccer nytimes.news.technology nytimes.news.technology.bits nytimes.news.technology.circuits nytimes.news.technology.pogue nytimes.news.washington nytimes.features.arts nytimes.features.arts.design nytimes.features.arts.music nytimes.features.arts.television nytimes.features.automobiles nytimes.features.books nytimes.features.books.review nytimes.features.dining&wine nytimes.features.fashion nytimes.features.fashion.thursdaystyles nytimes.features.fashion.weddings nytimes.features.home&garden nytimes.features.jobs nytimes.features.magazine nytimes.features.movie.news nytimes.features.movie.reviews nytimes.features.realestate nytimes.features.theater nytimes.features.travel nytimes.features.travel.escapes nytimes.features.week_in_review nytimes.additional.pop_top nytimes.opinion.editorial

2007年9月19日、ニューヨークタイムズは無料でニュース記事を提供し始めまし た。`charset=iso-8859-1' と言ったのにもかかわらず、このサイトはしば しば iso-8859-1 の上位互換文字セットである windows-1252 を 使います。使用している (X)Emacs に windows-1252 coding system が あれば、`shimbun' は (そして emacs-w3m も) そのような場合でも動作し ます。

日刊スポーツ
nikkansports.flash nikkansports.baseball nikkansports.baseball.highschool nikkansports.baseball.amateur nikkansports.baseball.mlb nikkansports.soccer nikkansports.soccer.japan nikkansports.soccer.world nikkansports.sports nikkansports.sumo nikkansports.nba nikkansports.nfl nikkansports.nhl nikkansports.rugby nikkansports.golf nikkansports.motor nikkansports.battle nikkansports.race nikkansports.race.kka nikkansports.entertainment nikkansports.cinema nikkansports.general

日本経済新聞
nikkei.top nikkei.main nikkei.keizai nikkei.sangyo nikkei.tento nikkei.kansai nikkei.it.business nikkei.it.busi_gyoukai nikkei.it.biz-system nikkei.it.sox nikkei.it.data nikkei.it.taidan nikkei.it.internet nikkei.it.broad nikkei.it.net_gyoukai nikkei.it.iptel nikkei.it.tele nikkei.it.broadcast nikkei.it.internet-column nikkei.it.contents nikkei.it.ec nikkei.it.policy nikkei.it.e-gov nikkei.it.mobile nikkei.it.mob_gyoukai nikkei.it.mobsoft nikkei.it.mobcon nikkei.it.money nikkei.it.one nikkei.it.security nikkei.it.net_crime nikkei.it.digital nikkei.it.pc nikkei.kokunai nikkei.markets nikkei.kawase nikkei.kinri nikkei.ft nikkei.dj nikkei.ngyoseki nikkei.gyosuuchi nikkei.gyoseki nikkei.china nikkei.market nikkei.kaigai nikkei.seiji nikkei.shakai nikkei.retto nikkei.sports nikkei.newpro nikkei.release nikkei.release.it.comp nikkei.release.it.peri nikkei.release.it.sys nikkei.release.it.cont nikkei.release.it.net nikkei.release.it.lsi nikkei.release.it.game nikkei.release.it.etc nikkei.release.dist.depart nikkei.release.dist.ryohan nikkei.release.dist.zakka nikkei.release.dist.cosme nikkei.release.dist.car nikkei.release.dist.book nikkei.release.dist.record nikkei.release.dist.food nikkei.release.dist.mercha nikkei.release.dist.mail nikkei.release.dist.netshop nikkei.release.dist.etc nikkei.release.money.bank nikkei.release.money.sec nikkei.release.money.am nikkei.release.money.insu nikkei.release.money.etc nikkei.release.maker.chemi nikkei.release.maker.mecha nikkei.release.maker.car nikkei.release.maker.elec nikkei.release.maker.food nikkei.release.maker.sports nikkei.release.maker.apparel nikkei.release.maker.commu nikkei.release.maker.etc nikkei.release.service.medic nikkei.release.service.rest nikkei.release.service.trans nikkei.release.service.energy nikkei.release.service.enter nikkei.release.service.env nikkei.release.service.consul nikkei.release.service.edu nikkei.release.service.haken nikkei.release.service.life nikkei.release.service.media nikkei.release.service.lease nikkei.release.service.travel nikkei.release.service.etc nikkei.release.const.const nikkei.release.const.house nikkei.release.const.etc nikkei.shasetsu

MSN 産経ニュース
(2007年10月から MSN に移行)
sankei.points sankei.affairs sankei.politics sankei.economy sankei.world sankei.sports sankei.entertainments sankei.life sankei.culture sankei.release sankei.region sankei.usatoday sankei.usatoday.ja sankei.column.sankeisho sankei.column.shucho sankei.column.seiron

Spiegel Online
spiegel.news

スポニチ
sponichi.baseball sponichi.soccer sponichi.usa sponichi.others sponichi.society sponichi.entertainment sponichi.horseracing

南ドイツ新聞
sueddeutsche-de.alles sueddeutsche-de.nachrichten sueddeutsche-de.politik sueddeutsche-de.wirtschaft sueddeutsche-de.finanzen sueddeutsche-de.kino sueddeutsche-de.kultur sueddeutsche-de.sport sueddeutsche-de.muenchen sueddeutsche-de.panorama sueddeutsche-de.leben sueddeutsche-de.gesundheit sueddeutsche-de.computer

讀売新聞
yomiuri.atmoney yomiuri.editorial yomiuri.entertainment yomiuri.iryou yomiuri.kyoiku yomiuri.kyoiku.children yomiuri.kyoiku.english yomiuri.kyoiku.qanda yomiuri.kyoiku.renaissance yomiuri.kyoiku.special yomiuri.national yomiuri.politics yomiuri.science yomiuri.sports yomiuri.world

これらのグループは、デフォルトでテキストだけの記事を作ります。それらに、 テキストだけでなく写真をも含む HTML の記事を生成させたいならば、以下の行 を `~/.emacs' ファイルに加えてください。

 
(setq shimbun-yomiuri-prefer-text-plain nil)

一方、HTML の記事を作るために `yomiuri-html' バックエンドを使うこと もできます。それを使うには、例えばグループ名とし て `yomiuri.atmoney' の代わりに `yomiuri-html.atmoney' を指定 してください。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.5.2 ニュースサイト

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=News+Sites+Supported+by+Shimbun"
"emacs-w3m/ニュースサイト"へのコメント(無し)
検索全文Elisp

`Shimbun' ライブラリが対応しているニュースサイトです。

Al Jazeera
aljazeera.news aljazeera.africa aljazeera.america aljazeera.asia-pacific aljazeera.central-asia aljazeera.europe aljazeera.middle-east aljazeera.focus aljazeera.business aljazeera.sport aljazeera.programmes

CNET
cnet.news cnet.enterprise.software cnet.enterprise.hardware cnet.security cnet.networking cnet.personal.technology cnet.newsmakers cnet.perspectives

CNET Japan
cnet-jp.general cnet-jp.news cnet-jp.special cnet-jp.opinion cnet-jp.blog.geetstate cnet-jp.blog.kenn cnet-jp.blog.lessig cnet-jp.blog.matsumura cnet-jp.blog.nakajima cnet-jp.blog.saeki cnet-jp.blog.sakamoto cnet-jp.blog.sasaki cnet-jp.blog.sentan cnet-jp.blog.staff cnet-jp.blog.takawata cnet-jp.blog.watanabe

CNN Japan
cnn-jp.business cnn-jp.fringe cnn-jp.science cnn-jp.showbiz cnn-jp.sports cnn-jp.top cnn-jp.usa cnn-jp.world

De-Bug Magazine
debugmagazin-de.frontpage debugmagazin-de.musik debugmagazin-de.reviews debugmagazin-de.magazin debugmagazin-de.medien debugmagazin-de.podcast debugmagazin-de.musiktechnik debugmagazin-de.screen debugmagazin-de.gadgets debugmagazin-de.games debugmagazin-de.mode

Engadget Japanese
engadget-ja.top

エキサイト ニュース
excite.bit-koneta excite.world-odd

自由労働者同盟ドイツ
fau.news

ハイゼ・オンライン
heise.news heise.telepolis

Infoshop News
infoshop.news

インプレス
impress.enterprise impress.pc impress.dc impress.akiba impress.av impress.game impress.k-tai impress.internet impress.bb impress.forest impress.robot impress.kaden impress.car

ITmedia
itmedia.news.bursts itmedia.news.domestic itmedia.news.foreign itmedia.news.products itmedia.news.technology itmedia.news.web20 itmedia.news.nettopics itmedia.news.society itmedia.news.security itmedia.news.industry itmedia.news.research itmedia.news.sp_amd itmedia.anchordesk itmedia.bizid itmedia.enterprise itmedia.+D.plusd itmedia.+D.mobile itmedia.+D.pcupdate itmedia.+D.lifestyle itmedia.+D.games itmedia.+D.docomo itmedia.+D.au_kddi itmedia.+D.vodafone itmedia.+D.shopping itmedia.+D.lifestyle.column.asakura itmedia.+D.lifestyle.column.honda itmedia.+D.lifestyle.column.kobayashi itmedia.+D.lifestyle.column.kodera itmedia.+D.lifestyle.column.nishi itmedia.+D.lifestyle.column.ogikubo itmedia.+D.lifestyle.column.tachibana itmedia.+D.lifestyle.column.takemura itmedia.+D.lifestyle.column.unakami

Japan Times
japantimes.general japantimes.business

LAUT AG
laut-de.news laut-de.platten laut-de.platten_alternative laut-de.platten_dance laut-de.platten_hiphop platten_jazz laut-de.platten_metal laut-de.platten_pop laut-de.platten_rnb laut-de.platten_rock

N24
n24-de.boerse n24-de.boulevard n24-de.nachrichten n24-de.netnews n24-de.politik n24-de.sport n24-de.wirtschaft

Open Tech Press
opentechpress-jp.general opentechpress-jp.enterprise opentechpress-jp.opensource opentechpress-jp.security opentechpress-jp.news opentechpress-jp.pr

Perlentaucher (真珠採り)
perlentaucher-de.aktuell

Rediff.com
rediff.news

Slashdot
slashdot.frontpage slashdot.apple slashdot.askslashdot slashdot.books slashdot.developers slashdot.games slashdot.hardware slashdot.interviews slashdot.IT slashdot.linux slashdot.mobile slashdot.politics slashdot.science

Slashdot shimbun のコメントの部分を設定するための以下の変数があります:

shimbun-slashdot-get-comments
もし t に設定されていると (それがデフォルトです)、すべての記事の コメントを取得します。それらはフォームフィード文字 ("^L" のこと) でイ ントロ・テキストから分離されます。それらを見るには、いつものように記事バッ ファをスクロールしてください (Gnus では "Next page" ボタン と "Previous page" ボタンを使うことができます)。この変数 を nil に設定すると、記事のコメントを取得しなくなります。

shimbun-slashdot-comment-threshold
表示されるコメントの閾値です (デフォルトは 3)。-1 (すべてのコメント) か ら 5 (最高レート) までの間の数にしてください。

shimbun-slashdot-comment-display
コメントを表示する形式です (デフォルトは "flat")。"flat"、 "thread" または "nested" のどれかにしてください。これはシンボルでは なく文字列でなければなりません。

Slashdot Japan
slashdot-jp.story slashdot-jp.askslashdot slashdot-jp.bookreview slashdot-jp.bsd slashdot-jp.developers slashdot-jp.interview slashdot-jp.linux slashdot-jp.mac slashdot-jp.mobile slashdot-jp.science slashdot-jp.security slashdot-jp.slash slashdot-jp.it slashdot-jp.hardware slashdot-jp.diary.oliver

変数 shimbun-slashdot-jp-group-alist に適切な設定を加えると、その 他のユーザーの日記も閲覧できます。

Tech-On! 日経BP社
tech-on.latestnews tech-on.mobile tech-on.bbint tech-on.d-ce tech-on.AT tech-on.edaonline tech-on.device tech-on.lsi tech-on.silicon tech-on.observer tech-on.fpd tech-on.mono tech-on.embedded tech-on.mecha tech-on.MEMS tech-on.nano tech-on.carele tech-on.board tech-on.mcu tech-on.PLM tech-on.memory tech-on.measurement tech-on.column.mot

Tech-On! は日経BP社が提供する技術ニュースサイトです。以前は記事の内容を 全部読むためにログイン・アカウント (無料) が必要でしたが、少なくと も 2007年の秋においては要らないように見えます。将来もし再び必要になった ら 登録ページ に行って取得してください。次の二つの変数で、どうやってログイ ンするかを制御します:

shimbun-tech-on-user-name
Tech-On! にログインするためのユーザー名です。nil だと Tech-On! に ログインするときに、ユーザー名の入力を要求されます。文字列だったらそれが ユーザー名として使われ、入力を要求されることはありません。nil で も文字列でもない場合 (これがデフォルトです)、ログインを行ないません。

shimbun-tech-on-password
Tech-On! にログインするためのパスワードです。nil だと Tech-On! に ログインするときに、パスワードの入力を要求されます。文字列だったらそれが パスワードとして使われ、入力を要求されることはありません。nil で も文字列でもない場合 (これがデフォルトです)、ログインを行ないません。

これらの入力は、その Emacs セッションで最初に Tech-On! の記事を読み始め るときに一回だけ要求されます。

HotWired Japan
wired-jp.news wired-jp.business wired-jp.culture wired-jp.technology wired-jp.blog.ogura wired-jp.blog.sasaki wired-jp.blog.takahashi

Yahoo! Japan
yahoo.topnews yahoo.news yahoo.politics yahoo.society yahoo.people yahoo.business-all yahoo.market yahoo.stock yahoo.industry yahoo.international yahoo.entertainment yahoo.sports yahoo.computer yahoo.zenkoku yahoo.hokkaido yahoo.aomori yahoo.iwate yahoo.miyagi yahoo.akita yahoo.yamagata yahoo.fukushima yahoo.tokyo yahoo.kanagawa yahoo.chiba yahoo.saitama yahoo.ibaraki yahoo.tochigi yahoo.gunma yahoo.yamanashi yahoo.nagano yahoo.niigata yahoo.toyama yahoo.ishikawa yahoo.fukui yahoo.aichi yahoo.gifu yahoo.shizuoka yahoo.mie yahoo.osaka yahoo.hyogo yahoo.kyoto yahoo.shiga yahoo.nara yahoo.wakayama yahoo.tottori yahoo.shimane yahoo.okayama yahoo.hiroshima yahoo.yamaguchi yahoo.tokushima yahoo.kagawa yahoo.ehime yahoo.kochi yahoo.fukuoka yahoo.saga yahoo.nagasaki yahoo.kumamoto yahoo.oita yahoo.miyazaki yahoo.kagoshima yahoo.okinawa

yahoo.news グループは主要な記事と、さらに速報記事を検索します。これらの グループは、デフォルトで HTML の記事を作ります。それらにテキストだけの記 事を生成させたいならば、以下の行を `~/.emacs' ファイルに加えてくだ さい。

 
(setq shimbun-yahoo-prefer-text-plain t)

ZDNet Japan
zdnet-jp.news zdnet-jp.news.network zdnet-jp.news.hardware zdnet-jp.news.software zdnet-jp.news.manage zdnet-jp.news.security zdnet-jp.news.internet zdnet-jp.news.os zdnet-jp.news.db zdnet-jp.news.system zdnet-jp.column zdnet-jp.column.sp1 zdnet-jp.column.netsecurity1 zdnet-jp.column.ea1 zdnet-jp.column.btl zdnet-jp.column.solutionIT zdnet-jp.channel.security zdnet-jp.channel.ilm zdnet-jp.blog.iida zdnet-jp.blog.mhatta zdnet-jp.blog.kurei zdnet-jp.blog.opensource zdnet-jp.blog.soa zdnet-jp.blog.dp

The Onion
the-onion.news



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.5.3 メーリングリスト

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Mailing+Lists+Supported+by+Shimbun"
"emacs-w3m/メーリングリスト"へのコメント(無し)
検索全文Elisp

最近では、メーリングリストに投稿された過去記事のアーカイブが WEB 上に幾 つも公開されています。`Shimbun' ライブラリは、以下のアーカイブを扱 うことができます。

Semi-gnus Mailing List in Japan
airs.semi-gnus-ja

Wanderlust Mailing List
airs.wl airs.wl-en

Big Brother DataBase Mailing List
bbdb-ml.bbdb-ml

GNOME Mailing List
gnome.balsa-list gnome.calendar-list gnome.cvs-commits-list gnome.foundation-announce gnome.foundation-list gnome.fplan-list gnome.gconf-list gnome.gdome gnome.gnome-1.4-list gnome.gnome-announce-list gnome.gnome-components-list gnome.gnome-db-list gnome.gnome-de gnome.gnome-debugger-list gnome.gnome-devel-list gnome.gnome-doc-list gnome.gnome-gui-list gnome.gnome-hackers gnome.gnome-hackers-readonly gnome.gnome-hackers-test gnome.gnome-i18n gnome.gnome-i18n-tools gnome.gnome-kde-list gnome.gnome-list gnome.gnome-office-list gnome.gnome-pilot-list gnome.gnome-sound-list gnome.gnome-themes-list gnome.gnome-ui-hackers gnome.gnome-web-list gnome.gnome-webmaster-list gnome.gnome-workshop-list gnome.gnomecc-list gnome.gnumeric-list gnome.gtk-app-devel-list gnome.gtk-devel-list gnome.gtk-doc-list gnome.gtk-i18n-list gnome.gtk-list gnome.gtk-perl-list gnome.guppi-list gnome.libart gnome.libart-hackers gnome.orbit-list gnome.vote gnome.wm-spec-list gnome.xml gnome.xslt

Java カンファレンス Mailing List
javaconf.servlet-ml javaconf.business-ml javaconf.duke-in-the-box-ml javaconf.jfriends-ml javaconf.JGT-ml javaconf.jini-ml javaconf.ejb-ml javaconf.cm-ml javaconf.horb-ml javaconf.talk-ml

LinuxCE JP Mailing List
linuxce-jp.users

Mule Mailing List
m17n.mule-ja m17n.mule

Meadow Mailing List
meadow.meadow-develop meadow.meadow-users-jp

Mew Mailing List
mew.mew-dist mew.mew-win32 mew.mew-int

MagicPoint Mailing List
mew.mgp-users mew.mgp-users-jp

www.namazu.org Mailing Lists
namazu.kakasi-commits namazu.kakasi-dev namazu.migemo namazu.namazu-users-en namazu.namazu-users-ja namazu.namazu-devel-ja namazu.namazu-devel-en namazu.namazu-win32-users-ja namazu.sary

emacs-w3m Mailing List
emacs-w3m.emacs-w3m

NetBSD JP Mailing List
netbsd.announce-ja netbsd.junk-ja netbsd.tech-misc-ja netbsd.tech-pkg-ja netbsd.port-arm32-ja netbsd.port-hpcmips-ja netbsd.port-mac68k-ja netbsd.port-mips-ja netbsd.port-powerpc-ja netbsd.hpcmips-changes-ja netbsd.members-ja netbsd.admin-ja netbsd.www-changes-ja

Ruby Mailing List
ruby.comp.lang.ruby ruby.fj.comp.lang.ruby ruby.ruby-dev ruby.ruby-ext ruby.ruby-list ruby.ruby-math ruby.ruby-talk

Toshiba Linux Users JP Mailing List
toshiba.linux-users-j

w3m-dev Mailing List
w3m-dev.w3m-dev w3m-dev.w3m-dev-en

digiko Mailing List
digiko.digiko

XEmacs Mailing List
xemacs.xemacs-announce xemacs.xemacs-beta-ja xemacs.xemacs-beta xemacs.xemacs-build-reports xemacs.xemacs-cvs xemacs.xemacs-design xemacs.xemacs-mule xemacs.xemacs-nt xemacs.xemacs-patches xemacs.xemacs-users-ja xemacs.xemacs

セキュリティーMEMO Mailing List
security-memo.memo security-memo.free-memo security-memo.social-memo

なお、`security-memo.*' はアドレス回収ロボット対策 で userid と passowrd を求められるので `~/.w3m/passwd' に

 
machine memo.st.ryukoku.ac.jp
realm input username/password = archives/archives
login archives
passwd archives

machine memo.st.ryukoku.ac.jp
realm input user: archives / password: archives
login archives
passwd archives

と書き、上記ファイルから group, others のアクセス権を取り除いておく必要 があります。

Debian JP Mailing List
debian-jp.debian-announce debian-jp.debian-devel debian-jp.debian-www debian-jp.debian-users debian-jp.debian-policy debian-jp.jp-qa

Debian Mailing List
debian.debian-announce debian.debian-commercial debian.debian-firewall debian.debian-french debian.debian-isp debian.debian-italian debian.debian-kde debian.debian-laptop debian.debian-news debian.debian-news-german debian.debian-news-portuguese debian.debian-security-announce debian.debian-testing debian.debian-user debian.debian-user-catalan debian.debian-user-french debian.debian-user-polish debian.debian-user-portuguese debian.debian-user-spanish debian.debian-user-swedish debian.debian-admintool debian.debian-apache debian.debian-autobuild debian.debian-beowulf debian.debian-boot debian.debian-cd debian.debian-ctte debian.debian-debbugs debian.debian-devel debian.debian-devel-announce debian.debian-devel-french debian.debian-devel-games debian.debian-devel-spanish debian.debian-doc debian.debian-dpkg debian.debian-emacsen debian.debian-events-eu debian.debian-events-na debian.debian-faq debian.debian-gcc debian.debian-glibc debian.debian-gtk-gnome debian.debian-hams debian.debian-ipv6 debian.debian-java debian.debian-jr debian.debian-med debian.debian-mentors debian.debian-newmaint debian.debian-newmaint-admin debian.debian-ocaml-maint debian.debian-openoffice debian.debian-perl debian.debian-pilot debian.debian-policy debian.debian-pool debian.debian-python debian.debian-qa debian.debian-qa-private debian.debian-release debian.debian-security debian.debian-snapshots debian.debian-tetex-maint debian.debian-toolchain debian.debian-vote debian.debian-wnpp debian.debian-www debian.debian-x debian.deity debian.debian-chinese debian.debian-chinese-big5 debian.debian-chinese-gb debian.debian-esperanto debian.debian-i18n debian.debian-japanese debian.debian-l10n-catalan debian.debian-l10n-dutch debian.debian-l10n-english debian.debian-l10n-french debian.debian-l10n-italian debian.debian-l10n-portuguese debian.debian-l10n-spanish debian.debian-laespiral debian.debian-russian debian.debian-simplified-chinese debian.debian-68k debian.debian-alpha debian.debian-arm debian.debian-bsd debian.debian-hppa debian.debian-hurd debian.debian-ia64 debian.debian-mips debian.debian-parisc debian.debian-powerpc debian.debian-s390 debian.debian-sparc debian.debian-superh debian.debian-ultralinux debian.debian-win32 debian.debian-all-changes debian.debian-alpha-changes debian.debian-arm-changes debian.debian-books debian.debian-cd-vendors debian.debian-changes debian.debian-consultants debian.debian-curiosa debian.debian-devel-all-changes debian.debian-devel-alpha-changes debian.debian-devel-arm-changes debian.debian-devel-changes debian.debian-devel-hurd-i386-changes debian.debian-devel-i386-changes debian.debian-devel-m68k-changes debian.debian-devel-powerpc-changes debian.debian-devel-sparc-changes debian.debian-hurd-i386-changes debian.debian-i386-changes debian.debian-legal debian.debian-m68k-changes debian.debian-mirrors debian.debian-powerpc-changes debian.debian-project debian.debian-publicity debian.debian-sgml debian.debian-sparc-changes debian.lcs-eng debian.lsb-confcall debian.lsb-discuss debian.lsb-impl debian.lsb-spec debian.lsb-test debian.spi-announce debian.spi-general debian.vgui-discuss

KDE Mailing List in Japan
kde.Kuser kde.Kdeveloper

Geocrawler
Geocrawler に保存されているすべてのメーリングリストを閲覧できます。 M-x shimbun-geocrawler-add-group RET というコマンドを使っ て、閲覧したいグループを変数 shimbun-geocrawler-group-alist に登 録してください。

Mailing list ARChives
Mailing list ARChives (MARC) に保存されているすべてのメーリン グリストを閲覧できます。閲覧したいグループのグループ名と URL を、 変数 shimbun-marc-aims-group-alist に登録してください。

RedHat Mailing List
redhat.automake redhat.bug-automake redhat.automake-prs redhat.automake-cvs redhat.binutils redhat.binutils-cvs redhat.c++-embedded redhat.crossgcc redhat.cgen redhat.cgen-prs redhat.cgen-cvs redhat.cygwin redhat.cygwin-xfree redhat.cygwin-announce redhat.cygwin-xfree-announce redhat.cygwin-apps redhat.cygwin-patches redhat.cygwin-developers redhat.cygwin-cvs redhat.cygwin-apps-cvs redhat.docbook-tools-discuss redhat.docbook-tools-announce redhat.docbook-tools-cvs redhat.docbook redhat.dssslist redhat.sgml-tools redhat.docbook-apps redhat.ecos-announce redhat.ecos-devel redhat.ecos-discuss redhat.ecos-maintainers redhat.ecos-patches redhat.elix redhat.elix-announce redhat.gdb redhat.gdb-announce redhat.gdb-testers redhat.gdb-testresults redhat.gdb-patches redhat.gdb-cvs redhat.bug-gdb redhat.gdb-prs redhat.libc-alpha redhat.libc-hacker redhat.bug-glibc redhat.glibc-cvs redhat.glibc-linux redhat.bug-gnats redhat.gnats-devel redhat.gnats-announce redhat.gnats-cvs redhat.gsl-discuss redhat.gsl-announce redhat.gsl-cvs redhat.guile redhat.guile-emacs redhat.guile-prs redhat.guile-gtk redhat.bug-guile redhat.guile-cvs redhat.guile-emacs-cvs redhat.insight redhat.insight-announce redhat.insight-prs redhat.installshell redhat.inti redhat.kawa redhat.libffi-discuss redhat.libffi-announce redhat.libstdc++ redhat.libstdc++-cvs redhat.libstdc++-prs redhat.mauve-discuss redhat.mauve-announce redhat.newlib redhat.pthreads-win32 redhat.rhdb redhat.rhdb-announce redhat.rhug-rhats redhat.rpm2html-cvs redhat.rpm2html-prs redhat.rpm2html redhat.sid redhat.sid-announce redhat.sid-cvs redhat.sourcenav redhat.sourcenav-announce redhat.sourcenav-prs redhat.win32-x11 redhat.xconq7 redhat.xconq-announce redhat.xconq-cvs

MacOSX JP Mailing List
macosx-jp.macosx-jp macosx-jp.macosx-dev-jp macosx-jp.macosx-ws-jp macosx-jp.webobjects-jp

SourceForge JP
SourceForge JP に保存されているメーリングリストのすべての公開書庫を閲覧 できます。閲覧したいグループを 変数 shimbun-sourceforge-jp-mailing-lists に登録してください。

Elips Mailing List
elips.elips

Squeak-ja Mailing List
squeak-ja.main

Smalltalkers' Salon Mailing List
sml.main

Squeak-dev Mailing List
squeak-dev.main

Plucker Mailing List
plucker.announce plucker.list plucker.dev

pilot-link Mailing List
pilot-link.announce pilot-link.devel pilot-link.general pilot-link.unix-ng

Coldsync Mailing List
coldsync.main

J-Pilot Mailing List
jpilot.main

pilot-mailsync Mailing List
pilot-mailsync.main

Mozilla Users Mailing List in Japan
mozilla-jp.users

なお、`mozilla-jp.users' はアドレス回収ロボット対策 で userid と passowrd を求められるので `~/.w3m/passwd' に

 
machine www.mozilla.gr.jp
realm Please Enter mozilla mozilla
login mozilla
passwd mozilla

と書き、上記ファイルから group, others のアクセス権を取り除いておく必要 があります。

tDiary Developers Mailing List in Japan
tdiary-ml.devel tdiary-ml.theme

arch.bluegate.org Mailing Lists
arch-bluegate.subversion-jp arch-bluegate.arch-jp arch-bluegate.mailman arch-bluegate.viewarch

Tigris.org:Open Source Software Engineering
Tigris.org に保存されているすべてのメーリングリストを閲覧できます。閲覧 したいグループを変数 shimbun-tigris-group-alist に登録してくださ い。グループ名は tigris.<project>.<mailinglist> になります。

www.SciPy.net Mailing Lists
scipy.astropy scipy.ipython-user scipy.ipython-dev scipy.scipy-user scipy.scipy-dev scipy.scipy-testlog scipy.scipy-chaco scipy.scipy-cvs



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.5.4 スポーツ

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Sport+Sites+Supported+by+Shimbun"
"emacs-w3m/スポーツ"へのコメント(無し)
検索全文Elisp

`Shimbun' ライブラリが対応しているスポーツ関係のサイトです。

makanai
makanai.f1news

F1 ファン
f1fan.news

@nifty:モータースポーツ
msports-nifty.F1 msports-nifty.IRL msports-nifty.WRC msports-nifty.Europe msports-nifty.USA

Yahoo!スポーツ
yahoo-sports.F1 yahoo-sports.baseball yahoo-sports.keiba yahoo-sports.NBA yahoo-sports.NFL yahoo-sports.rugby

ただし、Emacs-21.4 またはそれ以前の版で @nifty: モータースポーツを閲覧 するには、Mule-UCS (see 節 2.3 Emacs-w3m を動作させるのに必要なもの) が必要です。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.5.5 その他

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Misc+Sites+Supported+by+Shimbun"
"emacs-w3m/その他"へのコメント(無し)
検索全文Elisp

`Shimbun' ライブラリの対応しているその他のサイトです。掲示板や、連 載記事を主体とするようなサイトが含まれています。

Tea Cup 掲示板
Tea Cup Communication によって提供される、様々な掲示板を講読することがで きます。デフォルトでは、以下の三つの掲示板が用意されています。

tcup.meadow
Meadow 掲示板

tcup.skk
SKK 掲示板

tcup.yutopia
ゆうτοπια掲示板

新たに掲示板をリストに追加するには、それらの名前と URL を調べて、 shimbun-tcup-group-alist を変更してください。二つの掲示 板 `foo' と `bar' を追加する例です。

 
(eval-after-load "sb-tcup"
  '(setq shimbun-tcup-group-alist
         (append
          '(("foo" "http://MMMM.teacup.com/foo/bbs2")
            ("bar" "http://NNNN.teacup.com/bar/bbs2"))
          shimbun-tcup-group-alist)))

2ch
グループ名と URL を調べて、以下のように設定して使います。

 
(setq shimbun-2ch-group-alist
      '(("Meadow" .
         "http://pc.2ch.net/test/read.cgi/software/1005469775")
        ("emacs-w3m" .
         "http://pc.2ch.net/test/read.cgi/unix/1013710106")))

CGI_Board を使っている掲示板

CGI_Board を使っている掲示板の URL を調べて、 shimbun-cgi-board-group-alist に適切な設定を加えて使います。

HNS による日記
閲覧したい日記の URL を調べて、以下のように設定して使います。

 
(setq shimbun-hns-group-alist
      '(("arisawa"                            ;; グループ名
         "http://nijino.homelinux.net/diary/" ;; URL
         "ari@mbf.sphere.ne.jp")              ;; メールアドレス
        ("miyoshi"
         "http://www.be.wakwak.com/cgi-bin/sbox/~miyoshi/hns/"
         "miyoshi@meadowy.org")))

tDiary による日記
閲覧したい日記の URL を調べて、以下のように設定して使います。

 
(setq shimbun-tdiary-group-alist
      '(("henahena"                          ;; グループ名
         "http://www.fan.gr.jp/~ring/d/")    ;; URL
        ("yoichi"
         "http://yoichi.geiin.org/d/")))

楽天広場 の日記
閲覧したい日記を開設している人の楽天 ID とメールアドレスを調べて、以下の ように設定して使います。

 
(setq shimbun-rakuten-group-alist
      '(("rakuten-id" . "email-address")))

EmacsWiKi
emacswiki.changes emacswiki.diff

コンテンツを含む RSS フィード
閲覧したい掲載コンテンツが含まれるような RSS フィードを調べて、 shimbun-rss-hash-group-path-alist 変数を以下のように設定して使い ます。バックエンド名は `rss-hash' です。主に個人のブログなどが対象 になるでしょう。

パラメータはグループ名、RSS アドレス、メールタイプ (t で html)、 整形時の開始正規表現、整形時の終了正規表現となります。グループ名、RSS ア ドレス以外はオプションです。

以下はサンプルです。この場合は `rss-hash.sampleblog1' およ び `rss-hash.sampleblog2' として閲覧できます。

 
(setq shimbun-rss-hash-group-path-alist
      '(;; text mail
        ("sampleblog1" "http://www.example.com/index1.rss")
        ;; html mail
        ("sampleblog2" "http://www.example.com/index2.rss"
         t "</title>" "
URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Shimbun+Basics"
"emacs-w3m/新聞モジュールの作り方"へのコメント(無し)
検索全文Elisp

`Shimbun' は emacs-w3m の付属ライブラリで、Gnus や Wanderlust、 Mew などの MUA を利用し、ウェブコンテンツをメールと同じユーザインターフェー スで読むことを可能にするものです。ここでは `shimbun' モジュールを作 成する典型的な方法を説明します。

9.6.1 概略  
9.6.2 ウェブページのソース及びヘッダ情報を取得する  
9.6.3 記事の表示  
9.6.4 Shimbun モジュールの継承  shimbun モジュールの継承
9.6.5 text/plain の記事を作るには  
9.6.6 全角文字を半角文字に変換する  
9.6.7 Shimbun ライブラリのコーディング規約  コーディング規約



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.6.1 概略

検索全文Elisp

http://www.foobar.net のコンテンツを閲覧する新た な `shimbun' モジュール `foobar' を作成するとして、まず最初に 貴方がしなればならないことは、`sb-foobar.el' の冒頭に

 
(require 'shimbun)
(luna-define-class shimbun-foobar (shimbun) ())

のような宣言を入れておくことです。徐々に分かると思いますので、今はおまじ ないと思っておいてください。注意すべきことは、`shimbun' モジュール を入れるファイル名の `sb-foobar.el' の `foobar' の名前と、 luna-define-class の第一引数 の shimbun-foobar の `foobar' の名前は合わせておく必要がある ことです。

`Shimbun' モジュール `shimbun-foobar' がこなすべき仕事は大き く四つあります (あなたが Gnus のユーザならば、「フォルダ」を「グループ」 に読み換えてください):

  1. MUA が `foobar' フォルダを開いたら、記事の標題などをリストアップす るために http://www.foobar.net からウェブページのソースを取得する こと。

  2. 取得したウェブページのソースに対し、記事の見出しに必要ないくつかの情報と ともに取得して、headers というリストに代入して返すこと。

  3. MUA が `foobar' フォルダの記事の閲覧を要求したら、実際の記事内容を 記載したウェブページのソースを (例え ば http://www.foobar.net/030530.html から) 取得すること。

  4. http://www.foobar.net/030530.html から取得したウェブページのソー スを、必要に応じ閲覧しやすいように整形すること。

最初の作業は `shimbun.el' の shimbun-headers が、二番目の作 業は shimbun-get-headers が担当します。そして三番目の作業 は shimbun-article が、最後の作業 は shimbun-make-contents が担当します。

`shimbun.el' の中をご覧ください。defun による関数定義の他に、 見慣れない luna-define-generic, luna-define-method などの 宣言がありますよね。どうも使用方法は defun のそれと似ているようで す。そして、前者は何だか doc-string だけを書いてあるようで、同名のシンボ ルについて後者によって再度宣言しているように見えます。更に、あるシンボル について、luna-define-generic の宣言だけがあって、 luna-define-method の宣言がないものもあります。

実は、`shimbun.el' 及び各 `shimbun' モジュールは、 Emacs Lisp にてオブジェクト指向プログラミングを可能とする `luna.el' (13) を利用して書かれています。

`shimbun.el' の中では、shimbun-headers があ る URL のウェブページのソースを取得し、shimbun-get-headers がその ウェブページのソースから標題などを抜き出し... という前述の手順がハー ドコーディングされています。しかし、決め打ちするだけでは、千差万別のウェ ブページのソースを、その構造に合わせて変化させることができません。

そこで luna により、メソッドがコールされる手順だけ決めておいて、 `shimbun' により変化させるべきメソッドの実体定義を 各 `shimbun' モジュールに任せているのです。各 `shimbun' モジュー ルで共通で使えそうなメソッドは `shimbun.el' の中にメソッドの実体も 定義してありますが、それすら各 `shimbun' モジュールにおいて再定義を することが可能です。

もうお分かりのように、luna-define-generic は、言わば殼だけの宣言、 luna-define-method は `shimbun' モジュール毎に作成できる実体 の宣言。そして `sb-foobar.el' の冒頭に入れ た luna-define-class での宣言は、luna 上での新たなクラスの 宣言だったわけです。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.6.2 ウェブページのソース及びヘッダ情報を取得する

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Getting+web+page+and+header+information"
"emacs-w3m/ウェブページのソース及びヘッダ情報を取得する"へのコメント(無し)
検索全文Elisp

まず記事見出しを取得する対象となるウェブページを決めることから始めます。 フレーム表示されている場合は、フレームの中で必要なページだけを単独で指し 示す URL を特定するべきです。特定できたら、新たに作成す る `shimbun' モジュールの中で luna-define-method を使い、 shimbun-index-url の定義を作成しましょう。単純に URL を返すように すれば良いですよ。後で説明しますので、変 数 shimbun-foobar-groups も用意しておきましょ う(14)

 
(defvar shimbun-foobar-url "http://www.foobar.net")

(luna-define-method shimbun-index-url ((shimbun shimbun-foobar))
  shimbun-foobar-url)

(defvar shimbun-foobar-groups '("news"))

shimbun-headers メソッドは `shimbun.el' の中に既に定義されて いますから、`sb-foobar.el' で shimbun-index-url メソッドの定 義を作成すればウェブページのソースの取得ができるようになります。 shimbun-headers はウェブページのソースを取得した後、 shimbun-get-headers メソッドを呼び、ヘッダ情報の収集に入ります。 `shimbun.el' の中には shimbun-get-headers のメソッド宣言があ りせんから、`sb-foobar.el' の中で独自にメソッドを作成しなければなり ません。

`sb-foobar.el' に shimbun-get-headers のメソッドを作成するた めに、取得したページのソースを分析しましょう。どのような正規表現で記事の ヘッダ情報を収集するかを検討します。記事の見出しとして特に必要な情報は、 標題、日付、作成者、その記事の URL、そして message-id です。これ らの情報は、それぞれの MUA において、Subject, Date, From, Xref, Message-ID として表示されます。例えば、下記の

 
<a href="030530.html">5月30日の話題(投稿者-みきお &lt;foo@bar.net&gt;)</a>

のような行を集めて記事にしたいのでしたら、

 
"<a href=\"\\(\\([0-9][0-9][0-9][0-9]\\)[0-9][0-9]\\.html\\)\">\\([^<(]+\\)(投稿者-\\([^<]+\\))<\/a>"

のような正規表現になるでしょう。そして記事の Xref の値は (match-string 1) で取得できます、Date は (match-string 2) の値を加工すれば良いでしょう。Subject は (match-string 3) で取得できますね。From は (match-string 4) を加工すれば良いでしょう。これらの値 は MUA で見易いように更に加工しても構いません。

上記のように記事の URL が相対パス表示されている場合は、 shimbun-expand-url を使用し、絶対パス表示に変更してからヘッダに収 めましょう。記事の URL がヘッダの URL と同じ、つまり記事毎に 個別に URL を持たない構造のウェブページもあります。この場合は少しやっか いで、ヘッダ情報取得の段階で、記事の内容も取得しておき、Emacs のメモリに 収めておく必要があります。具体的には `sb-palmfan.el', `sb-dennou.el', `sb-tcup.el' の `shimbun-headers' メソッ ドの定義を参照してください。

ウェブページによっては Date が特定できないものがあります。そういう場合は 無理に特定せずとも "" を入れておけば OK です。記事の内容を見て初 めて Date が特定できるなら、shimbun-make-contents メソッドの中で 改めてヘッダに Date の情報を入れても OK です。それから、From を決め打ち しても良い場合もあります。

message-id の作成には注意を要します。一部の記事が読めなかったりし ますので(15)、必 ず単一性 (uniqueness) を保証しなければなりません。日付やドメイン、そのペー ジの URL の一部を使って文字列を生成することで単一性を確保しましょう。そ の他、message-id の一部に必ず `@' を含めるようにし、逆 に `:' は含まないようにしましょう。このルールを守らないとインライン 画像がきちんと出力されませんよ。詳しくは RFC2387, RFC822 を参照してくだ さい。

苦労して取得したこれらの情報は shimbun-create-header という関数を 利用してヘッダに収めます。

結局 `sb-foobar.el' の中での shimbun-get-headers の定義の骨 組みはこんな風になりますね。

 
(luna-define-method shimbun-get-headers ((shimbun shimbun-foobar)
                                         &optional range)
  (let ((regexp "....")
        subject from date id url headers)
    ...
    (catch 'stop
      (while (re-search-forward regexp nil t nil)
        ...
        (when (shimbun-search-id shimbun id)
          (throw 'stop nil))
        (push (shimbun-create-header
               0 subject from date id "" 0 0 url)
              headers)))
    headers))

なお、このメソッドの中では shimbun という一時変数で、 `shimbun' モジュール `shimbun-foobar' のインスタンスにアクセス できます。

ところで、先程保留にした変数 shimbun-foobar-groups について説明し ましょう。

仮に http://www.foobar.net の中に読みたい記事グループが二つあっ て、それぞれの記事のヘッダ情報を得るウェブページが別々の場所にあったとし ましょう。http://www.foobar.net/whatsnew/index.hmtl にサイト の更新情報が、http://www.foobar.net/ml/index.html に ML の記 事アーカイブの一覧があるときなどです。こういう場合は、`shimbun' モ ジュール foobar のグループとして、foobar.whatsnew, `foobar.ml' としてアクセスできると便利ですよね。そういう場合は下記 のようにしてみましょう。

 
(defvar shimbun-foobar-url "http://www.foobar.net")

(defvar shimbun-foobar-group-path-alist
  '(("whatsnew" . "/whatsnew/index.html")
    ("ml" . "/ml/index.html")))

(defvar shimbun-foobar-groups
  (mapcar 'car shimbun-foobar-group-path-alist))

(luna-define-method shimbun-index-url ((shimbun shimbun-foobar))
  (concat shimbun-foobar-url
          (cdr (assoc (shimbun-current-group-internal shimbun)
                      shimbun-foobar-group-path-alist))))

現在ユーザがアクセスしているグループに は shimbun-current-group-internal を使えば分かります。 shimbun-get-headers などでもグループが違えば作業内容が違ってくる 可能性もありますね。

なお、`shimbun' モジュール一つにつき、最低でも一つのグループが必要 です。グループの名前の決め方に特に決まりはありませんが、グループ名に悩ん だら、`news' とか `main' などと付けておきましょう。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.6.3 記事の表示

検索全文Elisp

`shimbun.el' に定義された shimbun-article メソッドは、ヘッダ 情報から Xref を取り出し、その URL のウェブページのソースを取得した後に、 そのソースを入れたワーキングバッファの中 で shimbun-make-contents を呼びます。具体的な記事の加工 は shimbun-make-contents の仕事です。

記事となるウェブページのソースが、どばっとワーキングバッファにぶちまけら れていると想像してください。`shimbun.el' の標準 の shimbun-make-contents は、そのバッファの先頭にまずヘッダ情報を 挿入し、その直後に `<html>' や `<body>' などを、また、バッファ の末尾に `</body>', `</html>' を挿入してくれます。そうやっ て HTML メールとして表示させるのです。

HTML の記事だけでなく、`text/plain' 形式の記事が生成されるようにす ることもできます。See 節 9.6.5 text/plain の記事を作るには.

記事を何も加工する必要がなければ `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.6.2 ウェブページのソース及びヘッダ情報を取得する の節で、記事毎に個 別に URL を持たない構造のウェブページの場合、ヘッダ情報取得の段階で、記 事の内容も取得しておき、Emacs のメモリに収めておく必要があると申し上げま した。この場合、`shimbun-article' では上記のような Xref 情報から の web page の取得は必要になりませんので、ただ Emacs のメモリから取り出 して、バッファに整形して挿入すれば足ります。具体的に は `sb-palmfan.el', `sb-dennou.el', `sb-tcup.el' の `shimbun-article' メソッドの定義を参照してくだ さい。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.6.4 Shimbun モジュールの継承

検索全文Elisp

メーリングリストマネージャ (アーカイバ) として有名なものがいくつかありま す。

貴方が 9.6.2 ウェブページのソース及びヘッダ情報を取得する のステップで取得し たウェブページのソースを分析しているときに、そのソースの中にこれらメーリ ングリストマネージャの名前を見つけたら(16)、 それはすごくラッキーなことです。`sb-mailman.el', `sb-mhonarc.el', `sb-fml.el', `sb-mailarc.el' に既 に shimbun-get-headers などの必要なメソッドが定義されています。こ れらを利用してなお足りない部分だけの差分プログラミングをすれば、貴方 の `sb-foobar.el' は早速動きます。

例えば `sb-mailman.el' を利用するなら `sb-foobar.el' の冒頭は、

 
(require 'sb-mailman)
(luna-define-class shimbun-foobar (shimbun-mailman) ())

こんな風になります。これで `shimbun' モジュー ル `shimbun-foobar' は shimbun-mailman クラスを継承 し(17)、 `shimbun-foobar' の中では、`sb-mailman.el' の中で定義されてい るメソッドが標準で使用されることとなります (更にメソッドの一部を上書きす ることも可能です)。

`sb-mailman.el' を実際に利用したサンプルとして、 `sb-pilot-mailsync.el' などをご覧ください。如何に楽ができるかがお分 かりになるでしょう。

気を付けることが一つあるとすれば、これらのメーリングリストマネージャの中 には地域化 (localize) されて、例えば日付表示を日本語で行うように改造され ているものがあることです。`sb-mailman.el', `sb-mhonarc.el', `sb-fml.el', `sb-mailarc.el' はいずれも標準の、英語版のものに 対応しています。これら地域化されたメーリングリストマネージャを利用してい るウェブサイトを `shimbun' で読みたいときは、いくつかのメソッドを上 書きしなければならないかもしれません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.6.5 text/plain の記事を作るには

検索全文Elisp

たとえ MUA が HTML の記事を読むことができるように emacs-w3m によって強化 されていても、いくつかの場合には `text/plain' の記事が便利なことも あるかもしれません。`sb-foobar' モジュールに `text/html' では なくて `text/plain' の記事を作らせるには、二つの方法があります。

  • 一つは `sb-foobar' モジュールに `sb-text' モジュールを継承させ る (see 節 9.6.4 Shimbun モジュールの継承) ことです。以下 は `sb-foobar' モジュールの冒頭に置くことができる例です。

     
    (require 'sb-text)
    (luna-define-class shimbun-foobar (shimbun-text) ())
    

    `sb-text' モジュールは、`text/plain' 形式で記事を生成す る shimbun-make-contents メソッドを提供します。テキストだけの記事 を掲示するサイトを扱う `shimbun' モジュールには、役に立つでしょう。

  • もう一つは、変数 shimbun-foobar-prefer-text-plain を 非-nil に設定することです。これは shimbun-make-contents メ ソッドに、`text/plain' 形式で記事を生成させます (実際には、それ は `sb-text' モジュールが提供する関数を使います)。これは、デフォル トの shimbun-make-contents を継承するモジュールだけに効果があるこ とに注意してください (特に `sb-text' モジュールを継承するモジュール は、影響されません)。この方式の利点は、ユーザが簡単 に `text/plain' の記事と `text/html' の記事を切り替えることが できることです。

    それが未定義である場合、変数 shimbun-foobar-prefer-text-plain の デフォルト値は nil です。したがって、`sb-asahi.el' およ び `sb-yomiuri.el' 以外のあらゆる `shimbun' モジュールにおいて、 そのデフォルト値は nil です。

    加えて、web ページから意味のあるテキストを切り出すために、変 数 shimbun-foobar-content-start およ び shimbun-foobar-content-end の代わりに、 shimbun-foobar-text-content-start およ び shimbun-foobar-text-content-end を使うことができま す (see 節 9.6.3 記事の表示)。前者が未定義だったら、それらの値はデ フォルトで後者の値になります。

どちらの方式を使うにしても、`text/plain' の記事は、画像やリンクなど を含むことができないことに注意してください。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.6.6 全角文字を半角文字に変換する

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Zenkaku+to+hankaku+conversion"
"emacs-w3m/全角文字を半角文字に変換する"へのコメント(無し)
検索全文Elisp

「全角」または「全角文字」は、幅が広い日本語の文字を呼ぶための俗称です。 また「半角」は、通常の ASCII 文字のための対語です。少なくとも ASCII 文字 セットに対応する、全角文字の完全なセットがあります。

いくつかの日本のウェブサイトは全角文字を多用する傾向があり、それらの記事 は必ずしも読み易くないかもしれません。もしそう感じたら、それら全角の英数 字を半角に変換するこの機能を使うことができます。それに は shimbun-foobar-japanese-hankaku 変数を t に設定してくだ さい。ここで foobar は、新聞の記事を講読するサーバー名です。つま り、サーバー毎にそうしなければならないということです。

全角から半角への変換を記事のボディだけで行なわせたいならば、t の 代わりに値 body を使ってください。逆に値 header また は subject は、サブジェクトだけでそれを行なうことを指定します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

9.6.7 Shimbun ライブラリのコーディング規約

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=emacs-w3m&node=Coding+convention+of+Shimbun"
"emacs-w3m/Shimbunライブラリのコーディング規約"へのコメント(無し)
検索全文Elisp

  • `shimbun.el' では、emacs-w3m の関数を自由に使って良い。

  • `sb-*.el' では、これまでと同様に emacs-w3m の関数を直接呼び出すこと はしない。`sb-*.el' で必要になる emacs-w3m の関数について は `shimbun.el' にスタブを用意する。

  • SpeedBar で利用されているファイル名は避けなければならない。 `speedbar-0.14beta4' で用いられているファイル名を以下に示す。

    sb-ant.el sb-html.el sb-info.el sb-texinfo.el
    sb-gud.el sb-image.el sb-rmail.el sb-w3.el

  • 参照している WEB サーバの URI を連想させるようなファイル名を選ぶべきであ る。ただし、曖昧にならない範囲で、国別コード (Ex. jp,de,uk,etc) や、組織 コード (Ex. edu,com,org,net,etc)、余分な部分 (Ex. www) を取り除いても良 い。

  • グループ名には USENET に似た形式のものを選ぶべきである。すなわち、グルー プ名には小文字が好まれる。また、グループの階層構造を表すための区切り文字 としては、ピリオド (.) が好まれる。


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]