2018年5月2日水曜日

GIMP Script's Help Content

GIMP で、スクリプトを書いたはいいが、
少し使い方に 癖 がある!、 要は、使い方を書き留めて置きたい、
そんなケースも多いと思います。
ヘルプ ボタンが機能してくれれば良いのですが ... 。


例えば、
GIMP 2.10.0-RC2 で Filter から Python-Fu  Console  を表示させると、
Dialog 左下に Help button があります。

これをクリックすると表示される ヘルプ Window で、
Page Body を 右クリックすると、
コンテキストメニューがポップアップし、
その中程にある 場所のコピー(O) を押して、URI (URL) を取得します。
その結果が、

https://docs.gimp.org/2.10/ja/gimp-filters-python-fu.html

です。

呼び出す側の スクリプト は、
pdb.python_fu_console()
python-fu-console
ですね。

この両者 スクリプト と ヘルプ内容 を結び付けるのが、gimp-help.xml 。
ローカルにヘルプをインストールしてある環境下であれば、
例えば、 GIMP 2.8.22 であれば、
C:\Program Files\GIMP 2\share\gimp\2.0\help\ja にありますね。  言語依存
その中の1行。

  <help-item id="python-fu-console" ref="gimp-filters-python-fu.html#python-fu-console" title="10.5.2. Python-Fu コンソール" parent="gimp-filters-python-fu" sort="10.5.2"/>


Web Browser で、 この URL にアクセスすれば、同一のページが開きます。
勿論、 HTML 形式ですから、 Browser や CSS が異なれば、若干、異なりますが。

では、 このページ(別の項目でも構いません。).をコピーして、
少し、加工する事で、 自分の Script の ヘルプ の雛形にしましょうか。
あっ、 勿論、 ヘルプがインストールしてあって、
ご自分のローカルに、勝手に弄れる ヘルプ がある! 前提 ですが。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>

      ... 以下省略


以下に、具体的な作成方法を書きますが、
Script から呼び出される Dialog の ヘルプ ボタン では機能しません。
きっと、 ... 。  後述。
Script を登録した メニューの場所 で  Shift +F1 キー から呼び出される 状況適応ヘルプ は OK !です。
そう、 実行する前なら、ヘルプが見られる と言う事になりますね。

先ずは、 .html ベースで ヘルプを書きます。

これからの作業は、皆、最終的には、GIMP がインストールしてあるフォルダ配下を弄る事になるので、
管理者権限が必要です。  昇格が必須です。

ですから、 権限制約の低い ご自分の配下 でヘルプ内容を作り上げて下さい。  完成後に移動やコピーですね。
また、オリジナルのファイルは、皆、 UTF-8N BOM 無し 改行コード LF ですので、
メモ帳 notepad.exe 等での編集は止め、 それなりのテキストエディタを使って下さい。

以下の 赤い部分 を書き換えて下さい。
緑色灰色の部分はコメントなので省略化ですが、緑色の部分は必要作業が書いてありますで、そのお積もりで。
本来不要な記述もコメントアウトで残してあるのは、大元の記述を確認して戴く為です。.

C:\Program Files\GIMP 2\share\gimp\2.0\help\ja  言語依存
script-fu_py-help-bases.html
  実際には、your-script-name.html に名前変更  python-fu-test なら python-fu-test.html
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- This is Sample Base For Help Of Script -->
<!-- Original: C:\Program Files\GIMP 2\share\gimp\2.0\help\j\common-script-fu-errors.html -->
<!-- Modified by ShiroYuki_Mot  2018/04/20 -->
<!-- If You Add A Help Content, -->
<!-- Replace your-script-name On id="your-script-name" To registed name -->
<!-- You Add The .html File to C:\Program Files\GIMP 2\share\gimp\2.0\help\j Directory -->
<!-- And You Add the Entry In gimp-help.xml -->
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>あなたの Script タイトル</title>
    <link rel="stylesheet" href="gimp-help-plain.css" type="text/css" />
    <link rel="stylesheet" href="gimp-help-screen.css" type="text/css" />
    <link rel="stylesheet" href="gimp-help-custom.css" type="text/css" />
    <link rel="alternate stylesheet" href="gimp22.css" type="text/css" title="gimp22" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.0" />
    <link rel="home" href="index.html" title="GIMP (GNU 画像編集プログラム)" />
    <link rel="up" href="gimp-concepts-script-fu.html" title="2. Script-Fu スクリプトを使用" />
    <link rel="prev" href="install-script-fu.html" title="2.2. Script-Fu の導入" />
    <link rel="next" href="kinds-of-script-fu.html" title="2.4. Script-Fu の種別" />
  </head>
  <body>
    <div class="navheader"> 
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">あなたの Script タイトル</th>
        </tr>
        <!--
        <tr>
          <td width="20%" align="left">
            <a accesskey="p" href="install-script-fu.html">
              <img src="images/prev.png" alt="戻る" />
            </a>
          </td>
          <th width="60%" align="center">2. Script-Fu スクリプトを使用</th>
          <td width="20%" align="right"> <a accesskey="n" href="kinds-of-script-fu.html"><img src="images/next.png" alt="次へ" /></a></td>
        </tr>
        -->
      </table>
      <hr />
    <div class="sect2">
      <div class="titlepage">
        <div>
          <div>
            <h3 class="title"><a id="your-script-name"></a>あなたの Script タイトル</h3>
          </div>
        </div>
      </div>
      <p>あなたの Script の説明やヘルプを書いて下さい。</p>
      <p>  図を参照する場合は、元の images Directory ではなく、別個に用意した方が無難です。</p>
      <div class="figure-contents">
        <div class="mediaobject">
          <img src="imagesPlus/SampleFigure.png" alt="図のタイトルです。" />
          <div class="caption">
            <p>図の説明文です。</p>
          </div>
        </div>
      </div>
      <p>さあ、書きましょう!。</p>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <!--
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="install-script-fu.html"><img src="images/prev.png" alt="戻る" /></a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="gimp-concepts-script-fu.html">
              <img src="images/up.png" alt="上に戻る" />
            </a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="kinds-of-script-fu.html"><img src="images/next.png" alt="次へ" /></a></td>
        </tr>
        -->
        <tr>
          <!--
          <td width="40%" align="left" valign="top"><a accesskey="p" href="install-script-fu.html">2.2. Script-Fu の導入</a> </td>
          -->
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">
              <img src="images/home.png" alt="ホーム" />
            </a>
          </td>
          <!--                  
          <td width="40%" align="right" valign="top"> <a accesskey="n" href="kinds-of-script-fu.html">2.4. Script-Fu の種別</a></td>
          -->
        </tr>
      </table>
      <!--
      <a href="https://bugzilla.gnome.org/enter_bug.cgi?product=GIMP-manual" class="reportbug">Bugzilla にてエラー報告</a>
      -->
    </div>
  </body>
</html>

そして、ヘルプの対照表とも言える .xml にエントリーを書き加えます。

C:\Program Files\GIMP 2\share\gimp\2.0\help\ja
gimp-help.xml 行末直前に追加
  <!-- Add by ShiroYuki_Mot -->
  <help-item id="your-script-name" ref="script-fu_py-help-bases.html" title="あなたの Script タイトル" parent="gimp-main" sort="90"/>
</gimp-help>


さて、これで、先程書いた状態になります。
でも、 Help Button から 見たい! のが 人情 ですよね。
そこで、 Python のソースコード( Script 本体 )にも手を入れます。

先程の .xml を思い出して下さい。
その保存場所は 日本語環境下 では、 ...\help\ja\ でしたでしょ!。
はい。  Localize されています!。
さて、 Python-Fu に話を切り替えます。
define 関数のソースを見れば分かるのですが、 gimpfu.py の冒頭の def register( 、.
通常の書き方では、 基本的に省略されている 引数 がありますし、
関数名は pdb に登録する為に、文字置換処理を挟んでいます。

Help での 名称 は 登録後の名称 ... 。
そうです!。
一般的に説明される _ で語句を繋ぐ名称設定は止め、最初から - で繋ぎます!。
元々、_ ではなく - が基本の様にも見受けられます。
そして、 Localize を指定します。
具体的には、一般的に省略されている 12 (13?) 番目 の 引数 Domain を明記します。
指定する値は お決りの文言 ですね。
つまりこうです。
register(
         "python-fu-test",      # func name
# 省略
         plugin_main ,           # function  
         domain=("gimp20-python", gimp.locale_directory)   # Extra: for Help
         )
main()
(13?) と書いたのは、その前に、省略可能な menu= と言う引数もあるからです。
普通は、この menu は書かなく共 良い筈です。  書きませんね。
 

はい。  これでスクリプトを実行して Help ボタンを押して見ましょう。
おおっ!。
の 筈です。  ローカルヘルプのある GIMP 2.8.22 上。.



残念なのは、ヘルプをインストールした環境下でのみ対応が可能 な事ですね。
WAN で 外部とアクセスする インターネット上のヘルプ に 手を入れる訳には行きませんから。



参考:
   ファイルとして公開しました。  *1.
   https://shiroyuki-mot-presents.blogspot.com/2018/05/download-gimp-help-additional-base.html
                       Link の無断転載を禁じます!。.



[20187/05/04] ファイル公開 を追記  *1.

0 件のコメント:

コメントを投稿