Repository navigation
Expand file tree
/
Copy pathMinify.pm
More file actions
65 lines (52 loc) · 1.34 KB
/
Copy pathMinify.pm
File metadata and controls
65 lines (52 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package Minify;
use nginx;
use JavaScript::Minifier::XS;
use CSS::Minifier::XS;
use HTML::Packer;
sub html_handler {
my $r = shift;
my $filename = $r->filename;
local $/=undef;
return DECLINED unless -f $filename;
open(INFILE, $filename) or die "Error reading file: $!";
my $html = <INFILE>;
close(INFILE);
$r->send_http_header('text/html');
$r->print(
HTML::Packer::minify(
\$html,
{
remove_comments => 1,
remove_newlines => 1,
no_compress_comment => 1,
html5 => 1
}
)
);
return OK;
}
sub css_handler {
my $r = shift;
my $filename = $r->filename;
local $/=undef;
return DECLINED unless -f $filename;
open(INFILE, $filename) or die "Error reading file: $!";
my $css = <INFILE>;
close(INFILE);
$r->send_http_header('text/css');
$r->print(CSS::Minifier::XS::minify($css));
return OK;
}
sub js_handler {
my $r = shift;
my $filename = $r->filename;
local $/=undef;
return DECLINED unless -f $filename;
open(INFILE, $filename) or die "Error reading file: $!";
my $js = <INFILE>;
close(INFILE);
$r->send_http_header('application/javascript');
$r->print(JavaScript::Minifier::XS::minify($js));
return OK;
}
1;