рдЬреЗрдбрдкреАрдПрдЪрдкреАрдкреА рдХрд╛ рдкрд░рд┐рдЪрдп

рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ # 17 рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд╕реБрдЭрд╛рд╡ рдкрд░, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓реЗрдЦ рдХрд╛ рдкрд░рд┐рдЪрдп рдЬреЗрдбреАрдкреАрдПрдЪрдкреА рд╕реЗ рдкрд░рд┐рдЪрдп рдХрд░рд╛рдпрд╛ ред



рджрд░реНрдЬрдиреЛрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╣реИрдВред рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдореЗрдВ рд╕реЗ рд╕реНрдорд╛рд░реНрдЯ, рдЯреНрд╡рд┐рдЧ (рдбреНрд░реБрдкрд▓ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд), рдмреНрд▓реЗрдб (рд▓рд╛рд░рд╛рд╡реЗрд▓ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╡реЗрдирд┐рд▓рд╛ PHPред PHP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рд░реВрдмреА / рд░реВрдмреА рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП eRuby / ERB рдФрд░ Haml рдХреЗ рд▓рд┐рдП рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдореВрдВрдЫреЗрдВ , рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ , рд╣реЛрдЧрди рдФрд░ EJS ред рдХреБрдЫ рдореЗрдВ рдорд╛рдореВрд▓реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЕрдВрддрд░ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдЕрдВрддрд░ рд╣реИрдВред



рдЬреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди, рдЬреЛ рджреВрд╕рд░реЛрдВ рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдлреЙрд░ рдиреЛрдбреНрд╕ .js. рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЬреЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдпрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, PHP рдХреЗ рд▓рд┐рдП рдЬреЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдЬреЗрдбрдПрдбрдкреАрдкреАрдкреА ред



рд╣рдорд▓ рдФрд░ рдЬреЗрдб



рд╣реЗрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдП рдмрд┐рдирд╛ рдЬреЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЧрд▓рдд рд╣реЛрдЧрд╛, рдЬреЛ рдЬреЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЗрд░рдгрд╛рджрд╛рдпрдХ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, PHP рдореЗрдВ Haml рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ ред рдЬреЗрдб рдПрдЪрдПрдПрдордПрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рджрд░реНрд╢рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, "рд╕реБрдВрджрд░" рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд▓реЗрдЦрдХ рд╣рд╛рдЗрдХреВ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рдХрд╣рддреЗ рд╣реИрдВред рдЬреЛ рдХреБрдЫ рднреА рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ, рд╣реЗрдорд▓ рдФрд░ рдЬреЗрдб рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рди рдЧреБрдг рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрдиреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред



рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ?



рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ "рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди" рдФрд░ рдЙрд╕рдореЗрдВ рдореБрдЦреНрдп рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рдорд╛рд░реНрдХрдЕрдк рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреЗрдб рдХреЗ рдкрд╛рд╕ рди рдХреЗрд╡рд▓ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдФрд░ рддрд░реНрдХ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдПрдХреНрд╕рдПрдордПрд▓ рдЬреИрд╕реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓реЗрдЦрди рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХрд╛ рдорддрд▓рдм HTML рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рдЖрд░рдПрд╕рдПрд╕ рдФрд░ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рд▓рд┐рдП рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЕрдкрдиреА "рдкрд╛рд░рдВрдкрд░рд┐рдХ" рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ HTML рдХреЗ рд▓рд┐рдП рдЬреЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╢реЙрд░реНрдЯрдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ



рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд╕рдордп, рдХреЛрдб рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд┐рд╕реА рдХреЛ рдПрдХ рдФрд░ рдШрдВрдЯреЗ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдкреИрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдХреЗ рдФрд░ autoload.php.dist



рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ (Github рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рд┐рдореНрдлрдиреА рд╕реЗ UniversalClassLoader



рд╢рд╛рдорд┐рд▓ рд╣реИ)ред



рдиреАрдЪреЗ, README рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдЙрджрд╛рд╣рд░рдгред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ jade



рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред



 use Everzet\Jade\Dumper\PHPDumper, Everzet\Jade\Visitor\AutotagsVisitor, Everzet\Jade\Filter\JavaScriptFilter, Everzet\Jade\Filter\CDATAFilter, Everzet\Jade\Filter\PHPFilter, Everzet\Jade\Filter\CSSFilter, Everzet\Jade\Parser, Everzet\Jade\Lexer\Lexer, Everzet\Jade\Jade; $dumper = new PHPDumper(); $dumper->registerVisitor('tag', new AutotagsVisitor()); $dumper->registerFilter('javascript', new JavaScriptFilter()); $dumper->registerFilter('cdata', new CDATAFilter()); $dumper->registerFilter('php', new PHPFilter()); $dumper->registerFilter('style', new CSSFilter()); // Initialize parser & Jade $parser = new Parser(new Lexer()); $jade = new Jade($parser, $dumper); $template = __DIR__ . '/template.jade'; // Parse a template (both string & file containers) echo $jade->render($template);
      
      





рдпрд╣ рдХреЛрдб tempalte.jade



рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦрд╛рдПрдЧрд╛ред



рдЬрд╣рд╛рдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ рдЖрдкрдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡реЙрдЪрдореИрди , рдЧрд╛рд░реНрдб рдпрд╛ рд░рд┐рд╕реЛрд░реНрд╕ рд╡реЙрдЪрд░ рдЬреИрд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдЬреЗрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп рдкрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ



рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬреЛ рджреЛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг HTML рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрдм рддрдХ рддрд░реНрдХ рдХреЗ рдмрд┐рдирд╛ред

 !!! 5 html(lang="en-us") meta(charset="utf-8") meta(http-equiv="X-UA-Compatible", content="IE=Edge;chrome=1") title(dir="ltr")= pageTitle meta(name="viewport", content="width=device-width, initial-scale=1.0") link(rel="stylesheet", media="screen", href="/css/styles.css") body header h1 My Jade Application div#content div.inner =$bodyContent script(data-main="js/main.js", src="js/libs/require.js")
      
      





рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдЖрдкрдХреЛ рдЗрдВрдбреЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬреЗрдб рдкреАрдПрдЪрдбреА рд╕рдордЭрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА рдпрд╛ рдпрд╣ рдЧрд▓рдд рдорд╛рд░реНрдХрдЕрдк рд╣реЛрдЧрд╛ред


рддреБрд░рдВрдд рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЗрдб рд╕рд╛рдорд╛рдиреНрдп HTML рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдореЗрдВ рдХреЛрдг рдХреЛрд╖реНрдардХ <> рдФрд░ рд╕рдорд╛рдкрди рдЯреИрдЧ рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ, рджреЛрд╣рд░реЗ рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдпрд╛ рдЕрдиреНрдп рдЖрдо рддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯреЛрдВ рдореЗрдВ рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИрдВред (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк рдбрдмрд▓ рдХрд░реНрд▓реА рдмреНрд░реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЬреЗрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред)



рдорд╛рд░реНрдХрдЕрдк рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдб рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рдзрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдЖрдЗрдП рдкрд░рд┐рдгрд╛рдореА HTML рдХреЛ рджреЗрдЦреЗрдВ:

 <!DOCTYPE html> <html lang="en-us"> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1" /> <title dir="ltr"><?php echo pageTitle ?></title> <meta name="viewport" content="width=device-width" initial-scale="1.0" /> <link rel="stylesheet" media="screen" href="/css/styles.css" /> <body> <header> <h1>My Jade Application</h1> </header> <div id="content"> <div class="inner"> <?php echo $bodyContent ?> </div> </div> <script data-main="js/main.js" src="js/libs/require.js"></script> </body> </html>
      
      







HTML рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕рднреА рдкреНрд░рдореБрдЦ рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред



!!! 5



!!! 5



HTML5 рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╢реБрд▓рд┐рдкрд┐ рд╣реИред рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕реА рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдПрдХ рдЯреНрд░рд┐рдкрд▓ рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдЪрд┐рд╣реНрди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЖрдк рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ !!! xml



!!! xml



рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП <?xml version="1.0" encoding="utf-8" ?>



ред transitional



, рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ !!! transitional



!!! transitional



рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ !!! default



!!! default



рджреЗ рджреЗрдВрдЧреЗ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">







рдиреЛрдЯ: рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рд╕реНрд╡рд╛рдж рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ !!! 5



!!! 5



рдХреЛ doctype html



рдореЗрдВ рдмрджрд▓ !!! 5



рдЧрдпрд╛ рд╣реИред
рд╢рд╛рдпрдж рдЬреЗрдбрдПрдбрдкреАрдкреА рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЬреАрдердм рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдХрдореА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдПред


HTML рдЯреИрдЧ рдХреЛ рдПрдХ рдирд╛рдо рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 body header
      
      





... рдпрджрд┐ рдЖрдк рд╡рд╣рд╛рдБ рд░реБрдХреЗрдВрдЧреЗ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ:

 <body> <header></header> </body>
      
      





рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреИрд╕реЗ рдЗрдВрдбреЗрдВрдЯ рдХреА рдЬрд╛рддреА рд╣реИред



рдЖрдк рдХрд┐рд╕реА рдЯреИрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:



 h1 My Jade Application
      
      





... рдмрди рдЬрд╛рддрд╛ рд╣реИ

 <h1>My Jade Application</h1>
      
      





рдпрджрд┐ рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрдбрд╝реЗ рдмреНрд▓реЙрдХ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рдЗрдк рд╡рд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ |

 p | Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. | Aenean eu leo quam. | Pellentesque ornare sem lacinia quam venenatis vestibulum.
      
      





рдпрд╣ рд╕рдВрдХрд▓рди:

 <p>Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</p>
      
      





рдЖрдк HTML рддрддреНрд╡реЛрдВ рдореЗрдВ рдЖрдИрдбреА рдФрд░ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП CSS рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 div#content div.inner
      
      





... рд╣реЛрддрд╛ рд╣реИ:

  <div id="content"> <div class="inner">
      
      





рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреИрд╕реЗ src, href, lang, media, рдЖрджрд┐ред рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 html(lang="en-us") === <html lang="en-us"> link(rel="stylesheet", media="screen", href="/css/styles.css") === <link rel="stylesheet" media="screen" href="/css/styles.css" />
      
      





рд╕рдорд╛рди рдЪрд┐рд╣реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рдЬреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИ:

 = $pageTitle
      
      





рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ:

 <?php echo $pageTitle ?>
      
      







рдХреБрдЫ рддрд░реНрдХ рдЬреЛрдбрд╝реЗрдВ



рдЖрдк рд╕рд╢рд░реНрдд рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдбреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 header h1= $pageTitle - if ($loggedIn): p.greeting Welcome back! - else: a(href="/login") Please login - endif;
      
      





рдпрджрд┐ рдЖрдк рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рд╣реИ:

 <header> <h1><?php echo $pageTitle ?></h1> <?php if ($loggedIn) ?> <p class="greeting">Welcome back!</p> <?php else ?> <a href="/login">Please login</a> <?php endif ?> </header>
      
      





рдЫреЛрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИ:

 ul - foreach ($items as $item): li= $item
      
      







рдлрд┐рд▓реНрдЯрд░



JadePHP рдореЗрдВ рдХрдИ рддрд░рд╣ рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдмреНрд▓реЙрдХ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 :php | $value = 10; | $computed_value += 100; | print $computed_value;
      
      





... рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 <?php $value = 10; $computed_value += 100; print $computed_value; ?>
      
      





рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдлрд╝рд┐рд▓реНрдЯрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рд╣реЛрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 :style | body { | background: yellow; | }
      
      





... рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 <style type="text/css"> body { background: yellow; }
      
      





рдпреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдЗрди рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдХреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ):

 $dumper->registerFilter('javascript', new JavaScriptFilter()); $dumper->registerFilter('php', new PHPFilter()); $dumper->registerFilter('style', new CSSFilter());
      
      





рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╡рд╣ рдкрд╛рда рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреНрд░рдорд╢рдГ :javascript



:php



рдФрд░ :style



рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдпрджрд┐ рдЖрдк Everzet\Jade\Filter\FilterInterface



рд╕рдХреНрд╖рдо Everzet\Jade\Filter\FilterInterface



, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЬреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?



рдХреМрди рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдЕрдВрддрддрдГ рдмрд╣реБрдд рдмреЗрдХрд╛рд░ рд╣реИред рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИрдВ, рдФрд░ рдЬреЛ рдХреБрдЫ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╛ рд╕рд░реНрд╡рд░ рдкрд░ред рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рд╡рд┐рдХрд▓реНрдк рдЕрдХреНрд╕рд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдХреНрдпрд╛ рд╣реИред рдореЗрд░рд╛ рдЖрдЧ рдореЗрдВ рдИрдВрдзрди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХреЛрдИ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд╛рджреЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реВрдВред



рдЬреЗрдб рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рдзрд┐ рд╕рднреА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рд▓реЛрдЧ рддрд░реНрдХ рджреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕рд╕реЗ рдЕрд╕рд╣рдордд рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдпреЛрдЧреНрдп рд╡рд┐рдзрд┐ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реИред



рдПрдХ рдФрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдЬреЗрдб (рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрдХреНрд╕рд░, Node.js рдФрд░ PHP рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдерд┐рд░рддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реНрдХ рд╣реИред рдХреНрдпреЛрдВ рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ?



рд╕рд╛рд░рд╛рдВрд╢



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЬреЗрдб рдЬреЗрдбрдкреАрдкреАрдкреА рдХреЛ рджреЗрдЦрд╛, рдЬреЛ рдПрдХ рдкреЛрд░реНрдЯреЗрдб рдЬреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдерд╛ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЙрдиреНрдореБрдЦ рдерд╛ред рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджрд┐рдП рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЖрдЬрдорд╛рдПрдВрдЧреЗ, рдпрд╛ рдпрд╣ рдЖрдкрдХреЛ рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдЪреЛрдбрд╝рд╛ рд╣реБрдЖ рд▓рдЧрддрд╛ рд╣реИ? рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЖрдк рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рд▓рд┐рдЦреЗрдВред



All Articles