рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ:
var compiledTemplate = handlebars.templates['hello'];
рдореБрдЭреЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рд╕рдВрдкрддреНрддрд┐ 'рд╣реИрд▓реЛ' рдирд╣реАрдВ рдкрдврд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдЬрдмрдХрд┐ рд╕рдВрдХрд▓рди рдиреАрдЪреЗ рдХреА рддрд░рд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
var uncompiledTemplate = handlebars.compile(template);
рддреЛ рдЗрди рд╕рдВрдХрд▓рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛/рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝реЗ рдЬрд╛ рд╕рдХреЗрдВ?
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА, рд╣реИрдВрдбрд▓рдмрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг (2.0 рдмреАрдЯрд╛) рд╣реИ рдФрд░ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг рдЫрд╣ рд╣реИред
рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЬреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЬрд╝рд░реВрд░, рд╣рдо рдпрд╣рд╛рдБ рдЬрд╛рддреЗ рд╣реИрдВред
var template = fs.readFileSync(тАЬ./hello.html", "utf8");
var data = {message : "Hello world!"};
var compileTemplate = handlebars.compile(template);
var finalPageHTML = compileTemplate(data);
// Simply trying to replace the last two lines above with the two below but get error
/* var preCompiledTemplate = handlebars.templates['hello'];
var finalPageHTML = preCompiledTemplate(data);
*/
* hello.html *
<html>
<head>
<title>Example</title>
</head>
<body>
<p>Oh look, it's a message: {{message}}</p>
</body>
</html>
рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ hello.handlebars рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ hello.js рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛, рдЗрд╕реЗ рдореЗрд░реА "js" рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдиреАрдЪреЗ "рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕" рдирд╛рдордХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрд╛ред
рддреЛ рдмрд╕ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП "рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб" рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдкреНрд░реАрдХрдВрдкреАрд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдкрдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд╢рдВрд╕рд┐рдд рдорд╛рд░реНрдЧ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
var template = require('./hello.handlebars');
рдореБрдЭреЗ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ "рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ"ред рдкреНрд░реАрдХрдВрдкреАрд▓реНрдб рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВред рд╕рд╣реА ?
рд╣реИрдВрдбрд▓рдмрд╛рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдХ .js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЕрдВрддрд┐рдо рдкреГрд╖реНрда рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП db рдбреЗрдЯрд╛ рдпрд╛ рд╕рдВрджрд░реНрдн рд╕реЗ рднрд░ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рд╣реА ?
рддреЛ рдореИрдВ рдмрд╕ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП "рдЯреЗрдХреНрд╕реНрдЯ/рдПрдЪрдЯреАрдПрдордПрд▓" рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдВрддрд┐рдо рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рд░рди рдЯрд╛рдЗрдо рдкрд░ рдЕрдкрдиреЗ рдбреАрдмреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдЦрд┐рд▓рд╛рддреЗ рд╣реБрдП рдкреЗрдЬ рдСрдл рдХреЛрд░реНрд╕ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдмрд╕ рд╣реИрд▓реЛ, рд╣реИрдВрдбрд▓рдмрд╛рд░ рд╕реЗ рдмрдирд╛рдП рдЧрдП hello.js рд╕реЗ 'рд╣реИрд▓реЛ' рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХреИрд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ? рдпрд╛ рдореЗрд░реЗ рд╕рднреА рд╕рдВрдХрд▓рд┐рдд рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд╛рд▓реА рд╕рдордЧреНрд░ templates.js рдлрд╝рд╛рдЗрд▓ рд╕реЗ "hello2" рдирд╛рдордХ рдХреЛрдИ рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╣реЗрдВред рд╡реИрд╕реЗ рдореИрдВрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЕрдЧрд░ рдореИрдВ рдмреВрдврд╝рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реВрдВред
рдкреНрд░реАрдХрдВрдкреАрд▓реНрдб рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрд╡-рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВред рд╡реЗ рдиреЛрдб рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдХрд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
readFileSync рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╡рд╣рд╛рдВ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИрдВред
@RozzyNoder рд╣рд╛рдп рдореИрдВ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛? рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд┐рдП рдЧрдП рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЬреЗрд╕рди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЬреЗрд╕рди рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдЪрдмреАрдПрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред
рдореИрдВрдиреЗ рдПрдХ рдореГрдд рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдПрдХ рд╣реИрдВрдбрд▓рдмрд╛рд░ рд╕рд╛рдЗрдЯ рд╕реЗ рд╣реА
var templateSpec = Handlebars.precompile('{{foo}}');
var template = Handlebars.template(templateSpec);
template({});
рдФрд░ рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬреИрд╕реЗ:
рдирдпрд╛ _Exception2 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ' рдлреЗрдВрдХреЗрдВ
рд╕рдВрдпреЛрдЧ рд╕реЗ, рдпрд╣ рдЧрд▓реНрдк 3.9.0 рдФрд░ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ 3.0.3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдХрд┐рд╕реА рднреА рдФрд░ рд╕рднреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрдж рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ (рдЬреИрд╕реЗ рдХрд▓ рдореЗрдВ)
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред
@kpdecker рдореИрдВ рд╣реВрдВ ред рдореИрдВ рдПрдХ рд▓реВрдк рдореЗрдВ рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░реАрдХрдВрдкрд▓рд┐рдВрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреЗрдЬ рд╣реЛ рдЬрд╛рдПрдЧреАред рдЖрдкрдХреА рдХреНрдпрд╛ рд╕рд▓рд╛рд╣ рд╣реИ? рдореБрдЭреЗ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореБрдЭреЗ рдХрд╣реАрдВ рдПрдХ рдкреЛрд╕реНрдЯ рдорд┐рд▓реА рд╣реИ (рдХрд╣рд╛рдВ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ) рдХрд╣ рд░рд╣реА рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЗрдирдкреБрдЯ) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХреНрд╕рдПрд╕рдПрд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдкреНрд░реАрдХрдВрдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
@xpepermint рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд▓реВрдк рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
var template = Handlebars.compile("{{title}}\n{{text}}");
largeArray.map(function(element) {
return template(element);
});
рдмрд╕ рд▓реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдХреЙрд▓ рдХрд░реЗрдВред
@nknapp thx
рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдерд╛?
@sido420
рдореИрдВ рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдореИрдВ HTML рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдФрд░ рдкреИрдХреЗрдЬ рдЖрдХрд╛рд░ ( handlebars/runtime
рдЫреЛрдЯрд╛ рд╣реИ) рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдкреНрд░реАрдХрдВрдкреАрд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ ( mjml -> html -> handlebars precompiled
) рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред
рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:
javascript
const Handlebars = require('handlebars')
const precompiledContent = Handlebars.precompile('<b>{{ message }}</b>')
fs.writeFileSync('xyz/template.js', `module.exports = ${precompiledContent}`, 'utf8')
рдлрд┐рд░ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
const Handlebars = require('handlebars/runtime')
const message = 'Hi'
const template = require('./template.js')
const content = Handlebars.template(template)({ message })
@RozzyNoder @ekskimn рдореИрдВ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд▓реЗрдХрд┐рди рдереЛрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рдеред рдЖрдкрдХреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ hello.js
рд╕рдВрджрд░реНрдн рдХреЗ рдмрдЬрд╛рдп,
var preCompiledTemplate = handlebars.templates['hello'];
var finalPageHTML = preCompiledTemplate(data);
рд╡рд╛рд╕реНрддрд╡рд┐рдХ hbs рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ .js рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд
var preCompiledTemplate = handlebars.templates['hello.hbs']
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@sido420
рдореИрдВ рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдореИрдВ HTML рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдФрд░ рдкреИрдХреЗрдЬ рдЖрдХрд╛рд░ (
handlebars/runtime
рдЫреЛрдЯрд╛ рд╣реИ) рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛редрдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдкреНрд░реАрдХрдВрдкреАрд▓реНрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ (
mjml -> html -> handlebars precompiled
) рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИредрдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:
javascript const Handlebars = require('handlebars') const precompiledContent = Handlebars.precompile('<b>{{ message }}</b>') fs.writeFileSync('xyz/template.js', `module.exports = ${precompiledContent}`, 'utf8')
рдлрд┐рд░ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
const Handlebars = require('handlebars/runtime') const message = 'Hi' const template = require('./template.js') const content = Handlebars.template(template)({ message })