Skip to content

Latest commit

 

History

History
244 lines (161 loc) · 13.3 KB

customize.md

File metadata and controls

244 lines (161 loc) · 13.3 KB

カスタマイズ方法

cats_pr_dogsの設定ファイルは、ファイルパスの違いを除けば、基本的に、cats_dogsと同じ書式です。
ですので、この説明では、おもに、カスタマイズにファイルをどこに置くかについて説明します。

すべてを理解する必要もないので、以下の4つにわけて説明します。

  • 簡易なカスタマイズの手順
  • 設定ファイルのディレクトリ
  • 本格的なカスタマイズの概略
  • cats_pr_dogs独自設定ファイル

目的に応じて、必要な部分を読んでください。


簡易なカスタマイズの手順

簡易なカスタマイズ方法としての「設定ファイルを1つだけ書き換える」手順を説明します。
それ以外のカスタマイズについては、本格的なカスタマイズの概略を参照してください。

以下が、「設定ファイルを1つ置き換える手順」です。

  1. レポジトリのconf/etc以下から、変更したいファイルを選ぶ。
  2. カスタマイズ設定ディレクトリに、etcディレクトリを作成する。
  3. 変更したいファイルを、同じファイル名で、カスタマイズ設定ディレクトリのetcディレクトリにコピーする。
  4. コピーしたファイルを編集する。
  5. アプリを再起動する。

「カスタマイズ設定ディレクトリ」の場所については、カスタマイズ設定ディレクトリの説明を参照してください。
設定ファイルのパスは、仮想ファイルシステムのパスで指定する必要があるので、注意してください。

カスタマイズしやすそうな設定ファイル

参考として、始めにカスタマイズしそうなファイルをリストアップしておきます。

デフォルト設定ファイル 設定ファイルの概略 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_pathdocument_rootdirectory_view_roots
etc/tmplview.conf url_top_pathtmpl.document_roottmpl.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の置き場所の例

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によって異なりますので、個別に説明します。

Windowsの場合

  1. 絶対パスに変換する。
  2. パスの区切りの\/に変換する。
  3. ドライブレター(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ライクなファイルパスになるわけです。

LinuxおよびMacOSの場合

  1. 絶対パスに変換する。
  2. 先頭に/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/がついたパスになるわけです。

Build-in HTTPサーバのURLパス変換

Webコンテンツとしてchromeに渡しているファイルを大幅にカスタマイズするには、cats_pr_dogsが、URLをどのように変換するかを知っておく必要があります。

そのURL変換を行っているBuild-in HTTPサーバは、URLのパスを仮想ファイルシステムのパスへ、以下のようにマッピングして処理しています。

URLのパス 仮想ファイルシステムのパス 処理概要
/file /file/ cats_dogs処理エンジンで変換して提供します。
/ /conf/www ファイルを変換せずに提供します。

仮想ファイルシステムでもパスを変換しているので、URLは多段の処理で、OSのパスへ変換されることになります。


cats_pr_dogs独自設定ファイル

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の設定ファイルと同じ仕様です。

OSのファイルパスが書かれる設定ファイル

以下のファイルは、cats_pr_dogsが起動する上で必要な、OSの情報が書かれています。 (chromeコマンドのOSのファイルパスがなどが書かれています。)

仮想ファイルシステムのパス 概要
/conf/etc/pr_dogs.conf 主にOS依存の情報が書かれています。

このファイルだけは、実際のOS上のファイルパスが書かれていますので、注意が必要です。

自動生成されるファイル

以下は、アプリが自動生成するファイルなので、利用者は編集しないでください。

対象のアプリ ファイルパス 概要
cat_pr_md、cat_pr_tmplの両方 カスタマイズ設定ディレクトリのwindow.conf ウィンドウ情報を保存します。起動時に読み込み、終了時に書き込まれます。