--- /srv/rebuilderd/tmp/rebuilderdqAgWDH/inputs/htp_1.19-8+b1_riscv64.deb +++ /srv/rebuilderd/tmp/rebuilderdqAgWDH/out/htp_1.19-8+b1_riscv64.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2024-01-29 07:46:02.000000 debian-binary │ --rw-r--r-- 0 0 0 3656 2024-01-29 07:46:02.000000 control.tar.xz │ --rw-r--r-- 0 0 0 116180 2024-01-29 07:46:02.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 3652 2024-01-29 07:46:02.000000 control.tar.xz │ +-rw-r--r-- 0 0 0 115956 2024-01-29 07:46:02.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── file list │ │ │ @@ -1,28 +1,28 @@ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/bin/ │ │ │ -rwxr-xr-x 0 root (0) root (0) 59704 2024-01-29 07:46:02.000000 ./usr/bin/htp │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/share/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/share/doc/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/ │ │ │ --rw-r--r-- 0 root (0) root (0) 9723 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/alttext.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 10522 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/alttext.html │ │ │ -rw-r--r-- 0 root (0) root (0) 1418 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/alttext.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 8850 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/block.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 9462 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/block.html │ │ │ -rw-r--r-- 0 root (0) root (0) 781 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/block.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 8100 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/blockdef.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 10096 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/blockdef.html │ │ │ -rw-r--r-- 0 root (0) root (0) 1075 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/blockdef.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 4763 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/bugs.html │ │ │ -rw-r--r-- 0 root (0) root (0) 737 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/bugs.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 878 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/changelog.Debian.gz │ │ │ -rw-r--r-- 0 root (0) root (0) 216 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/changelog.Debian.riscv64.gz │ │ │ --rw-r--r-- 0 root (0) root (0) 11816 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/comment.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 15980 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/comment.html │ │ │ -rw-r--r-- 0 root (0) root (0) 676 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/comment.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 13083 2020-06-14 23:16:46.000000 ./usr/share/doc/htp/copyright │ │ │ --rw-r--r-- 0 root (0) root (0) 17195 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/def.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 11915 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/def.html │ │ │ -rw-r--r-- 0 root (0) root (0) 3601 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/def.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 8030 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/default.html │ │ │ -rw-r--r-- 0 root (0) root (0) 3149 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/default.htp │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/examples/ │ │ │ -rw-r--r-- 0 root (0) root (0) 536 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/Makefile.sub │ │ │ -rw-r--r-- 0 root (0) root (0) 2404 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/album.hti │ │ │ -rw-r--r-- 0 root (0) root (0) 1087 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/album.htt │ │ │ @@ -33,49 +33,49 @@ │ │ │ -rw-r--r-- 0 root (0) root (0) 818 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/prime.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 1576 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/examples/quine.html │ │ │ -rw-r--r-- 0 root (0) root (0) 1576 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/quine.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 604 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/section.def │ │ │ -rw-r--r-- 0 root (0) root (0) 1189 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/examples/section.html │ │ │ -rw-r--r-- 0 root (0) root (0) 918 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/section.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 375 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/section.htt │ │ │ --rw-r--r-- 0 root (0) root (0) 11553 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/expand.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 8988 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/expand.html │ │ │ -rw-r--r-- 0 root (0) root (0) 3702 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/expand.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 17423 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/file.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 17780 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/file.html │ │ │ -rw-r--r-- 0 root (0) root (0) 2490 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/file.htp.gz │ │ │ -rw-r--r-- 0 root (0) root (0) 14293 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/history.html │ │ │ -rw-r--r-- 0 root (0) root (0) 3946 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/history.htp.gz │ │ │ -rw-r--r-- 0 root (0) root (0) 3911 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/hlhtp.pl │ │ │ -rw-r--r-- 0 root (0) root (0) 165 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/htp.def │ │ │ -rw-r--r-- 0 root (0) root (0) 4049 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/htp.htt │ │ │ --rw-r--r-- 0 root (0) root (0) 12242 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/if.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 9054 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/if.html │ │ │ -rw-r--r-- 0 root (0) root (0) 932 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/if.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 9443 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/imageurl.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 9420 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/imageurl.html │ │ │ -rw-r--r-- 0 root (0) root (0) 2507 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/imageurl.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 8662 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/img.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 8639 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/img.html │ │ │ -rw-r--r-- 0 root (0) root (0) 1168 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/img.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 10059 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/inc.html │ │ │ -rw-r--r-- 0 root (0) root (0) 1092 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/inc.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 9881 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/include.html │ │ │ -rw-r--r-- 0 root (0) root (0) 1894 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/include.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 4874 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/index.html │ │ │ -rw-r--r-- 0 root (0) root (0) 78 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/index.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 7733 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/intro.html │ │ │ -rw-r--r-- 0 root (0) root (0) 3489 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/intro.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 10774 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/license.html │ │ │ -rw-r--r-- 0 root (0) root (0) 454 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/license.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 3782 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/macros.def │ │ │ -rw-r--r-- 0 root (0) root (0) 5088 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/macros.html │ │ │ -rw-r--r-- 0 root (0) root (0) 388 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/macros.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 14028 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/metatag.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 14985 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/metatag.html │ │ │ -rw-r--r-- 0 root (0) root (0) 2439 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/metatag.htp.gz │ │ │ --rw-r--r-- 0 root (0) root (0) 8471 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/opt.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 9793 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/opt.html │ │ │ -rw-r--r-- 0 root (0) root (0) 608 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/opt.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 7809 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/options.html │ │ │ -rw-r--r-- 0 root (0) root (0) 3100 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/options.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 8130 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/output.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 8851 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/output.html │ │ │ -rw-r--r-- 0 root (0) root (0) 695 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/output.htp │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/pic/ │ │ │ -rw-r--r-- 0 root (0) root (0) 171 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/pic/arrow.png │ │ │ -rw-r--r-- 0 root (0) root (0) 262 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/pic/download.png │ │ │ -rw-r--r-- 0 root (0) root (0) 708 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/pic/htpicon.png │ │ │ -rw-r--r-- 0 root (0) root (0) 25563 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/pic/logo.png │ │ │ -rw-r--r-- 0 root (0) root (0) 455 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/pic/manbig.png │ │ │ @@ -109,15 +109,15 @@ │ │ │ -rw-r--r-- 0 root (0) root (0) 3393 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/tutorial.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 9042 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/undef.html │ │ │ -rw-r--r-- 0 root (0) root (0) 460 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/undef.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 9160 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/unset.html │ │ │ -rw-r--r-- 0 root (0) root (0) 658 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/unset.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 7681 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/usage.html │ │ │ -rw-r--r-- 0 root (0) root (0) 2959 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/usage.htp │ │ │ --rw-r--r-- 0 root (0) root (0) 12127 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/use.html │ │ │ +-rw-r--r-- 0 root (0) root (0) 11961 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/use.html │ │ │ -rw-r--r-- 0 root (0) root (0) 3300 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/use.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 10282 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/while.html │ │ │ -rw-r--r-- 0 root (0) root (0) 938 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/while.htp │ │ │ -rw-r--r-- 0 root (0) root (0) 5288 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/wishlist.html │ │ │ -rw-r--r-- 0 root (0) root (0) 1311 2024-01-29 07:46:02.000000 ./usr/share/doc/htp/wishlist.htp │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-01-29 07:46:02.000000 ./usr/share/doc-base/ │ │ │ -rw-r--r-- 0 root (0) root (0) 235 2020-06-14 17:36:12.000000 ./usr/share/doc-base/htp.htp │ │ ├── ./usr/share/doc/htp/alttext.html │ │ │ @@ -131,17 +131,24 @@ │ │ │
│ │ │ When an IMG tag with a matching source is encountered, htp will add an ALT │ │ │ attribute only if one is not already present. This allows for ALT text to │ │ │ be overridden on specific images and default text on all others. │ │ │
│ │ │ For example: │ │ │
│ │ │ -<
def name="tagname" [option="option1 [option2 ...]" ] [global] [expand]>
│ │ │ -<
/def>
│ │ │ + <
blockdef name="section" option="title">
│ │ │ + <h1><
use title></h1>
│ │ │ + <p class="section">
│ │ │ + <
use block>
│ │ │ + </p>
│ │ │ + <
/blockdef>
│ │ │
│ │ │ + <section title="My Section">
│ │ │ + This is a fancy section.
│ │ │ + </section>
│ │ │
│ │ │ An ALTTEXT tag with a name but no text attribute removes any ALT │ │ │ mapping for this image. Successing IMG tags with a matching SRC name are not │ │ │ changed. │ │ │
│ │ │ Since this is useful for an image used throughout a set of documents, │ │ │ ├── html2text {} │ │ │ │ @@ -14,23 +14,29 @@ │ │ │ │ _I_F comparisons. │ │ │ │ _I_N_C When an IMG tag with a matching source is │ │ │ │ _I_M_G encountered, htp will add an ALT attribute only if │ │ │ │ _I_M_A_G_E_U_R_L one is not already present. This allows for ALT │ │ │ │ _O_P_T text to be overridden on specific images and │ │ │ │ _O_U_T_P_U_T default text on all others. │ │ │ │ _Q_U_O_T_E For example: │ │ │ │ - _S_E_T <_[_[_r_e_f_]_]_d_e_f name="tagname" [option="option1 │ │ │ │ - _U_N_D_E_F [option2 ...]" ] [global] [expand]> │ │ │ │ - _U_N_S_E_T <_[_[_r_e_f_]_]_/_d_e_f> │ │ │ │ - _U_S_E_,_ _$ │ │ │ │ - _W_H_I_L_E An ALTTEXT tag with a name but no text attribute │ │ │ │ - _<_!_-_-_- removes any ALT mapping for this image. Successing │ │ │ │ - _H_i_s_t_o_r_y IMG tags with a matching SRC name are not changed. │ │ │ │ - _W_i_s_h_ _l_i_s_t Since this is useful for an image used throughout a │ │ │ │ - _B_u_g_s set of documents, ALTTEXT is most appropriate in an │ │ │ │ + _S_E_T <_[_[_r_e_f_]_]_b_l_o_c_k_d_e_f name="section" option="title"> │ │ │ │ + _U_N_D_E_F
│ │ │ │ + _U_S_E_,_ _$ <_[_[_r_e_f_]_]_u_s_e block> │ │ │ │ + _W_H_I_L_E
│ │ │ │ + _<_!_-_-_- <_[_[_r_e_f_]_]_/_b_l_o_c_k_d_e_f> │ │ │ │ + _H_i_s_t_o_r_y │ │ │ │ + _W_i_s_h_ _l_i_s_t
│ │ │ -<
blockdef name="tagname" [option="option1 [option2 ...]" ] [global] [expand]>
│ │ │ - ... <
use block> ...
│ │ │ -<
/blockdef>
│ │ │ + <
alttext name="logo.gif" text="Company logo">
│ │ │
│ │ │ + this line: <
img src="logo.gif">
│ │ │ + becomes this after processing: <
img src="logo.gif" alt="Company logo">
│ │ │ +
│ │ │ + this line: <
img src="../image/logo.gif">
│ │ │ + will also have an ALT attribute appended to it
│ │ │ +
│ │ │ + this line: <
img src="logo.gif" alt="Click here for more information!">
│ │ │ + remains unchanged.
│ │ │
│ │ │ BLOCK and /BLOCK are used to create block macros, which │ │ │ are similar in use to SET macros, but can be │ │ │ multi-line definitions. │ │ │
│ │ │ ├── html2text {} │ │ │ │ @@ -1,43 +1,51 @@ │ │ │ │ [HTP] │ │ │ │ ************ hhttpp oonn--lliinnee rreeffeerreennccee :: BBLLOOCCKK,, //BBLLOOCCKK ************ │ │ │ │ _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s ********** ssyynnttaaxx ********** │ │ │ │ - _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_b_l_o_c_k_d_e_f name="tagname" [option="option1 │ │ │ │ - _L_i_c_e_n_s_e [option2 ...]" ] [global] [expand]> │ │ │ │ - _T_u_t_o_r_i_a_l ... <_[_[_r_e_f_]_]_u_s_e block> ... │ │ │ │ - _U_s_a_g_e <_[_[_r_e_f_]_]_/_b_l_o_c_k_d_e_f> │ │ │ │ - HTP Tags │ │ │ │ - _A_L_T_T_E_X_T ********** ssyynnooppssiiss ********** │ │ │ │ - [>] _B_L_O_C_K BBLLOOCCKK aanndd //BBLLOOCCKK are used to create block macros, │ │ │ │ - _B_L_O_C_K_D_E_F which are similar in use to _S_E_T macros, but can be │ │ │ │ - _D_E_F multi-line definitions. │ │ │ │ - _F_I_L_E Any text and formatting may be set inside the │ │ │ │ - _I_F block. You can use any htp or user defined metatag │ │ │ │ - _I_N_C including _F_I_L_E_ _I_N_C_L_U_D_E. The metatags won't be │ │ │ │ - _I_M_G expanded before the block is USEd except if you │ │ │ │ - _I_M_A_G_E_U_R_L give the _E_X_P_A_N_D parameter. │ │ │ │ - _O_P_T The block macro is dereferenced (expanded) with the │ │ │ │ - _O_U_T_P_U_T _U_S_E_ _t_a_g_ _o_r_ _t_h_e_ _'_$_'_ _o_p_e_r_a_t_o_r. See the notes on the │ │ │ │ - _Q_U_O_T_E _U_S_E tag on how to pass parameters to a block macro. │ │ │ │ - _S_E_T │ │ │ │ - _U_N_D_E_F │ │ │ │ - _U_N_S_E_T │ │ │ │ - _U_S_E_,_ _$ │ │ │ │ - _W_H_I_L_E │ │ │ │ - _<_!_-_-_- │ │ │ │ - _H_i_s_t_o_r_y │ │ │ │ - _W_i_s_h_ _l_i_s_t │ │ │ │ + _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_a_l_t_t_e_x_t name="logo.gif" text="Company │ │ │ │ + _L_i_c_e_n_s_e logo"> │ │ │ │ + _T_u_t_o_r_i_a_l │ │ │ │ + _U_s_a_g_e this line: <_[_[_r_e_f_]_]_i_m_g src="logo.gif"> │ │ │ │ + HTP Tags becomes this after processing: <_[_[_r_e_f_]_]_i_m_g │ │ │ │ + _A_L_T_T_E_X_T src="logo.gif" alt="Company logo"> │ │ │ │ + [>] _B_L_O_C_K │ │ │ │ + _B_L_O_C_K_D_E_F this line: <_[_[_r_e_f_]_]_i_m_g src="../image/logo.gif"> │ │ │ │ + _D_E_F will also have an ALT attribute appended to it │ │ │ │ + _F_I_L_E │ │ │ │ + _I_F this line: <_[_[_r_e_f_]_]_i_m_g src="logo.gif" alt="Click │ │ │ │ + _I_N_C here for more information!"> │ │ │ │ + _I_M_G remains unchanged. │ │ │ │ + _I_M_A_G_E_U_R_L ********** ssyynnooppssiiss ********** │ │ │ │ + _O_P_T BBLLOOCCKK aanndd //BBLLOOCCKK are used to create block macros, │ │ │ │ + _O_U_T_P_U_T which are similar in use to _S_E_T macros, but can be │ │ │ │ + _Q_U_O_T_E multi-line definitions. │ │ │ │ + _S_E_T Any text and formatting may be set inside the │ │ │ │ + _U_N_D_E_F block. You can use any htp or user defined metatag │ │ │ │ + _U_N_S_E_T including _F_I_L_E_ _I_N_C_L_U_D_E. The metatags won't be │ │ │ │ + _U_S_E_,_ _$ expanded before the block is USEd except if you │ │ │ │ + _W_H_I_L_E give the _E_X_P_A_N_D parameter. │ │ │ │ + _<_!_-_-_- The block macro is dereferenced (expanded) with the │ │ │ │ + _H_i_s_t_o_r_y _U_S_E_ _t_a_g_ _o_r_ _t_h_e_ _'_$_'_ _o_p_e_r_a_t_o_r. See the notes on the │ │ │ │ + _W_i_s_h_ _l_i_s_t _U_S_E tag on how to pass parameters to a block macro. │ │ │ │ _B_u_g_s │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ _p_a_g_e_ _s_o_u_r_c_e │ │ │ │ _h_t_p_ _p_r_o_j_e_c_t │ │ │ │ _h_t_p_ _h_o_m_e_p_a_g_e │ │ ├── ./usr/share/doc/htp/blockdef.html │ │ │ @@ -114,27 +114,37 @@ │ │ │ Bugs
│ │ │ -<!--- comment --->
│ │ │ + <
alttext name="logo.gif" text="Company logo">
│ │ │
│ │ │ + this line: <
img src="logo.gif">
│ │ │ + becomes this after processing: <
img src="logo.gif" alt="Company logo">
│ │ │ +
│ │ │ + this line: <
img src="../image/logo.gif">
│ │ │ + will also have an ALT attribute appended to it
│ │ │ +
│ │ │ + this line: <
img src="logo.gif" alt="Click here for more information!">
│ │ │ + remains unchanged.
│ │ │
For example:
│ │ │
│ │ │ -<!--- This comment doesn't appear in the HTML file --->
│ │ │ +<
def name="tagname" [option="option1 [option2 ...]" ] [global] [expand]>
│ │ │ +<
/def>
│ │ │ +
│ │ │
│ │ │ All block metatags have the implicit option EXPAND, which tells htp to expand the contents │ │ │ of the block before the definition is expanded. │ │ │
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,36 +1,49 @@
│ │ │ │ [HTP]
│ │ │ │ ************ hhttpp oonn--lliinnee rreeffeerreennccee :: BBLLOOCCKKDDEEFF,, //BBLLOOCCKKDDEEFF ************
│ │ │ │ _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s ********** ssyynnttaaxx **********
│ │ │ │ - _I_n_t_r_o_d_u_c_t_i_o_n
│ │ │ │ - _L_i_c_e_n_s_e
│ │ │ │ - _T_u_t_o_r_i_a_l ********** ssyynnooppssiiss **********
│ │ │ │ - _U_s_a_g_e BBLLOOCCKKDDEEFF creates block _m_e_t_a_t_a_g_s, which is a fancy
│ │ │ │ - HTP Tags way of saying it creates new block tags. A block
│ │ │ │ - _A_L_T_T_E_X_T tag is a tag that takes a whole block as additional
│ │ │ │ - _B_L_O_C_K parameter. This block is surrounded by
│ │ │ -<
def name="tagname" [option="option1 [option2 ...]" ] [global] [expand]>
│ │ │ -<
/def>
│ │ │ + <
blockdef name="section" option="title">
│ │ │ + <h1><
use title></h1>
│ │ │ + <p class="section">
│ │ │ + <
use block>
│ │ │ + </p>
│ │ │ + <
/blockdef>
│ │ │
│ │ │ + <section title="My Section">
│ │ │ + This is a fancy section.
│ │ │ + </section>
│ │ │
│ │ │ This is a simple comment that is not included in the output. This is useful │ │ │ when commenting metatags, since the metatags do not appear the output either. │ │ │ Example: │ │ │
│ │ │
│ │ │ - <
def name="centered">
│ │ │ - <p align=center>
│ │ │ - <
/def>
│ │ │ -
│ │ │ - <centered>
│ │ │ - This text is centered.
│ │ │ + <
set time="0">
│ │ │ + <
block name=a>
│ │ │ + a is expanded at time <
use time>.
│ │ │ + <
/block>
│ │ │ + <
block name=b expand>
│ │ │ + b is expanded at time <
use time>.
│ │ │ + <
/block>
│ │ │ + <
set time="1">
│ │ │ + <
use a>
│ │ │ + <
use b>
│ │ │ + contents of a: <
use a noexpand>
│ │ │ + contents of b: <
use b noexpand>
│ │ │ + <
block name=c expand>
│ │ │ + c is expanded at time <
use time>; <
use a>
│ │ │ + <
/block>
│ │ │ + <
block name=d expand>
│ │ │ + d is expanded at time <
use time>; <
use a noexpand>
│ │ │ + <
/block>
│ │ │ + <
block name=e>
│ │ │ + e is expanded at time <
use time>; <
use a noexpand>
│ │ │ + <
/block>
│ │ │ + <
set time="2">
│ │ │ + <
block name=a>
│ │ │ + a is defined for the 2nd time <
use time>.
│ │ │ + <
/block>
│ │ │ + <
use c>
│ │ │ + <
use d>
│ │ │ + <
use e>
│ │ │
│ │ │ Note that these comments should not include < or >, that is you │ │ │ should not use it to comment out htp code. For that purpose use something │ │ │ like this: │ │ │
│ │ │
│ │ │ -<
file execute="command-line" (output="filename" | redirect) [noerror]>
│ │ │ -<
file include="includefilename" [parameters ...]>
│ │ │ -<
file name>
│ │ │ -<
file [ name="filename" ] size[ = (byte|kbyte|mbyte|gbyte) ] [precision=n]>
│ │ │ -<
file [ name="filename" ] time[ ="format" ]>
│ │ │ -<
file [ name="filename" ] date[ ="format" ]>
│ │ │ -<
file search="searchpath">
│ │ │ -<
file template="templatefilename">
│ │ │ -
│ │ │ + <EM>File "<
FILE NAME>" last updated <
FILE TIME>, <
FILE DATE></EM>
│ │ │
Make sure that the variable is never defined and xyz should be the │ │ │ reason why you don't want to include this block
│ │ ││ │ │
│ │ │ │ - _I_N_C <_[_[_r_e_f_]_]_/_d_e_f>
│ │ │ │ - _I_M_G
│ │ │ │ - _I_M_A_G_E_U_R_L
│ │ │ │ + _U_s_a_g_e <_[_[_r_e_f_]_]_u_s_e block>
│ │ │ │ + HTP Tags <_[_[_r_e_f_]_]_u_s_e title>
│ │ │ │ + _T_u_t_o_r_i_a_l
│ │ │ - <
set time="0">
│ │ │ - <
block name=a>
│ │ │ - a is expanded at time <
use time>.
│ │ │ - <
/block>
│ │ │ - <
block name=b expand>
│ │ │ - b is expanded at time <
use time>.
│ │ │ - <
/block>
│ │ │ - <
set time="1">
│ │ │ - <
use a>
│ │ │ - <
use b>
│ │ │ - contents of a: <
use a noexpand>
│ │ │ - contents of b: <
use b noexpand>
│ │ │ - <
block name=c expand>
│ │ │ - c is expanded at time <
use time>; <
use a>
│ │ │ - <
/block>
│ │ │ - <
block name=d expand>
│ │ │ - d is expanded at time <
use time>; <
use a noexpand>
│ │ │ - <
/block>
│ │ │ - <
block name=e>
│ │ │ - e is expanded at time <
use time>; <
use a noexpand>
│ │ │ - <
/block>
│ │ │ - <
set time="2">
│ │ │ - <
block name=a>
│ │ │ - a is defined for the 2nd time <
use time>.
│ │ │ - <
/block>
│ │ │ - <
use c>
│ │ │ - <
use d>
│ │ │ - <
use e>
│ │ │ +<
if disabled_because_xyz>
│ │ │ + ...
│ │ │ +<
/if>
│ │ │
│ │ │ Some metatags will require an opening and closing tag (comparable to │ │ │
│ │ │ Options can be passed to a metatag, which can then expand as if it were │ │ │ a SET macro. Option names are parameterized with │ │ │ the OPTION attribute. Multiple options can be listed by separating their │ │ │ name with a space (which therefore requires they be surrounded by quotes.) │ │ │
│ │ │
│ │ │ -<
img src="filename" ...>
│ │ │ -
│ │ │ + File image.gif <
FILE NAME="image.gif" SIZE=KBYTE> kilobytes
│ │ │ + Last modified <
FILE NAME="image.gif" TIME>, <
FILE NAME="image.gif" DATE>
│ │ │
│ │ │ htp will do very specific checking of parameters when a metatag is │ │ │ invoked. htp assumes that all parameter options to the metatag are │ │ │ optional. This is why the HEADERIMG definition uses IF to verify the │ │ │ SIZE option is defined before expanding it in the block. If a │ │ │ parameter is required, simply expand it without first checking. When │ │ │ ├── html2text {} │ │ │ │ @@ -5,65 +5,38 @@ │ │ │ │ _L_i_c_e_n_s_e ---> │ │ │ │ _T_u_t_o_r_i_a_l ********** ssyynnooppssiiss ********** │ │ │ │ _U_s_a_g_e DDEEFF creates _m_e_t_a_t_a_g_s, which is a fancy way of │ │ │ │ HTP Tags saying it creates new tags. The mechanism is very │ │ │ │ _A_L_T_T_E_X_T similar to _B_L_O_C_K macros, except that the _U_S_E tag is │ │ │ │ _B_L_O_C_K not used to expand them. Instead, they are expanded │ │ │ │ _B_L_O_C_K_D_E_F by their own name. For example: │ │ │ │ - [>] _D_E_F <_[_[_r_e_f_]_]_s_e_t time="0"> │ │ │ │ - _F_I_L_E <_[_[_r_e_f_]_]_b_l_o_c_k name=a> │ │ │ │ - _I_F a is expanded at time <_[_[_r_e_f_]_]_u_s_e time>. │ │ │ │ - _I_N_C <_[_[_r_e_f_]_]_/_b_l_o_c_k> │ │ │ │ - _I_M_G <_[_[_r_e_f_]_]_b_l_o_c_k name=b expand> │ │ │ │ - _I_M_A_G_E_U_R_L b is expanded at time <_[_[_r_e_f_]_]_u_s_e time>. │ │ │ │ - _O_P_T <_[_[_r_e_f_]_]_/_b_l_o_c_k> │ │ │ │ - _O_U_T_P_U_T <_[_[_r_e_f_]_]_s_e_t time="1"> │ │ │ │ - _Q_U_O_T_E <_[_[_r_e_f_]_]_u_s_e a> │ │ │ │ - _S_E_T <_[_[_r_e_f_]_]_u_s_e b> │ │ │ │ - _U_N_D_E_F contents of a: <_[_[_r_e_f_]_]_u_s_e a noexpand> │ │ │ │ - _U_N_S_E_T contents of b: <_[_[_r_e_f_]_]_u_s_e b noexpand> │ │ │ │ - _U_S_E_,_ _$ <_[_[_r_e_f_]_]_b_l_o_c_k name=c expand> │ │ │ │ - _W_H_I_L_E c is expanded at time <_[_[_r_e_f_]_]_u_s_e time>; <_[ │ │ │ │ - _<_!_-_-_- _[_r_e_f_]_]_u_s_e a> │ │ │ │ - _H_i_s_t_o_r_y <_[_[_r_e_f_]_]_/_b_l_o_c_k> │ │ │ │ - _W_i_s_h_ _l_i_s_t <_[_[_r_e_f_]_]_b_l_o_c_k name=d expand> │ │ │ │ - _B_u_g_s d is expanded at time <_[_[_r_e_f_]_]_u_s_e time>; <_[ │ │ │ │ - _[_r_e_f_]_]_u_s_e a noexpand> │ │ │ │ - <_[_[_r_e_f_]_]_/_b_l_o_c_k> │ │ │ │ - <_[_[_r_e_f_]_]_b_l_o_c_k name=e> │ │ │ │ - e is expanded at time <_[_[_r_e_f_]_]_u_s_e time>; <_[ │ │ │ │ - _[_r_e_f_]_]_u_s_e a noexpand> │ │ │ │ - <_[_[_r_e_f_]_]_/_b_l_o_c_k> │ │ │ │ - <_[_[_r_e_f_]_]_s_e_t time="2"> │ │ │ │ - <_[_[_r_e_f_]_]_b_l_o_c_k name=a> │ │ │ │ - a is defined for the 2nd time <_[_[_r_e_f_]_]_u_s_e │ │ │ │ - time>. │ │ │ │ - <_[_[_r_e_f_]_]_/_b_l_o_c_k> │ │ │ │ - <_[_[_r_e_f_]_]_u_s_e c> │ │ │ │ - <_[_[_r_e_f_]_]_u_s_e d> │ │ │ │ - <_[_[_r_e_f_]_]_u_s_e e> │ │ │ │ - Some metatags will require an opening and closing │ │ │ │ - tag (comparable to │ │ │ │ - and │ │ │ │ - ). In this case, you should use the _B_L_O_C_K_D_E_F macro. │ │ │ │ - Another slightly faster alternative is to use two │ │ │ │ - metatags, the opening tag and the closing tag with │ │ │ │ - a preceding slash. For example: │ │ │ │ - File "<_[_[_r_e_f_]_]_F_I_L_E NAME>" last updated <_[ │ │ │ │ - _[_r_e_f_]_]_F_I_L_E TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE> │ │ │ │ - You should really use _B_L_O_C_K_D_E_F, though, as it will │ │ │ │ - check for matching end tag. It is not that slower. │ │ │ │ - Options can be passed to a metatag, which can then │ │ │ │ - expand as if it were a _S_E_T macro. Option names are │ │ │ │ - parameterized with the OPTION attribute. Multiple │ │ │ │ - options can be listed by separating their name with │ │ │ │ + [>] _D_E_F <_[_[_r_e_f_]_]_i_f disabled_because_xyz> │ │ │ │ + _F_I_L_E ... │ │ │ │ + _I_F <_[_[_r_e_f_]_]_/_i_f> │ │ │ │ + _I_N_C Some metatags will require an opening and closing │ │ │ │ + _I_M_G tag (comparable to │ │ │ │ + _I_M_A_G_E_U_R_L and │ │ │ │ + _O_P_T ). In this case, you should use the _B_L_O_C_K_D_E_F macro. │ │ │ │ + _O_U_T_P_U_T Another slightly faster alternative is to use two │ │ │ │ + _Q_U_O_T_E metatags, the opening tag and the closing tag with │ │ │ │ + _S_E_T a preceding slash. For example: │ │ │ │ + _U_N_D_E_F File "<_[_[_r_e_f_]_]_F_I_L_E NAME>" last updated <_[ │ │ │ │ + _U_N_S_E_T _[_r_e_f_]_]_F_I_L_E TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE> │ │ │ │ + _U_S_E_,_ _$ You should really use _B_L_O_C_K_D_E_F, though, as it will │ │ │ │ + _W_H_I_L_E check for matching end tag. It is not that slower. │ │ │ │ + _<_!_-_-_- Options can be passed to a metatag, which can then │ │ │ │ + _H_i_s_t_o_r_y expand as if it were a _S_E_T macro. Option names are │ │ │ │ + _W_i_s_h_ _l_i_s_t parameterized with the OPTION attribute. Multiple │ │ │ │ + _B_u_g_s options can be listed by separating their name with │ │ │ │ a space (which therefore requires they be │ │ │ │ surrounded by quotes.) │ │ │ │ - <_[_[_r_e_f_]_]_i_m_g src="filename" ...> │ │ │ │ - │ │ │ │ + File image.gif <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif" │ │ │ │ + SIZE=KBYTE> kilobytes │ │ │ │ + Last modified <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif" │ │ │ │ + TIME>, <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif" DATE> │ │ │ │ htp will do very specific checking of parameters │ │ │ │ when a metatag is invoked. htp assumes that all │ │ │ │ parameter options to the metatag are optional. This │ │ │ │ is why the HEADERIMG definition uses IF to verify │ │ │ │ the SIZE option is defined before expanding it in │ │ │ │ the block. If a parameter is required, simply │ │ │ │ expand it without first checking. When htp expands │ │ ├── ./usr/share/doc/htp/expand.html │ │ │ @@ -98,23 +98,17 @@ │ │ │
However, if the block tag is marked with the expand
│ │ │ modifier it is expanded immediately. This is useful if you want to
│ │ │ store something in a block macro, that depends on the current value of
│ │ │ another macro. This other macro may no longer have the correct value
│ │ │ when the macro is expanded. Here is some code that demonstrate when
│ │ │ the htp tags are expanded:
│ │ │ - 1. <
file execute="command-line" (output="filename" | redirect) [noerror]>
│ │ │ - 2. <
file include="includefilename" [parameters ...]>
│ │ │ - 3. <
file name>
│ │ │ - 4. <
file [ name="filename" ] size[ = (byte|kbyte|mbyte|gbyte) ] [precision=n]>
│ │ │ - 5. <
file [ name="filename" ] time[ ="format" ]>
│ │ │ - 6. <
file [ name="filename" ] date[ ="format" ]>
│ │ │ - 7. <
file search="searchpath">
│ │ │ - 8. <
file template="templatefilename">
│ │ │ - 9.
│ │ │ + 1. <
if disabled_because_xyz>
│ │ │ + 2. ...
│ │ │ + 3. <
/if>
│ │ │
│ │ │ <EM>File "<
FILE NAME>" last updated <
FILE TIME>, <
FILE DATE></EM>
│ │ │
│ │ │ When block a and block b are defined in lines 2-7 the contents of a │ │ │ ├── html2text {} │ │ │ │ @@ -24,28 +24,17 @@ │ │ │ │ However, if the block tag is marked with the expand │ │ │ │ modifier it is expanded immediately. This is useful │ │ │ │ if you want to store something in a block macro, │ │ │ │ that depends on the current value of another macro. │ │ │ │ This other macro may no longer have the correct │ │ │ │ value when the macro is expanded. Here is some code │ │ │ │ that demonstrate when the htp tags are expanded: │ │ │ │ - 1. <_[_[_r_e_f_]_]_f_i_l_e execute="command-line" │ │ │ │ - (output="filename" | redirect) [noerror]> │ │ │ │ - 2. <_[_[_r_e_f_]_]_f_i_l_e include="includefilename" │ │ │ │ - [parameters ...]> │ │ │ │ - 3. <_[_[_r_e_f_]_]_f_i_l_e name> │ │ │ │ - 4. <_[_[_r_e_f_]_]_f_i_l_e [ name="filename" ] size[ = │ │ │ │ - (byte|kbyte|mbyte|gbyte) ] [precision=n]> │ │ │ │ - 5. <_[_[_r_e_f_]_]_f_i_l_e [ name="filename" ] time │ │ │ │ - [ ="format" ]> │ │ │ │ - 6. <_[_[_r_e_f_]_]_f_i_l_e [ name="filename" ] date │ │ │ │ - [ ="format" ]> │ │ │ │ - 7. <_[_[_r_e_f_]_]_f_i_l_e search="searchpath"> │ │ │ │ - 8. <_[_[_r_e_f_]_]_f_i_l_e template="templatefilename"> │ │ │ │ - 9. │ │ │ │ + 1. <_[_[_r_e_f_]_]_i_f disabled_because_xyz> │ │ │ │ + 2. ... │ │ │ │ + 3. <_[_[_r_e_f_]_]_/_i_f> │ │ │ │ This produces the following: │ │ │ │ File "<_[_[_r_e_f_]_]_F_I_L_E NAME>" last updated <_[ │ │ │ │ _[_r_e_f_]_]_F_I_L_E TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE> │ │ │ │ When block a and block b are defined in lines 2- │ │ │ │ 7 the contents of a are taken literally, however, │ │ │ │ the contents for b are already expanded so the │ │ │ │ macro time is evaluated. So a is expanded when it │ │ ├── ./usr/share/doc/htp/file.html │ │ │ @@ -163,15 +163,26 @@ │ │ │
│ │ │
│ │ │ To include information about another file, such as an archive file or │ │ │ graphic image, specify its name with the NAME attribute followed by the │ │ │ type of information to be displayed: │ │ │
│ │ │ -<
img src="filename" ...>
│ │ │ +<
IF [NOT] conditional>
│ │ │ + block #1
│ │ │ +[
│ │ │ +<ELSEIF [NOT] conditional>
│ │ │ + block #2
│ │ │ +...
│ │ │ +]
│ │ │ +[
│ │ │ +<ELSE>
│ │ │ + block #3
│ │ │ +]
│ │ │ +<
/IF>
│ │ │
│ │ │
│ │ │ For file size information, the value BYTE, KBYTE, etc. dictates how the │ │ │ information is displayed. In anything other than byte format, the information │ │ │ is displayed in floating-point notation. The amount of precision (the number │ │ │ of digits to the right of the decimal point) can be set with the optional │ │ │ @@ -201,16 +212,15 @@ │ │ │
│ │ │ Additional parameters can be set in the FILE INCLUDE tag, which are │ │ │ interpreted as macros that are "passed" to the included file. The macros │ │ │ are available only to the include file (and any macros or included files it │ │ │ holds). After the file is completely included, the macros are no longer │ │ │ available. So: │ │ │
│ │ │ -<
imageurl url="imageurl" [ path="path/in/local/filesystem" ]>
│ │ │ -
│ │ │ + <
IF name="Jim">...<
/IF>
│ │ │
│ │ │ Macros named "name" and "email" are set, and available inside the included │ │ │ file. They are not available, however, past the tag (which is why the │ │ │ second statement will fail.) │ │ │
│ │ │
│ │ │ - <
FILE INCLUDE="include.hti" name="Jim Nelson" email="jnelson@crl.com">
│ │ │ - This tag will fail: <
USE name>
│ │ │ +<
img src="filename" ...>
│ │ │ +
│ │ │ + path="path/in/local/filesystem" ]>
│ │ │ +
│ │ │
"Conditional" is either a "compare" or "is defined" operation. A │ │ │ compare operator is a test of the value of a macro against a literal │ │ │ string: │ │ │
│ │ │ -<
imageurl url="imageurl" [ path="path/in/local/filesystem" ]>
│ │ │ -
│ │ │ -n/">
│ │ │ - <
imageurl url="other.domain.org/" path="/var/www/other.domain/">
│ │ │ -
│ │ │ - For this line: <
img src="logo.gif">
│ │ │ - the local filename "logo.gif" will be used to determine image dimensions
│ │ │ - (no URL replacement).
│ │ │ -
│ │ │ - For this line: <
img src="http://my.domain.org/logo.gif">
│ │ │ - the local filename "/var/www/my.domain/logo.gif" will be used.
│ │ │ -
│ │ │ - But for this line: <
img src="http://other.domain.org/logo.gif">
│ │ │ - the local file cannot be found (no prefix match), so the image dimensions
│ │ │ - will not be added.
│ │ │ -
│ │ │ - Order is important; last IMAGEURL tag takes precedence:
│ │ │ - <
imageurl url="/" path="/var/www/htdocs/">
│ │ │ - <
imageurl url="/test/" path="/var/www/test/">
│ │ │ -
│ │ │ - <
img src="/image.gif"> and <
img src="/test/image.gif"> are mapped to
│ │ │ - /var/www/htdocs/image.gif and /var/www/test/image.gif, resp.
│ │ │ - If the order of the imageurl lines would be swapped, the second
│ │ │ - image would be mapped to /var/www/htdocs/test/image.gif.
│ │ │ + <
IF name="Jim">...<
/IF>
│ │ │
│ │ │ and a defined operator is a test of a macro's existance: │ │ │
│ │ │
│ │ │ <
INC macroname1="increment1" [macroname2="increment2" ... ] [GLOBAL]>
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,71 +1,36 @@
│ │ │ │ [HTP]
│ │ │ │ ************ hhttpp oonn--lliinnee rreeffeerreennccee :: IIFF,, EELLSSEEIIFF,, EELLSSEE,, //IIFF ************
│ │ │ │ _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s ********** ssyynnttaaxx **********
│ │ │ │ - _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_F_I_L_E INCLUDE="include.hti" name="Jim
│ │ │ │ - _L_i_c_e_n_s_e Nelson" email="jnelson@crl.com">
│ │ │ │ - _T_u_t_o_r_i_a_l This tag will fail: <_[_[_r_e_f_]_]_U_S_E name>
│ │ │ │ - _U_s_a_g_e ********** ssyynnooppssiiss **********
│ │ │ │ - HTP Tags IIFF,, NNOOTT,, EELLSSEEIIFF,, EELLSSEE,, aanndd //IIFF are the building
│ │ │ │ - _A_L_T_T_E_X_T blocks for conditional processing. The basic form
│ │ │ │ - _B_L_O_C_K is shown above.
│ │ │ │ - _B_L_O_C_K_D_E_F "Conditional" is either a "compare" or "is defined"
│ │ │ │ - _D_E_F operation. A compare operator is a test of the
│ │ │ │ - _F_I_L_E value of a macro against a literal string:
│ │ │ │ - [>] _I_F <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="imageurl" [ path="path/in/
│ │ │ │ - _I_N_C local/filesystem" ]>
│ │ │ │ - _I_M_G
│ │ │ │ - _I_M_A_G_E_U_R_L n/">
│ │ │ │ - _O_P_T <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="other.domain.org/" path="/
│ │ │ │ - _O_U_T_P_U_T var/www/other.domain/">
│ │ │ │ + _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_i_m_g src="filename" ...>
│ │ │ │ + _L_i_c_e_n_s_e
│ │ │ │ + _T_u_t_o_r_i_a_l path="path/in/local/filesystem" ]>
│ │ │ │ + _U_s_a_g_e
│ │ │ │ + HTP Tags ********** ssyynnooppssiiss **********
│ │ │ │ + _A_L_T_T_E_X_T IIFF,, NNOOTT,, EELLSSEEIIFF,, EELLSSEE,, aanndd //IIFF are the building
│ │ │ │ + _B_L_O_C_K blocks for conditional processing. The basic form
│ │ │ │ + _B_L_O_C_K_D_E_F is shown above.
│ │ │ │ + _D_E_F "Conditional" is either a "compare" or "is defined"
│ │ │ │ + _F_I_L_E operation. A compare operator is a test of the
│ │ │ │ + [>] _I_F value of a macro against a literal string:
│ │ │ │ + _I_N_C <_[_[_r_e_f_]_]_I_F name="Jim">...<_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ + _I_M_G and a defined operator is a test of a macro's
│ │ │ │ + _I_M_A_G_E_U_R_L existance:
│ │ │ │ + _O_P_T <_[_[_r_e_f_]_]_I_N_C macroname1="increment1"
│ │ │ │ + _O_U_T_P_U_T [macroname2="increment2" ... ] [GLOBAL]>
│ │ │ │ _Q_U_O_T_E
│ │ │ │ - _S_E_T For this line: <_[_[_r_e_f_]_]_i_m_g src="logo.gif">
│ │ │ │ - _U_N_D_E_F the local filename "logo.gif" will be used to
│ │ │ │ - _U_N_S_E_T determine image dimensions
│ │ │ │ - _U_S_E_,_ _$ (no URL replacement).
│ │ │ │ - _W_H_I_L_E
│ │ │ │ - _<_!_-_-_- For this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ - _H_i_s_t_o_r_y my.domain.org/logo.gif">
│ │ │ │ - _W_i_s_h_ _l_i_s_t the local filename "/var/www/my.domain/logo.gif"
│ │ │ │ - _B_u_g_s will be used.
│ │ │ │ -
│ │ │ │ - But for this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ - other.domain.org/logo.gif">
│ │ │ │ - the local file cannot be found (no prefix match),
│ │ │ │ - so the image dimensions
│ │ │ │ - will not be added.
│ │ │ │ -
│ │ │ │ - Order is important; last IMAGEURL tag takes
│ │ │ │ - precedence:
│ │ │ │ - <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/" path="/var/www/htdocs/">
│ │ │ │ - <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/test/" path="/var/www/
│ │ │ │ - test/">
│ │ │ │ -
│ │ │ │ - <_[_[_r_e_f_]_]_i_m_g src="/image.gif"> and <_[_[_r_e_f_]_]_i_m_g
│ │ │ │ - src="/test/image.gif"> are mapped to
│ │ │ │ - /var/www/htdocs/image.gif and /var/www/test/
│ │ │ │ - image.gif, resp.
│ │ │ │ - If the order of the imageurl lines would be
│ │ │ │ - swapped, the second
│ │ │ │ - image would be mapped to /var/www/htdocs/test/
│ │ │ │ - image.gif.
│ │ │ │ - and a defined operator is a test of a macro's
│ │ │ │ - existance:
│ │ │ │ - <_[_[_r_e_f_]_]_I_N_C macroname1="increment1"
│ │ │ │ - [macroname2="increment2" ... ] [GLOBAL]>
│ │ │ │ -
│ │ │ │ - If the NOT tag is present in the IF markup, the
│ │ │ │ - evaluation of the conditional is reversed. The
│ │ │ │ - first IF or ELSEIF condition that evaluates to true
│ │ │ │ - is chosen. If none of the conditions is true the
│ │ │ │ - ELSE block is taken if it is present. A conditional
│ │ │ │ - block mmuusstt be closed with the /IF tag. IF tags can
│ │ │ │ - be nested.
│ │ │ │ -
│ │ │ │ -
│ │ │ │ + _S_E_T If the NOT tag is present in the IF markup, the
│ │ │ │ + _U_N_D_E_F evaluation of the conditional is reversed. The
│ │ │ │ + _U_N_S_E_T first IF or ELSEIF condition that evaluates to true
│ │ │ │ + _U_S_E_,_ _$ is chosen. If none of the conditions is true the
│ │ │ │ + _W_H_I_L_E ELSE block is taken if it is present. A conditional
│ │ │ │ + _<_!_-_-_- block mmuusstt be closed with the /IF tag. IF tags can
│ │ │ │ + _H_i_s_t_o_r_y be nested.
│ │ │ │ + _W_i_s_h_ _l_i_s_t
│ │ │ │ + _B_u_g_s
│ │ ├── ./usr/share/doc/htp/imageurl.html
│ │ │ @@ -114,16 +114,15 @@
│ │ │ Bugs
│ │ │ -<
imageurl url="imageurl" [ path="path/in/local/filesystem" ]>
│ │ │ -
│ │ │ + <
IF name="Jim">...<
/IF>
│ │ │
│ │ │ IMAGEURL tells htp, where to find images on the local │ │ │ file system. declares an URL replacement that is used for │ │ │ size lookups in any IMG tag. This definitions │ │ │ takes effect only if the IMGXY option is │ │ │ ├── html2text {} │ │ │ │ @@ -1,38 +1,36 @@ │ │ │ │ [HTP] │ │ │ │ ************ hhttpp oonn--lliinnee rreeffeerreennccee :: IIMMAAGGEEUURRLL ************ │ │ │ │ _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s ********** ssyynnttaaxx ********** │ │ │ │ - _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="imageurl" [ path="path/in/ │ │ │ │ - _L_i_c_e_n_s_e local/filesystem" ]> │ │ │ │ - _T_u_t_o_r_i_a_l │ │ │ │ - _U_s_a_g_e ********** ssyynnooppssiiss ********** │ │ │ │ - HTP Tags IIMMAAGGEEUURRLL tells htp, where to find images on the │ │ │ │ - _A_L_T_T_E_X_T local file system. declares an URL replacement that │ │ │ │ - _B_L_O_C_K is used for size lookups in any _I_M_G tag. This │ │ │ │ - _B_L_O_C_K_D_E_F definitions takes effect only if the _I_M_G_X_Y option │ │ │ │ - _D_E_F is enabled. Beacause htp can't lookup files in the │ │ │ │ - _F_I_L_E world wide web you have to map absolute image URLs │ │ │ │ - _I_F to a directory in the local file system. │ │ │ │ - _I_N_C When an IMG tag is encountered where htp has to │ │ │ │ - _I_M_G insert width and height the defined URL │ │ │ │ - [>] _I_M_A_G_E_U_R_L replacements will be taken into account (later │ │ │ │ - _O_P_T definitions take precedence to earlier): For each │ │ │ │ - _O_U_T_P_U_T defined imageurl it checks (case-insensitive) if it │ │ │ │ - _Q_U_O_T_E is a prefix of the image's SRC attribute. If it │ │ │ │ - _S_E_T matches this prefix is replaced by the given PATH. │ │ │ │ - _U_N_D_E_F If no IMAGEURL matches the SRC is considered as │ │ │ │ - _U_N_S_E_T relative link and looked up in the current │ │ │ │ - _U_S_E_,_ _$ directory. │ │ │ │ - _W_H_I_L_E For example: │ │ │ │ - _<_!_-_-_- <_[_[_r_e_f_]_]_I_N_C macroname1="increment1" │ │ │ │ - _H_i_s_t_o_r_y [macroname2="increment2" ... ] [GLOBAL]> │ │ │ │ - _W_i_s_h_ _l_i_s_t │ │ │ │ - _B_u_g_s If IMAGEURL is specified with a URL but no PATH │ │ │ │ - attribute, it is treated as an undefine, and is │ │ │ │ - removed. │ │ │ │ + _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_I_F name="Jim">...<_[_[_r_e_f_]_]_/_I_F> │ │ │ │ + _L_i_c_e_n_s_e ********** ssyynnooppssiiss ********** │ │ │ │ + _T_u_t_o_r_i_a_l IIMMAAGGEEUURRLL tells htp, where to find images on the │ │ │ │ + _U_s_a_g_e local file system. declares an URL replacement that │ │ │ │ + HTP Tags is used for size lookups in any _I_M_G tag. This │ │ │ │ + _A_L_T_T_E_X_T definitions takes effect only if the _I_M_G_X_Y option │ │ │ │ + _B_L_O_C_K is enabled. Beacause htp can't lookup files in the │ │ │ │ + _B_L_O_C_K_D_E_F world wide web you have to map absolute image URLs │ │ │ │ + _D_E_F to a directory in the local file system. │ │ │ │ + _F_I_L_E When an IMG tag is encountered where htp has to │ │ │ │ + _I_F insert width and height the defined URL │ │ │ │ + _I_N_C replacements will be taken into account (later │ │ │ │ + _I_M_G definitions take precedence to earlier): For each │ │ │ │ + [>] _I_M_A_G_E_U_R_L defined imageurl it checks (case-insensitive) if it │ │ │ │ + _O_P_T is a prefix of the image's SRC attribute. If it │ │ │ │ + _O_U_T_P_U_T matches this prefix is replaced by the given PATH. │ │ │ │ + _Q_U_O_T_E If no IMAGEURL matches the SRC is considered as │ │ │ │ + _S_E_T relative link and looked up in the current │ │ │ │ + _U_N_D_E_F directory. │ │ │ │ + _U_N_S_E_T For example: │ │ │ │ + _U_S_E_,_ _$ <_[_[_r_e_f_]_]_I_N_C macroname1="increment1" │ │ │ │ + _W_H_I_L_E [macroname2="increment2" ... ] [GLOBAL]> │ │ │ │ + _<_!_-_-_- │ │ │ │ + _H_i_s_t_o_r_y If IMAGEURL is specified with a URL but no PATH │ │ │ │ + _W_i_s_h_ _l_i_s_t attribute, it is treated as an undefine, and is │ │ │ │ + _B_u_g_s removed. │ │ │ │ Since you usually need the url mapping for a number │ │ │ │ of images used throughout a set of documents, │ │ │ │ IMAGEURL is most appropriately put into an _i_n_c_l_u_d_e │ │ │ │ _f_i_l_e or the _h_t_p_._d_e_f file. │ │ │ │ In addition to WIDTH and HEIGHT, htp can also │ │ │ │ (semi-)automatically add an _A_L_T_ _t_e_x_t attribute to │ │ │ │ _I_M_G tags. │ │ ├── ./usr/share/doc/htp/img.html │ │ │ @@ -114,16 +114,15 @@ │ │ │ Bugs
│ │ │ -<
imageurl url="imageurl" [ path="path/in/local/filesystem" ]>
│ │ │ -
│ │ │ + <
IF name="Jim">...<
/IF>
│ │ │
img is a standard HTML tag. htp can add the specified │ │ │ image's width and height to the tag automatically. This has the advantage │ │ │ of not having to determine each image's size manually, which is especially │ │ │ useful if the image may change frequently.
│ │ │htp adds this information with the WIDTH and HEIGHT markup │ │ │ ├── html2text {} │ │ │ │ @@ -1,38 +1,36 @@ │ │ │ │ [HTP] │ │ │ │ ************ hhttpp oonn--lliinnee rreeffeerreennccee :: IIMMGG ************ │ │ │ │ _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s ********** ssyynnttaaxx ********** │ │ │ │ - _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="imageurl" [ path="path/in/ │ │ │ │ - _L_i_c_e_n_s_e local/filesystem" ]> │ │ │ │ - _T_u_t_o_r_i_a_l │ │ │ │ - _U_s_a_g_e ********** ssyynnooppssiiss ********** │ │ │ │ - HTP Tags iimmgg is a standard HTML tag. htp can add the │ │ │ │ - _A_L_T_T_E_X_T specified image's width and height to the tag │ │ │ │ - _B_L_O_C_K automatically. This has the advantage of not having │ │ │ │ - _B_L_O_C_K_D_E_F to determine each image's size manually, which is │ │ │ │ - _D_E_F especially useful if the image may change │ │ │ │ - _F_I_L_E frequently. │ │ │ │ - _I_F htp adds this information with the WIDTH and HEIGHT │ │ │ │ - _I_N_C markup attributes. If htp detects these attributes │ │ │ │ - [>] _I_M_G are already present in the tag, it will nnoott modify │ │ │ │ - _I_M_A_G_E_U_R_L the values. If htp cannot find the image file, it │ │ │ │ - _O_P_T will issue a warning but not halt processing. │ │ │ │ - _O_U_T_P_U_T At this time, GIF (Graphic Interchange Format), PNG │ │ │ │ - _Q_U_O_T_E (Portable Network Graphics), and JFIF (JPEG File │ │ │ │ - _S_E_T Interchange Format) are supported. │ │ │ │ - _U_N_D_E_F The _I_M_G_X_Y_ _a_n_d_ _N_O_I_M_G_X_Y options control whether or │ │ │ │ - _U_N_S_E_T not htp actually adds this information as it │ │ │ │ - _U_S_E_,_ _$ executes. │ │ │ │ - _W_H_I_L_E Since htp is able to lookup files only in the local │ │ │ │ - _<_!_-_-_- filesystem, the _I_M_A_G_E_U_R_L tag may be used to map │ │ │ │ - _H_i_s_t_o_r_y URLs to local files. │ │ │ │ - _W_i_s_h_ _l_i_s_t htp can also add default ALT text to IMG tags using │ │ │ │ - _B_u_g_s _A_L_T_T_E_X_T. │ │ │ │ - │ │ │ │ - │ │ │ │ + _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_I_F name="Jim">...<_[_[_r_e_f_]_]_/_I_F> │ │ │ │ + _L_i_c_e_n_s_e ********** ssyynnooppssiiss ********** │ │ │ │ + _T_u_t_o_r_i_a_l iimmgg is a standard HTML tag. htp can add the │ │ │ │ + _U_s_a_g_e specified image's width and height to the tag │ │ │ │ + HTP Tags automatically. This has the advantage of not having │ │ │ │ + _A_L_T_T_E_X_T to determine each image's size manually, which is │ │ │ │ + _B_L_O_C_K especially useful if the image may change │ │ │ │ + _B_L_O_C_K_D_E_F frequently. │ │ │ │ + _D_E_F htp adds this information with the WIDTH and HEIGHT │ │ │ │ + _F_I_L_E markup attributes. If htp detects these attributes │ │ │ │ + _I_F are already present in the tag, it will nnoott modify │ │ │ │ + _I_N_C the values. If htp cannot find the image file, it │ │ │ │ + [>] _I_M_G will issue a warning but not halt processing. │ │ │ │ + _I_M_A_G_E_U_R_L At this time, GIF (Graphic Interchange Format), PNG │ │ │ │ + _O_P_T (Portable Network Graphics), and JFIF (JPEG File │ │ │ │ + _O_U_T_P_U_T Interchange Format) are supported. │ │ │ │ + _Q_U_O_T_E The _I_M_G_X_Y_ _a_n_d_ _N_O_I_M_G_X_Y options control whether or │ │ │ │ + _S_E_T not htp actually adds this information as it │ │ │ │ + _U_N_D_E_F executes. │ │ │ │ + _U_N_S_E_T Since htp is able to lookup files only in the local │ │ │ │ + _U_S_E_,_ _$ filesystem, the _I_M_A_G_E_U_R_L tag may be used to map │ │ │ │ + _W_H_I_L_E URLs to local files. │ │ │ │ + _<_!_-_-_- htp can also add default ALT text to IMG tags using │ │ │ │ + _H_i_s_t_o_r_y _A_L_T_T_E_X_T. │ │ │ │ + _W_i_s_h_ _l_i_s_t │ │ │ │ + _B_u_g_s │ │ ├── ./usr/share/doc/htp/metatag.html │ │ │ @@ -122,15 +122,19 @@ │ │ │
│ │ │ More sophisticated tags accept parameters. The
│ │ │ option parameter lets multiple metatag parameters be
│ │ │ named and expanded inside the def or
│ │ │ blockdef block:
│ │ │ - 1. <
SET emailaddr="jnelson@crl.com">
│ │ │ + 1. <
def name="sharedimg" option="name alt">
│ │ │ + 2. <
img src="/home/sharedimages/${name}" alt="${alt}">;
│ │ │ + 3. <
/def>
│ │ │ + 4.
│ │ │ + 5. <sharedimg name="bubble.gif" alt="Bubble image">
│ │ │
When you are using templates, the html should only be written by
│ │ │ the template file. The normal htp files should just define macros
│ │ │ that are used later in the template. So you may want to write block
│ │ │ tags that just save the block in a macro for later use. Although this
│ │ │ is possible with htp it is quite tricky, so here we present the way to
│ │ │ ├── html2text {}
│ │ │ │ @@ -43,15 +43,22 @@
│ │ │ │ [macroname2="macrovalue2" ...] [GLOBAL]>
│ │ │ │ 2.
│ │ │ │ ********** UUssiinngg ppaarraammeetteerrss **********
│ │ │ │ More sophisticated tags accept parameters. The
│ │ │ │ option parameter lets multiple metatag parameters
│ │ │ │ be named and expanded inside the def or blockdef
│ │ │ │ block:
│ │ │ │ - 1. <_[_[_r_e_f_]_]_S_E_T emailaddr="jnelson@crl.com">
│ │ │ │ + 1. <_[_[_r_e_f_]_]_d_e_f name="sharedimg" option="name
│ │ │ │ + alt">
│ │ │ │ + 2. <_[_[_r_e_f_]_]_i_m_g src="/home/sharedimages/$
│ │ │ │ + {name}" alt="${alt}">;
│ │ │ │ + 3. <_[_[_r_e_f_]_]_/_d_e_f>
│ │ │ │ + 4.
│ │ │ │ + 5.
│ │ │ - <
blockdef name="bolditalic">
│ │ │ - <b><i>
│ │ │ - <
use block>
│ │ │ - </i></b>
│ │ │ - <
/blockdef>
│ │ │ +<
OPT (IMGXY|NOIMGXY)>
│ │ │ +<
OPT (QUIET|VERBOSE)>
│ │ │ +<
OPT (DEPEND|NODEPEND)>
│ │ │ +<
OPT (PRECIOUS|NOPRECIOUS)>
│ │ │ +<
OPT (CONDENSE|SEMICONDENSE|NOCONDENSE)>
│ │ │ +<
OPT DELIM=(HTML|SQUARE|CURLY)>
│ │ │ +<
OPT (XML|XML=FALSE)>
│ │ │
│ │ │ - This is <bolditalic>bold and italic</bolditalic>
│ │ │
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,26 +1,26 @@
│ │ │ │ [HTP]
│ │ │ │ ************ hhttpp oonn--lliinnee rreeffeerreennccee :: OOPPTT ************
│ │ │ │ _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s ********** ssyynnttaaxx **********
│ │ │ │ - _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_b_l_o_c_k_d_e_f name="bolditalic">
│ │ │ │ - _L_i_c_e_n_s_e
│ │ │ │ - _T_u_t_o_r_i_a_l <_[_[_r_e_f_]_]_u_s_e block>
│ │ │ │ - _U_s_a_g_e
│ │ │ │ - HTP Tags <_[_[_r_e_f_]_]_/_b_l_o_c_k_d_e_f>
│ │ │ │ - _A_L_T_T_E_X_T
│ │ │ │ - _B_L_O_C_K This is
│ │ │ -<
QUOTE TAG [ATTRIBUTE=VALUE ...]>
│ │ │ + <
def name="sharedimg" option="name alt">
│ │ │ + <
img src="/home/sharedimages/${name}" alt="${alt}">;
│ │ │ + <
/def>
│ │ │
│ │ │ + <sharedimg name="bubble.gif" alt="Bubble image">
│ │ │
The OUTPUT tag can be used to create auxillary │ │ │ files besides the main HTML file. The text between this tag and the │ │ │ corresponding </OUTPUT> tag is written to output file.
│ │ │ Normally the outputfile is cleared before writing to it, but you
│ │ │ can use the APPEND attribute to extend an existing file. The text
│ │ │ ├── html2text {}
│ │ │ │ @@ -1,28 +1,28 @@
│ │ │ │ [HTP]
│ │ │ │ ************ hhttpp oonn--lliinnee rreeffeerreennccee :: OOUUTTPPUUTT ************
│ │ │ │ _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s ********** ssyynnttaaxx **********
│ │ │ │ - _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_Q_U_O_T_E TAG [ATTRIBUTE=VALUE ...]>
│ │ │ │ - _L_i_c_e_n_s_e
│ │ │ │ - _T_u_t_o_r_i_a_l ********** ssyynnooppssiiss **********
│ │ │ │ - _U_s_a_g_e The OOUUTTPPUUTT tag can be used to create auxillary
│ │ │ │ - HTP Tags files besides the main HTML file. The text between
│ │ │ │ - _A_L_T_T_E_X_T this tag and the corresponding tag is
│ │ │ │ - _B_L_O_C_K written to output file.
│ │ │ │ - _B_L_O_C_K_D_E_F Normally the outputfile is cleared before writing
│ │ │ │ - _D_E_F to it, but you can use the APPEND attribute to
│ │ │ │ - _F_I_L_E extend an existing file. The text written to the
│ │ │ │ - _I_F file is normally not expanded, i.e. all tags inside
│ │ │ │ - _I_N_C this block are not executed but written unmodified
│ │ │ │ - _I_M_G to the file. However, you can use the _E_X_P_A_N_D
│ │ │ │ - _I_M_A_G_E_U_R_L attribute to override this behaviour.
│ │ │ │ - _O_P_T
│ │ │ │ - [>] _O_U_T_P_U_T
│ │ │ │ - _Q_U_O_T_E
│ │ │ │ - _S_E_T
│ │ │ │ + _I_n_t_r_o_d_u_c_t_i_o_n <_[_[_r_e_f_]_]_d_e_f name="sharedimg" option="name alt">
│ │ │ │ + _L_i_c_e_n_s_e <_[_[_r_e_f_]_]_i_m_g src="/home/sharedimages/${name}"
│ │ │ │ + _T_u_t_o_r_i_a_l alt="${alt}">;
│ │ │ │ + _U_s_a_g_e <_[_[_r_e_f_]_]_/_d_e_f>
│ │ │ │ + HTP Tags
│ │ │ │ + _A_L_T_T_E_X_T
│ │ │ Phone: +49 761 203-8243
│ │ │
│ │ │ Fax: +49 761 203-8242