ゴミ箱.net

汚物は消毒

[webgen]複数のコンテンツブロックを使用する

webgenでは、ページファイルとテンプレートファイルにおいてメタ情報ブロックとコンテンツブロックという領域を分けて記述することができた。
ファイルの先頭およびブロックの区切りに「---」を記述することでメタ情報ブロックとコンテンツブロックに分かれていることを示すことができる。
---
※メタ情報ブロック
---
※コンテンツブロック
なお区切りが一切ない場合はファイル全体がコンテンツブロックとなる。

このコンテンツブロックだが、実際には任意の個数定義することができる。
これによってテンプレートの複数の箇所にHTMLを埋め込んだり、繰り返し出現する文言をコンテンツブロックとして複数個所に埋め込んだりといったことができるのだ。

続きを読む

スポンサーサイト

PageTop

[webgen]テンプレートを入れ子にする

このページの情報はwebgen 1.4.0をもとにしています。

webgenでは、テンプレートを入れ子にして適用することができる。

たとえば、各ページがヘッダ領域、サイドメニュー領域、本文領域という3つの領域に分かれたウェブサイトを考える。
ページはAからDまで4ページあり、本文領域はページごとにすべて内容が異なる。
サイドメニュー領域は2種類あり、ページA、BではサイドメニューX、ページC、DではサイドメニューYが表示される。
ヘッダ領域はすべてのページでまったく同じ。
その際、同じことを2回記述することはできるだけ避けたい。
そのような場合にテンプレートをどう作ればよいか?

続きを読む

PageTop

[webgen]任意の拡張子のファイルをソースに追加する

このページの情報はwebgen 1.4.0をもとにしています。

webgenではソースファイルsrcに置いたファイルのうち、ページファイルとテンプレートファイル以外はそのまま出力フォルダoutにコピーされる。
ただし、どんな種類のファイルでもコピーされるわけではない。デフォルトではCSS、JavaScript、特定の画像ファイルといったもののみがコピーされる。
たとえばソフトウェアを配布するためにインストーラのexeファイルを置きたいとか、PDFファイルを公開したいとかいった場合、そのままでは出力フォルダに反映されない。

ここでは、デフォルトで出力フォルダにコピーされないファイルをコピーされるようにする方法を説明する。

続きを読む

PageTop

webgen導入メモ (4) ビルド編

このページの情報はwebgen 1.4.0をもとにしています。

ソースフォルダの中身を作り終わったら、ビルドしてウェブサイトのファイルを生成しよう。

コマンドプロンプトでwebgenのルートフォルダをカレントフォルダにし、以下のコマンドを実行する。
webgen

これだけで一時フォルダtmpと出力フォルダoutが生成され、出力フォルダに最終的なHTMLファイルが置かれる。あとは出力フォルダの内容をウェブサーバに転送するなり、ZIPファイルに圧縮して配布するなりすればよい。
ソースフォルダに置かれたページファイルに対し、拡張子が.pageから.htmlに変換されたファイルが、出力フォルダの同じフォルダ階層に生成される。HTMLファイルの内容はテンプレートファイルの所定の位置にソースフォルダのコンテンツブロックの内容を埋め込んだものとなる。
また、ソースフォルダ内のページフォルダとテンプレートフォルダ以外のファイルはそのまま出力フォルダにコピーされる。

一時フォルダにはビルド時にキャッシュファイルwebgen.cacheが生成される。その内容はユーザが特に気にする必要はない。

webgenはソースファイルの変更を検出して必要なファイルのみビルドしてくれるが、たまに変更の検出が失敗するときがある。たとえば拡張フォルダextの中のスクリプトinit.rbを書き換えたときなどは、ソースフォルダのファイルは一切変更されていないのでビルドの必要なしと判定されてしまう。
そういう場合は一時フォルダと出力フォルダを消してからビルドしなおすとよい。

PageTop

webgen導入メモ (3) ページ作成編

このページの情報はwebgen 1.4.0をもとにしています。

ひととおりフォルダ構成を作成したら、ウェブページの元データを作っていこう。

ソースフォルダsrcにウェブサイトの元データとなるファイルを配置していく。以降、ソースフォルダに置くファイルを便宜上ソースファイルと呼ぶ。
ソースファイルには以下の種類がある。
ページファイル
ウェブページの内容をMarkdown記法で記述するファイル。最終的なHTMLファイルと(ほぼ)1対1で対応する。
テンプレートファイル
すべてのHTMLファイルの雛形となるファイル。テンプレートファイルを枠とし、その中の所定の位置にページファイルの内容をはめ込んだものが最終的なHTMLファイルとなる。HTMLのヘッダ部、全画面共通のロゴやメニュー、CSSやJavaScriptのタグなどといった、すべてのHTMLファイルに共通する要素をここに記述する。
その他のファイル
CSS、JavaScript、画像など。

まず最初にページファイルを作る。

続きを読む

PageTop