作者: 閑舎
日時: 2002/8/25(00:30)
rubikitch <rubikitch@...-lang.org> さん wrote.

> 初公開です。
> 是非とも使ってみてくださいな。
> http://www.ruby-lang.org/~rubikitch/computer/clwiki/

かなり本格的ですね。驚きました。使用中の clmemo.txt の一部を記します。上
部に記したほうがいいもの、下部の block 領域に記したほうがいいもの、私と
しては外部ファイルに置いておきたいもの、手探りで考慮中です;-)。

--^ clmemo.txt
2002-08-24  閑舎  <raku@...>

	* ChargeLogメモ (高林さんの紹介記事):
	{{<http://namazu.org/~satoru/unimag/1/>}}

	* clwiki (clwikiとは):
	- rubikitch さんによる ChangeLogメモの拡張(clmemo.el が必要)
	- 追加機能はブロック、リンクの 2 つ。

	* clwiki (インストール):
	1. {{<http://isweb22.infoseek.co.jp/computer/pop-club/emacs/changelog.html>}}
	  から clmemo.el を get。
	2. {{<http://www.ruby-lang.org/~rubikitch/computer/clwiki/>}}
	  から clwiki.el をget。
	3. 両者を load-path の通ったディレクトリへ置く。
	4. .emacs に次のように書くと C-x M で起動可能。
	  (autoload 'clwiki "clwiki" "ChangeLog wiki-modoki." t)
	  (define-key ctl-x-map "M" 'clwiki)

	* clwiki (変更箇所):
	{{<block:clwiki-change>}}

	* clwiki (キー操作):
	- clwiki-mode では次のショートカットキーが使える。
	  C-x M    新しい項目の追加。
	  C-c C-b  テキストブロックタグを挿入。
	  C-c C-f  ファイルへのリンクタグを挿入。
	  C-c C-u  URLへのリンクタグを挿入。
	  C-i      次のリンクタグへジャンプ。
	  C-j      前のリンクタグへジャンプ。
	  C-m      各リンク先を開く。
	  C-c C-c  clwikiを終了し、以前の作業画面に戻る。メモの保存も行われる。

	* clwiki (リンクタグとは):
	{{<block:clwiki-link>}}

	* clwiki (ブロックとは):
	{{<block:clwiki-block>}}

2002-08-23  System  <raku@...>

	* Todo (LakuのVine設定メモ):  {{<file:~/Ndb/install.txt>}}
	* Todo (個人的なコマンド):    {{<file:~/bin>}}
	* Todo (HP集):                {{<file:~/Ndb/HP>}}
	* Todo (ソフトウェア集):      {{<file:~/Ndb/Software>}}
	* Todo (月間予定表):          {{<file:~/Ndb/Todo>}}


{{[block:clwiki-link]}} ############################################################################
clwikiには次のような特殊な文字列がある(リンクタグ)。
それぞれ、C-m などでリンク先を開いてくれる。
  * ファイルへのリンク。
    {{<file:foo.txt>}}
    {{<file:~/.emacs>}}
  * URL へのリンク。
    {{<http://www.ruby-lang.org/~rubikitch/>}}
    {{<ftp://ftp.ruby-lang.org/>}}
  * ブロックへのリンク。
    {{<block:clwiki-link>}}


{{[block:clwiki-block]}} ###########################################################################
ChangeLog 形式には TAB の制約などがあるが、基本的にファイルの上へ上へと書き足されるので、
上部には最低限の情報を書き、詳細を最後尾に追加することで、形式に左右しない記述が可能だ。
この際、上部と下部をつなぐタグは、自分でつけることもできるが、
何もしなければ、コンピュータが勝手に unique なものをつけてくれる。
indirect buffer を使って、上部、下部を同時に編集できる。

  2002-08-24  閑舎  <raku@...>

          * clwiki: キー操作
          {{<block:clwiki-key>}}

          * clwiki: インストール
          {{<block:clwiki-install>}}

          ...

  {{[block:clwiki-key]}} ###################################
  clwiki-mode では次のショートカットキーが使える。
    C-x M    新しい項目の追加。
    C-c C-b  テキストブロックタグを挿入。
    ...

{{[block:clwiki-change]}} ##########################################################################
* clwiki.el:
  - Canna 日本語入力で Enter が使えないので、次のようにコメント化してみた(clwiki.el)。
    ; (define-key clwiki-mode-map [return] 'clwiki-magic-return)
  - M-TAB は Gnome のデフォルトでは Window の切り替えに使われ、
    ESC TAB も苦しいので変更した。
    (define-key clwiki-mode-map "\C-j" 'clwiki-previous-tag)

* .emacs:
  - カーソル行のリンクタグを 1 キー C-n で開きたい。
  - リンクタグの部分にも色をつけたい。
  - clmemo.txt を開くと取り敢えず clwiki-mode にしたい。
  - 以上を合わせて、
    (defvar change-log-font-lock-keywords
      '(;; Date lines, new and old styles.
        ("^[-0-9:+ ]+"
         (0 font-lock-string-face)
         ;; Name and e-mail; some people put e-mail in parens, not angles.
         ("\\([^<(]+\\)[(<]\\([A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+\\)[>)]" nil nil
          (1 font-lock-constant-face)
          (2 font-lock-variable-name-face)))
        ;; File names.
        ("^\t\\* \\([^ ,:([\n]+\\)"
         (1 font-lock-function-name-face)
         ;; Possibly further names in a list:
         ("\\=, \\([^ ,:([\n]+\\)" nil nil (1 font-lock-function-name-face))
         ;; Possibly a parenthesized list of names:
         ("\\= (\\([^) ,:\n]+\\)" nil nil (1 font-lock-keyword-face))
         ("\\=, *\\([^) ,:\n]+\\)" nil nil (1 font-lock-keyword-face)))
        ;; Function or variable names.
        ("^\t(\\([^) ,:\n]+\\)"
         (1 font-lock-keyword-face)
         ("\\=, *\\([^) ,:\n]+\\)" nil nil (1 font-lock-keyword-face)))
        ;; Conditionals.
        ("\\[!?\\([^]\n]+\\)\\]\\(:\\| (\\)" (1 font-lock-variable-name-face))
        ;; Link
        ("[[<]\\(\\(http\\|file\\|block\\):[^]>]+\\)[]>]" (1 font-lock-string-face))
        ;; Acknowledgements.
        ("^\t\\(From\\|Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)"
         1 font-lock-comment-face)
        ("  \\(From\\|Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)"
         1 font-lock-comment-face))
      "Additional expressions to highlight in Change Log mode.")
    (load "clwiki")
    (define-key ctl-x-map "M" 'clwiki)
    (fset 'clwiki-magic-return-x
       "\C-a\C-i\C-m")
    (define-key clwiki-mode-map "\C-n" 'clwiki-magic-return-x)
    (setq auto-mode-alist
          (cons (cons "/clmemo\\.txt$" 'clwiki-mode) auto-mode-alist))
--$

--
本田博通(閑舎)
Hiromichi Honda <raku@...>