NAME
Mojolicious::Plugin::AssetPack::Manual::Cookbook - Code snippets
REWRITE ONLINE ASSET
Rewrite URLs
This example contains a preprocessors to expand the url()
definitions in a css file downloaded from a CDN:
$app->asset->preprocessors->add(
css => sub {
my ($assetpack, $text, $file) = @_;
if ($file =~ /font.*awesome/) {
$$text =~ s!url\(["']../([^']+)["']\)!url(https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/$1)!g;
}
},
);
$app->asset("app.css" => "https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css");
Fetch referred assets
This example contains a preprocessors which fetch referred assets and serves them from the local webserver:
use File::Basename "basename";
my $cdn_base_url = "http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0";
$t->app->asset->preprocessors->add(
css => sub {
my ($assetpack, $text, $file) = @_;
my $fetch = sub {
my $url = "$cdn_base_url/$1";
my $path = $assetpack->fetch($url);
return sprintf "url('%s')", basename $path;
};
$$text =~ s!url\('..([^']+)'\)!{ $fetch->() }!ge if $file =~ /awesome/;
}
);
$t->app->asset("app.css" => "$cdn_base_url/css/font-awesome.css");
ONLINE ASSETS
Font Awesome
$app->asset("app.css" => "https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css");
See also "Rewrite URLs" and http://fortaweso.me/font-awesome/.
Google fonts
$app->asset("app.css" => "http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic");
See also http://www.google.com/fonts for a selection of fonts.
jQuery
$app->asset("app.js" => "http://code.jquery.com/jquery-1.11.2.min.js");
See http://api.jquery.com/ for jQuery documentation.
NEXT
Have a look at the unit tests.
AUTHOR
Jan Henning Thorsen - jhthorsen@cpan.org