【解決手段】ホームページの作成を支援する装置10が、ユーザ操作に基づいて該ホームページを構成するコンテンツを作成する手段と、新たに作成された新規コンテンツと、既に作成されている既存コンテンツとの位置関係を判定する手段と、該コンテンツの複数のレイアウトルールのうちの該位置関係に適合するレイアウトルールに基づいて該ホームページのソースコードを編集する手段とを備える。
【発明を実施するための形態】
【0032】
本願は、一般ユーザがホームページの編集画面上で簡単でかつ直感的な操作によりホームページを作成することができるようにホームページの作成を支援する4つの発明を含んでいる。
【0033】
第1の発明は、ホームページの編集画面上でホームページがデザインされたとき、そのデザインのホームページをブラウザで表示するためのソースコードを生成する方法である。
【0034】
第2の発明は、ホームページの編集画面として、ホームページを構成するコンテンツを表示するためのプレビュー画面と、ホームページのソースコードを表示するためのソース画面と、コンテンツの階層構造を表示する階層構造画面とを表示し、ホームページのコンテンツとソース画面の要素と階層構造のノードとをこれらの相互の対応関係が認識されるように関連付けるものである。
【0035】
第3の発明は、ホームページの編集画面上でコンテンツを配置するための複数のブロックが、少なくとも1つのブロックが他のブロック内に含まれるように配置されたとき、ブロックに対する編集操作を、他のブロックに含まれる個々のブロック単位での操作とするか、他のブロック単位での操作とするかを切り替えるようにしたものである。
【0036】
第4の発明は、作成されたホームページのソースコードに含まれる隣接するタグの種類、タグに含まれる属性、および属性値を判別し、判別結果が所定の条件を満たすとき、隣接するタグを1つのタグに置き換えてソースコードを整理するものである。
【0037】
以下、本発明の実施形態について説明する。
【0038】
上述した第1〜第4の発明と以下の実施形態(図面)との対応関係は以下のとおりである。
【0039】
第1の発明:実施形態1(
図1〜30)
第2の発明:実施形態2(
図31〜
図50)
第3の発明:実施形態3(
図51〜
図58)
第4の発明:実施形態4(
図59〜
図66)
(実施形態1)
本発明の実施形態1は、ホームページの作成をコンピュータにより支援する方法であり、ホームページの編集画面上でデザインされたホームページのコンテンツを、ボックスモデルのレイアウトルールに従ってソースコードに変換するものであるが、ホームページ作成の支援に用いる装置の概要を説明した後、本題のホームページのコンテンツをソースコードに変換する方法を具体的に説明する前に、前提となるボックスモデルの考え方、ボックスのスタイルを規定するのに用いられる代表的なスタイルシートであるCSS、ボックスモデルのレイアウトルールを説明する。
【0040】
その後、本題のホームページの作成方法、およびコンピュータによるホームページの作成支援処理を説明する。
【0041】
この実施形態の説明の流れを以下の実施形態1の目次で示す。
【0042】
〔実施形態1の目次〕
(1)ボックスモデル〔
図2〕
(1−1)要素
(1−2)ボックス
(2)CSSの適用方法〔
図3〜
図4〕
(2−1)第1の方法
(2−2)第2の方法
(3)ボックスのレイアウトルール〔
図5〜
図14〕
(3−1)ブロックボックスのレイアウトルール〔
図5〜
図9〕
(3−2)インラインボックスのレイアウトルール〔
図10〜
図14〕
(4)ホームページの作成方法
(4−1)編集画面の説明〔
図15〕
(4−2)ブロック要素のソースコードの作成〔
図16〜
図24〕
(4−3)インライン要素のソースコードの作成〔
図25〜
図29〕
(5)ホームページの作成処理(
図30)
以下、詳細に実施形態1を説明する。
【0043】
図1は、本発明の実施形態1によるホームページの作成を支援する装置(以下、HP作成支援装置ともいう。)10を示す。
【0044】
この実施形態1のHP作成支援装置10は、情報の処理を行うコンピュータ10aと、ユーザの操作によりコンピュータ10aに操作情報Sを入力するための入力操作部13aと、コンピュータ10aからの表示データDに基づいて画像を表示する表示部14aとを有する。
【0045】
コンピュータ10aは、プロセッサ11と、メモリ12と、入力インターフェース13と、出力インターフェース14と、入出力インターフェース15と、ネットワーク制御部16とを含む。プロセッサ11とメモリ12と入力インターフェース13と出力インターフェース14と入出力インターフェース15とネットワーク制御部16とは、データバス17を介して相互に接続されている。入力操作部13aは、キーボード、マウス、タッチパネルなどの入力デバイスを含み、これらの入力デバイスは入力インターフェース13に接続されている。出力インターフェース14には、表示部14aとしての液晶ディスプレイなどの表示装置が接続されている。入出力インターフェース15には外部記憶装置15aなどが接続されている。ネットワーク制御部16にはインターネットなどのネットワークNが接続されている。なお、入力インターフェース13には、スキャナなども入力デバイスとして接続され得る。また、出力インターフェース14にはプリンタなどが接続され得る。
【0046】
ここで、メモリ12には、プロセッサ11に入力操作部13aからの操作信号Sに基づいてホームページの作成の支援を行わせるプログラムが格納されており、プロセッサ11は、メモリ12に格納されているプログラムにより操作信号Sに基づいてホームページの作成を支援する処理を実行する。また、メモリ12には、プロセッサ11をテキストエディッタとして機能させたり、ブラウザとして機能させたりするための一般的なオペレーションシステムが格納されていることは言うまでもない。
【0047】
ホームページの作成を支援する処理は、ホームページを編集するための編集画面Seを表示部14aに表示する処理と、ユーザ操作による操作信号Sに基づいてホームページを構成する1以上のコンテンツの入力、描画、あるいは貼り付けを行う処理と、編集画面Se上でのコンテンツの作成状況に合わせてソースコードをボックスモデルに従って生成する処理とを含む。
【0048】
従って、ユーザがHP作成支援装置10を用いてホームページを作成する場合、ユーザは、ホームページのソースコードを編集する必要はなく、ユーザは、HP作成支援装置10の編集画面Seの所望の領域でテキストを入力したり、画像の描画や貼付けを行ったりするだけで、イメージ通りのデザインのホームページを直感的に作成することができる。
【0049】
以下、上記目次に従って具体的な説明を行う。
【0050】
(1)ボックスモデル
まず、ボックスモデルについて説明する。
【0051】
ボックスモデルは、ホームページのソースコードを構成する1以上の要素の各々に長方形の枠(以下、ボックスという。)が設定されており、要素の内容(つまりホームページを構成するコンテンツとして表示される部分)は、ボックスの内部に配置されているという考え方である。従って、ボックスモデルを用いてホームページを作成する場合、ボックスのレイアウトルールやボックスの属性値(ボックスの高さや幅、隣接するボックスとの間隔など)により要素の内容(コンテンツ)の位置決めが可能である。
【0052】
ここで、要素にはブロック要素とインライン要素とがある。ブロック要素は、ホームページのコンテンツを定義する要素であり、インライン要素は、ホームページのコンテンツに所定の役割を与える要素である。ブロック要素が生成するボックスがブロックボックスであり、ブロックボックスは、ブロック要素の内容全体を含む長方形の枠である。インライン要素が生成するボックスがインラインボックスであり、インラインボックスは、インライン要素の内容全体を含む高さが1行分の帯状の枠である。
【0053】
図2は、ボックスモデルを説明するための図であり、
図2(a)は、HTML要素1の記述の一例を示し、
図2(b)は、表示画面上でのHTML要素に対応するデフォルトのボックスBの配置を示し、
図2(c)は、ボックスBのスタイルを指定する記述Dcを示し、
図2(d)は、表示画面上でのスタイルが指定されたボックスBの配置を示す。
【0054】
(1−1)要素
ソースコードは、HTML(ハイパーテキスト マークアップ ランゲージ)やXHTML(エクステンシブル ハイパーテキスト マークアップ ランゲージ)などのマークアップ言語で記述されている。なお、マークアップ言語は、コンピュータ言語の一種で、文章の構造(段落など)や見栄え(フォントサイズなど)に関する指定を文章とともにテキストファイルに記述するための言語である。
【0055】
例えば、HTMLで記述されたソースコード(HTMLソース)に含まれる個々の要素(HTML要素)は、表示すべき内容を開始タグと終了タグとで挟み込んで得られる記述である。例えば、
図2(a)に示すp要素1は、表示すべき内容「テキスト」2を開始タグ「<p>」3と終了タグ「</p>」4とで挟み込んで得られた記述Dhからなる。
【0056】
なお、この明細書では、HTML要素という表現は、HTMLで記述されたすべての要素を包括的に示すもの、html要素という表現は、内容をhtmlタグである「<html>」および「</html>」で挟み込んで得られる記述(ソースコード)を示すものとして使い分けるものとする。
【0057】
(1−2)ボックス
図2(a)に示すp要素1の記述「<p>テキスト</p>」Dhをブラウザで読み込むと、
図2(b)に示すように、p要素1の内容「テキスト」2が表示される。p要素1に対しては、
図2(b)に示すようにブラウザの表示画面(以下、単に表示画面ともいう。)Sd上に長方形の枠(ボックス)Bが設定されているが、
図2(a)に示すp要素1の記述Dhでは、ボックスBの幅や高さが設定されていないので、ボックスBは表示画面Sdの横幅一杯に広がっており、ボックスBの高さはブラウザでのデフォルト値となっている。また、
図2(a)に示すp要素1の記述Dhでは、ボックスBの境界の幅や色が設定されていないため、p要素1の記述Dhをブラウザで読み込んでも、
図2(b)に示すように、表示画面Sdにはp要素1の内容「テキスト」2のみしか表れず、p要素1に対応するボックスBは存在しないように見える。なお、
図2(b)では、説明の都合上、実際には見えないp要素1に対応するボックスBを二点鎖線で示している。
【0058】
このようなp要素1に対応するボックスB(
図2(b))の幅および高さ、さらにボックスの外縁に対する内容(コンテンツ)の位置などのボックスの属性を規定することにより、配置すべき位置を示す情報を持たないコンテンツをボックスのレイアウトルールに従って配置することができる。
【0059】
なお、HTML要素のボックスの属性の設定には、タグを用いることができ、さらにHTML要素に対するスタイルを規定するスタイルシートを用いることもできる。スタイルシートは、HTMLとは別の言語であり、スタイルシートを用いることでHTML要素のスタイルを効率よく規定することができる。代表的なスタイルシートとしては、CSS(カスケードスタイルシート)が挙げられる。さらに、スタイルシートは、2以上のボックスの位置関係(レイアウト)を指定することも可能である。また、隣接するボックスの位置関係(レイアウト)は、スタイルシートに代えて特定のタグ(例えば、brタグ「<br/>」)により指定することもできる。
【0060】
例えば、
図2(c)に示す属性情報Dcは、p要素1に対応するボックスBのスタイル(属性)を規定する情報である。この属性情報DcによりボックスBのスタイルを規定すると、ボックスBには、
図2(d)に示すように、p要素1の内容「テキスト」2が表示される部分(内容領域)Rcと、内容領域Rcの周囲に位置するボックスの境界Rbと、内容領域Rcとボックスの境界Rbとの間の余白(パディング領域)Rpと、ボックスの境界Rbと他のボックスの境界との間の余白(マージン領域)Rmとが規定される。
【0061】
具体的には、ボックスBの内容領域Rcの横幅Wおよび高さHは、属性情報Dcの横幅プロパティ「width:50px」および高さプロパティ「height:20px」で指定される。ボックスBのパディング領域Rpの幅Dpは、属性情報Dcのパディングプロパティ「padding:20px」で指定され、ボックスBのマージン領域Rmの幅Dmは、属性情報Dcのマージンプロパティ「margin:20」で指定される。
【0062】
(2)CSSの適用方法
次に、CSSをHTML要素に適用する方法を具体的に説明する。
【0063】
CSSをHTML要素に適用する方法は2つあり、以下、それぞれの方法を、
図2(a)に示すp要素1を例に挙げて簡単に説明する。
【0064】
図3は、HTML要素にCSSを適用する方法を説明するための図であり、
図3(a)は、HTML要素毎にCSSを適用する方法(第1の方法)を示し、
図3(b)は、複数のHTML要素に一括してCSSを適用する方法(第2の方法)を示し、
図3(c)は、CSSを適用するHTML要素を指定するための記述を示す。
【0065】
(2−1)第1の方法
例えば、
図3(a)に示すように、ソースコードのhead要素H0の中で宣言要素(<META http−equiv=“Content−Style−Type” content=“text/css”>)D0によりCSSをスタイルシートとして宣言し、body要素B0の中で、
図2(a)に示すp要素1の開始タグ3にstyle属性31を付加し、style属性31の属性値として属性情報Dcを設定することで、p要素1にCSSが適用される。
【0066】
(2−2)第2の方法
この方法は、
図3(b)に示すように、ソースコードのhead要素Haの中で宣言要素(<style type=“text/css”>)DeによりCSSをスタイルシートとして宣言し、body要素Baの中でCSSを適用するという方法である。ただし、body要素Baの中でCSSを適用するには、body要素Baの中のどのHTML要素のどの属性をどのような状態にするかを指定する必要があり、そのために、スタイルを設定するための記述Esが用いられる。スタイルを設定するための記述Esは、
図3(c)に示すように、セレクタDs、プロパティDcp、値Dcvを含む。プロパティDcpおよび値Dcvにより、
図3(b)に示すように、HTML要素にCSSを適用するための属性情報Dc(
図2(c)参照)が作成される。ここで、セレクタDsはスタイルを設定する対象となる要素を示し、プロパティDcpは設定の対象となる属性を示し、値Dcvは属性をどのような状態に設定するかを示す値である。従って、第2の方法では、body要素Baの中でスタイルを設定する必要はない。このため、多くの要素を含むbody要素内での記述を分かりやすくできる。
【0067】
なお、このようなボックスは、すべてのHTML要素に対して存在するので、以下、1つのホームページのソースコードに複数のHTML要素が含まれている場合に各HTML要素に設定されるボックスの位置関係を簡単に説明する。
【0068】
図4は、ホームページのソースコードに含まれる複数の要素が形成する複数のボックスの位置関係を説明するための図である。
【0069】
図4(a)に示すソースコードS1には、HTML要素として、body要素E1、div要素E2、p要素E3、u要素E4が含まれている。このソースコードS1をブラウザで読み込んだ場合、表示画面Sdには、
図4(b)に示すように、内容(1)C1、内容(2)C2、内容(3)C3、内容(4)C4が表示される。このとき、
図4(c)に示すように、各HTML要素、つまり、body要素E1、div要素E2、p要素E3、u要素E4のそれぞれに対して、ボックスB1、B2、B3、B4が確保されている。ここで、body要素E1、div要素E2、p要素E3はブロック要素であり、u要素E4はインライン要素である。
【0070】
このようなHTML要素が生成するボックスは、配置されるべき位置を示す情報を持たないが、これらのボックスは、HTML要素へのボックスのレイアウトに関する情報(CSSなどのスタイルシートやbrタグなどの特定のタグによる情報)の適用に応じて通常レイアウトルールあるいは通常外レイアウトルールに従って表示画面Sd上で位置決めされる。
(3)ボックスのレイアウトルール
次に、ボックスのレイアウトルールを具体的に説明する。
【0071】
(3−1)ブロックボックスのレイアウトルール
図5は、ブロック要素に対してCSSが適用されていない場合のブロックボックスのレイアウトルール(通常レイアウトルール)を説明するための図である。
【0072】
図5(a)に示すソースコードScaは、タイトル要素「サンプルa」を含むhead要素Hdaと、これに続くbody要素Bdaとを含む。body要素Bda内には、ブロック要素である2つのp要素Em1aおよびEm2aが続けて記述されている。p要素Em1aの内容(コンテンツ)C1aは、「この段落の横幅は、160pxで、高さは、80pxです。」であり、p要素Em2aの内容(コンテンツ)C2aは、「この段落の横幅は、100pxで、高さは、100pxです。」である。
【0073】
これらのブロック要素Em1a、Em2aにCSSが適用されていない場合、ブロック要素Em1a、Em2aに対応する2つのブロックボックスBx1a、Bx2aは、
図5(b)に示すように、ブロックボックスの通常レイアウトルールに従って配置される。具体的には、ブロック要素Em2aに対応するブロックボックスBx2aは、ブラウザの表示画面Hpa上で、ブロック要素Em2aの前に記述されたブロック要素Em1aに対応するブロックボックスBx1aの下側に配置される。ただし、この場合、ブロックボックスBx1aおよびBx2aは表示されず、表示画面Hpaには、ブロックボックスBx1aおよびBx2a内に位置するコンテンツC1aおよびC2aのみが上下に並んで表示される。
【0074】
図6は、第1の方法でブロック要素に対してCSSが適用されている場合のブロックボックスの通常レイアウトルールを説明するための図である。
【0075】
図6(a)に示すソースコードScb1は、タイトル要素「サンプルb1」を含むhead要素Hdb1に続くbody要素Bdb1に含まれる2つのブロック要素(p要素)Em1bおよびEm2bに対して、第1の方法(
図3(a)参照)でCSSが適用されている点で
図5(a)に示すソースコードScaとは実質的に異なる。
【0076】
従って、ブロック要素Em1b、Em2bに対応するブロックボックスBx1b、Bx2bでは、
図6(b)に示すように、適用されたCSSに従って、横幅、高さ、パディング領域の幅、マージン領域の幅が設定されている。
【0077】
ただし、これらのブロック要素Em1b、Em2bに対しては、対応するブロックボックスBx1b、Bx2bのレイアウトはCSSにより指示されていないので、後続のブロック要素Em2bに対応するブロックボックスBx2bは、通常レイアウトルールに従って先に記述されているブロック要素Em1bに対応するブロックボックスBx1bの下側に配置される。この場合、表示画面Hpbには、コンテンツC1b、C2bが対応するブロックボックスBx1b、Bx2b内に収まるように上下に並んで表示される。ただし、ブロックボックスBx1b、Bx2bは表示されない。
【0078】
なお、
図7は、第2の方法でブロック要素に対してCSSを適用した場合のブロックボックスの通常レイアウトルールを示している。
図7(a)に示すソースコードScb2は、第2の方法でCSSを適用した点以外は
図6(a)に示すソースコードScb1と同一である。具体的には、ソースコードScb2では、head要素Hdb2の中で、宣言要素(<style type=“text/css”>)DeによりCSSを宣言し、test1属性Ds1b、test2属性Ds2bで、適用したいスタイルを宣言し、宣言したスタイルを各ブロック要素En1b、En2bのclass属性により指定することで、body要素Bdb2の中でCSSを適用している。なお、このソースコードScb2に基づく表示(
図7(b))は、ソースコードScb1に基づく表示(
図6(b))と同一である。
【0079】
図8は、第1の方法でブロック要素に対してCSSが適用されている場合のブロックボックスの通常外レイアウトルールを説明するための図である。
【0080】
図8(a)に示すソースコードScc1では、タイトル要素「サンプルc1」を含むhead要素Hdc1に続くbody要素Bdc1に含まれる2つのブロック要素(p要素)Em1cおよびEm2cには、ブロックボックスのレイアウトも指定されている点で、
図6(a)に示すソースコードScb1と異なる。
【0081】
具体的には、p要素Em1c、Em2cでは、p要素Em1c、Em2cが生成するブロックボックスBx1c、Bx2cの横幅、高さ、パディングおよびマージンの指定に加えて、p要素Em2cに対応するブロックボックスBx2cを、p要素Em2cの前に記述されたp要素Em1cに対応するブロックボックスBx1cの右側に配置することがレイアウト情報「float:left」により指定されている。
【0082】
このソースコードScc1によれば、後のブロック要素Em2cに対応するブロックボックスBx2cは、
図8(b)に示すように、CSSが規定するブロックボックスの1つの通常外レイアウトルールに従って、表示画面Hpcで前のブロック要素Em1cに対応するブロックボックスBx1cの右側に左上方向に詰めて配置される。この場合、表示画面Hpcには、コンテンツC1c、C2cが、対応するブロックボックスBx1c、Bx2c内に収まるように左右に並んで表示される。ただし、ブロックボックスBx1c、Bx2cは表示されない。
【0083】
ただし、この通常外レイアウトルールによれば、表示画面上に、前のブロック要素Em1cに対応するブロックボックスBx1cの右側に後のブロック要素Em2cに対応するブロックボックスBx2c全体を配置するスペースがない場合は、後のブロック要素Em2bに対応するブロックボックスBx2cは、前のブロック要素Em1cに対応するブロックボックスBx1cの下側に配置される。
【0084】
なお、通常外レイアウトルールは、後のブロック要素Em2cに対応するブロックボックスBx2cを、前のブロック要素Em1cに対応するブロックボックスBx1cの右側に配置するものに限定されず、通常外レイアウトルールは、例えば、後のブロック要素Em2cに対応するブロックボックスBx2cを、前のブロック要素Em1cに対応するブロックボックスBx1cの左側あるいは上側に配置するものでもよい。その場合は、レイアウト情報「float:right」などのブロックボックスのレイアウトを指定する情報が用いられ得る。
【0085】
また、
図9は、第2の方法でブロック要素に対してCSSを適用した場合のブロックボックスの通常外レイアウトルールを示している。
図9(a)に示すソースコードScc2は、第2の方法でCSSを適用した点以外は
図8(a)に示すソースコードScc1と同一である。具体的には、ソースコードScc2では、head要素Hdc2の中で、宣言要素(<style type=“text/css”>)DeによりCSSを宣言し、test1属性Ds1c、test2属性Ds2cでブロックボックスのレイアウトを含むスタイルを宣言し、各ブロック要素En1c、En2cのclass属性で、宣言したスタイルを指定することにより、body要素Bdc2の中でCSSを適用している。なお、このソースコードScc2に基づく表示(
図9(b))は、ソースコードScc1に基づく表示(
図8(b))と同一である。
【0086】
(3−2)インラインボックスのレイアウトルール
図10は、インライン要素に対してCSSが適用されていない場合のインラインボックスのレイアウトルール(通常レイアウトルール)を説明するための図である。
【0087】
インラインボックスの通常レイアウトルールによれば、HTMLにより記述された文書において記述順に並ぶ複数のインライン要素に対応する複数のインラインボックスは、基本的に、後のインライン要素に対応する後のインラインボックスが先のインライン要素に対応する先のインラインボックスの右側に行を変えずに続けて配置される。ただし、表示画面Hpd上に、先のインラインボックスの右側に後のインラインボックスの全体を配置するスペースがない場合は、先のインラインボックスの右側には、後のインラインボックスの先頭部分のみが配置され、後のインラインボックスの残りの部分は、行を変えて先のインラインボックスの下側に配置される。
【0088】
例えば、
図10(a)に示すソースコードScdは、タイトル要素「サンプルd」を含むhead要素Hddと、これに続くbody要素Bddとを含む。body要素Bdd内には、2つのインライン要素Em1d、Em2dが含まれている。これらのインライン要素にCSSが適用されていない場合、表示画面Hpd上には、
図10(b)に示すように、2つのインライン要素Em1d、Em2dのコンテンツC1d、C2dは、通常レイアウトルールに従って表示画面Hpd上に左上端から、文章を横書きするときの経路に沿って並ぶように表示される。ここで、インライン要素Em1dの内容(コンテンツ)C1dは、「このボックスは、uインラインボックスです。(下線付き)」であり、インライン要素Em2dの内容(コンテンツ)C2dは、「このボックスは、bインラインボックスです。(太字表示)」である。
【0089】
図11は、第1の方法でインライン要素に対してCSSが適用されている場合のインラインボックスの通常レイアウトルールを説明するための図である。
【0090】
図11(a)に示すソースコードSce1は、タイトル要素「サンプルe1」を含むhead要素Hde1に続くbody要素Bde1に含まれる各要素Em1e、Em2eに対して第1の方法(
図3(a)参照)でCSSが適用されている点で、
図10(a)に示すソースコードScdとは実質的に異なる。
【0091】
従って、インライン要素Em1e、Em2eに対応するインラインボックスBx1e、Bx2eでは、
図11(b)に示すように、適用されたCSSに従って、行の間隔、パディング、マージンが設定されている。
【0092】
ただし、これらのインライン要素Em1e、Em2eに対しては、対応するインラインボックスのレイアウトはCSSにより指示されていないので、各インライン要素Em1e、Em2eに対応するインラインボックスBx1e、Bx2eは、
図11(b)に示すように、インラインボックスの通常レイアウトルールに従って、CSSを設定していない場合と同様に、後のインライン要素Em2eに対応するインラインボックスBx2eが文章の横書きの経路に沿って先のインライン要素Em1eに対応するインラインボックスBx1eの右側に配置される。ただし、インラインボックスBx1eの右側にインラインボックスBx2eの全体を配置するスペースがないときは、インラインボックスBx2eの表示画面Hpeからはみ出す部分が次の行に配置される。この場合も、表示画面Hpeには、インラインボックスBx1e、Bx2eは表示されず、コンテンツC1e、C2eが、対応するインラインボックスBx1e、Bx2e内に収まるように文章の横書きの経路に沿って表示される。
【0093】
なお、
図12は、第2の方法でインライン要素に対してCSSを適用した場合のインラインボックスの通常レイアウトルールを示している。
図12(a)に示すソースコードSce2は、第2の方法でCSSを適用した点以外は
図11(a)に示すソースコードSce1と同一である。具体的には、ソースコードSce2では、head要素Hde2の中で、宣言要素(<style type=“text/css”>)DeによりCSSを宣言し、test属性Dseで、適用したいスタイルを宣言し、インライン要素En1e、En2eのclass属性で、宣言したスタイル属性を指定することにより、body要素Bde2の中でCSSを適用している。なお、このソースコードSce2に基づいた表示(
図12(b))は、ソースコードSce1に基づいた表示(
図11(b))と同一である。
【0094】
図13は、第1の方法でインライン要素に対してCSSが適用され、レイアウトの指定にbrタグが用いられている場合のインラインボックスの通常外レイアウトルールを説明するための図である。
【0095】
図13(a)に示すソースコードScf1は、タイトル要素「サンプルf1」を含むhead要素Hdf1に続くbody要素Bdf1に含まれる2つのインライン要素Em1f、Em2fに加えて、これらのインライン要素Em1f、Em2fの間に、インラインボックスのレイアウトを指定するように配置されたbrタグ「<br/>」Em12を含む点で、
図11(a)に示すソースコードSce1と基本的に異なる。具体的には、
図13(b)に示すように、先に記述されたインライン要素Em1fに対応する先のインラインボックスBx1fの右側に、後続のインライン要素Em2fに対する後のインラインボックスBx2fの全体を配置するスペースがない場合は、先のインラインボックスBx1dの下側に後のインラインボックスBx2fが配置される。
【0096】
この場合も、表示画面Hpfには、コンテンツC1f、C2fが、対応するインラインボックスBx1f、Bx2f内に収まるように表示され、インラインボックスBx1f、Bx2fは表示されない。
【0097】
なお、
図14は、第2の方法でインライン要素に対してCSSを適用し、さらにレイアウトの指定にbrタグを用いた場合のインラインボックスの通常外レイアウトルールを示している。
図14(a)に示すソースコードScf2は、第2の方法でCSSを適用した点以外は
図13(a)に示すソースコードScf1と同一である。具体的には、ソースコードScf2では、head要素Hdf2の中で、宣言要素(<style type=“text/css”>)DeによりCSSを宣言し、test属性Dsfで、インラインボックスのレイアウトではないスタイルを宣言し、各要素En1f、En2fのclass属性で、宣言したスタイルを指定することにより、body要素Bdf2の中でCSSを適用している。さらにインラインボックスBx1f、Bx2fのレイアウトが、2つのインライン要素En1f、En2fの間に位置するbrタグ「<br/>」En12により規定されている。
【0098】
なお、このソースコードScf2に基づいた表示(
図14(b))は、ソースコードSce1に基づいた表示(
図13(b))と同一である。
【0099】
また、インラインボックスの通常外レイアウトルールは、上記のように、既存のインラインボックスの下側に新たなインラインボックスを配置するルールに限定されず、特定のタグにより、場合によってはCSSにより自由に設定することができる。例えば、既存のインラインボックスの上側などに新たなインラインボックスを配置してもよい。
【0100】
(4)ホームページの作成方法
次に、ユーザが
図1に示すHP作成支援装置10を用いてホームページを作成する方法を説明する。
【0101】
上述したようにソースコードのすべてのHTML要素が表示画面上で所定のレイアウトルールに従ってボックスを生成し、HTML要素の内容がボックス内に表示されることから、このHP作成支援装置10は、ユーザ操作に基づいて、編集画面Se上でコンテンツを表示するための領域をボックスとして設定し、このボックス内に作成されたコンテンツに対応するHTML要素の記述をレイアウトルールに従って生成するように構成されている。
【0102】
(4−1)編集画面の説明
図15は、HP作成支援装置10により提供されるホームページの編集画面を示す図である。
【0103】
編集画面Seは、ホームページのコンテンツを作成するための操作画面Reoと、作成されたコンテンツを表示するためのプレビュー画面Repと、ホームページの編集に用いる素材を選択するための素材選択画面Resと、ソースコードを編集するためのソース画面Rceとを含んでいる。
【0104】
操作画面Reoには、複数の操作ボタンBu1〜Bu6と、数値を入力するための複数の値入力領域V1〜V2、P1〜P4、M1〜M4とが配置されている。
【0105】
操作ボタンBu1は、新規ブロックボックスを作成するための作成ボタン、操作ボタンBu2は、作成されたブロックボックス内にコンテンツとしてのテキストを入力するための編集ボタン、操作ボタンBu3は、選択したボックスを複写するためのコピーボタン、操作ボタンBu4は、選択したボックスを削除するための削除ボタン、操作ボタンBu5は、ボックス内に含まれる複数のボックスの各々に対する個別の操作を禁止するためのロックボタン、操作ボタンBu6は、ボックスの輪郭(パディング領域の外縁)を表す線(外線)の表示と非表示とを切り替えるための切替ボタンである。なお、操作ボタンBu5の機能については、実施形態3で、コンテンツを配置するための領域(実施形態3ではブロックという。)に対する操作を一括操作と個別操作とで切り換える発明として詳しく説明する。
【0106】
値入力領域V1は、ボックスの幅(内容領域の幅にその左右の内側余白の大きさ、つまりその左右のパディング領域の幅を加えた値)を示す数値を入力するための領域、値入力領域V2は、ボックスの高さ(内容領域の高さにその上下の内側余白の大きさ、つまりその上下のパディング領域の幅を加えた値)を示す数値を入力するための領域である。値入力領域P1〜P4はボックスの内側余白(パディング領域の幅)を設定する数値を入力するための領域であり、値入力領域P1、P1、P3、P4に入力された数値により、ボックスの左側、上側、右側、下側の内側余白が設定される。値入力領域M1〜M4は、ボックスの外側余白(マージン領域の幅)を設定する数値を入力するための領域であり、値入力領域M1、M2、M3、M4に入力された数値により、ボックスの左側、上側、右側、下側の外側余白が設定される。
【0107】
プレビュー画面Repには、作成されたコンテンツおよびコンテンツに対して設定されているボックスが表示される。ただし、ボックスは操作ボタンBu6の操作により表示したり非表示としたりすることができる。
【0108】
素材選択画面Resには、例えば複数の素材Ce1〜Ce4が表示されており、これらの素材には、予めこのHP作成支援装置10で作成されたもの、あるいはインターネット上のサイトからダウンロードしたもの、あるいは記録メディアから複写したものなどが含まれ得る。これらの素材は、編集画面Se上でコンテンツとして用いられるものであり、それぞれの素材毎に、素材をホームページのコンテンツとして表示画面上で表示するためのソースコードがメモリ12に格納されている。なお、素材は
図15などに示すものに限定されず、ホームページのコンテンツとして利用できるものであればどのようなものでもよい。
【0109】
ソース画面Rceには、編集画面Se上でのコンテンツの作成段階に応じたソースコードが表示される。コンテンツの作成前の初期状態では、ソース画面Rceには、CSSの適用の宣言(略記)を含むhead要素Srh0と、空のbody要素Srb0とを含むソースコードSr0が表示されている。
【0110】
なお、
図15を用いて説明した編集画面Seは、編集画面の一例であり、操作ボタンBu1〜Bu6の配列、さらにプレビュー画面Rep、ソース画面Rce、素材選択画面Resの配置や形状は
図15に示したものに限定されない。プレビュー画面Repとソース画面Rceとは上下に並べて配置するのではなく、左右に配置してもよく、素材選択画面Resはなくてもよい。操作ボタンが配置された操作領域Reoも必ずしも決められた位置に配置する必要はなく、マウスの右クリックなどの操作により編集画面Se上の任意の位置に現れるようにしてもよい。
【0111】
(4−2)ブロック要素のソースコードの作成
まず、ユーザが
図6(b)(あるいは
図7(b))に示すように、上下に配置された2つのコンテンツC1b、C2bを含むホームページを作成する場合を説明する。
【0112】
ユーザは、HP作成支援装置10の編集画面Seを開き、作成ボタンBu1を操作する。この作成ボタンBu1の操作により、
図16に示すように、編集画面Seのプレビュー画面Repには、このプレビュー画面Repの幅いっぱいに広がった新規ブロックボックスBr1aが作成され、ソース画面Rceには、新規ブロックボックスBr1aの作成が反映されたソースコードSr1aが生成される。
【0113】
このソースコードSr1aのbody要素には、新規ブロックボックスBr1aに対応する記述が、div要素「<div></div>」Er1aとして形成される。なお、ブロックボックスに対応する記述は、意味(スタイル)を持たないdiv要素に限定されず、p要素など意味を持つ他のブロック要素でもよいが、このHP作成支援装置10では、ブロック要素に対してclass属性で後からCSSなどのスタイルシートを用いて意味を持たせるときの自由度が制限されないように、新たに作成するブロック要素には基本的に意味を持たないdiv要素を用いるようにしている。
【0114】
この状態で、編集画面Seの値入力領域V1に数値「160」を入力すると、ブロックボックスBr1aの幅が設定される。これにより、
図17に示すように、プレビュー画面Repに表示されているブロックボックスBr1a(
図16参照)はその横幅が設定されたブロックボックスBr1bに変化する。また、ソース画面Rceでは、ソースコードSr1aのdiv要素Er1aの編集により、div要素「<div class = “w160”></div>」Er1bを含むソースコードSr1bが作成される。
【0115】
次に、ユーザがテキストを入力する対象として、作成した新規ブロックボックスBr1aをプレビュー画面Rep上でのクリック操作により選択し、編集ボタンBu2を操作すると、
図18に示すように、テキスト編集画面TSeが表示され、テキスト情報の入力が可能となる。
【0116】
テキスト編集画面TSeには、テキスト入力領域Dtxと、操作ボタンBu21〜Bu24を含むボタン配置領域Rbuとが含まれている。なお、操作ボタンBu21は、テキストの選択部分に下線を付すためのボタン、操作ボタンBu22は、テキストの選択部分を斜体にするためのボタン、操作ボタンBu23は、テキストの選択部分を太字にするためのボタン、操作ボタンBu24は入力したテキストデータをブロックボックスBr1bに表示されるようにするための保存ボタンである。ただし、操作ボタンはこれらに限定されず、テキストの色や背景色を設定するためのボタン、テキストに他のスタイルを設定するためのボタンなどが設けられていてもよい。
【0117】
ユーザがテキスト入力領域Dtxに、例えばコンテンツとして「この段落の横幅は、160pxで、高さは、80pxです。」と入力し、保存ボタンBu24を操作すると、
図19に示すように、プレビュー画面Repに表示された新規ブロックボックスBr1b(
図17参照)が、コンテンツ「この段落の横幅は、160pxで、高さは、80pxです。」Cr1を含むブロックボックスBr1cに変更され、ソース画面RceではソースコードSr1bがソースコードSr1cに変更される。ソースコードSr1cでは、ソースコードSr1bのbody要素内のdiv要素「<div class = “w160”></div>」Er1bが、div要素「<div class = “w160”>この段落の横幅は、160pxで、高さは、80pxです。</div>」Er1cに変化している。
【0118】
なお、ブロックボックスの横幅あるいは高さの一方のみを指定した状態では、ブロックボックスへのテキストの入力によりテキストの占有領域がブロックボックス内に収まらなくなると、ブロックボックスは、横幅あるいは高さのうちのそのサイズが指定されていない方向に沿ってテキストの入力に伴って拡張する。
【0119】
さらに、編集画面Seの値入力領域V2、P1、P2、M1、M2にそれぞれ数値「80」、「10」、「10」、「10」、「10」を入力すると、ブロックボックスBr1cの高さ、左側の内側余白、上側の内側余白、左側の外側余白、上側の外側余白が設定される。これにより、
図20に示すように、プレビュー画面Repでは、横幅のみが設定された新規ブロックボックスBr1c(
図19参照)が、横幅、高さ、左側および上側の内側余白、左側および上側の外側余白が設定された新規ブロックボックスBr1dに変化し、ソース画面RceではソースコードSr1cがソースコードSr1dに変更される。ソースコードSr1dでは、div要素Er1dの記述は、「<div class = “w150 h70 pt010 pl010 mt010 ml010”>この段落の横幅は、160pxで、高さは、80pxです。</div>」に変化しており、編集画面Seでの数値の入力が反映されている。
【0120】
その後、例えば、2つ目のコンテンツを作成するために、操作ボタンBu1を押すと、1つ目のブロックボックスBr1dの下側に
図16に示すように新規ブロックボックスが配置され、この新規ブロックボックスに対して横幅「100」、高さ「100」、左側の外側余白「10」、上側の外側余白「10」を設定すると、
図21に示すように、新規ブロックボックスが横幅「100」、高さ「100」、左側の外側余白「10」、上側の外側余白「10」が設定されたブロックボックスBr2aとなる。このとき、新規ブロックボックスの生成に応じて、ソース画面Rceでは、ソースコードSr1d(
図20参照)がソースコードSr1eに変更される。この場合の既存のブロックボックスBr1dに対する新規ブロックボックスBr2aの配置は、
図6および
図7で説明したように通常レイアウトルールに従った配置であるので、ソースコードSr1eでは、ブロックボックスBr2aに対応する要素として、ブロックボックスのレイアウトを指定する情報を含まないdiv要素Er2aが生成される。div要素Er2aの記述は、「<div class = “w100 h100 mt010 ml10”></div>」である。
【0121】
その後は、新たに作成したブロックボックスBr2a内にテキストの入力を行い、さらに左側の内側余白「10」、上側の内側余白「10」を設定すると、
図22に示すように、プレビュー画面Repでは、コンテンツCr1およびCr2が上下に配置されたホームページが作成され、ソース画面Rceでは、div要素Er2aがdiv要素Er2bに変更されることにより、ソースコードSr1e(
図21参照)がソースコードSr1fに変更される。ここで、div要素Er2bの記述は、「<div class = “w90 h90 pt010 pl010 mt010 ml010”>この段落の横幅は、100pxで、高さは、100pxです。</div>」である。
【0122】
一方、ユーザが
図8(b)(あるいは
図9(b))に示すように、左右に配置された2つのコンテンツC1c、C2cを含むホームページを作成する場合は、
図21に示すように既存のブロックボックスBr1dの下側に新規ブロックボックスBr2aを作成した後、
図23に示すように、この新規ブロックボックスBr2aを既存のブロックボックスBr1dの右側にマウスのドラッグ操作などにより移動させると、ソース画面RceではソースコードSr1eがソースコードSr1gに変更される。なお、移動後の新規ブロックボックスBr2aは、説明の都合上、ブロックボックスBr2cとする。
【0123】
この場合、既存のブロックボックスBr1dに対する移動後の新規ブロックボックスBr2cの配置は、通常外レイアウトルールの1つに従った配置であるので、ソースコードSr1gでは、ブロックボックスBr2cに対応する要素として、ブロックボックスのレイアウトを指定する情報「f1」を含むdiv要素Er2cが生成される。div要素Er2cの記述は、「<div class = “w100 h100 mt010 ml10 f1”></div>」である。
【0124】
また、既存のブロックボックスBr1dに対応するdiv要素Er1dも、div要素Er1dの記述にブロックボックスのレイアウトを指定する情報「f1」を付加した記述のdiv要素Er1eに書き換えられる。さらに、div要素Er2cに続くHTML要素として、ブロックボックスが強制的に横並びに配置される情報「f1」による効果を阻止するためのdiv要素Er21が生成される。div要素Er21の記述は「<div class=“r3”><div>」である。
【0125】
その後は、新たに作成したブロックボックスBr2cにテキストの入力を行い、左側の内側余白「10」、上側の内側余白「10」を設定することにより、
図24に示すように、コンテンツCr1およびCr2が左右に配置されたホームページが作成され、同時にソースコードSr1gがソースコードSr1hに変化する。具体的には、div要素Er2cは、div要素Er2d「<div class = “w90 h90 pt010 pl10 mt010 ml10 f1”>この段落の横幅は、100pxで、高さは、100pxです。</div>」に変化する。
【0126】
なお、ブロックボックスBr1dおよびBr2c内へのテキストの入力などのブロックボックスに対する編集は、これらのブロックボックスを作成した後は随時行うことができ、ブロックボックスの領域をクリックしてテキストの入力対象とするブロックボックスを選択し、その後編集ボタンBu2を押すことによりテキスト編集画面TSeが表示され、選択したブロックボックスへのテキストの入力が可能となる。
【0127】
さらに、上記コンテンツの作成の説明では、ブロックボックスの中に他のブロックボックスが配置されている場合は示していないが、1つのブロックボックス内に少なくとも1つの他のブロックボックスが含まれる場合でも、それぞれのブロックボックスに対するテキストの入力などの編集操作は、上述したようにブロックボックスに他のブロックボックスが含まれていない場合と同様に行われる。ここで、ブロックボックスの中にブロックボックスを配置する方法は、例えば、ブロックボックスをクリックなどにより選択した状態で、作成ボタンBu1を押すことによりブロックボックス内にブロックボックスが配置される。既存のブロックボックスを選択せずに作成ボタンBu1を押した場合は、新たなブロックボックスは既存のブロックボックスの下側に配置される。
【0128】
また、ブロックボックスに他のブロックボックスが含まれる階層的なブロックボックスの配置は、ブロックボックスに他のブロックボックスが含まれ、さらに他のブロックボックスにその他のブロックボックスが含まれるといった複数階層の配置となっていてもよい。
【0129】
(4−3)インライン要素のソースコードの作成
例えば、ユーザが
図11(b)(あるいは
図12(b))に示すように、2つのコンテンツC1e、C2eを含むホームページを作成する場合、ユーザは作成ボタンBu1を操作する。この作成ボタンBu1の操作により、
図16に示すように、編集画面Seには新規ブロックボックスBr1aが作成され、編集画面Seのプレビュー画面Repには、作成された新規ブロックボックスBr1aが表示される。また、ソース画面Rceでは、ソースコードSr1aのbody要素内に、新規ブロックボックスBr1aに対応するdiv要素「<div></div>」Er1aが付加される。
【0130】
この状態で、例えば、編集画面Seの値入力領域V1、V2、P1、P2、M1、M2に数値「530」、「80」、「10」、「10」、「10」、「10」を入力すると、ブロックボックスBr1aの幅、高さ、左側の内側余白、上側の内側余白、左側の外側余白、上側の外側余白が設定される。これにより、
図25に示すように、プレビュー画面Repには、幅、高さ、左側の内側余白、上側の内側余白、左側の外側余白、上側の外側余白が設定された新規ブロックボックスBr3が表示される。ソース画面Rceに表示されたソースコードSr3には、div要素「<div class = “w520 h70 pt010 pl010 mt010 ml010”></div>」Er3が生成される。なお、上述したように、装置の仕様上、ソースコードに示されるブロックボックスの幅、高さは、編集画面Seの値入力領域V1、V2に示される幅、高さから、設定された左右、上下の内部余白の値を差し引いた値となっている。
【0131】
次に、ユーザがテキストを入力する対象として、作成した新規ブロックボックスBr3をプレビュー画面Rep上でのクリック操作により選択し、編集ボタンBu2を操作すると、テキスト編集画面TSeが表示され、テキスト情報の入力が可能となる。
【0132】
図26に示すように、テキスト編集画面TSeのテキスト入力領域Dtxに、例えばコンテンツ「このボックスは、uインラインボックスです。このボックスは、bインラインボックスです。」を入力すると、プレビュー画面RepのブロックボックスBr3内には、
図27に示すように、1つのコンテンツ「このボックスは、uインラインボックスです。このボックスは、bインラインボックスです。」Cr3が生成される。コンテンツCr3が生成されたとき、編集画面Seのソース画面Rceに表示されたソースコードSr30には、div要素「<div class = “w520 h70 pt010 pl010 mt010 ml010”>このボックスは、uインラインボックスです。このボックスは、bインラインボックスです。</div>」Er30が含まれている。
【0133】
さらにそのコンテンツの前半の記述「このボックスは、uインラインボックスです。」に操作ボタンBu21により下線を付し、その後半の記述「このボックスは、bインラインボックスです。」を操作ボタンBu23により太字にして保存ボタンBu24を操作すると、
図28に示すように、プレビュー画面Repに表示された新規ブロックボックスBr3の内部に、2つのコンテンツCr3aおよびCr3bを含むコンテンツCr31が表示される。このようにブロックボックスBr3内に表示されるブロック要素のコンテンツCr3のスタイル(下線付き文字や太字文字など)を設定することにより、スタイルを規定するタグに対応してインラインボックスが生成される。
【0134】
この場合は、2つのコンテンツCr3a、Cr3bはインライン要素の内容であり、これらのコンテンツは、対応するインラインボックスBr3a、Br3b内に表示される。
【0135】
これらのインラインボックスBr3a、Br3bの配置は、後続のインライン要素に対応するインラインボックスが、先のインライン要素に対応するインラインボックスと同じ行に、このインラインボックスの右側に続けて配置された通常レイアウトルールに一致した配置である。従って、ソースコードSr31では、これらのインライン要素Er3a、Er3bの記述は、
図28に示すように、これらのインラインボックスBr3a、Br3bの位置関係を示す情報を含まない記述となっている。なお、インライン要素Er3aにおけるspan要素のclass属性の属性値“e1”は、CSSによりアンダーラインを指定する属性値であり、インライン要素Er3bにおけるspan要素のclass属性の属性値“tw1”は、CSSにより太字を指定する属性値である。
【0136】
一方、
図28に示すように2つのコンテンツCr3a、Cr3bが横書きの経路に沿って並んでいる状態で、後のコンテンツCr3bをマウスのドラッグ操作により、
図29に示すように、2つのコンテンツCr3a、Cr3bが上下に並ぶように移動させた場合は、これらのコンテンツはインラインボックスの通常外レイアウトルールの1つに従うこととなる。この場合、
図29に示すように、プレビュー画面Repに表示された新規ブロックボックスBr3の内部に、上下に配置された2つのコンテンツCr3aおよびCr3bを含むコンテンツCr32が表示される。ソースコードSr32では、これらのインライン要素Er3c、Er3dの記述は、これらのインラインボックスBr3a、Br3bの位置関係を示す情報を含むこととなる。具体的には、インライン要素として、span要素Er3c、Er3dがインラインボックスBr3c、Br3dのレイアウトを指定する情報(brタグ「<br />」)Ercdを挟むようにこれらのspan要素Er3c、Er3dが生成される。なお、インライン要素Er3cにおけるspan要素のclass属性の属性値“e1”は、CSSによりアンダーラインを指定する属性値であり、インライン要素Er3dにおけるspan要素のclass属性の属性値“tw1”は、CSSにより太字を指定する属性値である。
【0137】
なお、インラインボックスBr3aおよびBr3b内へのテキストの入力などの編集も、ブロックボックスの場合と同様にこれらのインラインボックスが作成された後は随時行うことができる。
【0138】
次に、HP作成支援装置10のコンピュータ10aで、編集画面Seでのコンテンツの位置関係に基づいてコンテンツに対応するHTML要素の記述を生成する処理を説明する。
【0139】
なお、
図15〜
図29に示すソースコードは、このHP作成支援装置10に特有のソースコードであり、このHP作成支援装置10でホームページのソースコードが完成した後、特有のソースコードは、
図5〜
図14で説明した一般的なソースコードに自動的に変換される。
【0140】
具体的には、
図22に示すホームページのソースコードSr1fは、
図6(a)あるいは
図7(a)に示すソースコードScb1あるいはScb2に変換される。
図24に示すホームページのソースコードSr1hは、
図8(a)あるいは
図9(a)に示すソースコードScc1あるいはScc2に変換される。
【0141】
図28に示すホームページのソースコードSr31は、
図11(a)あるいは
図12(a)に示すソースコードSce1あるいはSce2に変換される。
図29に示すホームページのソースコードSr32は、
図13(a)あるいは
図14(a)に示すソースコードScf1あるいはScf2に変換される。
【0142】
なお、上述したホームページの作成方法では、ユーザがプレビュー画面Rep上でコンテンツの作成や移動などによりホームページをデザインするだけで、HP作成支援装置10が、ユーザがデザインしたホームページのソースコードを生成する場合について説明したが、ユーザがホームページのソースコードを直接編集してもよいことは言うまでもない。
【0143】
(5)ホームページの作成処理
図30は、ボックスのレイアウトルールに従ってHTML要素を生成する処理をフローチャートで示す図である。
【0144】
まず、ユーザがHP作成支援装置10の入力操作部13aを操作すると、入力操作部13aから操作信号Sが入力インターフェース13を介してプロセッサ11に入力される。プロセッサ11は、操作信号Sに応じた演算処理を行う。例えば、プロセッサ11は、出力インターフェース14を介して表示部14aに表示データDを出力することによりホームページの編集画面Seなどの表示画面を表示したり、ネットワーク制御部16を動作させてインターネットなどのネットワークNを介してデータ通信を行ったり、入出力インターフェース15を介して外部記憶装置15aとメモリ12との間でのデータのアクセスを行うことにより外部記憶装置15aに対するデータの読み出しや書込みを行ったりする。
【0145】
このHP作成支援装置10では、ユーザが表示部14aに表示された編集画面Se上でホームページを構成する1以上のコンテンツを作成すると、作成されたコンテンツが自動的にホームページのソースコードに変換されることにより、ホームページ作成支援が行われる。
【0147】
プロセッサ11は、ユーザによる入力操作部13aの操作に基づいて表示部14aにホームページの編集画面Seを表示する処理を実行し、以下のステップS10〜18の処理を開始する。
【0148】
プロセッサ11は、編集画面Se上で新たなボックス(新規ボックス)が作成されたか否かの判定を行い(ステップS10)、新規ボックスの作成が行われていない場合は、この判定処理を繰り返す。一方、新規ボックスの作成が行われた場合は、新規ボックスがブロックボックスであるかインラインボックスであるかを判定する(ステップS11)。
【0149】
例えば、
図21に示すように、既存ブロックボックスBr1dに加えて新規ボックスを生成する処理では、ブロックボックスが形成され、
図28に示すように、ブロックボックスBr3内のコンテンツCr3の前半部分に下線を引き、後半部分を太字にする処理では、ブロックボックスBr3内に2つのインラインボックスBr3a、Br3bが形成される。
【0150】
このように新たに形成されたボックスがブロックボックスであるかインラインボックスであるかの判定は、作成された要素がブロック要素であるかインライン要素であるかによって行われる。
【0151】
新規ボックスがブロックボックスである場合は、プロセッサ11は、新規ボックスがブロックボックスの通常レイアウトルールに従っているか否かを判定する(ステップS12)。
図21に示すように、既存ブロックボックスBr1dに対する新規ボックスBr2aの配置がブロックボックスの通常レイアウトルールに従っている場合は、プロセッサ11は、新規ボックスがブロックボックスの通常レイアウトルールで配置されるよう記述されたソースコードSr1eを生成する(ステップS14)。
【0152】
一方、
図23に示すように、新規ボックスBr2cの配置がブロックボックスの通常レイアウトルールに従っていない場合は、プロセッサ11は、新規ボックスBr2cが複数の通常外レイアウトルールのうちのこの場合の位置関係に適合するルールで配置されるよう記述されたソースコード(例えばソースコードSr1g)を生成する(ステップS15)。
【0153】
その後、プロセッサ11は、ユーザ操作により編集画面Seを閉じるなどの終了操作が行われたか否かを判定し(ステップS18)、終了操作が行われている場合はプロセッサ11は編集処理を終了し、終了操作が行われていない場合は、プロセッサ11の処理はステップS10の処理に戻る。
【0154】
また、ステップS11で新規ボックスがインラインボックスであると判定された場合は、プロセッサ11は、新規ボックスがインラインボックスの通常レイアウトルールに従っているか否かを判定する(ステップS13)。
図28に示すように、インラインボックスBr3aに対する新規インラインボックスBr3bの配置がインラインボックスの通常レイアウトルールに従っている場合は、プロセッサ11は、新規インラインボックスがインラインボックスの通常レイアウトルールで配置されるよう記述されたソースコード(例えばソースコードSr31)を生成する(ステップS16)。
【0155】
一方、
図29に示すように、インラインボックスBr3aに対する新規インラインボックスBr3bの位置関係がインラインボックスの通常レイアウトルールに従っていない場合は、新規インラインボックスBr3bが複数の通常外レイアウトルールのうちのこの場合の位置関係に適合するルールで配置されるよう記述されたソースコードを生成する(ステップS17)。
【0156】
その後、ユーザ操作により編集画面Seを閉じるなどの終了操作が行われたか否かが判定され(ステップS18)、終了操作が行われている場合は編集処理を終了し、終了操作が行われていない場合は、プロセッサ11の処理はステップS10の処理に戻る。
【0157】
このように本実施形態1のHP作成支援装置10では、プロセッサ11が、ユーザ操作に基づいて、ホームページのコンテンツを配置するためのボックスを編集画面上に作成し、作成の対象とした対象ボックスと、対象ボックスに隣接する既存ボックスとの位置関係を判定し、ソースコードにおける対象ボックスおよび既存ボックスのうちの少なくとも対象ボックスの記述を、この記述がボックスの配置を規定する複数のレイアウトルールのうちの、上記の位置関係に適合するレイアウトルールに応じた記述となるように編集するので、ユーザは、コンテンツを配置するためのボックスの相対的な位置関係を規定するだけで、編集画面上で配置されるべき位置を示す情報を持たない複数のコンテンツを所望の位置に配置したホームページのソースコードを作成することができる。その結果、一般ユーザがコンピュータの編集画面上で簡単な操作により思い通りのホームページを作成することができる。
【0158】
なお、上記実施形態1では、作成の対象とした対象ボックスと、対象ボックスに隣接する既存ボックスとの位置関係が、これらのボックスの通常レイアウトルールに従っていないとき、ソースコードにおける対象ボックスおよび既存ボックスの両方の記述を、記述がボックスの配置を規定する複数のレイアウトルールのうちの、上記位置関係に適合するレイアウトルールに応じた記述となるように編集する場合について説明したが、対象ボックスと既存ボックスとの位置関係が通常レイアウトルールに従っていないとき、ソースコードにおける対象ボックスの記述のみを上記位置関係に適合するレイアウトルールに応じた記述となるように編集してもよい。
【0159】
また、上記実施形態1では、ホームページの作成の支援を行わせるプログラムが、ユーザ側の端末に格納されている場合について説明したが、このようなプログラムは、インターネット上のサーバに格納されていてもよく、ユーザ側の端末がサーバに対して操作信号を送信することにより、サーバでホームページが作成されるとともに、ユーザによるホームページの作成の支援が行われてもよい。
【0160】
特に、実施形態1で説明したホームページ作成処理は、実施形態1のようにユーザ側の端末に搭載されているプログラムで動作するスタンドアロンアプリケーションではなく、ユーザ側の端末のブラウザ上で動作するプログラミング言語によるプログラムとウェブサーバに搭載されているプログラムとの協調により動作するウェブアプリケーションにより実行されてもよい。
【0161】
具体的には、ユーザ側の端末のウェブブラウザ(ブラウザ)がホームページ作成支援サイト(ウェブサーバ)にアクセスし、ブラウザ上で動作するプログラムと、サーバ側のホームページ作成支援処理を行うためのプログラムとの協調によって、ブラウザ上にホームページ作成支援処理をウェブアプリケーションにより実行可能な環境を構築する。
【0162】
この場合、ホームページ作成支援処理により完成されたホームページのソースコードはサーバ側に格納されても、サーバ側からユーザ側の端末に提供されてもよい。
【0163】
(実施形態2)
図31は、本発明の実施形態2によるHP作成支援装置を説明するための図である。
【0164】
この実施形態2のHP作成支援装置20は、実施形態1のHP作成支援装置10と同様に、情報の処理を行うコンピュータ20aと、入力操作部13aと、表示部14aとを有する。コンピュータ20aは、実施形態1のコンピュータ10aのメモリ12に代わるメモリ22を備えており、メモリ22には、ホームページの作成を支援する処理として実施形態1のHP作成支援装置10のものとは異なる処理をプロセッサ11に実行させるためのプログラムが格納されている。
【0165】
なお、実施形態2のHP作成支援装置20では、コンピュータ20aのメモリ22以外の構成は、実施形態1のHP作成支援装置10と同一である。
【0166】
以下、実施形態2のHP作成支援装置20により行われる、ホームページの作成を支援する処理(以下、HP作成支援処理)を具体的に説明する。
【0167】
図32は、この実施形態2のHP作成支援装置20の表示部14aに表示される編集画面Se2を示す図である。
図32中、
図15と同じ符号が付されたものは、実施形態1の編集画面Seにおけるものと同一のものである。
【0168】
この実施形態2のHP作成支援装置20により行われるHP作成支援処理は、ホームページを編集するための編集画面Se2を表示部14aに表示する処理と、ユーザ操作による操作信号Sに基づいてホームページを構成する1以上のコンテンツの作成(入力、描画、あるいは貼り付けなど)を行う処理と、コンテンツの作成状況を、プレビュー画面Rep、ソース画面Rce、階層構造画面Rhdで同時に表示する処理とを含む。これらの処理は、プロセッサ11がメモリ22に格納されたプログラムを実行することにより行われる。また、メモリ22には、プロセッサ11をテキストエディッタとして機能させたり、ブラウザとして機能させたりするための一般的なオペレーションシステムが格納されていることは言うまでもない。また、このメモリ22には、実施形態1のHP作成支援装置10と同様にホームページの作成を支援する処理を行うためのプログラムがさらに格納されていてもよく、この場合は、プレビュー画面Repでコンテンツの編集が可能となり、プレビュー画面Repで編集した1以上のコンテンツに対応するソースコードがソース画面Rceに表示され、プレビュー画面Repで編集した1以上のコンテンツの階層構造が階層構造画面Rhdに表示されることとなる。ただし、説明を簡単にするため、この実施形態2のHP作成支援装置20は実施形態1のHP作成支援装置10のHP作成支援処理を行う機能は有していないものとする。
【0169】
ここで、ソース画面Rceには、テキストエディッタに入力されたソースコードScに含まれるHTML要素が表示され、プレビュー画面Repには、ソースコードScに含まれる1以上の要素の内容(コンテンツ)が表示され、階層構造画面Rhdには、1以上のコンテンツの階層構造Ehが表示される。
【0170】
例えば、このHP作成支援装置20の編集画面Se2上でソースコードの入力により10個のコンテンツCn1〜Cn10が作成されたとき、ソース画面Rceには、コンテンツCn1〜Cn10を規定するHTML要素He1〜He10を含むソースコードScが表示される。プレビュー画面Repには、
図32に示すように、ソースコードScのbody部分に含まれるHTML要素He1〜He10の内容(コンテンツ)Cn1〜Cn10が表示される。階層構造画面Rhdには、ソースコードScのbody部分に含まれるHTML要素He1〜He10の階層構造Ehが、階層ノードを示すシンボルSb1〜Sb10により表示される。
【0171】
さらに、実施形態2のHP作成支援装置20では、ソース画面Rceに表示されたソースコードScに含まれるHTML要素He1〜He10と、プレビュー画面Repに表示されたコンテンツCn1〜Cn10と、階層構造画面Rhdに表示された階層ノードを示すシンボルSb1〜Sb10とは、対応するもの同士相互に関連付けられる。
【0172】
従って、ユーザがプレビュー画面Rep上で任意のコンテンツをクリックしたり、ソース画面Rce上で任意のHTML要素をクリックしたり、あるいは階層構造画面Rhd上で任意のシンボルをクリックしたりすると、クリックを行った画面以外の画面で、クリックしたコンテンツ、HTML要素、あるいはシンボルに対応する部分がハイライトされる。
【0173】
一般的なホームページは非常に多くのHTML要素を含んでいるが、このような関連付けにより、ユーザがソース画面Rceで編集しているHTML要素が、ホームページ上でどのような位置にあるか、あるいは階層構造上のどの階層に属しているかなどを一目で把握することができる。
【0174】
なお、コンピュータ10からの表示データDを表示する表示部14aの画面上に表示されているコンテンツの位置をプロセッサ11が画面の基準位置に基づいて特定したり、画面上でマウスなどのポインティングデバイスにより指定した位置をプロセッサが画面の基準位置に基づいて認識したりする技術は汎用的なものであり、具体的な説明は省略する。
【0175】
以下、ソース画面Rceに表示されたHTML要素、プレビュー画面Repに表示されたコンテンツ、階層構造画面Rhdに表示されたシンボルを関連付ける仕組みを具体的に説明する。
【0176】
図33から
図36は、この仕組みを説明するための図である。
【0177】
これらの画面間での関連付けには、ソース要素マップMseと、DOM要素マップMdeと、階層構造情報Dhsとが用いられ、これらのマップはメモリ22に格納されている。
【0178】
図34に示すソース要素マップMseは、少なくとも、テキストエディッタに入力されたソースコードScに基づいて作成されており、ソースコードScに含まれる1以上のHTML要素(ソース要素)を示すソース要素情報ELsと、ソース画面Rce上での各ソース要素の位置を示す位置情報Epsとを含む。このようなソース要素マップMseは、ソースコードがテキストエディッタに入力されることにより、ソース要素情報ELs、ソース要素の位置情報Eps、およびタグ種情報Etaが編集中の最新のソースコードに対応するように更新される。ここで、テキストエディッタによるソースコードの読み込みは一定周期で行われてもよいし、編集中のソースコードが変化したときに行われてもよい。
【0179】
図35(b)に示すDOM要素マップMdeは、ソース要素マップMseとブラウザ上DOMとに基づいて作成されている。なお、ブラウザ上DOMは、ブラウザがソースコードの読み込みにより生成したHTML要素の階層構造Eh1である。
【0180】
DOM要素マップMdeは、ブラウザがソースコードを読み込むことにより生成される1以上のHTML要素(DOM要素)を示す情報(DOM要素情報)ELdと、DOM要素毎に作成された表示用要素ガイドEgと、表示用要素ガイドEg毎に付与されたガイド記号Gとを含み、DOM要素Hm0〜Hm10と表示用要素ガイドEg1〜Eg10とガイド記号〔G1〕〜〔G10〕とが対応付けられている。
【0181】
ここで、DOM要素情報ELdは、ブラウザがソースコードScを読み込んだときに認識したHTML要素Hm1〜Hm10と、ブラウザ依存の機能により生成されるHTML要素Hm0とを示す。表示用要素ガイドEgは、ブラウザがプレビュー画面Repにコンテンツを表示するときにコンテンツ毎に設定する長方形の枠であり、表示用要素ガイドEgは、例えば、長方形の枠の左上隅、右下隅の位置を示す位置情報を有する。ガイド記号Gは、表示用要素ガイドEgの識別子となっている。
【0182】
このようなDOM要素マップMdeは、ソースコードがブラウザに読み込まれることにより、DOM要素情報ELd、表示用要素ガイドEg、およびガイド記号Gが編集中の最新のソースコードに対応するように更新される。ここで、ブラウザによるソースコードの読み込みは一定周期で行われてもよいし、編集中のソースコードが変化したときに行われてもよい。
【0183】
階層構造情報Dhsは、ソースコードScのbody部分でのHTML要素の階層構造Ehを各階層ノードに対応するシンボルで示すものであり、ブラウザがソースコードの読み込みにより生成したHTML要素の階層構造(ブラウザ上DOM)Eh1を、DOM要素とソース要素との対比に基づいて修正したものである。階層構造情報Dhsでは、階層構造Ehの階層ノードNdを表すシンボルSbに、表示用要素ガイドEgに付与されたガイド記号Gが対応付けられている。このような階層構造情報Dhsは、ソースコードがブラウザに読み込まれることにより、ソースコードScのbody部分でのHTML要素の階層構造Ehを表すシンボルSbとガイド記号Gとの対応関係が、編集中の最新のソースコードに対応するように更新される。
【0184】
以下、ソース要素マップMse、DOM要素マップMde、階層構造情報Dhsについて詳述する。
【0185】
図34は、ソース要素マップMseを説明するための図である。
【0186】
ソース要素マップMseは、ソースコードScから取得できるHTML要素の特徴をメモリ22上にテーブル形式で格納したものである。
【0187】
ソース要素マップMseにはソース要素情報ELsが含まれている。ソース要素情報ELsは、
図34に示すように、ソースコードScの分析により得られたソースコードScに含まれる1以上のHTML要素(ソース要素)を示す。ここで、ソースコード要素情報ELsが示す1以上のソース要素は、具体的にはhtml要素(ソースコード自体)Sc、head要素Hd、head要素Hdに含まれるtitle要素Tt、body要素He1、body要素He1に含まれるh1要素He2、table要素He3、tr要素He4、td要素He5、td要素He6、ul要素He7、li要素He8、li要素He9、p要素He10である。メモリ22上のソース要素マップMseに割り当てられた領域には、各ソース要素に対応付けてソース要素の位置情報Epsおよびソース要素に含まれるタグ(tag)の種類を示すタグ種情報Etaがテーブル形式で記録されている。
【0188】
なお、ここで、ソース要素の位置情報Epsは、各ソース要素Sc、Hd、Tt、He1〜He10の開始位置および終了位置を示す情報(要素Start/End位置)と、ソース要素の内容の開始位置および終了位置を示す情報(内容Start/End位置)とを含む。ソース要素Sc、Hd、Tt、He1〜He10の要素Start/End位置には、例えば、ソース要素の先頭の位置(S(ESx1、ESy1)〜S(ESx13、ESy13))と、ソース要素の最後尾の位置(E(EEx1、EEy1)〜E(EEx13、EEy13))とを用いることができる。ソース要素Sc、Hd、Tt、He1〜He10の内容Start/End位置には、これらのソース要素の内容の先頭の位置(S(CSx1、CSy1)〜S(CSx13、CSy13))と、ソース要素の内容の最後尾の位置(E(CEx1、CEy1)〜E(CEx13、CEy13))とを用いることができる。さらに、ソース要素Sc、Hd、Tt、He1〜He10のタグ種情報は、「html」、「head」、「title」、「body」、「h1」、「table」、「tr」、「td」、「td」、「ul」、「li」、「li」、「p」で示される。
【0189】
図35は、DOM要素マップを説明するための図である。
【0190】
なお、
図35では、
図34に示すソース要素マップMseにおけるソース要素情報ELsのみを示している。
【0191】
DOM要素マップMdeは、
図35(a)に示すように、ソース要素マップMseのソース要素情報ELsとブラウザ上DOM(ブラウザによるソースコードの読み込みにより生成されたHTML要素の階層構造)Eh1とに基づいて作成されている。
【0192】
例えば、
図32に示すソース画面Rceに表示されているソースコードScがブラウザに読み込まれたとき、ブラウザ依存の機能により、ソースコードScのbody部分に対応する記述が、
図35(a)に示すブラウザ上DOMの階層構造Eh1として認識される。この階層構造Eh1では、ソースコードScのbody要素He1に対応する階層ノードNe1がルートノードとされ、ソースコードScのh1要素He2、table要素He3、ul要素He7、p要素He10に対応する階層ノードNe2、Ne3、Ne7、Ne10が階層ノードNe1の子階層ノードとされている。また、対応する要素がソースコードに存在しないtbody要素Hm0に対応する階層ノードNe0が、ブラウザ依存の機能により子階層ノードNe3の子階層ノードとされ、ソースコードScのtr要素He4に対応する階層ノードNe4が子階層ノードNe0の子階層ノードとされている。ソースコードScのli要素He8、He9に対応する階層ノードNe8、Ne9が子階層ノードNe7の子階層ノードとされている。さらに、td要素He5、He6に対応する階層ノードNe5、Ne6が子階層ノードNe4の子階層ノードとされている。
【0193】
この場合、DOM要素マップMdeには、ソース要素マップMseに含まれるHTML要素(ソース要素)とブラウザ上DOMの階層構造Eh1を構成するHTML要素(DOM要素)との対比結果(
図35(a))が、ブラウザ上DOMのノードNe0〜Ne10に対応する要素毎に示されている。
【0194】
具体的には、DOM要素マップMdeには、DOM要素情報ELdが示す個々のDOM要素Hm0〜Hm10が含まれている。ここで、DOM要素情報ELdが示すDOM要素のうちで、ソース要素マップMseのソース要素情報ELsが示すソース要素と一致したDOM要素Hm1〜Hm10には、要素名とともに「OK」の記述が記録されている。ソース要素マップMseのソース要素ELsと一致しないDOM要素Hm0には、要素名とともに「SKIP」の記述が記録されている。さらに、ソース要素と一致したDOM要素Hm1〜Hm10には、表示用要素ガイドEg1〜Eg10とガイド記号〔G1〕〜〔G10〕とが付与されている。
【0195】
ここで、表示用要素ガイドEg1〜Eg10は、プレビュー画面Rep上に表示される個々のコンテンツCn1〜Cn10を囲むように配置される長方形の枠であり、メモリ22には、例えば、この長方形の枠の左上隅の位置(S(GSx1、GSy1)〜S(GSx10、GSy10))と、長方形の枠の右下隅の位置(E(GEx1、GEy1)〜E(CGx10、CGy10))とが予め記録される。また、ガイド記号〔G1〕〜〔G10〕は表示用要素ガイドEg1〜Eg10の識別子となっている。
【0196】
図36は、階層構造情報Dhsを説明するための図である。
【0197】
図36(b)に示す階層構造情報Dhsでは、DOM要素情報ELdが示すDOM要素Hm0〜Hm10のうちでソース要素マップMseのソース要素He1〜He10と一致したDOM要素Hm1〜Hm10の階層ノードNe1〜Ne10にガイド記号G1〜G10が対応付けられている。さらに、DOM要素Hm1〜Hm10の階層ノードNe1〜Ne10には、それぞれの階層ノードを示すシンボル「BOD」、「H1」、「TBL」、「TR」、「TD」、「TD」、「UL」、「Li」、「Li」、「P」が割り当てられている。
【0198】
具体的には、メモリ22上の階層構造情報に割り当てられた領域には、ノード〔Node:1〕Ne1〜ノード〔Node:10〕Ne10に、ガイド記号〔G1〕〜〔G10〕、シンボルSb1〜Sb10を示す情報が関連付けて格納されている。
【0199】
図34に示すソース要素マップMseの作成処理を説明する。
【0200】
まず、
図37に示すように、ソースコードScがHP作成支援装置20に入力されると、ソース画面Rce上には、HP作成支援装置20のプロセッサ11が実現するテキストエディッタにより
図38に示すように、ソースコードScが表示される。
【0201】
続いて、
図39に示すように、入力されたソースコードScがプロセッサ11により分析され、ソースコードScにおける個々のHTML要素(ソース要素)Sc、Hd、Tt、He1〜He10がプロセッサ11により認識される。その結果、ソース画面Rce上に表示されたソースコードScから取得できる各HTML要素の特徴がメモリ22上にテーブル形式で格納される。
【0202】
ここでは、特に
図34に示すように、メモリ22の記憶領域には、ソース要素Sc、Hd、Tt、He1〜He10に対応付けて、要素Start/End位置および内容Start/End位置が位置情報Epsとして格納される。さらに、タグ種情報Etaがソース要素に対応付けてメモリ22の記憶領域に格納される。
【0203】
これにより、編集中の最新のソースコードScに対応したソース要素マップMseが完成する。
【0204】
次に、
図35(b)に示すDOM要素マップMdeの作成処理を説明する。
【0205】
図40に示すように、ソースコードScのコンテンツがプレビュー画面Repに表示されるようにソースコードScがブラウザにより読み取られると、プレビュー画面Repには、
図41に示すように、ソースコードScの各要素に含まれる内容(ホームページのコンテンツ)Cn1〜Cn10が表示される。このようにブラウザにソースコードScが読み込まれたとき、ブラウザでは、
図42に示すように、ブラウザに依存した機能によりソースコードScのbody部分を構成するソース要素を含む階層構造Eh1がブラウザ上DOMとして認識される。
【0206】
この階層構造Eh1の各階層ノードNe1〜Ne10はそれぞれ、ソースコードScのbody部分のHTML要素He1〜He10に対応するノードであるのに対し、階層ノードNe0は、ブラウザ依存によって形成されたHTML要素(tbody要素)であり、ソースコードScに含まれている要素に対応していない。
【0207】
次に、
図43に示すように、ソース要素マップMse(
図34)に含まれるHTML要素とブラウザ上DOMの各階層ノードNe0〜Ne10に対応するHTML要素との比較結果に基づいて、ソース要素と一致するDOM要素Hm1〜Hm10に対して表示用要素ガイドEg1〜Eg10が作成される。
【0208】
なお、
図43では、ソース要素マップMseにおける位置情報Epsは省略している。また、表示用要素ガイドEg1〜Eg10は、プレビュー画面Rep上に表示されている個々のHTML要素に対応するコンテンツを囲むようにプレビュー画面Rep上に配置される長方形の枠である。
【0209】
さらに
図44(a)に示すように、表示用要素ガイドEg1〜Eg10を、プレビュー画面Rep上に表示されている個々のHTML要素のコンテンツCn1〜Cn10に適用することにより、
図44(b)に示すように、プレビュー画面Repでは表示用要素ガイドEg1〜Eg10がDOM構成要素のコンテンツCn1〜Cn10を囲むように表示用要素ガイドEg1〜Eg10が表示されるようになる。
【0210】
さらにこれらの表示用要素ガイドEg1〜Eg10には、
図44(c)に示すようにガイド記号〔G1〕〜〔G10〕が付与される。
【0211】
これにより、ソースコードの編集中に最新のソースコードScに対応したDOM要素マップとして、ブラウザ上DOMの階層構造Eh1の各階層ノードに対応するHTML要素Hm1〜Hm10に、表示用要素ガイドEg1〜Eg10とガイド記号〔G1〕〜〔G10〕とが対応付けられたDOM要素マップMde(
図35参照)が得られる。
【0212】
次に、
図36に示す階層構造情報Ehの作成処理を説明する。
【0213】
図45に示すように、ブラウザ上DOMの階層構造Eh1の各階層ノードに対応する要素(DOM要素)と、ソース要素マップMseに含まれるHTML要素(ソース要素)との対比に基づいて、ブラウザ上DOMの階層構造Eh1における階層ノードのうちから、ソース要素に対応していない階層ノードを除くことにより、ソース要素He1〜He10に整合した階層構造Ehが、階層構造画面Rhdに表示すべき階層構造として作成される。さらに
図46に示すように、階層構造Ehの階層ノードNe1〜Ne10に対応したシンボルSb1〜Sb10が作成される。さらに、
図46に示すように、ガイド記号〔G1〕〜〔G10〕と階層構造EhのDOM要素Hm1〜Hm10を示すシンボルSb1〜Sb10との対応関係が、
図35(b)に示すガイド記号〔G1〕〜〔G10〕とDOM要素Hm1〜Hm10との対応関係と一致するよう、シンボルSb1〜Sb10にガイド記号〔G1〕〜〔G10〕を付与する。これにより階層構造情報Dhsが得られる。また、
図47に示すように、ソースコードScのbody部分のソース要素He1〜He10の階層構造Ehが認識されるように、階層構造画面RhdにはシンボルSb1〜Sb10が表示される。
【0214】
その結果、
図32に示すように、ソース画面RceにソースコードScが表示され、プレビュー画面RepにソースコードScに含まれるHTML要素He1〜He10の内容(コンテンツ)Cn1〜Cn10が表示され、階層構造画面Rhdには、ソースコードScに含まれるHTML要素He1〜He10の階層構造Ehが表示される。
【0215】
次に、HP作成支援装置20により行われるHP作成支援動作について説明する。
【0216】
ユーザが
図48に示すように、ソース画面Rceのある位置をマウスポインタMpでクリックした場合、プロセッサ11は、
図34に示すソース要素マップMseの位置情報Epsの検索により、クリックされた位置に対応する位置のソース要素Scr1が、ユーザが検索の対象としたソース要素であると認識する。
【0217】
例えば、h1要素He2がクリックされたHTML要素であると認識された場合、DOM要素マップMde(
図35(b))に基づいて、h1要素He2に対応するDOM要素としてh1要素Hm2が特定される。これにより、DOM要素Hm2の表示用要素ガイドEg2が占有する領域Cht1がハイライトされる。
【0218】
さらに、階層構造情報Dhs(
図36(b))に基づいて、DOM要素マップMde(
図35(b))における表示用要素ガイドEg2に付与されているガイド記号〔G2〕と同じガイド記号が付与されているシンボル〔H1〕Sb2が特定され、シンボル〔H1〕Sb2の占有領域Hht1がハイライトされる。
【0219】
ユーザが
図49に示すように、プレビュー画面Repのあるコンテンツの表示用要素ガイドの占有領域Ccr2をマウスポインタMpでクリックした場合、
図35(b)に示すDOM要素マップMdeに基づいてDOM要素を特定することができる。例えば、表示用要素ガイドEg3の占有領域がクリックされた場合、表示用要素ガイドEg3に対応するDOM要素Hm3が特定される。さらに、ソース要素マップMse(
図34)に基づいて、DOM要素Hm3と一致したソース要素He3が取得され、ソース要素He3に対応する領域Sht2が
図49に示すようにハイライトされる。また、階層構造情報Dhsに基づいて、DOM要素マップMdeにおける表示用要素ガイドEg3に付与されているガイド記号〔G3〕と同じガイド記号が付与されているシンボル〔TBL〕Sb3が特定され、このシンボル〔TBL〕Sb3の占有する領域Hht2がハイライトされる。
【0220】
ユーザが
図50に示すように、階層構造画面Rhdにおける階層構造をなすシンボルの1つの配置領域Hcr3がマウスポインタMpによりクリックされた場合、
図36(b)に示す階層構造情報Dhsに基づいて、クリックされた領域のシンボルに対応するガイド記号が特定される。例えば、上下に並ぶ2つのシンボル〔TD〕のうちの上側のシンボル〔TD〕の配置領域Hcr3がマウスポインタMpでクリックされた場合、シンボル〔TD〕Sb5に対応するガイド記号〔G5〕が特定される。さらに、DOM要素マップMde(
図35(b))に基づいて、ガイド記号〔G5〕に対応する表示用要素ガイドEg5が選択され、この表示用要素ガイドEg5が占有する領域Cht3が
図50に示すようにハイライトされる。さらに、この場合、DOM要素の要素Hm5に一致したソース要素He5に対応する領域Sht3が
図50に示すようにハイライトされる。
【0221】
このように本実施形態2のHP作成支援装置20では、ユーザがプレビュー画面Rep上で任意のコンテンツをクリックしたり、ソース画面Rceあるいは階層構造画面Rhd上で任意のHTML要素に対応する領域をクリックしたりすると、クリックを行った画面以外の画面で、クリックしたコンテンツあるいはクリックした要素に対応する部分がハイライトされる。このため、例えば、ユーザは、階層構造画面Rhdに表示されている特定のHTML要素をクリックするだけで、ソース画面Rceに表示されているソースコードScに含まれる対応するHTML要素を簡単に見つけることができ、同時に、階層構造画面Rhdでクリックしたシンボルに対応するコンテンツをプレビュー画面Repで簡単に見つけることができる。
【0222】
なお、上記実施形態2では、ソース画面Rce上のある位置をクリックした場合、プレビュー画面Rep上で、クリックされた位置のHTML要素に対応する表示用要素ガイドの占有領域がハイライトされ、かつ階層構造画面Rhd上で、クリックされた位置のHTML要素に対応するシンボルの占有領域がハイライトされる場合について説明したが、表示用要素ガイドEg1〜Eg10とシンボルS1b〜Sb10との間で対応するもの同士の関係が常に認識可能となるように、表示用要素ガイドEg1〜Eg10とシンボルS1b〜Sb10とは、対応するもの同士が同じ色で表示されるように構成してもよい。
【0223】
また、上記実施形態2では、ホームページの作成の支援を行わせるプログラムが、ユーザ側の端末に格納されている場合について説明したが、このようなプログラムは、インターネット上のサーバに格納されていてもよく、ユーザ側の端末がサーバに対して操作信号を送信することにより、サーバでホームページが作成されるとともに、ユーザによるホームページの作成の支援が行われてもよい。
【0224】
この実施形態2で説明したホームページ作成処理も実施形態1と同様に、実施形態2のようにユーザ側の端末に搭載されているプログラムで動作するスタンドアロンアプリケーションではなく、ユーザ側の端末のブラウザ上で動作するプログラミング言語によるプログラムとウェブサーバに搭載されているプログラムとの協調により動作するウェブアプリケーションにより実行されてもよい。
【0225】
この場合、完成されたホームページのソースコードはサーバ側に格納されても、ユーザ側の端末に提供されてもよい。
【0226】
また、上記実施形態2では、以下の第1から第3の3つの処理を行う場合について説明したが、HP作成支援装置20は、以下の第1〜第3の処理のうちの少なくとも1つを行うようにしてもよい。
【0227】
第1の処理は、プレビュー画面でいずれかのコンテンツが選択されたとき、ソース画面Rceで、選択されたコンテンツに対応するソース要素がハイライトされ、かつ階層構造画面Rhdで、選択されたコンテンツに対応するシンボルがハイライトされる処理である。
【0228】
第2の処理は、ソース画面Rceで、いずれかのソース要素を選択したとき、プレビュー画面Repで、選択したソース要素に対応するコンテンツがハイライトされ、かつ階層構造画面Rhdで、選択したソース要素に対応するシンボル(階層ノード)がハイライトされる処理である。
【0229】
第3の処理は、階層構造画面Rhdで、いずれかのシンボルが選択されたとき、プレビュー画面Repで、選択したシンボルに対応するコンテンツがハイライトされ、かつソース画面Rceで、選択したシンボルに対応するソース要素がハイライトされる処理である。
【0230】
(実施形態3)
図51は、本発明の実施形態3によるHP作成支援装置30を説明するための図である。
【0231】
この実施形態3のHP作成支援装置30は、実施形態1のHP作成支援装置10と同様に、情報の処理を行うコンピュータ30aと、入力操作部13aと、表示部14aとを有する。コンピュータ30aは、実施形態1のコンピュータ10aのメモリ12に代わるメモリ32を備えており、メモリ32には、ホームページの作成を支援する処理として実施形態1のHP作成支援装置10のものとは異なる処理をプロセッサ11に実行させるためのプログラムが格納されている。
【0232】
なお、実施形態3のHP作成支援装置30では、コンピュータ30aのメモリ32以外の構成は、実施形態1のHP作成支援装置10と同一である。
【0233】
以下、実施形態3のHP作成支援装置30により行われる、ホームページの作成を支援する処理(以下、HP作成支援処理)を具体的に説明する。
【0234】
図52は、この実施形態3のHP作成支援装置30の表示部14aに表示される編集画面Seを示す図である。
図52中、
図15と同じ符号が付されたものは、実施形態1の編集画面Seにおけるものと同一のものである。
【0235】
この実施形態3のHP作成支援装置30により行われるHP作成支援処理では、ブロックを含むブロックの編集モードを通常編集モードと一括編集モードとで切り換え可能となっている。
【0236】
なお、以下の説明では、少なくとも1つのブロックが他のブロックに含まれるとき、他のブロックに含まれるブロックを子ブロックともいい、少なくとも1つのブロックを含む他のブロックを親ブロックともいう。
【0237】
具体的には、この実施形態3のHP作成支援装置30により行われるHP作成支援処理は、以下の3つの処理を含む。
【0238】
第1の処理は、ユーザ操作に基づいて、ホームページのコンテンツを配置するための複数のブロックを、少なくとも1つのブロックが少なくとも1つの他のブロック(親ブロック)に包含されるように編集画面上に表示する処理である。
【0239】
第2の処理は、親ブロックの編集モードを、ユーザ操作に基づいて、通常編集モードと一括編集モードとの間で切り換える処理である。
【0240】
第3の処理は、編集の対象とした親ブロックの編集モードが一括編集モードであるとき、親ブロックに含まれるブロック(子ブロック)毎に編集する個別編集操作を禁止し、かつ子ブロックを親ブロックとともに一括して編集する一括編集操作を許可し、親ブロックの編集モードが通常編集モードであるとき、子ブロックに対する個別編集操作および一括編集操作をともに許可する処理である。なお、以下の説明では、編集モードを一括編集モードにすることをロックするともいい、編集モードを通常編集モードに戻すことを、ロックを解除するともいう。
【0241】
これらの処理は、プロセッサ11がメモリ32に格納されたプログラムを実行することにより行われる。また、メモリ32には、プロセッサ11をテキストエディッタとして機能させたり、ブラウザとして機能させたりするための一般的なオペレーションシステムが格納されていることは言うまでもない。また、このメモリ32には、実施形態1のHP作成支援装置10と同様にホームページの作成を支援する処理を行うためのプログラムがさらに格納されていてもよく、この場合は、プレビュー画面Repでコンテンツの編集が可能となり、プレビュー画面Repで編集した1以上のコンテンツに対応するソースコードがソース画面Rceに表示されることとなる。また、このメモリ32には、実施形態2のHP作成支援装置20と同様にホームページの作成を支援する処理を行うためのプログラムがさらに格納されていてもよく、この場合は、プレビュー画面Rep、ソース画面Rce、階層構造画面Rhdで、ホームページのコンテンツ、対応するソース要素、対応する階層ノード(シンボル)を同時に関連付けて表示可能となる。
【0242】
この実施形態3のHP作成支援装置30は実施形態1のHP作成支援装置10のHP作成支援処理を行う機能は有していてもいなくてもよいが、ここでは、説明の都合上、実施形態1のHP作成支援装置10の機能を有するものとする。
【0243】
以下、このHP作成支援装置30を用いたホームページの編集処理を詳しく説明する。
【0244】
例えば、
図52に示す編集画面Seでは、プレビュー画面Repに、1つの大きいブロック(実施形態1のブロックボックスと同じもの)Br30が作成され、この大きいブロックBr30内に2つの小さいブロックBr31およびBr32が配置され、それぞれの小さいブロックBr31およびBr32内にコンテンツCt31およびCt32が配置されている。ここでは、大きいブロックが親ブロックであり、小さいブロックが子ブロックである。また、親ブロック内に子ブロックを配置する操作は、親ブロックをクリックなどで選択した後、作成ボタンBu1を押す操作である。このような操作により、新たなブロックが子ブロックとして既存のブロック(親ブロック)内に配置される。なお、
図52に示す編集画面Seでは、ブロックBr31が選択された状態となっている。
【0245】
また、ソース画面Rceには、大きいブロックBr30に対応するHTML要素(div要素)Sc30、小さいブロックBr31およびBr32に対応するHTML要素(div要素)Sc31およびSc32が表示されている。なお、HTML要素Sc3はこのホームページの全体に対応するhtml要素である。
【0246】
図53は、
図52に示す編集画面Seのプレビュー画面Repのみを拡大して示す図である。
【0247】
図53に示す編集状態では、大きなブロックBr30はロックされておらず、このブロックの編集モードは、ブロックBr30内の小さいブロックBr31及びBr32に対する個別の編集操作(コピー、移動、削除などの操作)が可能であり、かつブロックBr30内の小さいブロックBr31及びBr32を大きいブロックとともに編集する一括編集操作(コピー、移動、削除などの操作)が可能である通常編集モードである。
【0248】
従って、通常編集モードでは、プレビュー画面Repに表示されている各ブロックの輪郭を示す外線が表示されている。
【0249】
この状態で、ユーザが、クリック操作により、大きなブロック内の例えば小さいブロックBr32を選択した後、例えば、コピーボタンBu3を操作すると、コピー操作はこの小さいブロックBr32に反映される。つまり、
図54に示すように、小さいブロックBr32がその内部のコンテンツCt32とともにコピーされ、コピーされたブロックBr32aが元のブロックBr32の下側に配置される。コピーされたブロックBr32aには、元のブロックBr32内のコンテンツCt32と同じコンテンツCt32aが含まれている。
【0250】
なお、通常編集モードでは、大きいブロックを選択した後、例えばコピーなどの操作を行うと、大きいブロックおよびその内部の小さいブロックの両方がコピーされて、元の大きいブロックの下側に配置される。
【0251】
一方、
図53に示す編集状態で、ユーザが大きなブロックBr30内の領域をクリックした後、ロックボタンBu5の操作により大きなブロックBr30の編集モードを通常編集モードから一括編集モードに切り換えると、大きなブロックBr30内に配置されている小さいブロックBr31及びBr32の外線が、
図55に示すように消え、大きなブロックBr30内に配置されているブロックBr31及びBr32に対する個別操作が禁止された状態となる。なお、
図55では、説明の都合上、実際には消える外線を二点鎖線で示している。従って、一括編集モードでは、小さいブロックBr31、Br32に対する操作は禁止される。また、通常編集モードと一括編集モードでの表示画面上での相違はあくまでも一例であり、このような表示の相違に限定されるものではない。
【0252】
この編集状態で、ユーザが大きなブロックBr30内の領域をクリックしてこのブロックBr30を選択した後、例えばコピーボタンBu3を操作すると、
図56に示すように、大きなブロックBr30がその内部の小さいブロックBr31及びBr32内に含まれていたコンテンツCt31及びCt32とともにコピーされ、コピーされた大きなブロックBr30aが元の大きなブロックBr30の下側に配置される。コピーされた大きなブロックBr30a内には、元のブロックBr30内にあった小さいブロックBr31及びBr32のコンテンツCt31、Ct32と同じコンテンツCt31a及びCt32aが含まれている。
【0253】
図56に示す編集状態で、ロックボタンBu5のロック解除操作により元の大きなブロックBr30の編集モードを一括編集モードから通常編集モードに戻すと、
図57に示すように、元の大きなブロックBr30内の小さいブロックBr31及びBr32の外線が現れる。ただし、コピーした大きなブロックBr30a内の小さいブロックBr31a及びBr32aの外線が現れず、このブロックBr30aはロックされたままである。従って、
図57に示す編集状態では、元の大きなブロックBr30内の個々の小さいブロックを対象とした編集操作が可能であるが、コピーした大きなブロックBr30a内の小さいブロックBr31a及び32aに対する編集操作は不可能である。
【0254】
図58は、
図51に示すHP作成支援装置20の動作を説明するための図であり、コンピュータが編集モードに従ってユーザの編集操作に応じた処理を実行する処理をフローチャートで示す。
【0255】
プロセッサ11は、ユーザによる入力操作部13の操作に基づいて表示部14aにホームページの編集画面Seを表示する処理を実行し、以下のステップS31〜35の処理を行う。
【0256】
プロセッサ11は、所定のブロックを対象としてユーザによる編集操作が行われたか否かの判定を行い(ステップS31)、編集操作が行われていない場合は、この判定処理を繰り返す。一方、編集操作が行われた場合は、編集の対象とされた対象ブロックの編集モードが通常編集モードであるか一括編集モードであるかを判定する(ステップS32)。
【0257】
例えば、対象ブロックの編集モードが一括編集モードである場合は、プロセッサ11は、対象ブロックが親ブロックである場合のみ、対象ブロックとその子ブロックに対する編集操に応じた処理を実行する(ステップS33)。
【0258】
一方、対象ブロックの編集モードが通常編集モードである場合は、プロセッサ11は、対象ブロックが親ブロックであっても子ブロックであっても対象ブロックに対する編集操作に応じた処理を実行する(ステップS34)。
【0259】
その後、プロセッサ11は終了操作が行われた場合は、処理を終了し、終了操作が行われていない場合は、ステップS31の処理に戻る。
【0260】
このように本実施形態3のHP作成支援装置30では、ユーザが操作対象とする親ブロックの編集モードをロックボタンにより一括編集モードと通常編集モードとの間で切り換え可能としたので、親ブロックをロックすることで、親ブロックが編集の対象ブロックとなったとき、対象ブロック及びその内部に含まれるブロックの一括編集のみを可能とし、親ブロックのロックを解除することで、親ブロック内の個々の子ブロックに対する個別の編集が可能となる。
【0261】
なお、実施形態3のHP作成支援装置30により行われるHP作成支援処理も、実施形態1あるいは2と同様に、実施形態3のようにユーザ側の端末に搭載されているプログラムで動作するスタンドアロンアプリケーションではなく、ユーザ側の端末のブラウザ上で動作するプログラミング言語によるプログラムとウェブサーバに搭載されているプログラムとの協調により動作するウェブアプリケーションにより実行されてもよい。
【0262】
この場合、完成されたホームページのソースコードはサーバ側に格納されても、ユーザ側の端末に提供されてもよい。
【0263】
(実施形態4)
図59は、本発明の実施形態4によるHP作成支援装置40を説明するための図である。
【0264】
この実施形態4のHP作成支援装置40は、実施形態1のHP作成支援装置10と同様に、情報の処理を行うコンピュータ40aと、入力操作部13aと、表示部14aとを有する。コンピュータ40aは、実施形態1のコンピュータ10aのメモリ12に代わるメモリ42を備えており、メモリ42には、ホームページの作成を支援する処理として実施形態1のHP作成支援装置10のものとは異なる処理をプロセッサ11に実行させるためのプログラムが格納されている。
【0265】
なお、実施形態4のHP作成支援装置40では、コンピュータ40aのメモリ42以外の構成は、実施形態1のHP作成支援装置10と同一である。
【0266】
以下、実施形態4のHP作成支援装置40により行われる、ホームページの作成を支援する処理(以下、HP作成支援処理)を具体的に説明する。
【0267】
図60は、この実施形態4のHP作成支援装置40の表示部14aに表示される編集画面Seを示す図である。
図60中、
図15と同じ符号が付されたものは、実施形態1の編集画面Seにおけるものと同一のものである。
【0268】
この実施形態4のHP作成支援装置40により行われるHP作成支援処理は、コンピュータが、作成されたホームページのソースコードに含まれる隣接するタグの種類、タグに含まれる属性、および属性値を判別する処理と、コンピュータが、判別結果が所定の条件を満たすとき、隣接するタグを1つのタグに置き換えてソースコードを整理する処理とを含む。
【0269】
これらの処理は、プロセッサ11がメモリ42に格納されたプログラムを実行することにより行われる。また、メモリ42には、プロセッサ11をテキストエディッタとして機能させたり、ブラウザとして機能させたりするための一般的なオペレーションシステムが格納されていることは言うまでもない。また、このメモリ42には、実施形態1、2、3
のHP作成支援装置10、20、30と同様にホームページの作成を支援する処理を行うためのプログラムがさらに格納されていてもよい。例えば、実施形態1のプログラムがメモリ42に格納されている場合は、プレビュー画面Repでコンテンツの編集が可能となり、プレビュー画面Repで編集した1以上のコンテンツに対応するソースコードがソース画面Rceに表示されることとなる。
【0270】
この実施形態4のHP作成支援装置40は実施形態1のHP作成支援装置10のHP作成支援処理を行う機能は有していてもいなくてもよいが、ここでは、説明の都合上、実施形態1のHP作成支援装置10の機能を有するものとする。
【0271】
以下、このHP作成支援装置40を用いたホームページの編集処理を詳しく説明する。
【0272】
例えば、
図60に示す編集状態では、プレビュー画面Repに、1つのブロックボックスBr41が作成され、このブロックボックスBr41内にコンテンツ「ABCDEFG」Ct41が配置されている。なお、ソース画面Rceには、プレビュー画面Repに表示されているページ全体に対応するソースコードSc4が表示されており、ソースコードSc4はbody要素Sc40を含み、body要素Sc40は、ブロックボックスBr41に対応するソース要素Sc41を含んでいる。
【0273】
ユーザは、編集画面Se上に表示されたテキスト編集画面TSeの操作ボタンBu21〜Bu23などにより、ブロックボックスに含まれるコンテンツ「ABCDEFG」Ct41に対して種々のスタイルを設定することができる。
【0274】
ここで、スタイルの設定は以下のルール1〜3に従っている。
【0275】
(ルール1)CSSをHTML要素に設定する場合はspanタグを用い、spanタグ以外のタグにCSSを設定しない。これは、タグの整理の際に前後のタグが一致する確率を高めるためである。
【0276】
(ルール2)タグで分割されているコンテンツに跨ってタグを設定しない。
【0277】
なぜなら、タグで分割されているコンテンツに跨ってタグが設定されていると、開始タグと対応する終了タグとの間に、他のタグの開始タグおよび終了タグの一方のみが配置される部分が生じ、この部分ではHTML要素におけるタグの階層関係が判断できなくなり、結果的に、タグの階層関係に従って同一種類の終了タグと開始タグとを合体してソースコードを整理する最適化処理ができなくなるからである。
【0278】
(ルール3)タグにCSSを設定する場合、親タグのCSSは変更しない。1つのタグの親タグのCSSは変更すると親タグにぶら下がっている他の子タグが影響を受けるためである。
【0279】
図61は、
図59に示すHP作成支援装置40の動作を説明するための図であり、スタイル設定処理S400〜S407でコンテンツに種々のスタイルを設定したときのソースコードの変化を示す。
(スタイル設定処理S400)
例えば、
図60に示されるコンテンツ「ABCDEFG」Ct41のフォントサイズは12に設定されている。このようなフォントサイズの設定は、
図61に示すように、div要素の開始タグ<div>にクラス属性「class=“s12”」を付加することにより行われる。
(スタイル設定処理S401)
コンテンツ「ABCDEFG」のうちの一部「DEF」にフォントサイズ「18」を設定する場合は、その設定は、spanタグを用い、その開始タグ<span>にクラス属性「class=“s18”」を付加することにより行われる。
(スタイル設定処理S402)
コンテンツ「ABCDEFG」のうちの一部「BCD」に「color 99」を設定する場合は、その設定は、「BC」の前の開始タグ<span>および「D」の前の開始タグ<span>にクラス属性「class=“c99”」を付加することにより行われる。
(スタイル設定処理S403)
コンテンツ「ABCDEFG」のうちの一部「EF」に強調(EMPHASIS)を設定する場合は、その設定は、コンテンツ「EF」を含むspan要素の前後に<em>タグ</em>タグを配置することにより行われる。
(スタイル設定処理S404)
コンテンツ「ABCDEFG」のうちの一部「ABC」に別の強調(STRONG)を設定する場合は、その設定は、コンテンツ「A」の前後に<strong>タグ</strong>タグを配置し、コンテンツ「BC」の前後に<strong>タグ</strong>タグを配置することにより行われる。
(スタイル設定処理S405)
コンテンツ「ABCDEFG」のうちの一部「CDE」にイタリック体を設定する場合は、その設定は、コンテンツ「C」、「D」、「E」の前の<span>タグにクラスの属性値「ts1」を付加することにより行われる。
(スタイル設定処理S406)
コンテンツ「ABCDEFG」のうちの一部「ABCG」に、フォントサイズ「18」を設定する場合は、その設定は、コンテンツ「ABCDEFG」の「A」、「B」、「C」、「G」のそれぞれの前の<span>タグにクラスの属性値「s18」を付加することにより行われる。
(スタイル設定処理S407)
コンテンツ「ABCDEFG」のうちの一部「AEFG」に「color 99」を設定する場合は、その設定は、コンテンツ「ABCDEFG」の「A」、「E」、「F」、「G」のそれぞれの前の<span>タグにクラスの属性値「c99」を付加することにより行われる。
(スタイル設定処理S408)
コンテンツ「ABCDEFG」のうちの一部「ABCDG」に強調(EMPHASIS)を設定する場合は、その設定は、コンテンツ「ABCDEFG」の「A」、「B」、「C」の<storong>タグの直前に<em>タグを配置し、「A」、「B」、「C」の</storong>タグの直後に</em>タグを配置し、コンテンツ「ABCDEFG」の「D」、「G」の<span>タグの直前に<em>タグを配置し、「D」、「G」の</span>タグの直後に</em>タグを配置することにより行われる。
(スタイル設定処理S409)
コンテンツ「ABCDEFG」のうちの一部「DEFG」に強調(STRONG)を設定する場合は、その設定は、コンテンツ「ABCDEFG」の「D」の<em>タグの直前に<strong>タグを配置し、「G」の</em>タグの直後に</strong>タグを配置することにより行われる。
(スタイル設定処理S410)
コンテンツ「ABCDEFG」のうちの一部「ABFG」にイタリック体を設定する場合は、その設定は、コンテンツ「A」、「B」、「F」、「G」の前の<span>タグにクラスの属性値「ts1」を付加することにより行われる。
【0280】
次に、このようにして得られたソースコードを整理する処理を説明する。
【0281】
このソースコードの整理処理は、基本的に2つのパターンを認識し、そのパターンの存在により、タグ内容を合体し、最適化を行うものである。
【0282】
その2つのパターンは以下のパターン1とパターン2である。
【0283】
(パターン1)
同じタグ(strong、em、等)が隣りどうしになっている場合、その内容を合体し、一つのタグにすること。
【0284】
(パターン2)
隣り同士の特定のタグ(例えばspan)は同じクラス指定になっていれば、その内容を合体し、一つの特定のタグ(例えばspan)にすること。
【0285】
まず、プロセッサ11は、入力されたソースコードSc4aを分析することにより、ソースコードSc4aを構成するHTML要素が形成する階層構造の上位の階層から順にHTML要素の分析を行う。
【0286】
ここでは、
図62のスタイル設定処理S410で得られたソースコードSc4aの整理を行う場合を例に挙げて説明する。この実施形態4のHP作成支援装置40の処理の対象となるソースコードはこれに限定されない。
【0287】
この実施形態4のHP作成支援装置40によるソースコードの整理は、ソースコードを構成する複数の要素の階層構造の各階層毎に上位の階層から順に行われる。
【0288】
1回目の整理処理(整理サイクル1)では、まず、
図63(a)に示すように、プロセッサ11は、開始タグ<div class = “s12”>と終了タグ</div>との間に含まれるソースコードの記述を、このタグの1つ下の階層(第1階層)に属するHTML要素(第1階層要素)E1a〜E1gに区分する。
【0289】
次に、プロセッサ11は、隣接する第1階層要素の間で、同一タグが隣接している箇所を検出し、同一タグで定義された要素を合体する。
【0290】
例えば、
図63(a)に示す例では、<em>要素E1aと<em>要素E1bとの間、<em>要素E1bと<em>要素E1cとの間では、<em>タグが隣接している。<strong>要素E1dと<strong>要素E1eとの間、<strong>要素E1eと<strong>要素E1fとの間、<strong>要素E1fと<strong>要素E1gとの間では、<strong>タグが隣接している。
【0291】
従って、プロセッサ11は、
図63(b)に示すように、<em>要素E1a〜<em>要素E1cを合体して1つの<em>要素Eemに変換し、<strong>要素E1d〜<strong>要素E1gを合体して1つの<strong>要素Estに変換する。これにより整理されたソースコードSc4bが得られる。
【0292】
次に、2回目の整理処理(整理サイクル2)では、プロセッサ11は、<em>要素Eemに含まれるソースコードの記述、および<strong>要素Estに含まれるソースコードの記述の分析を行って、<em>要素Eemに含まれるソースコードの記述を、<em>要素Eemの1つ下の階層(第2階層)に属するHTML要素(第2階層要素)Eema〜Eemcに区分し、<strong>要素Estに含まれるソースコードの記述を、<strong>要素Estの1つ下の階層(第2階層)に属するHTML要素(第2階層要素)Estd〜Estgに区分する。
【0293】
次に、プロセッサ11は、隣接する第2階層要素の間で、同一タグが隣接している箇所を検出し、同一タグで定義された要素を合体する。
【0294】
例えば、
図64(a)に示すように、<strong>要素Eemaと<strong>要素Eembとの間、<strong>要素Eembと<strong>要素Eemcとの間では、<strong>タグが隣接している。
【0295】
<em>要素Estdと<em>要素Esteとの間、<em>要素Esteと<em>要素Estfとの間、<em>要素Estfと<em>要素Estgとの間では、<em>タグが隣接している。
【0296】
従って、プロセッサ11は、
図64(b)に示すように、<strong>要素Eema〜<strong>要素Eemcを合体して1つの<strong>要素Eem1に変換し、<em>要素Estd〜<em>要素Estgを合体して1つの<em>要素Est1に変換する。これによりさらに整理されたソースコードSc4cが得られる。
【0297】
続いて、3回目の整理処理(整理サイクル3)では、プロセッサ11は、<strong>要素Eem1に含まれるソースコードの記述、および<em>要素Est1に含まれるソースコードの記述の分析を行って、<strong>要素Eem1に含まれるソースコードの記述を、<strong>要素Eem1の1つ下の階層(第3階層)に属するHTML要素(第3階層要素)Eem11〜Eem13に区分し、<em>要素要素Est1に含まれるソースコードの記述を、<em>要素Est1の1つ下の階層(第3階層)に属するHTML要素(第3階層要素)Est11〜Est14に区分する。
【0298】
次に、プロセッサ11は、隣接する第3階層要素の間で、特定のタグが隣接し、かつタグのクラス指定(クラス属性の属性値)が同一となっている箇所を検出し、同じクラス指定を有する同一タグで定義された要素を合体する。
【0299】
例えば、
図65(a)に示すように、<strong>要素Eem1では、<span>要素Eem12はその前の<span>要素Eem11と同じクラス指定の同じタグを有し、<span>要素Eem13はその前の<span>要素Eem12と同じクラス指定の同じタグを有する。
【0300】
<em>要素Est1では、<span>要素Est12はその前の<span>要素Est11と同じクラス指定の同じタグを有し、<span>要素Est13はその前の<span>要素Est12と同じクラス指定の同じタグを有し、<span>要素Est14はその前の<span>要素Est13と同じクラス指定の同じタグを有する。
【0301】
従って、プロセッサ11は、
図65(b)に示すように、<span>要素Eem11〜<span>要素Eem13を合体して1つの<span>要素Eem2に変換し、<span>要素Est11〜<span>要素Est14を合体して1つの<span>要素Est2に変換する。これによりより一層整理されたソースコードSc4dが得られる。
【0302】
4回目の整理処理(整理サイクル4)では、プロセッサ11は、<span>要素Eem2に含まれるソースコードの記述、および<span>要素Est2に含まれるソースコードの記述の分析を行うが、これらの要素には区分されるべき要素は含まれていないので、
図66(a)に示すように、合体可能な記述パターンのHTML要素はないと判断し、3回目の整理処理(整理サイクル4)で得られた整理結果を4回目の整理結果(
図66(b))として確定し、ソースコードの整理を完成する。
【0303】
このように本実施形態4では、作成されたホームページのソースコードに含まれる隣接するタグの種類、タグに含まれる属性、および属性値を判別し、判別結果が所定の条件を満たすとき、隣接するタグを1つのタグに置き換えてソースコードを整理するので、機械的に作成されたホームページのソースコードを冗長のない簡単な記述に変換することができ、ソースコードに基づいてホームページの表示を行うブラウザなどでデータ処理の負荷を低減することができ、ブラウザの応答性や検索速度などの向上を図ることができる。
【0304】
なお、上記実施形態4では、ソースコードとして、タグで分割されているコンテンツに跨ってタグが設定されている部分のないものを挙げて、ソースコードを整理するソースコードの最適化処理を説明したが、ソースコードの最適化処理は、ソースコードが、タグで分割されているコンテンツに跨ってタグが設定されている部分を含むものでも可能である。
【0305】
例えば、第1のHTME要素「<div><em>ABC</em><strong>DEFG</strong></div>」では、コンテンツ「ABCDEFG」がemタグとstrongタグとにより、コンテンツ「ABC」とコンテンツ「DEFG」とに分割されている。
【0306】
これに対し、第2のHTME要素「<div><em>AB<span>C</em><strong>DE</span>FG</strong></div>」では、コンテンツ「ABC」とコンテンツ「DEFG」とに跨るようにspan要素が設定されている。
【0307】
このような構成の第2のHTME要素では、コンテンツ「ABCDEFG」のspanタグ内にある部分「C</em><strong>DE」とspanタグ外にある部分「<em>AB」およびFG</strong>とで新しいタグをつけることにより最適化処理が可能となる。
【0308】
具体的には、spanタグ内にある部分「C</em><strong>DE」は、em開始タグ<em>とstrong終了タグ</strong>を追加することで、「<em>C</em><strong>DE</strong>」に変更される。さらに、spanタグ外にある部分「<em>AB」は、em終了タグ「</em>」の追加により「<em>AB</em>」に変更される。また、spanタグ外にある部分「FG</strong>」は、strong開始タグ「<strong>」の追加により「<strong>FG</strong>」に変更される。
【0309】
結果、第2のHTME要素「<div><em>AB<span>C</em><strong>DE</span>FG</strong></div>」は、第3のHTME要素「<div><em>AB</em><span><em>C</em><strong>DE</strong></span><strong>FG</strong></div>」に変更される。
【0310】
これにより、第2のHTME要素は、タグで分割されているコンテンツに跨ってタグが設定されている部分のないもの(第3のHTME要素)となる。
【0311】
また、実施形態4のHP作成支援装置40により行われるHP作成支援処理も、実施形態1ないし3のいずれかと同様に、実施形態4のようにユーザ側の端末に搭載されているプログラムで動作するスタンドアロンアプリケーションではなく、ユーザ側の端末のブラウザ上で動作するプログラミング言語によるプログラムとウェブサーバに搭載されているプログラムとの協調により動作するウェブアプリケーションにより実行されてもよい。
【0312】
この場合、最適化されたソースコードはサーバ側に格納されても、ユーザ側の端末に提供されてもよい。
【0313】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。