wpwmm4(1) - makeとm4を備えたWebページ - 静的Webページを生成する
Makeコマンドを簡単に使用します。 MakeFileは、FreeBSDとNetBSDのメーカーと互換性があります。 LinuxにBmakeパッケージをインストールする必要があります。
WPWMM4を使用すると、 M4ファイルから静的Webページを作成できます。生成はmakeによって行われます。外部スクリプトまたはコマンドを使用できます。
ディレクトリにconfig.mkファイルを作成し、このファイル内に次の変数を設定する必要があります。もちろん、 config.mkに.includeを使用できます。
common_dir : 00_defines.m4はここにあります。通常、 MakeFileと同じディレクトリです。
include_dir :ユーザーベースにM4が含まれるディレクトリ。メインソースディレクトリに関連しています。
SRC_DIR :この変数は、ソースファイル(通常は*.m4 )があるソースディレクトリを指します。サブディレクトリを含めることができます。
ASSETS_DIR :このディレクトリには、静的ファイル( * .css 、 * .jsなど)があります。
assets_dest_dir :静的ファイルのターゲットディレクトリ。内部$ {dest_dir}が必要な場合は、この変数に含める必要があります。
assets_cp : $ {assets_dir}をコピーするコマンド。デフォルトは@CP -Rです。
Dest_dir :コンパイルされた(作成)HTMLの場所。 $ {src_dir}のサブディレクトリツリーは、このディレクトリにmakeによって作成されます。
flag_dir :フラグがあるディレクトリ。フラグは、建物に関する情報を保存するシンプルなファイルです。フラグは1つだけです: $ {flag_mkdir}は、ディレクトリ構造が$ {dest_dir}で作成され、作成されたディレクトリのリストを保存する時間に署名します。 $ {mkdir_req}経由でプラス依存を追加できます。したがって、このファイルが変更された後、ディレクトリ構造を再構築できます。
layout_dir :レイアウトは次のとおりです。
virt_dir :このディレクトリには、仮想ページのテンプレートが含まれています。
ターゲット:静的ファイル(仮想ページは含まれていない)のスペースセイパーリストは、何を作成する必要がありますか。建物システムに含まれているため、 $ {dest_dir}を含めないでください。もちろん、ディレクトリを使用できます。自動化された要件は、 HTML拡張機能をM4拡張機能に置き換える$ {src_dir}の同じファイルです。
Targets_Manual :作成すべき静的ファイルのスペースセーパーリスト。建物システムに含まれているため、 $ {dest_dir}を含めないでください。これらのターゲットは、上記の$ {ターゲット}として自動的に生成された要件を持っていません。
GREQ :グローバル要件。それはすべてのターゲットに必要です。デフォルトは空です。
foo.html_req : $ {ターゲット}変数に含まれるfoo.htmlの追加要件(上記参照)。 foo.m4が自動的に追加されます。これらの変数はオプションです。
M4 : M4コマンド。ほとんどの場合、単にM4 (パス内)に設定できます。この変数はオプションで、デフォルト値はM4です
M4_PARAMS : M4コマンドのパラメーター。デフォルト値は-p -iが含まれます-d_src_dir = $ {src_dir} 。 M4_プレフィックスを備えた組み込みマクロを使用するため、Option -Pはネクサリーであることに注意してください。
次の変数は、建物中に動的に作成され、 M4ソースとテンプレートでそれらを使用できます。
_directory : $ {dest_dir}内のターゲットディレクトリ( $ {dest_dir}プレフィックスなし)。 $ {dest_dir}のルートは「。」です。 (ドット)。
_FILE :生成中のターゲットファイル名(拡張機能なし)。
システムは、ファイルで使用できるヘルパーをいくつか掲載しています。それらは00_defines.m4で定義されています。ヘルパーのリストは次のとおりです。
_body(content、options) : <body $ options> $ content </body>を生成します。
_Charset(charset) : <meta charset = "$ charset">を生成します。
_Class(class1、class2、...) : class = "$ class1 $ class2 ..."を生成します。
_css(cssfile) : <link rel = "styleSheet" href = $ cssfile>を生成します。
_div(class、content、options) : <div class = $ class $ options> $ content </div>を生成します。
_head(options、content) : <head $ options> $ content </head>を生成します。
_href(url、text、options、title) : <a href = $ url $ options title = $ title> text </a>を作成します。
_Meta(パラメーター) : <Meta $ parameters>を生成します。
_ol(パラメーター) :注文リストを生成<ol> <li> $ 1 </li> <li> $ 2 </li> ... </ol> 。コンマで区切られたパラメーターリストのアイテムを指定できます。引用に注意してください!
_stag(tagname、パラメーター) : <$ tagname $ parameters>を生成します。
_tag(tagname、content、options) : <$ tagname $ options> $ content </$ tagname>を生成します。
_title(title、options) : <title $ options> $ title </title>を作成します。
_ul(パラメーター) : _olと同じ。
仮想ページはソース(M4)ファイルを持っていません。同様のコンテンツを持つ同様のページを作成したい場合に便利です(たとえば、PDFファイルのリスト、画像のリストなど)。
仮想のグループを作成する必要があります(グループに1つの仮想を追加できます)。次の変数でそれを行うことができます。
仮想:カテゴリの名前が含まれています。たとえば、 Virtuals = cat1 cat2 。カテゴリはスペース文字によって分離されます。
VirtualTemplate_* :(上記の例に従う) virtualTemplate_cat1およびvirtualTemplate_cat2変数を設定できます。彼らの値は、仮想ページを生成するためにどのテンプレートを使用すべきかを言っています。テンプレートはvirt_dirディレクトリに保存されます。テンプレートファイルでは、動的に作成された変数を使用できます。[ソース内の変数] []以下のセクションを参照してください。
VirtualDir_* :この変数は、生成されたページが表示されるターゲットディレクトリを指します。すべてのカテゴリを設定する必要があるため、 virtualdir_cat1とvirtualdir_cat2も設定する必要があります。
virtualout_* :出力ファイル名。たとえば、 virtual_cat1 = foo1.html foo2.html 。この場合、 $ {virtualdir_cat1} /foo1.htmlと$ {virtualdir_cat1} /foo2.htmlがあります。
VirtualReq_* :仮想カテゴリへの追加要件。 $ {virtualTemplate _*}。M4は自動的に追加されます。
VirtualReqrule_* :ファイルごとの要件を定義する単純な変換ルール。変換ルールは、$ {virtualout_*}変数の要素に適用されます。たとえば、 virtualReq_foo = c、.html、.dat、ルールはすべての.html拡張子を.dat拡張子に変換します: $ {destdir} /foodir/bar.htmlはfoodir/bar.datファイルに依存します。 ** $ {virtualdir_*}の値は自動的に含まれていないため、必要に応じて行う必要があります。再帰的依存関係に注意してください! Make(1)のマニュアルで可能な修飾子をご覧ください!
指定されたイベントで実行されるフックを定義できます。定義で$ {。ターゲット}マクロを使用できます。なぜなら、 Makeは必要なときにこの変数を拡張する(定義ではない)からです。表示したくない場合は、コマンドを@ signでプレフィックスする必要があります。
hook_pre_html : M4ファイルからHTMLファイルを生成する前に実行します。デフォルト値は$ {msg1}ビルド$ {。ターゲット}です。
hook_post_html : M4ファイルからHTMLファイルを生成した後に実行されます。デフォルト値は空です。このフックは、HTMLファイルの有効性を確認する場合に役立ちます(たとえば、Tidyを使用して、http://www.html-tidy.org/を参照してください)。
hook_pre_vhtml :仮想テンプレートからHTMLファイルを生成する前に実行されます(上記[Virtuals] []を参照)。デフォルト値は$ {MSG1}の建物仮想$ {。ターゲット}です。
hook_post_vhtml :仮想テンプレートからHTMLファイルを生成した後に実行されます。デフォルト値は空です。
** config.mk 'にいくつかの特別なターゲットを定義できます。
すべての前:このターゲットは、他のターゲットの前に実行されます(もちろんクリーンを除く)。たとえば、WPWMM4で使用されているファイルでさえ、いくつかのファイルを作成するスクリプトを実行できます。このターゲットを使用すると、タグ機能をエミュレートできます([Virtuals] []機能を使用)。別のアイデアは、 $ {Targets}変数( Findコマンドを使用)を自動的に生成することです。
Clean-other : Clean Targetを実行すると( $ {dest_dir}ディレクトリですべてを削除します)、実行されます。
構成をデバッグするのに役立つ特別なターゲットがいくつかあります。
show-config :メイン変数を表示します。
ショーフック:フックを表示します。
ショーターゲット:ターゲットを表示します(仮想ターゲットを含む)。
show-req :ターゲットに要件を表示します。ターゲットは、空白のないラインを開始し、要件は2つのスペースで前に付けられます。最新の要件と次のターゲットの間には、挿入された空の行があります。
ショー仮想:このターゲットには、定義された仮想とその構成が表示されます。
M4ファイルに使用して設定できる変数がいくつかあります。
役立つコマンドがいくつかあります。それらは00_defines.m4で定義されています。これがリストです:
_script(command) : $ commandを実行して出力( stdoutとstderrも貼り付けます)。 M4のesyscmdマクロを使用します。
_layout(layout、varname1、var1、varname2、var2、...) : $レイアウトレイアウトを読み込みます。 M4にはマクロが含まれています。ソースファイルの先頭でWebページレイアウトを定義できます。このコマンドは、変数varname1 、 varname2 、... valus var1 、 var2を割り当てます。
_layout_pre(pre) : $ preは、含まれているコンテンツの前に印刷されます。
_layout_post(post) : $ postは、含まれたコンテンツの後に印刷されます。
_incl(file) : $ fileが含まれます。迂回は-1であるため、このマクロは出力を生成しません。マクロ定義のファイルをロードすることが理想的です。
_2_body(テキスト) : $テキストはボディタグになります。このマクロはすべての入力を収集し、何も印刷しません。 _pr_bodyを使用すると、コンテンツを印刷(クリア)できます。
_2_head(テキスト) : _2_bodyと同じですが、ヘッドタグに収集されます。
_pr_body : _2_bodyによって収集されたコンテンツを印刷およびリセットします。それは単純なアンディバートマクロです。
_pr_head : _pr_bodyと同様です。
_pr_all : <!doctype html> <html lang = "lang"> 、 _pr_headと_pr_bodyを呼び出し、 HTMLタグを閉じた後に印刷します。
config.mk
生成された例は私の個人的なホームページ(ハンガリー語)です:http://uzsolt.hu/とそのソースファイルはhttps://svn.uzsolt.hu/uzsolt.hu/wpwmm4-uzsolt.hu/とgithub mirrorにあります。 :https://github.com/uzsolt/wpwmm4-uzsolt.hu。
それは単純な複雑な例ですが、それはwpwmm4の力を示しています:)それは持っています
M4(1)、make(1)
Zsolt Udvari([email protected]、www.uzsolt.hu)