このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"v8.5.02026/3/24
- "{{framework}}-intlayer から {{framework}}-intlayer/html へのインポートの移動"v8.5.02026/3/24
- "HTMLRenderer / useHTMLRenderer / renderHTML ユーティリティを追加"v8.0.02026/1/22
- "HTML解析サポートを追加"v8.0.02026/1/20
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
HTMLコンテンツ / IntlayerのHTML
Intlayer は HTML コンテンツをサポートしており、辞書内にリッチで構造化されたコンテンツを埋め込むことができます。このコンテンツは標準の HTML タグでレンダリングすることも、実行時にカスタムコンポーネントに置き換えることもできます。
HTML コンテンツの宣言
HTML コンテンツは html 関数を使って宣言するか、単に文字列として定義できます。
html 関数を使用して明示的に HTML コンテンツを宣言します。これにより、自動検出が無効になっている場合でも標準タグが正しくマッピングされることが保証されます。
コードをクリップボードにコピー
文字列に一般的なHTMLタグ(例: <p>, <div>, <strong>など)が含まれている場合、Intlayerは自動的にそれを変換します。
コードをクリップボードにコピー
ファイルからHTMLコンテンツをインポートします。現在、file()関数は文字列を返し、タグが含まれている場合はHTMLとして自動検出される点に注意してください。
コードをクリップボードにコピー
html() ノード
html() 関数は、Intlayer v8 の新機能で、辞書内で HTML コンテンツを明示的に定義できるようにします。Intlayer は多くの場合、HTML コンテンツを自動検出できますが、html() 関数を使用するといくつかの利点があります:
- 型安全性:
html()関数を使用すると、カスタムコンポーネントに期待されるプロパティを定義でき、エディタでの補完や型チェックが向上します。 - 明示的な宣言: 自動検出をトリガーする標準的な HTML タグが含まれていない場合でも、文字列が常に HTML として処理されるようにします。
- カスタムコンポーネントの定義:
html()の第 2 引数に、カスタムコンポーネントとその期待されるプロパティ型を定義して渡すことができます。
コードをクリップボードにコピー
HTML ノードで .use() メソッドを使用する場合、提供されたコンポーネントは html() 関数で提供された定義(利用可能な場合)と照らし合わせてチェックされます。
HTML のレンダリング
レンダリングは Intlayer のコンテンツシステムで自動的に処理することも、専用のツールを使って手動で処理することもできます。
自動レンダリング(useIntlayer を使用)
useIntlayer 経由でコンテンツにアクセスすると、HTML ノードは既にレンダリング可能な状態になっています。
HTML ノードはそのまま JSX としてレンダリングできます。標準的なタグは自動で動作します。
コードをクリップボードにコピー
カスタムコンポーネントを提供したりタグを上書きしたりするには .use() メソッドを使用します:
コードをクリップボードにコピー
Vueでは、HTMLコンテンツを組み込みの component を使ってレンダリングできます。
コードをクリップボードにコピー
オーバーライドには .use() を使用します:
コードをクリップボードにコピー
SvelteはHTMLノードを文字列としてレンダリングします。{@html} を使ってレンダリングしてください。
コードをクリップボードにコピー
PreactはJSXでHTMLノードを直接サポートします。
コードをクリップボードにコピー
SolidはJSXでHTMLノードを直接サポートします。
コードをクリップボードにコピー
Angularは [innerHTML] ディレクティブを使用してHTMLコンテンツをレンダリングします。
コードをクリップボードにコピー
カスタムコンポーネントを提供したりタグを上書きしたりするには .use() メソッドを使用します:
コードをクリップボードにコピー
Remix 3 では、HTML ノードは HTML 文字列に解決されます。Remix JSX の innerHTML プロパティ、または html-template ビューの html.raw を使用して挿入します。
コードをクリップボードにコピー
コードをクリップボードにコピー
Remix はデフォルトで補間された値をエスケープします。innerHTMLとhtml.rawはエスケープを回避する2つの方法であり、HTML 文字列に必要なものです。
タグをオーバーライドしたりカスタムコンポーネントをマッピングするには、.use() メソッドを使用します。オーバーライドは HTML 文字列を返す関数です:
コードをクリップボードにコピー
Astro では、HTML ノードは HTML 文字列に解決されます。テンプレート内の set:html ディレクティブ、またはクライアントの <script> 内の innerHTML を使用して挿入します。
コードをクリップボードにコピー
コードをクリップボードにコピー
Astro はデフォルトで{式}をエスケープします。set:htmlはエスケープを回避する方法であり、HTML 文字列に必要なものです。
タグをオーバーライドしたりカスタムコンポーネントをマッピングするには、.use() メソッドを使用します。オーバーライドは HTML 文字列を返す関数です:
コードをクリップボードにコピー
HTMLProviderによるグローバル設定
アプリ全体でHTMLレンダリングをグローバルに設定できます。これは、すべてのHTMLコンテンツで利用可能にしたいカスタムコンポーネントを定義するのに最適です。
コードをクリップボードにコピー
独自の HTML レンダラーを使用することもできます:
コードをクリップボードにコピー
HTML レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
コードをクリップボードにコピー
独自の HTML レンダラーを使用することもできます:
コードをクリップボードにコピー
HTML レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
コードをクリップボードにコピー
独自の HTML レンダラーを使用することもできます:
コードをクリップボードにコピー
HTML レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
コードをクリップボードにコピー
独自の HTML レンダラーを使用することもできます:
コードをクリップボードにコピー
HTML レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
コードをクリップボードにコピー
独自の HTML レンダラーを使用することもできます:
コードをクリップボードにコピー
HTML レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
コードをクリップボードにコピー
独自の HTML レンダラーを使用することもできます:
コードをクリップボードにコピー
HTML レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
Remix にはプロバイダーを保持するコンポーネントツリーがないため、設定はサーバー起動時にシングルトンとして一度だけインストールされます。useHTMLRenderer() によって返されるレンダラーを設定します。useIntlayer によって返される html ノードはそのままレンダリングされます。ノードごとに .use() でタグをオーバーライドします。
コードをクリップボードにコピー
レンダラー自体を遅延読み込みするには installIntlayerHTMLDynamic(async () => …) を使用します。ローダーは最初の呼び出し時にのみ実行されます。
Astro にはプロバイダーを保持するコンポーネントツリーがないため、設定はミドルウェア(サーバー)およびクライアント <script>(ブラウザ)でシングルトンとして一度だけインストールされます。useHTMLRenderer() によって返されるレンダラーを設定します。useIntlayer によって返される html ノードはそのままレンダリングされます。ノードごとに .use() でタグをオーバーライドします。
コードをクリップボードにコピー
レンダラー自体を遅延読み込みするには installIntlayerHTMLDynamic(async () => …) を使用します。ローダーは最初の呼び出し時にのみ実行されます。
手動レンダリングと高度なツール
生のHTML文字列をレンダリングしたり、コンポーネントのマッピングをより細かく制御したい場合は、次のツールを使用してください。
<HTMLRenderer /> コンポーネント
特定のコンポーネントを使用してHTMLの文字列をレンダリングします。
コードをクリップボードにコピー
useHTMLRenderer() フック
事前設定されたレンダラー関数を取得します。
コードをクリップボードにコピー
renderHTML() ユーティリティ
コンポーネント外でのレンダリングのためのスタンドアロンユーティリティ。
コードをクリップボードにコピー
<HTMLRenderer /> コンポーネント
コードをクリップボードにコピー
<HTMLRenderer /> コンポーネント
コードをクリップボードにコピー
useHTMLRenderer() フック
コードをクリップボードにコピー
renderHTML() ユーティリティ
コードをクリップボードにコピー
<HTMLRenderer /> コンポーネント
コードをクリップボードにコピー
useHTMLRenderer() フック
コードをクリップボードにコピー
renderHTML() ユーティリティ
コードをクリップボードにコピー
<HTMLRenderer /> コンポーネント
コードをクリップボードにコピー
useHTMLRenderer() フック
コードをクリップボードにコピー
renderHTML() ユーティリティ
コードをクリップボードにコピー
IntlayerHTMLService サービス
サービスを使用してHTML文字列をレンダリングします。
コードをクリップボードにコピー
useHTMLRenderer() フック
installIntlayerHTML() によって事前設定されたレンダラー関数を取得します。HTML 文字列を返します。
コードをクリップボードにコピー
renderHTML() ユーティリティ
グローバル設定を無視するスタンドアロンユーティリティ。
コードをクリップボードにコピー
useHTMLRenderer() フック
installIntlayerHTML() によって事前設定されたレンダラー関数を取得します。HTML 文字列を返します。
コードをクリップボードにコピー
renderHTML() ユーティリティ
グローバル設定を無視するスタンドアロンユーティリティ。
コードをクリップボードにコピー
オプションリファレンス
これらのオプションは HTMLProvider、HTMLRenderer、useHTMLRenderer、および renderHTML に渡すことができます。
テーブルをモーダルで開き、すべてのデータを明確に表示
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
components | Record<string, any> | {} | HTMLタグまたはカスタムコンポーネント名をコンポーネントにマッピングするオブジェクト。 |
renderHTML | Function | null | デフォルトのHTMLパーサーを完全に置き換えるカスタムレンダリング関数(Vue、Svelte、Remix、Astroプロバイダー)。 |
注: ReactおよびPreactでは、標準のHTMLタグが自動的に提供されます。これらを上書きしたりカスタムコンポーネントを追加したい場合にのみ、componentsプロップを渡してください。