2012年6月8日金曜日

BlueGriffon の表示モードを切り替える拡張

を作ってみました。

注意:パッチが BG 本体に取り込まれたため、1.6 からこの拡張は不要になります。

BlueGriffon とは何ぞや、というと、WYSIWYG の HTML エディタです。

大雑把な特徴としては、

  1. フリー/オープンソース (ただし、マニュアルを含め拡張の多くが有償)
  2. レンダリング エンジンが Gecko なので、HTML5/CSS3 に対応して Firefox 同等の表示が可能

という感じでしょうか。

SNS やマイクロブログ全盛の現在では、HTML を書く機会自体が激減しており、さらにエディタもコード エディタや IDE が主流となっているため、もはや WYSIWYG というコンセプト自体が激レアという感じですが、この路線でのライバル ソフトがフリーウェアにほとんど見当たらないため、市場原理や淘汰の荒波とは無縁にマイペースで継続中という(あくまで個人的)印象です。

詳しくは Wikipedia や窓の杜の紹介記事あたりをご参照ください。

さて、その BlueGriffon ですが、かねてから Firefox の拡張を作ってみようとぼんやり思っていたところ、BlueGriffon も Firefox と同じ XULRunner ベースということに気づいたため、急遽 BlueGriffon で勉強がてら簡単な拡張を作ってみることにしました。

Firefox や ThunderBird だとおよそ目ぼしい拡張はすでに存在していて、ヘタに既存とカブる拡張作ると「ブルース・ブラザーズ」のラスト並みに各方面からツッコミ食らいそうなイメージがあるのですが、BlueGriffon は(本体の開発者さん以外)ほとんど誰も拡張を作っていない感じでしたので、初心者が練習台に使っても割と生暖かくコミュニティが無視してくれるんではないかという期待も込みで、テキトーにテーマ選定してみました(もっとも Firefox の拡張は Add-on SDK に移行中なので、オワコン XUL ベース拡張の経験が今後何に生かせるのかまったく不明ですが…)。


今回作ってみたのは、プレビューとソースの表示モードを切り替えるメニューを追加する、という拡張です。 BlueGriffon にはプレビューモードとソース表示モードがあって、ボタンクリックで切り替えるようになっています。

編集中には、確認のためにプレビューとソースを頻繁に行ったり来たりする状況もあるかもしれません。しかし BlueGriffon はプレビューとソースを並べて表示できないため、切り替えるにはいちいちマウスによるクリックが必要です(たぶん意図的な実装。プレビューとソースを並べて表示するためのアドオンが有償でリリースされていますので、差別化の一環ではないかと思われます)。

BlueGriffon にはオプションで、メニューコマンドへのショートカットキー割り当て機能が存在するのですが、プレビューとソースの表示モード切替はコマンドがメニューに未登録のため、キーボードショートカットを割り当てられないという問題がありました。

今回作ってみた拡張は、表示メニューにモード切替コマンドを追加するものです。既定で F8 キーを割り当ててありますが、必要であればオプションで変更できます。

完成品 toggleview.xpi は SkyDrive の公開フォルダに入れてみました。


xpi をいったんローカルにダウンロードした後、BlueGriffon の [ツール]-[アドオン] でアドオンマネージャを表示してください。
一応、正規の操作手順的にはアドオンマネージャ上部の [アドオンツール] ボタンからメニューをドロップダウンして、[ファイルからアドオンをインストール] コマンドでインストールしてください、ということになるのでしょう。


が、面倒くさいので、xpi が見えているなら、アドオンマネージャにドラッグ&ドロップした方がたぶん早いです。
再起動してインストールが完了すると、[表示] メニューに新たに [表示モード切替] コマンドが追加されます。


が、コマンドを追加したのはショートカットキーを有効にするためなので、メニューからの操作はどうでもいいです。 [F8] キーを押すと、プレビュー画面とソース画面が切り替わるようになります。
キーアサインを変更したい場合は、ふつうに [ツール]-[オプション]-[キーボード ショートカット] から変更してください。

しばらく自分で使っていますが、たまにショートカットキーが効かないときがあります。
起きたり起きなかったりするので、何かのタイミングの問題かと思いますが、発生メカニズムがよく分かっていません。
だいたいは BlueGriffon を再起動すれば直るので、深く考えずに再起動してみてください。
原因や再現条件が分かった方は、教えてください。

2012/06/16 追記:

バージョンアップに伴い、表示モードバーを隠すオプションを追加しました。

表示モードをショートカットキーで切り替えることに慣れると、表示モードバーのボタンをクリックすることが無くなります。そうすると、しだいに表示モードバーが無駄にスペース取っているような気がしてきたので、隠すオプションを付けました。

[ツール]-[アドオン] のアドオンマネージャ画面から、このアドオンの [設定] ボタンを押すと、オプション画面が開きます。

最近のディスプレイは横長になる傾向があるので、左右にパネルが出るのは問題ないんですが、上下に何か占有領域があると、妙に圧迫感を感じたりすることがあります。そんなときは、表示モードバーを隠してみてください。ちょっとのことですが、使い勝手が向上するかもしれません。

ChangeLog:

1.3.0.20120624

  • アドオンに設定画面を追加し、表示モードバーを隠すオプションを追加

1.2.0.20120616

前バージョン (1.1.0.20120612) からの主な変更点は以下のとおりです。

  • ToggleView コマンドのコア移植を想定 (Bug 426) して、移植後に衝突しないようコードを書き直し
  • 対象バージョンを 1.5 系に限定
  • xpi の圧縮形式を無圧縮 zip に変更 (ただしパーミッション属性をつけていないので *nix 系での動作は不明)

3 件のコメント:

  1. Do you want to make a patch to include that feature in next version of BlueGriffon? I'll be happy to add it and add you the list of code contributors!

    返信削除
  2. 見つかるの早いよ…。何かアラート設定されてるの?

    Okay, I'll give you the patch later with pleasure.

    返信削除
  3. たぶんBlueGriffonでTwitter検索をしているんじゃ無いかと。

    返信削除