| 1. ファイル公開
時間に追われながら書きなぐったので、XMLやXSLには恥ずかしい部分が多いのですが、少しはみなさんの役にたつかと思い、このハウツーを作成するために使ったすべてのファイルを公開します。
2. 各ページの生成
すべてをダウンロードした場合、下のようなディレクトリ構成になります。 <Howtoexportディレクトリ> 公開用のhtmlファイル <imageディレクトリ> 公開用htmlが使う画像ファイル。 <xmlディレクトリ> html生成のためのデータをおさめたXMLファイル。 各htmlを生成するXSLファイル <textディレクトリ> XML生成のためのKELF用文書(*.x_) XML生成のためのKELF用文法ファイル(forxml.kps) エクスポート用設定ファイル(*.ini) 例3で使用するファイル類 addinfiles.txt,addinfilex.xml,addinfiles.xml makeproglist.xsl relate.xsl relate.html <imageディレクトリ> relate.htmlが使う画像ファイル <「KELFエクスポート機能の使い方」index.htmlの作成>
3. XSLの簡単な説明
(1)./xml/text/howtoexport.x_をforxml.kpsの文法でKELFに読み込み、howtoexport.iniでエクスポート。/xml/howtoexport.xmlを作成する。 <「NetNewsログをXML化」exp_netnews.htmlの作成>(2)./xml/howtoexport.xmlと./xml/howtoexport.xslからindex.htmlを生成。 (1)./xml/text/exp_netnews.x_をforxml.kpsの文法でKELFに読み込み、exp_netnews.iniでエクスポート。./xml/exp_netnews.xmlを作成する。 <「FAQ集を作る」exp_faq.htmlの作成>(2)./xml/exp_netnews.xmlと./xml/exp_netnews.xslからexp_netnews.htmlを生成。 (1)./xml/text/exp_faq.x_をforxml.kpsの文法でKELFに読み込み、exp_faq.iniでエクスポート。./xml/exp_faq.xmlを作成する。 <「XMLを変換する」transxml.htmlの作成>(2)./xml/exp_faq.xmlと./xml/exp_faq.xslからexp_faq.htmlを生成。 (1)./xml/text/transxml.x_をforxml.kpsの文法でKELFに読み込み、transxml.iniでエクスポート。./xml/transxml.xmlを作成する。 <「KELFをXMLエディタ風に使って」mk_proglist.htmlの作成>(2)./xml/transxml.xmlと./xml/transxml.xslからtransxml.htmlを生成。 (1)./xml/text/mk_proglist.x_をforxml.kpsの文法でKELFに読み込み、mk_proglist.iniでエクスポート。./xml/mk_proglist.xmlを作成する。 <「Kazusoft HPを素材に」mk_proglist2.htmlの作成>(2)./xml/mk_proglist.xmlと./xml/mk_proglist.xslからmk_proglist.htmlを生成。 (1)./xml/text/mk_proglist2.x_をforxml.kpsの文法でKELFに読み込み、mk_proglist2.iniでエクスポート。./xml/mk_proglist2.xmlを作成する。 <「(番外)このハウツーの作成」mk_howto.htmlの作成>(2)./xml/mk_proglist2.xmlと./xml/mk_proglist2.xslからmk_proglist2.htmlを生成。 (1)./xml/text/mk_howto.x_をforxml.kpsの文法でKELFに読み込み、mk_howto.iniでエクスポート。./xml/mk_howoto.xmlを作成する。 KELFからのエクスポートで、それぞれxxxxx.iniという個別の設定ファイルを使っていますが、実質的にこれらはすべて同じ内容です。ひとつのファイルを使ってもいいです。ただ、文書名と同じ名前にしておくと、「エクスポート」⇒「過去の設定を読み込む」のとき設定ファイルを選択する手間がはぶけます。(2)./xml/mk_howto.xmlと./xml/mk_howto.xslからmk_howto.htmlを生成。 エクスポートの「過去の設定を読み込む」は、KELF登録ユーザーしか使えません。手で入力してもそんな手間ではないと思います。「Kazusoft HPを素材に」で説明しているのと同じ設定でエクスポートしてください。 文法ファイルも同様です。登録ユーザーしか利用できません。「Kazusoft HPを素材に」で説明しているのと同じ文法ですので、非登録ユーザーは手で文法を入力してください。入力は一度ですみます。一度入力して「文法を保存」すればレジストリに記録されますので、次からは番号で呼び出せます。 各ページはすべて同じ構成です。
タイトル部は、contents.xsl内にある <xsl:template name='gen_toptitle'> ・・・・ </xsl:template > で作成しています。 ページ生成用の各XSLからデータファイル名を渡し、そのファイル名によってタイトル文字列を変えています。 ページ左上部のINDEXは、contents.xsl内にある <xsl:template name='gen_contents'> ・・・・ </xsl:template > で作成しています。 ページ生成用の各XSLから渡しているのは、indexlist.x_から作成したindexlist.xmlというデータファイルです。 indexlist.x_をご覧いただけばわかるように、これは、各ページで使うXMLデータファイルの一覧です。gen_contentsテンプレートはこの一覧からそれぞれのデータファイルを開き、そのトップに書かれている<index>要素から大きな項目を作成、<article>要素の<title>からページ内の小項目を作成しています。 そのとき、現在開いているページの部分は文字色を変えたいので、ページで使うデータファイル名を、各ページ用XSLからパラメタとして渡しています。 ページ左下部のLINKsは、linksofxml.xsl内にある <xsl:template name='gen_linksofxml'> ・・・・ </xsl:template > で作成しています。 使用するデータファイルはlinksofxml.xmlで、linksofxml.x_からのエクスポートで作成しています。 ページ右のメイン記事の部分は、すべてmainarticles.xsl内にある <xsl:template name='gen_mainarticles'> ・・・・ </xsl:template > で作成しています。 ページごとにデータファイルが変わるだけです。データファイル名をパラメタとして渡しています。 ページ下のフッタ部は、hwe_footer.xsl内にある <xsl:template name='gen_hwefooter'> ・・・・ </xsl:template > で作成しています。 ページジャンプ用のリンクは、上のINDEXとまったく同じ論理構成で作成しています。 |