
Web パブリッシングのWebテンプレート システムを使用すると、Web デザイナーや開発者はWeb テンプレートを使用して、検索結果などのカスタムWeb ページを自動的に生成できます。これにより、静的 Web ページ要素が再利用され、 Web 要求パラメータに基づいて動的要素が定義されます。Web テンプレートは静的コンテンツをサポートし、基本的な構造と外観を提供します。開発者は、コンテンツ管理システム、Web アプリケーション フレームワーク、およびHTML エディターからテンプレートを実装できます 。
概要
Webテンプレート システムは、次の要素で構成されます。
- テンプレートエンジン:システムの主要な処理要素。 [1]
- コンテンツ リソース:リレーショナル データベース、XMLファイル、LDAPディレクトリ、その他の種類のローカル データまたはネットワークデータなどからのさまざまな種類の入力データ ストリーム。
- テンプレート リソース:テンプレート言語に従って指定されたWeb テンプレート。
テンプレートとコンテンツ リソースはテンプレート エンジンによって処理および結合され、Web ドキュメントが大量生産されます。この記事では、Web ドキュメントには、 HTTP、HTTPS、またはその他のインターネット プロトコルを介して Web 上で送信するためのさまざまな出力形式が含まれます。
テンプレートエンジン

例
モデルは通常リレーショナル データベースに保持されるため、 MVCアーキテクチャの残りのコンポーネントはコントロールとビューです。最も単純なシステムでは、これら 2 つは分離されていません。ただし、関心の分離の原則を適用することで、関係を完全に分離できます。
たとえば、ビュー テンプレートは次のようになります。
<!DOCTYPE html>
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >< title >サイト</ title ></ head >
< body >< h1 data-xp = "title" > <!-- プレースホルダー --> </ h1 ></ body >
</ html >
次に、コントロール テンプレートはビューを読み込み、XPathアドレス指定[オリジナル調査? ]を使用してデータベースからコンポーネントを挿入します。次に例を示します。
<?php
$doc = new DOMDocument ;
$doc -> preserveWhiteSpace = false ;
$doc -> Load ( 'view.html' );
$titlenode = $doc -> createTextNode ( "Like this" );
$xpath = new DOMXPath ( $doc );
$xpath -> registerNamespace ( "h" , "http://www.w3.org/1999/xhtml" );
$query = "//h:*[@data-xp='title']/comment()" ;
$entries = $xpath -> query ( $query );
foreach ( $entries as $entry ) {
$entry -> parentNode -> replaceChild ( $titlenode , $entry );
}
echo $doc -> saveXML ();
?>
テンプレートシステムの種類
Web ブラウザと Web サーバーは、クライアント サーバーアーキテクチャです。サイトでは、パフォーマンスを向上させるためにWeb キャッシュも使用されることがよくあります。5 つのテンプレート システム タイプは、プレースホルダーを実際のコンテンツに置き換えてページを組み立てるタイミングに基づいて分類されます。
- サーバー側 – 実行時の置換はWebサーバー上で行われます
- クライアント側 – 実行時の置換はウェブブラウザで行われる
- エッジサイド – 実行時の置換は、Webサーバーとブラウザ間のプロキシで行われます。
- 外部サーバー – 静的Webページはオフラインで作成され、Webサーバーにアップロードされます。実行時の置換はありません。
- 分散型 – 実行時の置換は複数のサーバーで行われる
テンプレート言語には次のようなものがあります:
- 埋め込み型またはイベント駆動型。
- シンプル、反復可能、プログラム可能、または複雑。
- コンソーシアムによって定義されるか、非公開で定義されるか、またはオープン実装によって事実上定義されます。所有権は仕様の安定性と信頼性に影響します。ただし、ほとんどの法域では言語仕様は著作権で保護できないため、制御が絶対的になることはほとんどありません。
テンプレート エンジンのソース コードは、独自のものでもオープン ソースのものでもかまいません。
多くのテンプレート システムは、より大きなプログラミング プラットフォームまたはフレームワークのコンポーネントです。これらは「プラットフォームのテンプレート システム」と呼ばれます。一部のテンプレート システムには、別のテンプレート言語またはエンジンを代用するオプションがあります。[引用が必要]
言語サポート
Perl、Ruby、C、Javaなどのプログラミング言語は、ネイティブで、またはアドオン ライブラリやモジュールを通じてテンプレート処理をサポートします。JavaServer Pages (JSP)、PHP、Active Server Pages ( VBScript、JScriptまたはその他の言語を使用した ASP) は、それ自体が Web テンプレート エンジンの例です。 これらのテクノロジは通常、サーバー側のテンプレート システムで使用されますが、「エッジ側」プロキシでの使用や静的ページ生成にも適応できます。
静的サイトジェネレーター
静的サイトジェネレーターは、markdownやasciidocなどのフラットテキスト入力ファイルを使用して静的 Web ページを生成するエンジンです。例としては、 Jekyll (Liquid、Ruby )、Hugo ( Goテンプレート)、Pelican ( Jinja2、Python ) などがあります。
静的 HTML エディター

HTML エディタは、静的な Web ページのみを作成するために Web テンプレート システムを使用することが多い。これらは、すぐに展開できるように「クッキー カッター」Web サイトを大量生産するために使用される既製のWeb デザインと見なすことができます。また、 CSSスタイルの代わりにテーマが含まれていることもよくあります。一般に、テンプレート言語はエディタのソフトウェアでのみ使用されます。[5]
FrontPageとDreamweaver は、かつてテンプレート サブシステムを備えた最も人気のあるエディターでした。Flash Web テンプレートは、Macromedia Flash を使用して視覚的にインタラクティブなサイトを作成します。
多くのサーバー側テンプレート システムには、出力ページをサーバー上に公開するオプションがあります。公開されるページは静的です。これは、 Vignetteなどのコンテンツ管理システムでは一般的ですが、サーバー外生成とは見なされません。ほとんどの場合、この「公開オプション」はテンプレート システムに干渉せず、 Wgetなどの外部ソフトウェアによって作成できます。
サーバー側システム

人々は、このタスクに適合した既存のソフトウェアを使用して、テンプレートから生成されたサーバー側の動的ページを使い始めました。この初期のソフトウェアは、Web での使用に適合し、CGIで実行されるプリプロセッサとマクロ言語でした。次に、シンプルですが関連性のあるテクノロジは、 SSIから始まった拡張モジュールで直接実行されることでした。
多くのテンプレート システムは、通常、サーバー側のテンプレート システムとして使用されます。
技術的には、多くの「サーバー側組み込みスクリプト言語」で使用されている、HTML(またはXMLなど)内にプログラミング言語を埋め込む方法論もテンプレートです。これらはすべて埋め込み複合言語です。
サーバー側のテンプレート エンジンとして使用されるプリプロセッサもあります。例:
エッジサイドシステム
エッジサイド テンプレートおよびインクルード システム。「エッジサイド」とは、クライアント (ブラウザ) と元のサーバーの間のスペースに存在する Web サーバーを指します。これらは、「リバース プロキシ」サーバーと呼ばれることもあります。これらのサーバーは一般に、画像やページ フラグメントなどのコンテンツをキャッシュし、これを効率的にブラウザに配信することで、元のサーバーの負荷とトラフィックを軽減する役割を担っています。
Basic Edge Side Includes (ESI) は、SSI に似た言語です。ESI は、コンテンツ配信ネットワーク用に実装されています。ESI テンプレート言語は、JavaScript と Ajax を使用して、またはブラウザの「プラグイン」を介して、Web ブラウザに実装することもできます。
クライアント側システム

多くの Web ブラウザでは、XML データにXSLTスタイルシートを適用してデータを XHTML ドキュメントに変換し、ブラウザ自体にテンプレート機能を提供できます。他のシステムでは、 JavaScriptまたは他のクライアント側スクリプト言語を使用して、
ブラウザにテンプレート機能を実装します。
- 口ひげ
- リスのような
- ハンドルバー
分散システム
最も単純な形式はトランスクルージョン(HTML フレーム)です。その他の場合には、動的な Web ページが必要になります。
例:
参照
参考文献
- ^ 「テンプレートエンジン」。phpwact.org wiki。2012年12月4日時点のオリジナルよりアーカイブ。 2013年1月7日閲覧。
- ^ Niemeyer, Patrick (2002). Learning Java . セバストポル: O'Reilly. ISBN 0-596-00285-8。
- ^ Manolescu, Dragos (2006).プログラム設計のパターン言語 5 . 読み物: Addison-Wesley Professional. ISBN 0-321-32194-4。
- ^ Fowler, Martin (2003).エンタープライズ アプリケーション アーキテクチャのパターン. ボストン: Addison-Wesley. ISBN 0-321-12742-0。
- ^ MacDonald, Matthew (2015). ウェブサイトの作成: 失われたマニュアル。第 8 章 > 複数のページに同じコンテンツを配置する > Web テンプレート > メモ ボックス: O'Reilly Media, Inc. ISBN 9781491936177. 2016年1月19日閲覧。
{{cite book}}: CS1 maint: location (link) - ^ “{{mustache}}” . 2013年10月15日閲覧。
- ^ jodyburns. 「Topsite Templating System」 . 2013年10月15日閲覧。
9. 無料の電子商取引ウェブサイト テーマ MG Technologies のブログおよびウェブサイト テーマの情報ポータル。
外部リンク
- 2009 年の JavaScript テンプレート ライブラリの比較
- テンプレートエンジンにおける厳密なモデルとビューの分離の強制
- テンプレートベースの Web アプリケーションで効果的なモデルとビューの分離を実現する二重モデル アプローチ
- グラフによる PHP テンプレート エンジンの比較
- いくつかの Python テンプレート エンジンの比較/ベンチマークとテンプレート エンジンに関する一般的な考察
- web-mode.elは、Webテンプレートを編集するためのemacsメジャーです。
