On hacking a Filter to use an external binary.
Sherwood Botsford <[email protected]> Wed, 21 Dec 2016 13:44:31 -0700
| Newsgroups | gmane.comp.lang.perl.modules.template-toolkit |
|---|---|
| Message-ID | <CAOX=2F_nhpR2Tni-Xk+okhUWhkqii6Q5h7UA+eFh0d-pqaSaTw@mail.gmail.com> |
--===============7468397590255220999==
Content-Type: multipart/alternative; boundary=001a1147039aac52cf0544313a03
--001a1147039aac52cf0544313a03
Content-Type: text/plain; charset=UTF-8
I asked a similar question a few years ago, and didn't understand the
answers. I really don't understand the care and feeding of modules.
Here's what I'm starting with:
#$Id: MultiMarkdown.pm 4103 2009-03-02 20:41:50Z andrew $
package Template::Plugin::MultiMarkdown;
use strict;
use base qw (Template::Plugin::Filter);
use Text::MultiMarkdown;
our $VERSION = 0.03;
sub init {
my $self = shift;
$self->{_DYNAMIC} = 1;
$self->install_filter($self->{_ARGS}->[0] || 'multimarkdown');
return $self;
}
sub filter {
my ($self, $text, $args, $config) = @_;
my $m = Text::MultiMarkdown->new(%{$config || {}});
return $m->markdown($text);
}
1;
******
I want to change the reference to Text:MultiMarkdown
to use /usr/local/bin/multimarkdown
I think I need to change:
use Text::MultiMarkdown;
To
use IPC::run3
and then the my $m line involves a call to run3, but then I'm lost.
Regards
Sherwood
--001a1147039aac52cf0544313a03
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:"ti=
mes new roman",serif">I asked a similar question a few years ago, and =
didn't understand the answers.=C2=A0 I really don't understand the =
care and feeding of modules.</div><div class=3D"gmail_default" style=3D"fon=
t-family:"times new roman",serif"><br></div><div class=3D"gmail_d=
efault" style=3D"font-family:"times new roman",serif">Here's =
what I'm starting with:</div><div class=3D"gmail_default" style=3D"font=
-family:"times new roman",serif"><br></div><div class=3D"gmail_de=
fault"><div class=3D"gmail_default"><font face=3D"times new roman, serif">#=
$Id: MultiMarkdown.pm 4103 2009-03-02 20:41:50Z andrew $</font></div><div c=
lass=3D"gmail_default"><font face=3D"times new roman, serif">package Templa=
te::Plugin::MultiMarkdown;</font></div><div class=3D"gmail_default"><font f=
ace=3D"times new roman, serif">use strict;</font></div><div class=3D"gmail_=
default"><font face=3D"times new roman, serif">use base qw (Template::Plugi=
n::Filter);</font></div><div class=3D"gmail_default"><font face=3D"times ne=
w roman, serif">use Text::MultiMarkdown;</font></div><div class=3D"gmail_de=
fault"><font face=3D"times new roman, serif"><br></font></div><div class=3D=
"gmail_default"><font face=3D"times new roman, serif">our $VERSION =3D 0.03=
;</font></div><div class=3D"gmail_default"><font face=3D"times new roman, s=
erif"><br></font></div><div class=3D"gmail_default"><font face=3D"times new=
roman, serif">sub init {</font></div><div class=3D"gmail_default"><font fa=
ce=3D"times new roman, serif">=C2=A0 =C2=A0 my $self =3D shift;</font></div=
><div class=3D"gmail_default"><font face=3D"times new roman, serif">=C2=A0 =
=C2=A0 $self->{_DYNAMIC} =3D 1;</font></div><div class=3D"gmail_default"=
><font face=3D"times new roman, serif">=C2=A0 =C2=A0 $self->install_filt=
er($self->{_ARGS}->[0] || 'multimarkdown');</font></div><div =
class=3D"gmail_default"><font face=3D"times new roman, serif">=C2=A0 =C2=A0=
return $self;</font></div><div class=3D"gmail_default"><font face=3D"times=
new roman, serif">}</font></div><div class=3D"gmail_default"><font face=3D=
"times new roman, serif"><br></font></div><div class=3D"gmail_default"><fon=
t face=3D"times new roman, serif">sub filter {</font></div><div class=3D"gm=
ail_default"><font face=3D"times new roman, serif">=C2=A0 =C2=A0 my ($self,=
$text, $args, $config) =3D @_;</font></div><div class=3D"gmail_default"><f=
ont face=3D"times new roman, serif">=C2=A0 =C2=A0 my $m =3D Text::MultiMark=
down->new(%{$config || {}});</font></div><div class=3D"gmail_default"><f=
ont face=3D"times new roman, serif">=C2=A0 =C2=A0 return $m->markdown($t=
ext);</font></div><div class=3D"gmail_default"><font face=3D"times new roma=
n, serif">}</font></div><div class=3D"gmail_default"><font face=3D"times ne=
w roman, serif"><br></font></div><div class=3D"gmail_default"><font face=3D=
"times new roman, serif">1;</font></div><div style=3D"font-family:"tim=
es new roman",serif"><br></div><div style=3D"font-family:"times n=
ew roman",serif">******</div><div style=3D"font-family:"times new=
roman",serif"><br></div><div style=3D"font-family:"times new rom=
an",serif">I want to change the reference to Text:MultiMarkdown=C2=A0<=
/div><div style=3D"font-family:"times new roman",serif">to use /u=
sr/local/bin/multimarkdown</div><div style=3D"font-family:"times new r=
oman",serif"><br></div><div style=3D"font-family:"times new roman=
",serif">I think I need to change:</div><div style=3D"font-family:&quo=
t;times new roman",serif">use Text::MultiMarkdown;=C2=A0<br></div><div=
style=3D"font-family:"times new roman",serif">To</div><div style=
=3D"font-family:"times new roman",serif">use IPC::run3</div><div =
style=3D"font-family:"times new roman",serif"><br></div><div styl=
e=3D"font-family:"times new roman",serif">and then the my $m line=
involves a call to run3, but then I'm lost.</div></div><div class=3D"g=
mail_default" style=3D"font-family:"times new roman",serif"><br><=
/div><div class=3D"gmail_default" style=3D"font-family:"times new roma=
n",serif"><br></div><div><div class=3D"gmail_signature"><div dir=3D"lt=
r"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div>Regards</div><div><br><=
/div><div>Sherwood<br><br></div></div></div></div></div></div></div></div>
</div>
--001a1147039aac52cf0544313a03--
--===============7468397590255220999==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
templates mailing list
[email protected]
http://mail.template-toolkit.org/mailman/listinfo/templates
--===============7468397590255220999==--