Reputation: 35117
use Mojolicious::Lite;
# /with_layout
get '/a' => sub { my $self = shift;} ;
get '/b' => sub { my $self = shift;} ;
get '/c' => sub { my $self = shift;};
app->start;
__DATA__
@@ a.html.ep
<!DOCTYPE html>
<html>
<head><title><%= title %></title></head>
<body><%= content %></body>
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
</html>
@@ b.html.ep
<!DOCTYPE html>
<html>
<head><title><%= title %></title></head>
<body><%= content %></body>
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
</html>
@@ c.html.ep
<!DOCTYPE html>
<html>
<head><title><%= title %></title></head>
<body><%= content %></body>
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
</html>
I am really moved
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
and use all the html rather adding into each html
Upvotes: 2
Views: 168
Reputation: 4249
Use the layout template feature.
use Mojolicious::Lite;
# /with_layout
get '/a' => sub { my $self = shift;};
get '/b' => sub { my $self = shift;};
get '/c' => sub { my $self = shift;};
app->start;
__DATA__
@@ a.html.ep
% title 'A';
% layout 'template';
Content for 'A'
@@ b.html.ep
% title 'B';
% layout 'template';
Content for 'B'
@@ c.html.ep
% title 'C';
% layout 'template';
Content for 'C'
@@ layouts/template.html.ep
<!DOCTYPE html>
<html>
<head><title><%= title %></title></head>
<body><%= content %></body>
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
</html>
Upvotes: 3