最近 私は、7~8年ぶりに Web制作活動を活発化させている。
しかし、BlueGriffon を使っていて困った事が起きた。その原因と対処方法が分かったので、ここにメモを残す。

はじめに: おことわり

BlueGriffon は2024年に開発が終了し、すでに 公式サイトからのダウンロードはできない状態である。(つまり、このページは、自分用の覚え書きとなる)

何に困ったか

まえおき ここまで。以下、本文。

「連続した半角スペース」が「 」にエンティティ化されない原因は、以下のようなモノであった。

結論: 正しい DOCTYPE 宣言 をすればOK

まず、結論から書く。

DOCTYPE 宣言を、

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja">

という間違った組み合わせにすると、なぜか半角スペースが「&nbsp;」や「&#160;」に変換されず、半角スペースが連続して表示される。

DOCTYPE 宣言を、

<!DOCTYPE html>
<html lang="ja">

にすればOK。私はココを間違えていた (というか、あえて変更していた)
コレを修正するだけで、半角スペースのエンティティ化問題は解決した。
※注: <meta>や<link>の閉じタグは手動で修正、もしくは別文書へのコピペが必要だった。

また、エンティティ化が発生しない条件で文書を作成した場合、

という結果となになり、今回表題にした問題は、これで再現&解決ができた。

原因と対処法の話はここまで。
以下、様々な条件で 半角スペースを連続させてみた。

まず、BlueGriffonの設定

「ツール」>「オプション」>「ソース」画面の設定は以下。
bluegriffon設定1
▲クリックで拡大
エンティティの設定は「& < > と no-break space のみ」と、最小限にしてある。これを基本として、以下のテストを行った

DOCTYPE 宣言を変更してみる

まずは  HTML5 の基本。

<!DOCTYPE html>
<html lang="ja">
bluegriffonソース画面1
▲クリックで拡大
  半角スペース・・・・・・「&nbsp;」になる。
  改行コード ・・・・・・「<br>」になる。
  meta や img ・・・・・「>」で閉じられる
  これが正常な動作である。

言語を ja から en にしてみる

<!DOCTYPE html>
<html lang="en">
bluegriffonソース画面2
▲クリックで拡大
  変化なし。言語は無関係な模様。
  半角スペース・・・・・・「&nbsp;」になる。
  改行コード ・・・・・・「<br>」になる。
  meta や img ・・・・・「>」で閉じられる

html 宣言のみ、昔のxHTML 宣言にしてみる (現在の環境)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja">
bluegriffonソース画面2
▲クリックで拡大
  半角スペース・・・・・・ そのまま半角スペースが連続する。
  改行コード ・・・・・・「<br />」になる。
  meta や img ・・・・・「/>」で閉じられる
  これが、私が頭を悩ませていた頃の宣言、

・・・・とまあ、これだけで直った。
やはり、ココが 正しくないせいで、半角スペースが連続していたようだ。

その他、今回チェックした事

以前は、半角スペースが「&#160;」に変換されたハズだが・・・

2017年9月の私の記録(ぼくんちのバックステージ側の記事)では、

半角スペースが「&#160;」に変換された
「&nbsp;」はエラーが出て BlueGriffon では読み込みエラーが出る

という状態だったハズ。しかし、今回はコレが再現できない。
※ 当時と BlueGriffon のバージョンが違うから、だろうか?

ちなみに、半角スペースを「&#160;」で表記するには、
ソースオプションで「ASCII 以外のすべての文字に &#..; 表記を使う」を選択する。
bluegriffon設定2
▲クリックで拡大
これで、半角スペースが「&#160;」に変換される動作を再現できる。
しかし、、、
bluegriffonソース画面4
▲クリックで拡大
日本語の文章が、すべてエンティティ化されてしまった。
※ いろいろな条件を試してみたが、当時の挙動は再現できなかった。 これも、当時と BlueGriffon のバージョンが違うから、だろうか?

そして、
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja">
を使った場合は・・・・
bluegriffonソース画面2
▲クリックで拡大
「ASCII 以外・・・・」でも エンティティ化はおきず、半角スペースも連続したままである。何も変わっていない。

なるほど、だいぶ分かって来たぞ・・・。

という事で、このページの結論

結論は以下である。

過去の「利用状況」を思い出してみる

私は、BlueGriffon で文書作成する際、ずいぶん長い間

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja">

という組み合わせの宣言を行っていた。
今となっては、なぜこの組み合わせで利用していたのか、全く思い出せない・・・、という状態が続いていた。

上にも書いたが、おそらく私は、当時の BlueGriffon で、「XHTML 準拠のファイル」と「HTML5 準拠のファイル」、この両方をなるべくエラーが出ないように読み込んだり、ファイル間でコピペするために、アレコレと試行錯誤し、たどり着いた結果がこのスタイルだったのだろう。

「私の管理するWebページは、99% 以上が HTML5 化している」のに、なんで私は <br /> や <img />タグが出力される形式で編集しているのだろう(過去の私はなぜコレをベストな設定と決めたのだろう・・・)と不思議だったが、ようやく謎が解けた感じである。スッキリした。

メインとなる情報はここまで。

おまけ: 私の BlueGriffon の 設定

以下は、完全に私的なメモ。

「BlueGriffon がもうバージョンアップされない」のであれば、自分専用のかなりムチャな設定にしても、もう問題は起きないよな?と思いついたので、(あとで元に戻せるよう)現時点の設定をメモしておくことにした。

ライセンス画面
ライセンス画面
▲クリックで拡大
たぶん、ここは弄らない

全般設定
設定画面2
▲クリックで拡大

ファイル設定
設定画面3
▲クリックで拡大
何かバグがあるのか「最近使ったファイル」はたまにしか機能してくれない。

文書設定
設定画面4
▲クリックで拡大

ソース設定
設定画面5
▲クリックで拡大
言語が日本語の場合、「オートインデント」や「長い行を折り返す」の挙動が怪しくなるケースが多いので、チェックを外している。

スタイル設定
設定画面6
▲クリックで拡大
現在は、上記の設定。

更新設定
設定画面1
▲クリックで拡大
もう、ここを使う事はないだろう。

詳細設定
設定画面8
▲クリックで拡大
ここは、別途設定ファイルをバックアップし、大幅に弄ってみたい。

ショートカット設定
設定画面9
▲クリックで拡大
また毎日使うようになったら、なにか弄りたい。

あれこれ変更してみて、挙動が変になったら上記を参考に元に戻す予定である。
このページの情報は以上。