cats_pr_dogsの設定ファイルは、ファイルパスの違いを除けば、基本的に、cats_dogsと同じ書式です。
ですので、この説明では、おもに、カスタマイズにファイルをどこに置くかについて説明します。
すべてを理解する必要もないので、以下の4つにわけて説明します。
- 簡易なカスタマイズの手順
- 設定ファイルのディレクトリ
- 本格的なカスタマイズの概略
- cats_pr_dogs独自設定ファイル
目的に応じて、必要な部分を読んでください。
簡易なカスタマイズ方法としての「設定ファイルを1つだけ書き換える」手順を説明します。
それ以外のカスタマイズについては、本格的なカスタマイズの概略を参照してください。
以下が、「設定ファイルを1つ置き換える手順」です。
- レポジトリのconf/etc以下から、変更したいファイルを選ぶ。
- カスタマイズ設定ディレクトリに、
etc
ディレクトリを作成する。 - 変更したいファイルを、同じファイル名で、カスタマイズ設定ディレクトリの
etc
ディレクトリにコピーする。 - コピーしたファイルを編集する。
- アプリを再起動する。
「カスタマイズ設定ディレクトリ」の場所については、カスタマイズ設定ディレクトリの説明を参照してください。
設定ファイルのパスは、仮想ファイルシステムのパスで指定する必要があるので、注意してください。
参考として、始めにカスタマイズしそうなファイルをリストアップしておきます。
デフォルト設定ファイル | 設定ファイルの概略 | cats_dogsの説明ページ |
---|---|---|
etc/mdview.conf | cat_pr_mdの設定 | cat_mdviewの設定と同じ |
etc/tmplview.conf | cat_pr_tmplの設定 | cat_tmplviewの設定と同じ |
etc/markdown.conf | Markdown仕様の設定 | cats_dogsのMarkdown設定と同じ |
etc/usermap.conf | アカウントリスト(cat_pr_tmpl利用) | cats_dogsのuser_map設定と同じ |
設定ファイルについても、基本的にcats_dogsと同じ仕様なので、詳細については、cats_dogsのドキュメントを参照してください。
ただし、以下の設定ファイルのパラメータは、設定ファイルの記述を無視しますので、注意してください。
設定ファイル名 | 無効なパラメータ名 |
---|---|
etc/mdview.conf | url_top_path 、document_root 、directory_view_roots |
etc/tmplview.conf | url_top_path 、tmpl.document_root 、tmpl.directory_view_roots |
以下の絵のように、デフォルト設定ディレクトリとカスタマイズ設定ディレクトリが組み合わされて、cats_pr_dogs内で 仮想的なディレクトリの/conf
として扱われています。
この仮想的なディレクトリの/conf
は、カスタマイズ設定ディレクトリを優先するので、カスタマイズ設定ディレクトリで、デフォルト設定を上書きできます。
この設定ファイル用仮想的なディレクトリの/conf
を、以後「仮想設定ディレクトリ」と呼びます。
レポジトリのconfの、以下のサブディレクトリが、ビルド時にアプリへ仮想設定ディレクトリ(仮想ディレクトリの/conf
)の一部として組み込まれます。
仮想設定ディレクトリのサブディレクトリ | 概要 |
---|---|
etc |
アプリの設定ファイル群 |
lib |
templateやICONなどのHTML生成に使用するファイル |
www |
Build-in HTTPサーバのルートディレクトリ |
カスタマイズする場合のファイルの置き場は、アプリとOSで異なるので、以下のOSごとの表を参照してください。
Windowsの場合
アプリ名 | カスタマイズ設定ディレクトリ |
---|---|
cat_pr_md(CatPrMd) | %AppData%\CatPrMd |
cat_pr_tmpl(CatPrTmpl) | %AppData%\CatPrTmpl |
MacOSの場合
アプリ名 | カスタマイズ設定ディレクトリ |
---|---|
cat_pr_md(CatPrMd) | ~/Library/Application Suppot/CatPrMd |
cat_pr_tmpl(CatPrTmpl) | ~/Library/Application Suppot/CatPrTmpl |
Ubuntuの場合
アプリ名 | カスタマイズ設定ディレクトリ |
---|---|
cat_pr_md(CatPrMd) | ${XDG_CONFIG_HOME}/.config/CatPrMd もしくは ${HOME}/.config/CatPrMd |
cat_pr_tmpl(CatPrTmpl) | ${XDG_CONFIG_HOME}/.config/CatPrTmpl もしくは ${HOME}/.config/CatPrTmpl |
cats_pr_dogsの各アプリは、カスタマイズ設定ファイル置き場とデフォルト設定ファイル置き場の両方から設定ファイルを探します。
以下の例を見ると分かりやすい思いますが、設定ファイルを置くときには、デフォルト設定ディレクトリとサブディレクトリのパスを同じものにする必要がありますので、注意してください。
etc/markdown.conf
をカスタマイズするときのファイルの場所の例です。
Windowsでユーザディレクトリがhoge
の場合、デフォルトインストールでは、以下がコピー先になります。
(hoge
の部分をご自分の環境に合わせて適宜読み替えてください。)
アプリ名 | 置き場 |
---|---|
cat_pr_md(CatPrMd) | C:\Users\hoge\AppData\Roaming\CatPrMd\etc\markdown.conf |
cat_pr_tmpl(CatPrTmpl) | C:\Users\hoge\AppData\Roaming\CatPrTmpl\etc\markdown.conf |
MacOSの場合は、デフォルトではホームディレクトリの以下の場所になります。
アプリ名 | 置き場 |
---|---|
cat_pr_md(CatPrMd) | ~/Library/Application Suppot/CatPrMd/etc/markdown.conf |
cat_pr_tmpl(CatPrTmpl) | ~/Library/Application Suppot/CatPrTmpl/etc/markdown.conf |
Ubuntuのデフォルトでは、ホームディレクトリの以下の場所になります。
アプリ名 | 置き場 |
---|---|
cat_pr_md(CatPrMd) | ~/.config/CatPrMd/etc/markdown.conf |
cat_pr_tmpl(CatPrTmpl) | ~/.config/CatPrTmpl/etc/markdown.conf |
cats_pr_dogsは、カスタマイズ設定ディレクトリにファイルを置くことで、デフォルトのファイルを置き換えることができます。
cats_dogsと同様に、かなり柔軟なカスタマイズができるようになっています。
そして、置き換えられるファイルは、設定ファイルだけではありません。 CSSファイル、テンプレートファイル、JavaScriptファイルなどの、HTML生成に使われるファイルも置き換え可能です。 cats_dogsと同じように、HTML的な見た目も変更することも可能です。
このようなカスタマイズの柔軟性は、cats_pr_dogs内の仮想的なファイルシステムで成り立っています。
柔軟にカスタマイズするなら、この仮想ファイルシステムの理解が必要になります。
理解なしには、ファイル内のパスを正しく書き換えられないからです。
以下の絵のような構造の仮想ファイルシステム経由で、各種の設定ファイルは読み込まれます。
この仮想ファイルシステムでは、以下のルールで、仮想設定ディレクトリとOSのファイルシステムをマップしています。
/conf
に仮想設定ディレクトリをマップする。/file
にOSのファイルシステムをマップする。
OSのファイルシステムからのパス変換ついては、OSによって異なりますので、個別に説明します。
- 絶対パスに変換する。
- パスの区切りの
\
を/
に変換する。 - ドライブレター(
C:
やD:
など)の前に/file/
を追加する。
以下は、変換の例です。
WindowsのOSパス | cats_pr_dogsの設定ファイルのパス |
---|---|
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe |
/file/C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe |
C:\Users\user\Works\cats_pr_dogs |
/file/C:/Users/user/Works/cats_pr_dogs |
Windowsの場合、OSのファイルは、/file/
をつけたUnixライクなファイルパスになるわけです。
- 絶対パスに変換する。
- 先頭に
/file
を追加する。
以下は、変換の例です。
MacOSのパス | cats_pr_dogsの設定ファイルのパス |
---|---|
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome |
/file/Applications/Google Chrome.app/Contents/MacOS/Google Chrome |
/Users/user/Works/cats_pr_dogs |
/file/Users/user/Works/cats_pr_dogs |
LinuxおよびMacOSでは、OSのファイルは、/file/
がついたパスになるわけです。
Webコンテンツとしてchromeに渡しているファイルを大幅にカスタマイズするには、cats_pr_dogsが、URLをどのように変換するかを知っておく必要があります。
そのURL変換を行っているBuild-in HTTPサーバは、URLのパスを仮想ファイルシステムのパスへ、以下のようにマッピングして処理しています。
URLのパス | 仮想ファイルシステムのパス | 処理概要 |
---|---|---|
/file |
/file/ |
cats_dogs処理エンジンで変換して提供します。 |
/ |
/conf/www |
ファイルを変換せずに提供します。 |
仮想ファイルシステムでもパスを変換しているので、URLは多段の処理で、OSのパスへ変換されることになります。
cats_pr_dogs独自の機能があるので、一部、cats_dogsと異なる仕様の設定ファイルがあります。
そのようなcats_dogsと差異がある設定ファイルの仕様について、個別に説明します。
cats_dogsでは、コマンド毎の設定ファイルは、コマンド引数で渡していました。
デスクトップアプリにしたことで、ファイル名を渡すのが難しいケースがあり、コマンド引数で渡されるファイルパスについては、以下のように固定的なパスになっています。
対象のアプリ | 仮想ディレクトリ上のパス | 概要 |
---|---|---|
cat_pr_md | /conf/etc/mdview.conf |
cat_mdviewの設定ファイル相当 |
cat_pr_tmpl | /conf/etc/tmplview.conf |
cat_tmplviewの設定ファイル相当 |
これらのファイルについては、ファイルパスの違い以外は、cats_dogsの設定ファイルと同じ仕様です。
以下のファイルは、cats_pr_dogsが起動する上で必要な、OSの情報が書かれています。 (chromeコマンドのOSのファイルパスがなどが書かれています。)
仮想ファイルシステムのパス | 概要 |
---|---|
/conf/etc/pr_dogs.conf |
主にOS依存の情報が書かれています。 |
このファイルだけは、実際のOS上のファイルパスが書かれていますので、注意が必要です。
以下は、アプリが自動生成するファイルなので、利用者は編集しないでください。
対象のアプリ | ファイルパス | 概要 |
---|---|---|
cat_pr_md、cat_pr_tmplの両方 | カスタマイズ設定ディレクトリのwindow.conf |
ウィンドウ情報を保存します。起動時に読み込み、終了時に書き込まれます。 |