山田邦博です。

Mkphothhtml の投稿です。

  ディジタルカメラ(Digital Camera)で多量に撮った写真を簡単に整理し、
Netscape や Mozilla 等の一般的なブラウザ(Web browser) で見れるようにする
ものです。
Unix ユーザ(Unix user)向けです。

詳細は後続の投稿 DOC を参照して下さい。

-...-

本投稿は 2部に分けて投稿します。
        DOC     (この投稿)
        BIN     (shar のため長大です、2 個に分割されるかも知れません)

-...-

Mkphotohtml Ver.1.0 の全てのファイルは
        ftp://ftp.tksa.gr.jp/king/image/Mkphotohtml_1.0.tgz
にあります。

最新の Mkphotohtml (ドキュメントを含む)については
       http://www.tksa.gr.jp/king/Software/Mkphotohtml/index.html
を参照して下さい。
そこに実例も示しておきました。

-...-

インストール方法は上記 shar より、mkphotohtml を取り出し、以下の PATH
の通っている所にコピーして下さい。
        /usr/local/bin/, /usr/bin/ あるいは $HOME/bin/ 等

または、上記 FTP より Mkphotohtml_1.0.tgz を取って来て、展開、その中の
installer を以下のように実行して下さい。

        # Mkphotohtml_1.0/bin/install.sh local
                                      ## local は usr あるいは home も可。

詳細は同アーカイブ中のドキュメントを参照して下さい。


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
README.jp.txt
-------------

                      Mkphotohtml - Make photo.html

                                山田邦博
                    YAMADA Kunihiro <king@tksa.gr.jp>
                         29 Jul.2003 (Release 1.0)
                     Copyright policy: GNU GPL Ver.2


概要:
----
  ディジタルカメラ(Digital Camera)で多量に撮った写真を簡単に整理し、
Netscape や Mozilla 等の一般的なブラウザ(Web browser) で見れるようにする
ものです。

  一つのディレクトリ(Directory)で一つのテーマ(Theme)を表現する。 各テー
マはその下にサブディレクトリ(Sub-directory)を作る事でサーブテーマ
(Sub-theme)構成し、全体は木構造(Tree structure)となっている。
画像(Image)は各テーマ(各ディレクトリ)毎に管理する。
トップテーマ(Top-Theme,ディレクトリ)から全てのテーマを含む HTML ファイル
(HTML file)の一群を自動的に生成する。

  各テーマ毎に、画像及びサブテーマの順序や、コメント等を設定するファイル
Contents.conf を置くことができる。 逆に、画像を適当に分割しておきさえす
れば、後は一切手間無しの手抜きモードもある(撮影日時だけで決める)。


  各テーマにおける(photo.html の)表示はそのテーマの画像、およびその直
下のサブテーマの代表画像のサムネイル(Thumbnail)が縦一列に並びます。各
画像の右側に、拡大画像へのリンク、画像名、日時、コメントが付きます。
実際にどういう形で表示されるかは、以下の URL を参照して下さい。
        http://www.tksa.gr.jp/cats/photo.html


動機:
----
  いわゆるディジカメに限らず銀塩写真でも写真と言うものは整理が面倒です。
要はやたら数が多くなってしまう事に原因があるようです。 ディジタル画像な
ら、保持と検索が楽なはず。
  世の中には、凝った GUI を駆使した画像のアルバム作成ソフトが沢山あるよ
うですが、どう見ても使いやすくはなさそう。 適当な設定ファイルとスクリプ
ト(script)で作成するものが欲しかった。

  きちんと検索できるようにするのは面倒に見えるけれど、単純に日時だけで管
理してしまう手法がある。 こういう手抜き手法は長続きする。
大部分は手抜きモードで、ここはという特定のテーマだ凝った事ができれば実用
性が高いはず。

  個人的な使用だけでなく、Web での公開用にも使用できるものが良い。
それならば、一般的なブラウザ(Web browser)が使用できる。 Netscape や
Mozilla のような機能満載のブラウザは起動が余りに遅すぎる。 Lynx のような
絵無しモードのブラウザでも、なんとなくテーマの構造と画像の概要が分かる程
度の HTML ファイルを生成したい。


こだわり:
--------
  阿呆な GUI を避けよう。
  徹底したスクリプト主義で。
  Lynx でもテーマと画像の概要が理解できるような HTML ファイル生成。


機能:
----

  各テーマ(ディレクトリ)の HTML ファイルは全て同一の名前(photo.html) で
ある。 トップテーマ(トップディレクトリ)の photo.html から全てのテーマ、
及びそのテーマに属する画像へのアクセスを可能にする。
トップテーマをルートとする Tree 構造を扱う。 Leaf Node に対応するテーマ
には必ず画像があり、他の node に対応するテーマが画像を持つかどうかは任意
である。


mkphotohtml の起動オプション:
----------------------------
    mkphotohtml -h
    mkphotohtml [-rv] -c [directories ...]
    mkphotohtml [-e] [-f] [-m mailaddress] [-n]
                [-o globaloption=directive,...]
                [-r] [-u username] [-v] [directories ...]

    -h : Help.
         ヘルプ
         -v 以外のオプションの併用は無効。
         簡単な使用方法の他、テーマオプションのデフォールト設定値が表示
         される。 このデフォールト値は mkphotohtml script 内部で保持され
         ているものの他、/etc/mkphotohtml/option ファイルがあれば上書き
         されたデフォールト値が表示される。 なお、上書きされたかどうかは
         -v オプションを付ける事で確認できる。
    -b : Back button added to photo.html
         メッセージファイル中に "Back:" 項が指定してある時、この -b オプ
         ションがあると、photo.html に 戻りボタン が付く。
         デフォールトは 戻りボタン が付かない。
    -c : Clean bogus shrinked images.
         指定されたディレクトリ(デフォールトはカーレントディレクトリ)の
         テーマ内の縮小された画像の内、対応する生画像がない場合、その祝
         処された画像を消去する。 -r を同時に指定すると、再帰的に下位の
         ディレクトリについても同様の消去を行なう。
         -v を同時にした場合、消去ファイルの詳細が表示される。
         -c を指定した時、Contents.db と photo.html の更新を行なわなず、
         縮小ファイルの作成も行なわれない。
    -e : English.
         Contents.conf 内の記述が英語。 photo.html の文字セットが
         iso-8859-1 であると仮定される。
         このオプションは "-o Language=English" と同一である。
    -f : Force update.
         本来なら Contents.db と photo.html の更新がされない場合でも、強
         制的に更新する。
    -m mailaddress :
         Mail address.
         mailto: として photo.html に書き込まれるメイルアドレス。
         デフォールトは $userid@$domain である。 $userid は環境変数
         $USER で置き換えられる。 また $domain は `hostname -d` を使
         い、FQDN からホスト名を取り除いたものに置き換えられる。
         $fqdn は FQDN で置き換えられる(`hostname -d` を使用)。
         このオプションは "-o Mail-Address=mailaddress" と同一である。
    -n : use external programme "nkf" for Language=Japanese
         本プログラムでは Contents.conf を記述した文字コードをデフォール
         トで変換しないが、このオプションを指定すると、強制的に 7bit
         JIS コードに変換する。 EUC-jp や Shift-JIS を使用している時には
         本オプションを指定しなければならない。
         このオプションは "-o Nkf=Use" と同一である。
    -o : Default options for Contents.conf
         基本的には Contents.conf のオプション部(Option:)のデフォールト
         をあらかじめ指定するために使用される。
         本オプション群は環境変数 MKPHOTOHTML でも設定でき、もしこの環境
         変数が設定されていれば、シェルコマンドラインに先だって設定され
         る。
         詳細に付いてはテーマ オプションの項で解説する。
    -r : Recursive.
         指定した directories (デフォールトはカーレントディレクトリ)の下
         位のディレクトリに関しても再帰的に実行する。
    -u username :
         Full name of user like as "Firstname Lastname".
         mailto: として photo.html に書き込まれる名前。
         デフォールトは $passwd である。 この $passwd は/etc/passwd ファ
         イルから userid に対応するユーザ名が抽出され、置き換えられる。
         このオプションは -o "User-Name=Firstname Lastname" と同一である。
         注意:Full Name を書く際、空白が入るので、上記のように qoute す
               る必要がある。
    -v : Verbose messages.
         処理の詳細が表示される。

    directories ... :
         テーマに相当するディレクトリのリストを指定する。
         デフォールトはカーレントディレクトリ。


テーマ設定ファイル(Contents.conf):
---------------------------------
  各テーマ毎にそのテーマの構成等を設定するファイルを置く事ができる。
各テーマのディレクトリに Contents.conf があれば、その設定に従った HTML
ファイル photo.html がそのディレクトリに作られる。

Contents.conf の構成は以下の通りである。
=======================================
Version:
        プログラム名  バージョン
                # プログラム名は "mkphothtml"
                # バージョンは mmm.nnn または mmm.nnn-string
                # ここで mmm nnn は数字、string は英数字、"_" および
                # "." だが、最初の一文字は英数字に制限される。
                # プログラム mkphotohtml のバージョンの mmm と一致しな
                # いと、あるいは .nnn の値が実行プログラムのそれより
                # 大きい時、処理が中断される。

Option:                         # オプション部に関してはテーマオプション
        Order=...               # の項で解説する。
        Image=...
        Theme=...
        Config=...
        Language=...
        Message-File=...
        Nkf=...
        Mail=...
        User-Name=...
        Scale-Directory=...
        Size-of-Picture=...

Theme:
        Theme=テーマ名                          # default: ディレクトリ名
        Image=テーマを代表する画像(xxxx.jpg)      # default: 当テーマで最初
                                                #   (top)に表示される画像
        Comment=テーマの概要を示すコメント   # default: なし

directory-a/
        Theme=サブテーマ名
                # Default 値はサブテーマの Theme: 部から取られる。
        Image=サブテーマを代表する画像(yyyy.jpg)
                # Default 値はサブテーマの Theme: 部から取られる。
        Comment=サブテーマの概要を示すコメント
                # サブテーマに関しては、これら Theme=,Image=,Comment= の
                # default 内容はサブテーマの Theme: 部から取られる。
directory-b/
        ....
....

img_xxxx.jpg:
        Name=画像名(タイトル)  # default: ファイル名 (img_xxxx.jpg)
        Date=日時         # default: オリジナル画像ファイルのタイ
                                #          ムスタンプ(mtime)
                                #       例:  Sat Dec  9 19:19:56 2000
        Comment=画像のコメント # default: なし
img_yyyy.jpg:
        ....
....
=======================================

  Contents.conf 内の各項目は全て省略可能である。 これらを記述するのは、
そのテーマ内でデフォールトと異なる設定をしたい時である。


テーマ内容データファイル(Contents.db):
-------------------------------------

  mkphotohtml コマンドで HTML ファイル(photo.html)を作ると、その内容を反
映したデータファイル Contents.db が作られる。 一点の例外を除いて、
Contents.conf と Contents.db とは同一と見倣せる。
Contents.db の内容をそっくり Contents.conf にコピーし、Option: 部の
Latest= 項を消去すれば、そのまま使用する事ができる。
実際には、まず、mkphotohtml でとりあえず Contents.db と photo.html を作
り、Contents.db を Contents.conf にコピーし(あるいはリネームし)、
Latest= 項を消去し、(web browser で photo.html を表示させながら、) 適当
に編集して行けば良い。

  この Contents.db はそのテーマの photo.html を作る際のデータベースとなっ
ていて、サブテーマや画像の順序が保存されている。
従って、各種オプションや Contents.conf の指示がどのように解釈されたか調
べるのに役立つ。
また、Contents.db 中の Option: 部と Theme: 部は一つ上位のテーマから参
照され、さらに Version がチェックされる。

  Contents.db を消去する事は差し支えないが、編集すべきでない。 それは
Contents.db の日時(mtime)を調べ、それが以下の日時
        そのテーマ内の Contents.conf の日時
        そのテーマ内の画像を収容するディレクトリの日時
        そのテーマの直下のサブテーマのディレクトリの日時
より新しければ Contents.db と photo.html の更新をしないからである。
(例外 -f オプション)


テーマ オプション:
-----------------

  テーマ オプションは各テーマ毎に設定可能なオプションである。 ただし、
以下のデフォールト オプションはテーマ オプションに先だって設定される。
        (1)  /etc/mkphotohtml/option
        (2)  $conf_dir/option
                ただし、$conf_dir は $HOME/etc/mkphotohtml/ (優先)または
                $HOME/.mkphotohtml/ (前者がなければ)である。
        (3)  環境変数 MKPHOTOHTHL
        (4)  シェルコマンドの -o オプション
(1)から(4)へと順に設定が上書きされる。

  各テーマにおけるオプションは上記デフォールト オプションをベースとし
て、各テーマにおける設定ファイル(Contents.conf)中のオプション部で上書
き設定される。
        注:上位テーマのオプションが下位テーマのオプションに影響する事
            はなく、互いに独立である。

  テーマ オプションの項目キーワード(....=)は最初の 3文字だけに省略可能
である。 キーワード値も Mail,User-Name,Message-File を除き、最初の 3文
字に省略可能なものが多く(複合語は各々の最初の 3文字)、理解しやすいと思
われる省略形を用意した。 
また、Mail,User-Name,Message-File の値を除き、大文字小文字の区別はない。

キーワード値が複合語の場合、語間をハイフン(-)でつなぐ事を基本としている
が、アンダーライン(_)で代用でき、さらに省略できる。 例えば、New-First
は New_First,NewFirst は同一と見倣される。 さらにこれの変化形として
New-Fir,New-1st (当然 "-" を "_" で代用したり省略できる)も認めている。


    Order=順序
        Order : (省略形:Ord)
                テーマと画像の配置戦略を決める。
        順序  : New-First (New-Fir,New-1st)  ... Default
                        最新の画像、テーマを最初に配置する。
                        逆時間順である。
                        Old-Last も同一。
                New-Last (New-Las)
                        最新の画像、テーマを最後に配置する。
                        時間順である。
                        Old-First も同一。
                Theme-First (The-Fir,The-1st,Directory-First,Dir-Fir,Dir-1st)
                        テーマ(ディレクトリ)を最初に配置する。
                        Image-Last も同一。
                Image-First (Ima-Fir,Ima-1st)
                        画像を最初に配置する。
                        Theme-Last,Directory-Last も同一。

    Image=順序
        Image : (Ima)
                Order=Theme-First または Image-First の時のみ有効である。
        順序  :   Reverse (Rev)   ... Default
                        最新の画像を最初に配置する。
                        逆時間順である。
                Normal (Nor)
                        最新の画像を最後に配置する。
                        時間順である。

    Theme=順序
        Theme : (The)
                Order=Theme-First または Image-First の時のみ有効である。
        順序  :   Reverse (Rev)   ... Default
                        最新のテーマを最初に配置する。
                        逆時間順である。
                Normal (Nor)
                        最新のテーマを最後に配置する。
                        時間順である。

    Config=順序
        Config : (Con)
                 Contents.conf ファイルで設定された、サブテーマ及び画像
                 の順序を使用するかどうかを規定する。
        順序   : Non (No)      ... Default
                        使用しない。
                 First (Fir,1st)
                        使用し、かつ最初に配置する。
                 Last (Las)
                        使用し、かつ最後に配置する。

    Language=使用言語
        Language : (Lang,Lan)
                   使用言語を指定する。
                   photo.html 内のメッセージや character set を規定する。
        使用言語 : Japanese (Japan,JP) ... Default
                   English (Eng,EN)
                   その他の言語も Message-File を用意する事で可能。
                Japanese を使用した時、後述する Nkf=Use を同時に使用する
                事で文字コードが自動的に 7-bit JIS に変換される。

    Message-File=メッセージファイル
        Message-File : (Message,Mes,Message-Fil,Mes-Fil,Mes_Fil,MesFil,...)
                photo.html で使用する言語とそれに対応する文字セット、
                メッセージを用意したファイルを指定する。
                Web browser が受け付ける characterset であれば、任意の言
                語のメッセージが可能である。
        メッセージファイル :
                メッセージファイルのファイル名。(パスの有無は任意)
                具体的なファイルの構成は message.sample.english および
                message.sample.japanese を参照されたい。

                現在、英語と日本語のメッセージがシステム内部に保持されて
                いる。
                デフォールト値は無いが、以下のファイルがあればそれを読
                み込み、メッセージのデフォールトとする。
                        (1)  /etc/mkphotohtml/message.*
                        (2)  $conf_dir/message.*
                        (3)  環境変数 MKPHOTOHTML の中で指示されたファ
                             イル
                        (4)  シェルコマンドの -o オプションで指示され
                             たファイル
                上記(1)から(4)に順に各言語のメッセージが追加、または置換
                (既にその言語が設定されていれば)される。

    Nkf=使用
        Nkf  :  (省略形はない)
                Language=Japanese の場合に、外部プログラム nkf を呼び出
                し、Message-File および Contents.conf の内容を読み出す際
                に 7-bit JIS コードに変換するかどうかを指示する。

                注: 日本語は現在 Shift-JIS,EUC-japan,JIS の 3 種類が多
                     く使われているが、ここでは 7-bit JIS が使われる事を
                     前提としている。 それ以外の日本語文字セットを使用す
                     る人は Nkf=Use とするか、Message-File を用意する必
                     要がある。

        使用 :    Non (No,Not)   ... Default
                        外部プログラム nkf は呼び出されない。
                        いかなる文字コード変換もされない。
                Use (省略形なし)
                        Language=Japanese が指定されていれば、外部プログ
                        ラム nkf が呼び出される。

    Mail-Address=メイルアドレス
        Mail-Address :  (Mail,Mai,Mail-Add,Mai-Address,Mai-Add)
                メイルアドレスは photo.html の mailto: で使用される。
        メイルアドレス :
                yourid@your.domain の形式を持つメイルアドレスで、デフォー
                ルト値と異なるものに変更する場合に使用する。

                デフォールト値は $userid@$domain である。

                メイルアドレス中の $userid,$domain,$fqdn は以下のように
                展開される。
                $userid はログインした時の userid で、環境変数 USER
                から取られる。 
                $domain は使用ホストの FQDN 名からホスト名を取り除いた
                (hostname -d)ものである。
                $fqdn は FQDN で置き換えられる(`hostname -d` を使用)。
                $userid,$domain,$fqdn はそれぞれ ${userid}, ${domain},
                ${fqdn} という形式で書いても良い。

                メイルアドレス値が $non (または $no) の場合、メイルアド
                レスがないものとして、photo.html に mailto: を含めない。

    User-Name=ユーザ名
        User-Name : (User,Use,User-Nam,Use-Name,Use-Nam)
                ユーザ名は photo.html の mailto: で使用される。
        ユーザ名 :
                通常 "FirstName SecondName" の形式を取るが、スペースを
                含め自由である。 アルファベット以外にも数字、カンマ(,)、
                空白も使用できる。
                ユーザ名を日本語で記述することが可能であるが、7-bit
                JIS でない場合は Nkf=Use をこのオプション以前に指定し
                ておく必要がある。(環境変数 MKPHOTOHTML での指定、シェ
                ル コマンドからのオプション指定の場合も、このユーザ名
                だけは nkf でコード変換を例外的に行なえる。)

                ユーザ名のデフォールトは、$passwd で、userid(環境変数
                USER)を元に、パスワードファイル(/etc/passwd)から取っ
                て来る。

                ユーザ名が $non (または $no) の場合、ユーザ不詳として、
                photo.html に mailto: を含めない。

    Scale-Directory=(スケール=ディレクトリ)リスト
        Scale-Directory : (Scale,Sca,Scale-Dir,Sca-Dir,...)
                画像の大きさ(スケール)と対応する画像を収納するディレク
                トリを指定する。 本オプションを指定すると後述する
                Size-of-Picture オプションの内容が消去される。
        (スケール=ディレクトリ)リスト :
            スケール :
                0 より大、1 以下の整数、小数、整分数。
                スケール値が 1、すなわち元画像、が必ず含まれていなけ
                ればならない。
                スケールの表記は photo.html の中で直接使用される。
            ディレクトリ:
                テーマディレクトリの中に収容する画像のサブディレクトリ
                名。 このディレクトリ名の最初の一文字は全てのスケール
                のディレクトリ名と一致していなければならない。
                また、その最初の一文字で始まるディレクトリはテーマディ
                レクトリとは見倣されない。 通常、この最初の一文字は特
                殊文字で始まるのが良いと思われる。
                縮小画像は(もしなければ)元画像から作成され、対応するディ
                レクトリに収納される。
                縮小画像のファイル名にはスケールから作られた
                sub-extension が挿入されるため、スケール毎に異なるファ
                イル名となる。 従って、このディレクトリ名を同一にする
                事も可能であるが、元画像のディレクトリだけは独立にして
                おく事を特に推奨する。
            例:Scale=(1.0=%raw)(0.5=%half)(0.2=%fifth)(0.1=%tenth)
            デフォールト: (1/1=:raw)(1/2=:shrink)(1/4=:shrink)(1/8=:shrink)

    Size-of-Picture=(ディスプレイ=スケール)リスト
        Size-of-Picture : (Size,Siz,Siz-of-Pic,Size-Picture,Size-Pic,...)
                photo.html における画像表示の大きさを指定する。
                Size-of-Picture オプションは Scale-Directory オプショ
                ンの後に指定しなければならない。
            ディスプレイ:
                Normal : (Nor,N)
                        インデックス(サムネイル)画像をクリックして拡大
                        表示する時の画像を指示。
                Header : (Hea,H)
                        テーマディレクトリの代表画像(photo.html の表示
                        で最上段に来る画像)を指示。
                Index : (Ind,I,Indeces)
                        インデックス(サムネイル)画像を指示。
                        インデックス画像は縦一列に左寄せで表示される。
                        各画像は小さいが、その右側にタイトル、日時、コ
                        メント等が表示される。
                上記 Normal, Header および Index の全てがリストに含ま
                れなければならない。
            スケール:
                Scale-Directory で指定したスケール表示のいずれか。
            デフォールト: (Normal=1/2)(Header=1/4)(Index=1/8)
                 
            注: Scale-Directory と Size-of-Picture は他の -o オプション
                 とは違って少し特殊である。
                 これらは各テーマ毎に異なる事が可能であるが、そのテーマ
                 の Contents.db が有効(Contents.conf より新しいか、
                 Contents.conf がない)な場合、その Contents.db の内容か
                 ら Scale-Directory と Size-of-Picture を設定する。 この
                 場合デフォールトオプションの変更は反映されない。
                 従って、この二つのオプションに関してだけは、デフォール
                 トオプションを変更してテーマに反映するため、そのテーマ
                 の Contents.db を消去するか、touch Contents.conf を行な
                 うか、-f オプション(Force update) 付きで mkphotohtml を
                 起動する必要がある。


メッセージファイル:
------------------

  メッセージファイルの構成については message.sample.english および
message.sample.japanese を参照。
        設定項目の内、"Language:","Charset:","Album:","Comment:",
        "Theme:","Latest:" は必須ですが、"Back:" は任意です。
        mkphotohtml コマンドに -b オプションの指定があって、かつ
        "Back:" があると、photo.html に "戻り" ボタンが付きます。

メッセージファイルは /etc/mkphotohtml/ または $conf_dir/ の下に言語別の
ファイルとして置く事で起動時に読み込まれ、デフォールトメッセージとして機
能する。
言語名を "language" とすれば、言語別のファイル名は、"message.language"
である。 これらのファイル message.* があればそれらは全て読み込まれ、対応
する言語のメッセージが使用可能となる。 (実際には、"language" 部分は
"\w+" であれば良い。) もし、ファイル中の言語指定(Language:)に同一の物が
あれば、最後に読み込まれた物が有効となる(置換)。

各言語の message.language は、そのファイル中で指定された charset で書か
れていなければならない。


画像:
----
  画像は現在 jpeg 形式のみ扱える。
画像ファイルの拡張子は jpeg,JPEG,jpg,JPG のいずれかでなければならない。
各テーマの画像は各ディレクトリ毎に後述する特別のディレクトリ名の下に置か
れる。

  デフォールト設定では、画像の大きさ(画素数)として 1600x1200 (pixels)
以上を想定しています。 これは、単純に 1/8 の大きさをインデックス画像
(サムネイル)の大きさとしていて、そのインデックスに付加されたメッセージ
(テーマ名または画像名、日時、コメント)をうまく納めるために必要とされま
す。 画像の大きさの範囲内に、web browser のフォントの大きさをうまく合わ
せる設定ができれば、小さい画像でも不都合はないでしょう。

  1600x1200 (pixels) より小さい元画像や、それより遥かに大きな元画像の
場合はテーマオプション "Scale-Directory=" と "Size-of-Picture=" によっ
て適当な縮小率(Scale)を設定するのが良いでしょう。


シンボリック リンク:
-------------------
  各テーマ内でディレクトリを別の(テーマの)ディレクトリに symlink するこ
とができる。 この場合、その symlink 直下の Contents.db を見に行くことは
あるが、その symlink 以降の修正をしない。
この動作は、mkphotohtml コマンドで -r (recursive) を指定した時に重要であ
る。 なぜなら、symlink を使うと、無限のサイクリックなディレクトリ構造を
作れてしまうからである。

  また、縮小画像収容ディレクトリに symlink を使用した時は、そのディレク
トリに対して mkphotohtml -c (Clean up bogus shrinked images) が働かない。


タイムスタンプ:
--------------
  本システムはタイムスタンプ(mtime)をフルに活用しています。
Contents.db は他のファイルやディレクトリのタイムスタンプに依存しています。
さらに、画像やテーマの配列に画像のタイムスタンプを活用しています。 従っ
て、元画像のタイムスタンプの管理は重要です。 ディジタルカメラのクロック
を正確に合わせておきましょう。

  古い写真をスキャナー等でディジタル画像化した場合、古い写真の撮影日では
なく、ディジタル画像化した日時がそのタイムスタンプになるでしょう。
これで具合が悪ければ、touch コマンドで日時を変更して下さい。 それでも
Unix epoch の都合で 1970年以前には設定できないでしょう。
古い、古い写真のタイムスタンプを復元する手段がありませんが、その日時を表
示する最後の手段は Contents.conf で "Date=" を設定する方法です。 また、
"Config=First" または "Config=Last" を指定して、画像の配列順序をタイムス
タンプに依らず Contents.conf で指定した画像の配列順序に強制することです。
  なお、"Date=" の右側の日時のフォーマットは自由であり、日付以外の目的で
書いてしまっても有効です。(継続行なし)


インストール環境と方法:
----------------------
  別ドキュメント INSTALL.jp.txt を参照して下さい。


セキューリティ:
--------------
  本システムはファイルの作成、削除、リネーム等を積極的に行なうため、絶対
安全とは言いかねます。 私の経験では、デバッグ中のトラブルはありましたが、
実使用中のトラブルはありませんでした。 ですが、特に危険と思われる、
root ユーザ、グループでの使用ができないようにしてあります。


おまけ:
------
  以下の二つのユーティリティ プログラムを付けておきます。

        image-rotate     : 画像の回転
        getphotofromcard : カードから画像を incoming テーマとして取り
                           込み mkphotohtml を呼び出して photo.html ま
                           で作ります。

  簡単なプログラムなので、コメントを見て詳細をハックして下さい。


その他:
------
  著作権は GNU GPL Version 2 に準じます。(GPL-2 参照)
  バグレポート、意見等は歓迎します。