# Web プレビュー プラグイン

テキストエディター Mery で現在編集中の文書を、WebView2 コントロールを使用してプレビュー表示するプラグインです。

## 機能

- 現在編集中の文書を WebView2 上でプレビュー表示
- 編集モードに応じて、プレビューの表示/非表示を自動で切り替え

## はじめに

**動作環境**
- Windows 11、10 をサポートしています。
- Mery v3.8.0 以降をインストールしている必要があります。

**アーカイブに含まれるファイル**
- Plugins/WebPreview.dll: プラグイン本体
- WebView2Loader.dll: WebView2 ローダー ライブラリ
- ThirdPartyNotices.txt: サードパーティ製コンポーネントのライセンス
- eula.html: ソフトウェア使用許諾書
- CHANGELOG.txt: 変更ログ
- README.txt: 本ドキュメント

## インストール

1. アーカイブを展開し、`WebPreview.dll` を `Mery.exe` のインストール先の `Plugins` フォルダーにコピーしてください。
2. Mery を起動すると、[ツール] メニューの [プラグイン] にインストールしたプラグインの項目が追加されます。

**Mery v3.4.1 未満の場合***
- `WebView2Loader.dll` を `Mery.exe` のインストール先フォルダーにコピーしてください。

### WebView2 ランタイムについて

- Windows 11 以降、または Windows 10 (1803) 以降では、WebView2 ランタイムを標準で利用できます。
- それ未満のバージョンでは、WebView2 ランタイムをインストールする必要があります。
- WebView2 ランタイムには「エバーグリーン ランタイム配布モード」と「固定バージョン ランタイム配布モード」があります。
	- それぞれに長所と短所があるため、利用環境に合わせていずれかをインストールしてください。

#### エバーグリーン ランタイム配布モード

[こちら](https://developer.microsoft.com/ja-jp/microsoft-edge/webview2/)から「エバーグリーンブートストラップ」または「エバーグリーンスタンドアロンインストーラー」をダウンロードしてインストールしてください。

- インストールには管理者権限が必要です。
- WebView2 ランタイムは自動的に更新され、常に最新の状態に保たれます。
- セキュリティ更新プログラムは自動的に適用されます。
- WebView2 API の仕様変更により、動作しなくなる可能性があります。

#### 固定バージョン ランタイム配布モード

[こちら](https://developer.microsoft.com/ja-jp/microsoft-edge/webview2/)から「固定バージョン」 をダウンロードし、WinRAR などの圧縮/解凍ソフトを使用して展開してください。

展開して作成されたフォルダーを `WebView2` に名前を変更し、`Mery.exe` と同じフォルダーに配置してください。

- インストールに管理者権限は必要ありません。
- WebView2 ランタイムを Mery と一緒に配布できます。
- WebView2 ランタイムのバージョンを固定することで、動作確認済みの環境を配布できます。
- ポータブル版として持ち運べます。
- セキュリティ更新プログラムは自動的に適用されません。

## アップデート

- アーカイブを展開し、`Plugins` フォルダーの内容を Mery の `Plugins` フォルダーに上書きしてください。

## アンインストール

- Mery の `Plugins` フォルダーからアンインストールしたいプラグイン (*.dll) を削除してください。

## 使い方

1. [ツール] メニューから [プラグイン] の [Web プレビュー] を選択すると、プラグインが起動します。
2. ファイルを開くと、カスタム バーに Web プレビューが表示されます。
3. 文書を変更すると、変更がプレビューに反映されます。

## オプション

1. [ツール] メニューから [プラグイン] の [プラグインの設定] を選択すると、[プラグインの設定] ダイアログが開きます。
2. 一覧から [WebPreview] を選択し、[プロパティ] をクリックすると、Web プレビューの設定ダイアログが開きます。

**バーの位置**
- Web プレビューを表示する位置を選択します。

**選択された編集モードで自動的に表示する**
- 選択した編集モードに切り替えたときに、Web プレビューを自動的に表示します。

**終了時に閲覧データを消去する**
- Mery の終了時に、WebView2 の閲覧データをすべて消去します。

## 拡張機能

マクロの `editor.executePlugin` を使用して、Web プレビュー プラグインを操作できます。

**自動更新を有効にする**
- 現在の文書が編集されるたび、自動的に Web プレビューへ反映します。

```javascript
editor.executePlugin("WebPreview.dll", mePluginUserMessage, 0, "");
```

**指定した Web ページを表示する**
- URL を直接指定して Web プレビューに表示します。
- この操作を行うと自動更新は無効になります。

```javascript
editor.executePlugin("WebPreview.dll", mePluginUserMessage, 1, "https://www.haijin-boys.com/");
```

**HTML 文字列を表示する**
- HTML を直接渡して表示します。
- 一時的な確認用ビューを作るときに便利です。
- この操作を行うと自動更新は無効になります。

```javascript
#language = "quickjs"
var html = `
<html>
  <head>
    <style>
    body { background: #0d1117; color: #e6edf3; }
    </style>
  </head>
  <body>
    <h1>Hello, WebPreview!</h1>
    <p>これはマクロから表示した HTML です。</p>
  </body>
</html>
`;
editor.executePlugin("WebPreview.dll", mePluginUserMessage, 2, html);
```

**JavaScript を実行する**
- 現在表示中の WebView 内で JavaScript を実行します。

```javascript
var script = "document.body.innerHTML = '<h2>スクリプトで書き換えました</h2>';";
editor.executePlugin("WebPreview.dll", mePluginUserMessage, 3, script);
```

## 仕様と制限

**ダーク モードで背景色が黒になる問題**
- 一部の WebView2 のバージョンには不具合があり、ダーク モード使用時に背景が黒くなり、文字も黒のまま描画されるため「何も表示されていない」ように見える現象が発生します。
- 自動更新が有効な場合はプラグイン内部でスタイルを適用し、この問題を回避しています。
- マクロから HTML を表示した場合にはこの対策は適用されないため、必要に応じてマクロ側で背景スタイルを指定してください。
- この不具合は WebView2 のバージョンによって改善されたり再発したりしており、現在も安定していません。
- [put_DefaultBackgroundColor not working when WebView2 is in DarkMode](https://github.com/MicrosoftEdge/WebView2Feedback/issues/4389)

## 利用規約

- デジタル コンテンツの性質上、返品、返金、キャンセルはできません。誤ってご購入された場合でも、返金はいたしかねますのでご了承ください。
- 本商品および本商品を含むアーカイブの無断転載、複製、再配布を禁止します。
- 本商品の改変、リバース エンジニアリング、逆コンパイルなどの解析行為を禁止します。
- 詳細については、本商品に同梱の `eula.html` ファイルをご確認ください。

## 免責事項

- 本商品のご利用によって生じた損害やトラブルについて、当方は責任を負いません。
- 不具合の修正には努めますが、バージョンアップや不具合修正について、当方は義務を負いません。
- Mery のバージョンアップにともない、プラグインの仕様は予告なく変更される場合があります。
- 本規約は予告なく変更される場合があります。

本商品および BOOTH の BOOST 機能によるご支援は、現状の提供内容に対するものです。サポートや機能改善を保証するものではありませんので、あらかじめご了承ください。

## サポート

最新版は [Haijin Boys Online](https://www.haijin-boys.com/) および [BOOTH](https://mery.booth.pm/) で公開しています。ご質問や不具合のご報告については、情報共有のために[フォーラム](https://www.haijin-boys.com/discussions)をご利用ください。

ご購入いただいた商品に関するお問い合わせは BOOTH のメッセージ機能もご利用いただけます。なお、メールや X でのサポートは行っておりません。

無料版に関する個別のお問い合わせは受け付けておりません。不具合をご報告いただける場合はフォーラムをご利用ください。なお、返信や修正をお約束するものではありません。

## 謝辞

ご購入いただき、ありがとうございます。いただいたご支援は、開発費、開発環境の整備・更新費、素材やコンポーネント、参考書籍の購入費、ならびにブログや Wiki の運営・維持費として、大切に活用させていただきます。

今後も、より良いソフトウェアを提供できるよう努めてまいりますので、引き続きテキストエディター Mery を応援していただければ幸いです。

## ライセンス

**サードパーティ製コンポーネント**
- [Fluent UI System Icons](https://github.com/microsoft/fluentui-system-icons)

著作権およびライセンスについては、本ソフトウェアに同梱されている `ThirdPartyNotices.txt` ファイルに詳細が記載されています。
