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:&quot;ti=
mes new roman&quot;,serif">I asked a similar question a few years ago, and =
didn&#39;t understand the answers.=C2=A0 I really don&#39;t understand the =
care and feeding of modules.</div><div class=3D"gmail_default" style=3D"fon=
t-family:&quot;times new roman&quot;,serif"><br></div><div class=3D"gmail_d=
efault" style=3D"font-family:&quot;times new roman&quot;,serif">Here&#39;s =
what I&#39;m starting with:</div><div class=3D"gmail_default" style=3D"font=
-family:&quot;times new roman&quot;,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-&gt;{_DYNAMIC} =3D 1;</font></div><div class=3D"gmail_default"=
><font face=3D"times new roman, serif">=C2=A0 =C2=A0 $self-&gt;install_filt=
er($self-&gt;{_ARGS}-&gt;[0] || &#39;multimarkdown&#39;);</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-&gt;new(%{$config || {}});</font></div><div class=3D"gmail_default"><f=
ont face=3D"times new roman, serif">=C2=A0 =C2=A0 return $m-&gt;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:&quot;tim=
es new roman&quot;,serif"><br></div><div style=3D"font-family:&quot;times n=
ew roman&quot;,serif">******</div><div style=3D"font-family:&quot;times new=
 roman&quot;,serif"><br></div><div style=3D"font-family:&quot;times new rom=
an&quot;,serif">I want to change the reference to Text:MultiMarkdown=C2=A0<=
/div><div style=3D"font-family:&quot;times new roman&quot;,serif">to use /u=
sr/local/bin/multimarkdown</div><div style=3D"font-family:&quot;times new r=
oman&quot;,serif"><br></div><div style=3D"font-family:&quot;times new roman=
&quot;,serif">I think I need to change:</div><div style=3D"font-family:&quo=
t;times new roman&quot;,serif">use Text::MultiMarkdown;=C2=A0<br></div><div=
 style=3D"font-family:&quot;times new roman&quot;,serif">To</div><div style=
=3D"font-family:&quot;times new roman&quot;,serif">use IPC::run3</div><div =
style=3D"font-family:&quot;times new roman&quot;,serif"><br></div><div styl=
e=3D"font-family:&quot;times new roman&quot;,serif">and then the my $m line=
 involves a call to run3, but then I&#39;m lost.</div></div><div class=3D"g=
mail_default" style=3D"font-family:&quot;times new roman&quot;,serif"><br><=
/div><div class=3D"gmail_default" style=3D"font-family:&quot;times new roma=
n&quot;,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==--