[原]Perl的HTML::KTemplate模块

    前一篇日志中介绍了如何利用正规表达式的替换功能来实现Perl脚本和HTML模板的配合使用。正如日志中所说的,这方便把涉及和脚本分开处理,分工合作,效率可以大大的提高。但文中提到的技术,仅适合小型站点使用,若HTML中有一些特殊字符时,容易发生替换错误,而且转换效率不高。
    今天介绍的,是一个叫HTML::KTemplate的模板。HTML::KTemplate模块是由Kasper Dziurdz先生开发的一款功能强大的HTML代码解析的模块,模块功能非常强大,功能灵活,而不臃肿。我使用CPAN上的说明做个演示,剩余的功能参数可自行斟酌。

一、安装
HTML::KTemplate模板
官方网站是:http://html-ktemplate.sourceforge.net/
CPAN上的说明:http://search.cpan.org/~kasper/HTML-KTemplate-1.33/KTemplate.pm
本地下载:

[原]Perl的HTML::KTemplate模块下载文件
点击这里下载文件

安装:

引用
# wget http://search.cpan.org/CPAN/authors/id/K/KA/KASPER/HTML-KTemplate-1.33.tar.gz
# tar xzvf HTML-KTemplate-1.33.tar.gz
# cd HTML-KTemplate-1.33
# perl Makefile.PL
Checking if your kit is complete…
Looks good
Writing Makefile for HTML::KTemplate
# make test
# make install
Manifying blib/man3/HTML::KTemplate.3pm
Installing /usr/lib/perl5/site_perl/5.8.8/HTML/KTemplate.pm
Installing /usr/share/man/man3/HTML::KTemplate.3pm
Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/HTML/KTemplate/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
# perl -e "use HTML::KTemplate;"

※ 留意上述红色标记,是HTML::KTemplate模板的安装路径。最后一步是测试模板是否可以正常使用。

二、简单示例
这个示例是CPAN上的说明,虽然简单,但恰好可以说明基础的使用方法。
1、perl脚本

引用
# cat ktemplate.pl
#!/usr/bin/perl -w
#使用HTML::KTemplate模板
use HTML::KTemplate;

#设定模板的根目录路径,用于打开HTML模板文件,并创建一个$tpl实例
$tpl = HTML::KTemplate->new('templates/');

#使用$tpl实例的assign方法定义变量值
$tpl->assign( TITLE  => 'Template Test Page'    );
$tpl->assign( TEXT   => 'Some welcome text …' );

#定义循环,其中也定义循环中使用的变量
foreach (1 .. 3) {

    #LOOP是一个循环标记
    $tpl->assign( LOOP,
        TEXT => 'Just a test …',
    );

}

#使用$tpl实例的process方法执行HTML模板替换
$tpl->process('template.tpl');

#使用$tpl实例的print方法输出结果
$tpl->print();

2、HTML模板
首先,创建HTML模板的存放路径(对应上述脚本打开的地方):

引用
# mkdir templates
# tree
.
|– ktemplate.pl
`– templates

然后,编写HTML模板:

引用
# cat template.tpl
<html>
<!– 用[% %]来定义变量的位置
<head><title>[% TITLE %]</title>
<body>

Hello! [% TEXT %]<p>

<!– 循环开始标记,并不是注释哦 –>
<!– BEGIN LOOP –>

[% TEXT %]<br>

<!– 循环结束标记 –>
<!– END LOOP –>

</body>
</html>

3、运行结果

引用
# perl ktemplate.pl
<html>
<head><title>Template Test Page</title>
<body>

Hello! Some welcome text …<p>

Just a test …<br>

Just a test …<br>

Just a test …<br>

</body>
</html>

蓝色部分是被perl脚本中的变量替换的内容,使用perl标量代替脚本中的字符串即可实现动态的更新。
源码文件:

[原]Perl的HTML::KTemplate模块下载文件
点击这里下载文件
[原]Perl的HTML::KTemplate模块内文分页: [1] [2]
jQuery中html()方法在IE 和 FireFox 的差别
设计HTML框架网页
HTML的链接路径类型
HTML的行内和块容器
XHTML代码的主要规则

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/110935.html

(0)
上一篇 2021年8月26日
下一篇 2021年8月26日

相关推荐

发表回复

登录后才能评论