2007-03-24 22:37:15 +00:00
|
|
|
# Copyright (C) 2004, 2005, 2007 Alex Schroeder <alex@emacswiki.org>
|
2004-10-16 00:51:20 +00:00
|
|
|
#
|
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
2016-08-16 14:59:13 +02:00
|
|
|
# the Free Software Foundation; either version 3 of the License, or
|
2004-10-16 00:51:20 +00:00
|
|
|
# (at your option) any later version.
|
|
|
|
|
#
|
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
|
#
|
|
|
|
|
# You should have received a copy of the GNU General Public License
|
2016-08-16 14:59:13 +02:00
|
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2004-10-16 00:51:20 +00:00
|
|
|
|
2015-03-27 03:01:01 +02:00
|
|
|
use strict;
|
2015-08-18 10:48:03 +02:00
|
|
|
use v5.10;
|
2015-03-27 03:01:01 +02:00
|
|
|
|
2014-08-21 22:23:23 +02:00
|
|
|
AddModuleDescription('live-templates.pl', 'Live Template Extension');
|
2004-10-16 00:51:20 +00:00
|
|
|
|
2015-04-10 13:31:28 +03:00
|
|
|
our ($q, $bol, @MyRules, $FreeLinkPattern);
|
2015-03-27 03:01:01 +02:00
|
|
|
|
2004-10-16 00:51:20 +00:00
|
|
|
push(@MyRules, \&LiveTemplateRule);
|
|
|
|
|
|
|
|
|
|
sub LiveTemplateRule {
|
2015-08-23 21:22:12 +03:00
|
|
|
if ($bol and /\G(<<$FreeLinkPattern\n)/cg) {
|
2007-03-24 22:37:15 +00:00
|
|
|
Clean(CloseHtmlEnvironments());
|
2004-10-16 00:51:20 +00:00
|
|
|
my $str = $1;
|
|
|
|
|
my $template = FreeToNormal($2);
|
2007-03-24 22:37:15 +00:00
|
|
|
/\G((.*?\n)$template(\n|\Z))/cgs or print $q->p($q->strong(T('Template without parameters')));
|
2004-10-16 00:51:20 +00:00
|
|
|
$str .= $1;
|
|
|
|
|
Dirty($str);
|
2007-03-24 22:37:15 +00:00
|
|
|
my $oldpos = pos;
|
|
|
|
|
my $old_ = $_;
|
2015-09-04 04:55:48 +03:00
|
|
|
my $hash = ParseData($2);
|
2004-10-16 00:51:20 +00:00
|
|
|
my $text = GetPageContent($template);
|
|
|
|
|
return $q->p($q->strong(Ts('The template %s is either empty or does not exist.',
|
2004-12-05 03:53:42 +00:00
|
|
|
$template))) . AddHtmlEnvironment('p') unless $text;
|
2015-09-04 04:55:48 +03:00
|
|
|
foreach my $key (keys %$hash) {
|
|
|
|
|
$text =~ s/\$$key\$/$hash->{$key}/g;
|
2004-10-16 00:51:20 +00:00
|
|
|
}
|
|
|
|
|
print "<div class=\"template $template\">";
|
2005-01-25 08:19:44 +00:00
|
|
|
ApplyRules(QuoteHtml($text), 1, 1, undef, 'p');
|
2007-03-24 22:37:15 +00:00
|
|
|
$_ = $old_;
|
2004-10-16 00:51:20 +00:00
|
|
|
pos = $oldpos;
|
|
|
|
|
print '</div>';
|
2007-03-24 22:37:15 +00:00
|
|
|
Clean(AddHtmlEnvironment('p'));
|
|
|
|
|
return '';
|
2004-10-16 00:51:20 +00:00
|
|
|
}
|
2015-02-27 12:10:18 +02:00
|
|
|
return;
|
2004-10-16 00:51:20 +00:00
|
|
|
}
|