]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - IkiWiki/Plugin/typography.pm
Stop using IPC::Cmd and String::ShellQuote, since quoting (and
[git.ikiwiki.info.git] / IkiWiki / Plugin / typography.pm
1 #!/usr/bin/perl
3 package IkiWiki::Plugin::typography;
5 use warnings;
6 use strict;
7 use IkiWiki 3.00;
9 sub import {
10         hook(type => "getopt", id => "typography", call => \&getopt);
11         hook(type => "getsetup", id => "typography", call => \&getsetup);
12         IkiWiki::hook(type => "sanitize", id => "typography", call => \&sanitize);
13 }
15 sub getopt () {
16         eval q{use Getopt::Long};
17         error($@) if $@;
18         Getopt::Long::Configure('pass_through');
19         GetOptions("typographyattributes=s" => \$config{typographyattributes});
20 }
22 sub getsetup () {
23         eval q{use Text::Typography};
24         error($@) if $@;
26         return
27                 plugin => {
28                         safe => 1,
29                         rebuild => 1,
30                 },
31                 typographyattributes => {
32                         type => "string",
33                         example => "3",
34                         description => "Text::Typography attributes value",
35                         advanced => 1,
36                         safe => 1,
37                         rebuild => 1,
38                 },
39 }
41 sub sanitize (@) {
42         my %params=@_;
44         eval q{use Text::Typography};
45         return $params{content} if $@;
47         my $attributes=defined $config{typographyattributes} ? $config{typographyattributes} : '3';
48         return Text::Typography::typography($params{content}, $attributes);
49 }
51 1