Open Source Web Development with LAMP Using Linux, Apache, MySQL, Perl, and PHP [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Open Source Web Development with LAMP Using Linux, Apache, MySQL, Perl, and PHP [Electronic resources] - نسخه متنی

James Lee, Brent Ware

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










6.6 Diversion


In the process of making the HTML files, WML implements a text diversion filter. That bit of jargon means that a section of text can be created in one place in a file, or in a completely separate file, and then included somewhere else within the HTML. This is most helpful with templates, because a template is an HTML file that usually defines the outer HTML (the top, sides, and bottom), and the inner HTML (the page contents) is in a separate file.

This is one syntax to create a diversion:


..DIVERSION>>This is the diversion text<<..

The marker ..DIVERSION>> begins the text. The name DIVERSION is all uppercase by convention. The diversion does not have to be named DIVERSION; it can be named anything you want as long as the name begins with an alpha and is followed by zero or more alphas, digits, or underscores, upper-or lowercase. The text in the diversion continues until the end-of-diversion marker <<.. is found.

To use the diversion later (or even before its definition) use this:


<<DIVERSION>>

This causes the text in the definition to be included at this point.

An example can be found in /var/www/html/wml/diversion.wml:


..NAME>>John Doe<<..
Hello <<NAME>>!
<br>
Here is my message: <<MSG>>
..MSG>>
WML is cool!
<<..

The example starts with a diversion definition for NAME, "John Doe." The next line uses the diversion <<NAME>> in the text:


Hello <<NAME>>!

This line becomes this, after WML is finished processing:


Hello John Doe!

The definition of NAME comes before its use. That's fine. The next line, however, uses a diversion not yet defined:


Here is my message: <<MSG>>

The diversion for MSG is defined after it is used. That's kosherbecause WML is a multipass process, the definition can be before or after. This definition:


..MSG>>
WML is cool!
<<..

spans multiple lines. That's fine tooyou are free to add whitespace as needed or desired.

To build the HTML, make the WML in the usual fashion:


$ wmk diversion.wml
wml -n -o diversionl diversion.wml

The resulting HTML file is:


Hello John Doe!
<br>
Here is my message:
WML is cool!

If you want to see this example, check out http://localhost/wml/diversionl or www.opensourcewebbook.com/wml/diversionl.

There are other diversion syntaxes as well. One such syntax is:


# create the diversion to use later
{#NAME#:
John Doe
:##}
# use the diversion
My name is: {#NAME#}!

This is another syntax, which requires the use of wml::std::tags:


#use wml::std::tags
<divert NAME>John Doe</divert>
My name is: <dump NAME>!

We most often use the ..NAME>> ... <<.. syntax, but on occasion we use the <divert NAME> ... </divert> syntaxTMTOWTDI (in WML as well as in Perl and most things LAMP).


/ 136