Mojolicious je WAF v Perlu.

Projekty

editovat

Návody

editovat

Diskuse

editovat

perldoc

editovat
perldoc Mojolicious
perldoc Mojolicious::Guides
perldoc Mojolicious::Lite
perldoc Mojo
  • apt-get install libmojolicious-perl
  • tento balík obsahuje i WWW server morbo, který budeme používat
  • nějakou aplikaci v Perlu pak jednoduše spustíme příkazem:
morbo mojeaplikace.pl 

mojeaplikace.pl může vypadat třeba takhle:

#! /usr/bin/perl 
use Mojolicious::Lite;

get '/' => sub {
    my $self = shift;
    $self->render('00-Howto');
};

app->start;

__DATA__
@@00-Howto.html.ep
% use Time::Piece;
% my $now = localtime;
<!DOCTYPE html>
<html>
<head><title>00-Howto</title></head>
<html>
<body>
<h2>Mojolicious::Lite</h2>
<h3>Jak se pouští a jek to renderuje</h3>
<ol>
  <li>./app.pl daemon</li>
  <li>morbo app.pl</li>
  <li>Mojolicious::Guides::Rendering</li>
</ol>

<p>Jak se máš, světe?</p>
<p>The time is <%= $now->hms %></p>
</body>
</html>

Rendering

editovat

Renderování v podstatě znamená, že do HTML stránky můžeme vkládat kusy perlovského kódu, jak jsem viděli v minulém příkladu:

% my $now = localtime;
<p>The time is <%= $now->hms %></p>

Do zdrojového kódu HTML stránky můžeme vkládat perlovský kód buď tak, že jej uzavřeme mezi tagy, anebo příslušným způsobem označíme jednu celou linku.

Otvíracích tagů je pět druhů, všechny se ale uzavírají jednotným zavíracím tagem %>

  • perlovský kód
<%
Perl code
%>
  • perlovský výraz, který se po vyhodnocení vloží do HTML kódu (XML entity budou escapovány):
<%=
Perl expression
%>
  • perlovský výraz, který se po vyhodnocení vloží do HTML kódu tak, jak je:
<%==
Perl expression
%>
  • komentář (vhodný např. při ladění):
<%#
komentář
%>
  • vloží se zabaleno do tagů <% a %> (např. pro generování šablon):
<%%
Perl code
%>

Uvedené konstrukce je možno v případě jednoho řádku vložit do HTML kódu následovně:

  • jedna řádka perlovského kódu
% Perl code line
  • Perlovský výraz (XML entity budou escapovány):
%= expression
  • Perlovský výraz (XML entity se zobrazí tak, jak jsou):
%== expression
  • komentář:
%# Řádka komentáře
  • Nahradí se % (pro vytváření šablon apod.):

%% cokoliv

Problémy

editovat
Plugin "PODRenderer" missing, maybe you need to install it?

(Mojolicious ver. 9.22 on Xubuntu 20.04) Řešení:

sudo cpan Mojolicious::Plugin::PODRenderer