
*Malon Note

MalonNote は、ちょっとしたメモをすばやく保存・検索できるようにするアプリケーションです。
メモデータはテキストデータで保存されるので Malon Note が気に入らなくなってしまっても
情報を流用することができます。

Wiki を知っている方は「ローカル一人 Wiki」のようなものと思っていただければ良いと思います。
Wiki の影響を強く受けていますのでデータ形式もWiki 互換となるようにしました。


*インストール方法

**Mac の場合
mnote.app(あるいはmnote)のアイコンをアプリケーションフォルダにコピーしてください

**Windows の場合
mnote.exeを任意のディレクトリにコピーしてください

**UNIXの場合
mnoteを任意のディレクトリにコピーしてください
ただし、gtk2.0がインストールされている必要があります。

*使い方


**初めて使用する場合

初めて起動する場合、メモデータを保存するディレクトリを訪ねてきます。
お好みの空ディレクトリを指定して下さい。



**検索
1行入力用のテキストボックスに検索文字列を入力して、リターンキーを押すと
検索文字列を親として、検索結果がツリー状に表示されます。
尚、以下の特殊なキーワードを使用することで全件表示と分類検索が可能です。

-全件表示
    「malon-all」とテキストボックスに入力してください

-分類検索
    「malon-type:xxxx」とテキストボックスに入力してください。
    xxxxに分類の行（メモ内のTYPEの行）に含まれる文字を指定してください

**新しいメモの作成
メニューから「New」を選択してください。


**メモの削除
削除したいメモをツリーから選択し、メニューから「Remove」を選択してください。
メモに対応するファイルも一緒に削除されます。


**検索結果の削除
削除したい検索文字列をツリーから選択し、メニューから「Remove」を選択してください。
データファイルは削除されません。


**メモの件名修正
修正したいメモをツリーから選択し、件名を再度クリックしてください。


**メモの分類
メニューから「Group by TYPE」を選択してください。
すべてのメモから"TYPE"と書かれた行を解析して、その種類ごとに分類表示します。
メモの数が多いと若干時間がかかります。

**検索ツリーの操作
「Tree」メニューから以下の機能を選択できます。

-Expand All
    すべての検索ツリーを開きます。

-Collapse All
    すべての検索ツリーを折りたたみます。

-Clear All
    すべての検索ツリーを消去します。（起動時の状態に戻ります）


*メモフォーマット

基本的にフリーフォーマットですが、最初の4行は
以下のフォーマットを崩さないようにしてください。

:''DATE'':YYYY/MM/DD HH:MI:SS

:''TYPE'':メモの種別（任意の単語。/で区切ることも可 例:memo/todo/参考）
----
本文

また、Wikiとの互換性を保つため本文には以下のような
Wikiテキスト整形フォーマットを推奨します。

※Malon Noteでは整形機能があまり実装されていません。
 以下の内、*, **, http:, ftp:, [[]], {{}}のみが機能します。

・連続した複数行は連結されます。
・空行は段落の区切りとなります。
・行頭がスペースで始まると、その行はそまま表示されます。
・シングルクォート２個ではさんだ部分は、ボールドになります。
・シングルクォート３個ではさんだ部分は、イタリックになります。
・アスタリスク(*)を行頭に書くと、大見出しになります。
・アスタリスク2個(**)を行頭に書くと小見出しになります。
・-を行頭に書くと箇条書きになります。
・http://www.maloninc.com/のようなURLは自動的にリンクになります。
・file://hoge.txtのようなものも自動的にリンクになります。
・[[]]でくくった文字列は他のメモを検索するリンクになります。
・{{}}でくくった文字列をファイル名とするファイルを開きます。
 ただし、ファイルはメモデータディレクトリ上のdocsディレクトリ内にあるものに限定されます。
　docsディレクトリは必要に応じて自分で作成してください。
・行頭がカンマで始まる行は表になります。たとえば

 ,品名,価格
 ,牛乳,100
 ,プリン,120

 は以下のような表になります。
 +-------+---+
 |牛乳   |100|
 +-------+---+
 |プリン |120|
 +-------+---+
 

*バグの報告

**メールでの報告
バグを発見した場合には以下のメールアドレスまでご連絡ください。

    hiroyuki@maloninc.com

また、以下の点について記載していただけますと大変助かります。

・OSの種類とバージョン（例: MacOS X 10.2）
・バグの事象を再現させる方法（例：同じ文字で検索を何回か繰り返すと強制終了する）

以下のファイルを取得できる場合は添付していただけますと非常に助かります。
・Windowsであれば、C:\Documents and Settings\All Users\Documents\DrWatson\drwtsn32.log
・MacOS Xであれば、/User/あなたのユーザー名/Library/Logs/CrashReporter/mnote.crash.log
・UNIXであれば、coreファイル

**sourceforgeを使える方
以下のURLからバグトラッカーへ登録していただけます助かります。
http://sourceforge.jp/projects/malonnote/tracker/


*開発者向けの情報

**GUIライブラリ
Macだけではなくて、UNIXやWindowsでも稼動させるためにクロスプラットフォームのGUIライブラリであるwxWidgets(旧名:wxWindows)を
使用しています。wxWidgetsについては以下のURLを参照してください。

-wxWindows本家
http://www.wxwindows.org/

-wxWindows日本語プロジェクト
http://wxwindowsjp.sourceforge.jp/

-wxWidgets でクロスプラットフォーム GUIアプリを作ろう
http://namazu.org/~satoru/pub/uu-2004-08/
※このサイトを見て初めてwxWidgesを知りました。高林哲さんに感謝。

**設計思想

MalonNoteを構成するオブジェクトはMVC(Model-View-Controller)モデルで
作られています。
筆者のMVCモデルの理解を以下にまとめます。

-Model（ロジック）
    アプリケーションロジックを担当する。
    ただし、データの表示方法については実装しない。（それはViewの役割）

-View（表示）
    Modelの状態を表示する。また、ControllerからModelの状態変更通知を受けた場合には
    再表示する。
    ViewはModelの状態を変更するような処理は行わない。（それはControllerの役割）

-Controller（イベント処理）
    Viewで発生したイベントに応じてModelの状態を変更し、Viewへ状態変更を通知する。


**各クラスの機能

-mnModelクラス（Model）
    メモデータであるWikiファイルやデータの管理と検索結果の管理を行います。

-mnFrameクラス（View）
    mnModelの内容（状態）を画面（ツリーやテキストボックス）に表示します。

-mnControllerクラス（Controller）
    mnFrame上で発生したイベントに応じてmnModelの状態を変更したり、
    mnFrameへmnModelの状態変更を通知する役割を担います。


*謝辞
-wxWidgetsを開発している方に感謝。(www.wxwindows.org)
-高林哲さんに感謝。wxWidgetsの記事を書いていただかなければ、MalonNoteは存在しなかったでしょう。(http://namazu.org/~satoru/)
-MASさんに感謝。MASさんの「ひとりWiki」が大変参考になりました。(http://www2u.biglobe.ne.jp/~MAS/index.html)
-Hitomiさんに感謝。りんごちゃんのアイコンを生み出してくれました。