1章 はじめに
  1. はじめに
  2. WebRelease の利用環境
  3. 製品のライセンスについて
2章 ユーザ管理
  1. WebRelease のユーザ管理
  2. ユーザの登録
  3. ユーザの休止
  4. ユーザの削除
  5. ログインユーザ一覧
  6. ログイン履歴
  7. ユーザ登録情報の一括処理
3章 サイトの作成
  1. サイトの作成
  2. サイト設定
  3. スタッフの登録と役割の設定
  4. スタッフごとのテンプレート設定
  5. スタッフのフォルダへのアクセス制限
  6. スタッフの承認ステップ
  7. スタッフの解任
  8. サイトリソース
  9. リソースの登録
  10. リソースの編集
  11. リソースの一括移動
  12. リソース名の一括設定
  13. リソースの一括削除
  14. リソースフォルダ
  15. 辞書の管理
  16. 外部リンクのチェック
  17. サイトのエキスポート
  18. サイトのインポート
  19. サイトの閉鎖
  20. サイトの削除
  21. サイトの操作履歴
4章 FTPの設定
  1. FTP の設定
  2. プライマリチャネルの設定
  3. FTP 記録の参照
  4. FTP の実行状況
  5. FTP 予約(定時起動)の設定
5章 テンプレート
  1. テンプレート
  2. テンプレートの作成
  3. 文書型の定義
  4. 要素のタイプ
  5. テンプレートの展開
  6. 要素参照
  7. 関数呼び出し
  8. 演算子
  9. テンプレートリソース
  10. リソース参照
  11. メソッド
  12. 拡張タグ wr-if wr-then wr-else
  13. 拡張タグ wr-switch wr-case wr-default
  14. 拡張タグ wr-conditional wr-cond
  15. 拡張タグ wr-for
  16. 拡張タグ wr-break
  17. 拡張タグ wr-variable
  18. 拡張タグ wr-append
  19. 拡張タグ wr-clear
  20. 拡張タグ wr-return
  21. 拡張タグ wr-error
  22. 拡張タグ wr-- と wr-comment
  23. WYSIWYG エディタ設定
  24. テンプレート・プロファイラ
  25. テンプレートのリビジョン
  26. テンプレートのダウンロード
  27. テンプレートのアップロード
  28. テンプレートの上書きアップロード
  29. テンプレートのフォルダ
  30. テンプレートの状態
  31. テンプレートの削除
  32. ページ作成後のテンプレート修正
  33. 入力フィールドの短縮表示
  34. 作成したページの一覧
  35. テンプレートを利用可能なスタッフの設定
  36. テンプレートの操作履歴
  37. テンプレートを参照している目次の一覧
  38. テンプレートの検索
6章 コンポーネント
  1. コンポーネント
  2. コンポーネントの使用例
  3. コンポーネントとセレクタ
7章 ページの作成
  1. ページの作成の手順
  2. ページのプレビュー
  3. 実機でのプレビュー
  4. ページの状態
  5. ページの編集と編集完了
  6. ページリソース
  7. リソースの登録
  8. リソースの編集
  9. リソースの一括移動
  10. リソースの一括削除
  11. リソースフォルダ
  12. ページの公開と公開終了
  13. ページの削除
  14. ページのリビジョン管理
  15. リンク元一覧
  16. ページ内の外部リンク一覧
  17. ページの公開状況
  18. スケジュール一覧
  19. フォルダ
  20. バージョニングフォルダ
  21. ページの一括処理
  22. 一括ページ登録
  23. html と関連リソースの zip 取り込み
  24. WYSIWYG エディタの使い方
  25. Markdown の使い方
  26. ページの操作履歴
  27. コンテンツ中の語句のチェック
  28. ページの検索
8章 マルチデバイス配信
  1. 多チャネル化
  2. チャネル別コンテンツの生成
  3. チャネル選択機能
9章 承認プロセスの設定
  1. 承認ステップの定義
  2. 承認プロセスの定義
  3. 承認プロセスをフォルダに関連付ける
10章 承認プロセスによる公開管理
  1. ページの公開承認依頼
  2. 承認と差戻
  3. 承認プロセスとページの公開終了
  4. 承認依頼フォルダ
  5. 一括承認依頼
  6. 一括承認
  7. 緊急対応としてのページの公開と公開終了
  8. 承認依頼の削除
  9. 進行中の承認依頼の管理
11章 その他の機能
  1. ダッシュボード
  2. 英語インタフェース
  3. タイムゾーンの指定
12章 システムの運用管理
  1. WebRelease の停止と起動
  2. データのバックアップ
  3. メモリ設定
  4. メールサーバの設定
  5. Proxy サーバの設定
  6. その他のシステム設定
  7. 証明書のインポート
  8. ストレージの管理
  9. 操作履歴
  10. ログファイルのダウンロード
  11. WebRelease のバージョンアップ
  12. ライセンスのアップグレード
  13. 期間ライセンスコードの更新
  14. WebRelease の Uninstall
13章 索引
  1. 関数索引
  2. オブジェクト索引
14章 Appendix
  1. サポートされているタイムゾーン
  2. プレビュー時の URL 書き換え機能
  3. 正規表現
  4. 要素名・リソース名・変数名・メソッド名

HTMLComment オブジェクト

HTMLComment オブジェクトは html 中のコメントを表すオブジェクトです。

paraseHtml() 関数で html テキストをパースすると、テキスト中の html コメントの部分は HTMLComment オブジェクトになります。例えば


<p><!-- コメントです -->こんにちは<em>今日は</em>良い天気です</p>

という html 断片において <!-- コメントです --> の部分が HTMLComment オブジェクトで表現されます。

HTMLCommnet オブジェクトは、HTMLElement や HTMLDocument オブジェクトの select() メソッドでは探すことができません。HTMLElement または HTMLDocument オブジェクトに対して getAllComments() メソッドを実行することで、HTMLComment オブジェクトの配列を入手することができます。または、先頭の子要素がコメントであるような HTMLElement オブジェクトに対して unwarp() メソッドを実行するなどしても HTMLComment オブジェクトを入手することができます。

parseHtml() を起点とする、既存の html を利用する手法を使う場合、コメントが役立つ場合もあります。例えば、加工対象の html 中に、コメントを使ってテンプレート側でコードを挿入するポイントをマーキングしておくことができます。特定のパターンのコメントを、何らかのメソッドの実行結果で置き換えるなどして html を加工することもできるでしょう。

after()

コメントの後ろに html を挿入します。

書式

after(html)
html:

コメントの後ろに挿入する html テキストを指定します。

戻り値:

HTMLEComment オブジェクト。挿入された html ではなく、after() のターゲットになった HTMLComment が返される点に注意してください。

このメソッドは、指定された html がコメントの後ろに追加される点を除いて before() メソッドと同じです。

before()

コメントの前に html を挿入します。

書式

before(html)
html:

要素の前に挿入する html テキストを指定します。

戻り値:

HTMLEComment オブジェクト。挿入された html ではなく、before() のターゲットになった HTMLComment が返される点に注意してください。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記入内容
<!DOCTYPE html>
<html>
<head><title>Title</title></head>
<body>
<!-- copyright -->
</body>
</html>

この html に対して、<!-- copyright --> というコメントを copyright 宣言に書き換えてから展開に組み込んでみましょう。

展開例(1)
<!DOCTYPE html>
<html>
<head><title>Title</title></head>
<body>
<wr-variable name="body" value="parseHtml(htmlText).body()" />
<wr-for list="body.getAllComments()" variable="aComment">
<wr-if condition='trim(aComment.getData()) == "copyright"'>
%aComment.before("<span class=\"copyright\">Copyright © 2015 FrameWorks Software, Inc. All rights reserved.</span>").remove()%
</wr-if>
</wr-for>
%body.html()%
</body>
</html>

parseHtml() 関数で htmlText をパースし、パース結果から body 部分を取り出して変数 body に入れておきます。

取り出した body 要素に対して getAllComments() メソッドを呼び出し body 内の全てのコメントを抽出します。HTMLComment の抽出は select() ではできませんので getAllComments() を使用します。抽出結果を wr-for の list= に渡してループを実行します。ループ内では、個々のコメントに対して処理を行います。

コメントの内容は getData() メソッドで取り出します。この結果を trim() 関数で前後の空白を除去した結果が "copyright" という文字列になっている場合、そのコメントをコピーライト宣言に書き換えます。まず before() メソッドでコメントの直前にコピーライト宣言を挿入します。その上で、そのコメントはもはや不要になったので remove() で削除しています。

最後に body.html() を実行し、コメントをコピーライト宣言に書き換えた後の body の内側を展開しています。

実行結果は下記のようになるでしょう。

展開例(1)の実行結果
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<span class="copyright">Copyright © 2015 FrameWorks Software, Inc. All rights reserved.</span>
</body>
</html>

ヒント

after() も参照してください。

getData()

このコメントに記述されているコメントのテキスト部分を返します。

書式

getData()
戻り値:

このコメントに記述されているコメントのテキスト部分を文字列で返します。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記入内容
<!DOCTYPE html>
<html>
<head></head>
<body>
<!-- コメント#1 -->
</body>
</html>

この html に対して、body 内にあるコメントの内容だけを抽出して展開に組込んでみましょう。

展開例(1)
<!DOCTYPE html>
<html>
<head><title>HTMLComment.getData() の example</title></head>
<body>
<wr-for list="parseHtml(htmlText).body().getAllComments()" variable="comment">
%trim(comment.getData())%
</wr-for>
</body>
</html>

parseHtml() 関数で htmlText をパースし、パース結果から body 部分を取り出し、getAllComments() メソッドを呼び出してコメントのリストを取得します。

getAllComments() メソッドの戻り値は HTMLComment オブジェクトの配列です。そのまま wr-for の list= に指定することができます。

個々のコメントを trim(comment.getData()) メソッドで展開しています。getData() の戻り値は前後に空白文字がついている場合があるので trim() 関数でそれらを除去しています。

実行結果は下記のようになるでしょう。

展開例(1)の実行結果
<!DOCTYPE html>
<html>
<head>
<title>HTMLComment.getData() の example</title>
</head>
<body>
コメント#1
</body>
</html>

nodeName()

要素の型の名前を返します。

書式

nodeName()
戻り値:

要素の型の名前を文字列で返します。HTMLEComment オブジェクトに対してこのメソッドを呼び出すと "HTMLComment" が返されます。

outerHtml()

このコメントを html で返します。

書式

outerHtml()
戻り値:

このコメントの html 表現を文字列で返します。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記入内容
<!DOCTYPE html>
<html>
<head></head>
<body>
<!-- コメント#1 -->
</body>
</html>

この html に対して、body 内にあるコメントだけを抽出して展開に組込んでみましょう。

展開例(1)
<!DOCTYPE html>
<html>
<head><title>HTMLComment.outerHtml() の example</title></head>
<body>
<wr-for list="parseHtml(htmlText).body().getAllComments()" variable="comment">
%comment.outerHtml()%
</wr-for>
</body>
</html>

parseHtml() 関数で htmlText をパースし、パース結果から body 部分を取り出し、getAllComments() メソッドを呼び出してコメントのリストを取得します。

getAllComments() メソッドの戻り値は HTMLComment オブジェクトの配列です。そのまま wr-for の list= に指定することができます。

個々のコメントを outerHtml() メソッドで展開しています。

実行結果は下記のようになるでしょう。

展開例(1)の実行結果
<!DOCTYPE html>
<html>
<head>
<title>HTMLComment.outerHtml() の example</title>
</head>
<body>
<!-- コメント#1 -->
</body>
</html>

ヒント

HTMLElement オブジェクトにも同様のメソッドがあります。

parent()

このコメントの親要素を返します。

書式

parent()
戻り値:

このコメントの親要素の HTMLElement オブジェクトを返します。

使用方法については HTMLElement オブジェクトの parent() メソッドを参照してください。

remove()

remove() はこのコメントを文書から削除します。

書式

remove()
戻り値:

null です。削除されたコメントにはアクセスできなくなりますので HTMLComment は返されません。

利用例 1

htmlText という複数行テキストの要素を持つテンプレートがあり、そのテンプレートで作成したページの、この要素の値に下記のような html が記述されている場合を考えます。

htmlText の記述
<!DOCTYPE html>
<html>
<head><title>Title</title></head>
<body>
<!-- コメントです -->
<p>
remove() メソッドはコメントを削除するときに使用します。
<!-- これもコメントです -->
</p>
</body>
</html>

この htmlText 中にあるコメントを取り出して削除してから、この html の body 部分を展開に組み込んでみましょう。

展開例(1)
<!DOCTYPE html>
<html>
<head><title>Title</title></head>
<body>
<wr-variable name="body" value="parseHtml(htmlText).body()" />
<wr-for list="body.getAllComments()" variable="aComment">
%aComment.remove()%
</wr-for>
%body.html()%
</body>
</html>

parseHtml() 関数で htmlText をパースし、パース結果から body を取り出し、変数 body に格納します。

取り出した body 要素に対して getAllComments() メソッドを呼び出し body 内の全てのコメントを抽出します。HTMLComment の抽出は select() ではできませんので getAllComments() を使用します。抽出結果を wr-for の list= に渡してループを実行します。ループ内では、個々のコメントを remove() しています。

最後に body.html() を実行して、コメントが削除されたあとの body 要素の内側の html を生成して展開に組み込んでいます。

実行結果は下記のようになるでしょう。

単回例(1)の実行結果
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<p> remove() メソッドはコメントを削除するときに使用します。 </p>
</body>
</html>

wrap()

このコメントを、与えられた html でラップします。

書式

wrap(html)
html:

コメントを wrap する html を指定します。

戻り値:

HTMLComment オブジェクト。wrap される前の HTMLComment が返される点に注意してください。

使用方法については HTMLElement オブジェクトの wrap() メソッドを参照してください。