Handlebars.js: рдлреАрдЪрд░ рд╕реБрдЭрд╛рд╡ | рд╕рд┐рдВрдХреНрд░реЛрдирд╕/рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реЗрд▓реНрдкрд░реНрд╕

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЬрдире░ 2014  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: handlebars-lang/handlebars.js

рдПрдХ рд╕рд╣рд╛рдпрдХ рдХреЛ рд╕рд┐рдВрдХ рдпрд╛ рдПрд╕рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛, рдпрд╣ рдХреЙрд▓рдмреИрдХ рд╕реБрдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЙрд▓рдмреИрдХ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдПрдЪрдмреАрдПрд╕ рдПрдХ рдХреЛрд╢рд┐рд╢ рджреЗрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ - рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2018 рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдПрдХ рдЕрдЬреАрдм рдмрд╛рдд рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╢реБрджреНрдз рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдХрд┐ рдПрд╕рд┐рдВрдХ рд╕рд╛рдорд╛рди рджреГрд╢реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд┐рдпрдВрддреНрд░рдХ рдирд╛рдордХ рдХреБрдЫ рдЬрд╛рджреБрдИ рдЪреАрдЬ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ рдХрд┐ рдПрдорд╡реАрд╕реА рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ "рд╕рд╣реА" рд╣реИ) - рд▓реЗрдХрд┐рди рдпрд╣ рджреЛ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЫреЛрдЯрд╛ рд╣реИ рдХрд╛рд░рдгреЛрдВ

рдП) рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп - рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ 10 рдореЗрдВ рд╕реЗ 9 рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдПрд╕рд┐рдВрдХ рд╣реИрдВ ... рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ "рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ"ред async рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рднреА async рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдЪрд╛рдирдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреБрд░реНрдЧрдо рд╣реИрдВ

рдмреА) рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрдпред рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдРрд╕рд╛ рдХреБрдЫ:

    {{#query "select name, total from summary"}}
          <tr><td>{{this.name}}</td><td>{{this.total}}</td></tr>
    {{/query}}

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

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

рдореИрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рд╣рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ aysnc рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, RegisterHelper & RegisterHelperAsync, рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рднреАред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,

Handlebars.registerHelper('getDbValue', function(id) {
     var Model = require('./myModel.js');
     Model.getValue(id, function(data){
           return data;
     });
});

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

Handlebars.registerHelperAsync('getDbValue', function(id, callback) {
     var Model = require('./myModel.js');
     Model.getValue(id, function(data){
           callback(data);
           //or
           //callback(new Handlebars.SafeString(data)); //in case of safestring.
     });
});

рдореИрдВ рдКрдкрд░ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рд░реВрдЪрд┐ рд░рдЦрддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж

@robincsamuel , рджреГрд╢реНрдп рдкреАрдврд╝реА рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реБрдХрдЕрдк рд╕рд╣рд┐рдд, рдПрдорд╡реАрд╕реА рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдЦрд┐рдбрд╝рдХреА рдкрд░ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рддрд░реНрдХ рджреЗ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬрдм рддрдХ рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддрдм рддрдХ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд @kpdecker рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрд╕рд┐рдВрдХ рд╣реЗрд▓реНрдкрд░реНрд╕ рд╕рд┐рд░реНрдл рдЧрд▓рдд рд▓рдЧрддреЗ рд╣реИрдВред -- рдореЗрд░реА 2рд╕реА

рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдФрд░ рдореИрдВ рдмрд╣рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ, рдЕрдЧрд░ рд╣рдо рд╣реЗрд▓реНрдкрд░ рд╕реЗ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреАред рд╡реИрд╕реЗ рднреА, рдЖрдкрдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :) @kpdecker @jwilm

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд░реБрдЦ рдпрд╣ рд╣реИ рдХрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдЕрдВрджрд░ рдпрд╛ рдмрд╛рд╣рд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рдмрд╛рд╣рд░, рдПрд╕рд┐рдВрдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреИрд╕реЗ рдХрд┐ рдПрд╕рд┐рдВрдХреНрд╕ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реИрдВред

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

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

@tomasdev рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ :)

рдпрджрд┐ рдЖрдк https://github.com/barc/express-hbs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдиреЛрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдИ рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдПрд╕рд┐рдВрдХ рд╕рдВрд╕реНрдХрд░рдг рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЦреЗрд▓рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЛрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рднреВрдд рдПрд╕рд┐рдВрдХ рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╡реИрдз (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рдЕрд╕рд╛рдорд╛рдиреНрдп) рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рджреГрд╢реНрдп рдкрд░рдд рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИред

рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдкрд░, рдШреЛрд╕реНрдЯ рдХреЗ рд╕рднреА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдереАрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдереАрдо рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕, рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЗрдПрд╕ рдХреА рдПрдХ рдмрд╣реБрдд рдкрддрд▓реА рдкрд░рдд рд╣реИ, рдЗрд╕рдХреА рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рддрд░реНрдХ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

{{#fetch tags}}
.. do something with the list of tags..
{{else}}
No tags available
{{/fetch}}

рдШреЛрд╕реНрдЯ рдореЗрдВ рдПрдХ JSON API рд╣реИ рдЬреЛ рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реА рджреЛрдиреЛрдВ рддрд░рд╣ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред рддреЛ рдпрд╣ рдлрд╝реЗрдЪ рдХреНрд╡реЗрд░реА рд╣рдорд╛рд░реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдореИрдк рдХрд░реЗрдЧреАред рдЗрд╕реЗ рд╕рднреА рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ AJAX/http рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдПрд╕рд┐рдВрдХ рд╣реЗрд▓реНрдкрд░ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдкреАрдЖрдИ рд╕реЗ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рддрд░реНрдХ рдирд╣реАрдВ рджреЗрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд╛рдирдХ рдПрдорд╡реАрд╕реА рдореЙрдбрд▓ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдиреНрдп рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред

@ErisDS рдЕрдЪреНрдЫреА рдЦрдмрд░! рдФрд░ рдореИрдВ рднреА рдпрд╣ рддрд░реНрдХ рдирд╣реАрдВ рджреЗрддрд╛ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рдЬрд┐рди рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП async рд╣реЗрд▓реНрдкрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡реЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд╛рджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рд╣реИрдВред

рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП ...

рдШреЛрд╕реНрдЯ рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреИрд╕реА рд╡реИрд╢реНрд╡рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЯрдХрд░рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреВрд░реНрд╡-рдЖрдмрд╛рджреА-рдЗрди-рдореЗрдореЛрд░реА рдХреИрд╢ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЪрд░ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рд╡рд╛рджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдпрджрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдирд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдХрд╛рдлреА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддреЗ рдереЗред ES6 рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде, рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛: https://github.com/wycats/handlebars.js/issues/141 рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдмрдирд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЙрдкрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред

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

рдПрд╕реАрдПрд▓ рд╕рдВрдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╛рдпрдХ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдпрд╣ рдореЗрд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рдлрд┐рдЯ рд╣реЛрдЧрд╛:

        {{#allowedTo 'edit' '/config'}}
            <li>
                <a href="/config">Config</a>
            </li>
        {{/allowedTo}}

рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ isAllowed рд╡рд┐рдзрд┐ рдиреЛрдб-рдПрд╕реАрдПрд▓ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдмреИрдХрдПрдВрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)ред

рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ ( рдЕрдиреБрдордд рдЕрдиреБрдорддрд┐рдпрд╛рдВ), рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реА рдЦреБрдЬрд▓реА рд╣реИ

@kpdecker рдЗрди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдкрд░ рдХреЛрдИ рдФрд░ рд╡рд┐рдЪрд╛рд░?

@ErisDS рдореИрдВ рдпрд╣рд╛рдВ рдЗрдЪреНрдЫрд╛ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЧрдВрднреАрд░ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрднреА рднреА рдЗрд╕реЗ рдХреЙрд▓рдмреИрдХ рдпрд╛ рд╡рд╛рджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рднрд╛рд╖рд╛ рдореЗрдВ рдмрдирд╛ рджреЗрдЧрд╛ред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдПрдкреАрдЖрдИ рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ рд╕рдлрд╛рдИ рд╕реЗ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИ рдФрд░ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореЗрд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЙрдбрд▓/рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдЪрдХреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПред

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

рдмрд╕ рдореЗрд░реЗ "рджреЛ" (рдареАрдХ рд╣реИ, рдпреБрдЧрд▓) рд╕реЗрдВрдЯ рдЬрд┐рди рдкрд░ рдЖрдк рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ:

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

рдореИрдВ рдПрдХ рдмреЗрд╣рддрд░ рдЙрджрд╛рд╣рд░рдг рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рд╣рдо рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд░реНрдбреЛрд╡рд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреЙрд░реНрдбреЛрд╡рд╛ рддрд┐рдерд┐рдпреЛрдВ, рд╕рдВрдЦреНрдпрд╛рдУрдВ, рдореБрджреНрд░рд╛рдУрдВ рдЖрджрд┐ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрди рд╕рднреА рдХреЛ рдПрд╕рд┐рдВрдХ рдХреЙрд▓рдмреИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг:

Handlebars.registerHelper('stringToNumber', function(string, type)
{
    type = type || 'decimal';
    navigator.globalization.stringToNumber(string, function(number)
    {
        return number;
    }, function()
    {
        return NaN;
    }, {
        type: type
    });
});

рдпрд╣ рдЖрдИрдПрдордУ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ npm рдкрд░ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕-рдПрд╕рд┐рдВрдХ рдкреИрдХреЗрдЬ рдорд┐рд▓рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╣реИрдВрдбрд▓рдмрд╛рд░-рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

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

@nknapp рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ! рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдПрдЪрдмреАрдПрд╕ рдореЗрдВ рдПрд╕рд┐рдВрдХ рд╕рдорд░реНрдерди рд╣реИ, рдФрд░ рдПрд╕рд┐рдВрдХ рдмреНрд▓реЙрдХ рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрд╕рд┐рдВрдХ рд╣реЗрд▓реНрдкрд░реНрд╕ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдПрдЪрдмреАрдПрд╕ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдЖрд╢рд╛ рд╣реИ: +1:

@ErisDS , рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдЕрдм рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ express-hbs async рд╣реЗрд▓реНрдкрд░ рдХреЛ рдиреЗрд╕реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдореЗрд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рдзреНрдпрд╛рди express рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд░реАрдбрдореЗ-рдЬрдирд░реЗрдЯрд░ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ ( рд╡рд╛рджрд╛-рд╣реИрдВрдбрд▓рдмрд╛рд░ ) рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдВред

рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрд╡рд╛рдж рдбреАрдмреА рд╕реЗ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

<div class="howItWorks">
    {{{i18nFetch id=how-it-works locale=locale}}}
</div>

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреАрдмреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рд╕реАрдПрдордПрд╕ рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛:

<div class="searchCms">
    {{{cmsLoader 'search-{$term}' term=params.input defaultId='search-default'}}}
</div>

рдпрд╣ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ (рдпрд╛рдиреА рдПрдХреНрд╕рдкреНрд░реЗрд╕-рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ: рдореИрдВ рд╕реНрд╡реИрдЧрд░ ( рд╕рд░рд▓-рд╕реНрд╡реИрдЧрд░ ) рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЬрдирд░реЗрдЯрд░ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдмрд╛рд╣рд░реА рд╕реНрдХреАрдорд╛ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдПрдХ рд╣реИрдВрдбрд▓рдмрд╛рд░ рд╕рд╣рд╛рдпрдХ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдпрд╣ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреАрдорд╛ рдХреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдпреВрдЖрд░рдПрд▓ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╣ рд╕реНрдХреАрдорд╛ рд░рд╣рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣реИрдВрдбрд▓рдмрд╛рд░реНрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдореБрдЭреЗ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреА рд╕рдВрдХрд▓рди рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рддреЛ рдореБрдЭреЗ рдПрдХ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рд╕реНрдХреАрдорд╛ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдЦреЛрдЬреЗрдВ, рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ рдЬреЗрдПрд╕рдУрдПрдиред

рдореВрд▓ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рднреА рд╕рдордп JSON рд╕реНрдХреАрдорд╛ рдбреЗрдЯрд╛ ( json-schema.org ) рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ async рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ JSON рд╕реНрдХреАрдорд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдХреАрдорд╛ рдХреЗ рдЙрдк-рднрд╛рдЧреЛрдВ рдХреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

@dwhieb рдХреНрдпрд╛ рдЖрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЬрдирд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдмреВрдЯрдкреНрд░рд┐рдВрдЯ-рд╕реНрд╡реИрдЧрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА рд╣реИ? рдпрд╣ рд▓рдЧрднрдЧ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдк рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ (рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдмрд╛рд╣рд░реА рд╕реНрдХреАрдорд╛ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА)ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╡рд╣рд╛рдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реЗрдВред

рдФрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рджрд╛-рд╣реИрдВрдбрд▓рдмрд╛рд░ рдПрд╕рд┐рдВрдХ рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

{{#imageSize post.frontMatter.previewImage}}
  <div itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
    <meta itemprop="url" content="{{#staticResource ../post.frontMatter.previewImage}}{{/staticResource}}">
    <meta itemprop="width" content="{{width}}">
    <meta itemprop="height" content="{{height}}">
  </div>
{{/imageSize}}

imageSize рд╕рд╣рд╛рдпрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ I/O рджреНрд╡рд╛рд░рд╛ рдзреАрдорд╛ рди рд╣реЛред рд╕рд╛рде рд╣реА, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА URL рдкрд░ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдореИрдВ рд╡рд╛рджрд╛ рдХрд┐рдП рдЧрдП рд╣реИрдВрдбрд▓рдмрд╛рд░ рдФрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдПрдЪрдмреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧреА!

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореИрдВ рд╣рд╛рдЗрдкрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ, hyperscript-helpers , ES7 рдХреЗ async/await рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ HTML рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдирдВрдж рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╡рд╣ рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ HTML рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдПрд╕рд┐рдВрдХ рд╕рдорд╛рдзрд╛рди рд╣рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рджреЗрдЧрд╛... рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрднреА рдкреАрдЫреЗ рдореБрдбрд╝рдХрд░ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ!

рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдПрдЪрдмреАрдПрд╕ рдПрдХ рдХреЛрд╢рд┐рд╢ рджреЗрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ - рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2018 рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдПрдХ рдЕрдЬреАрдм рдмрд╛рдд рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╢реБрджреНрдз рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдХрд┐ рдПрд╕рд┐рдВрдХ рд╕рд╛рдорд╛рди рджреГрд╢реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд┐рдпрдВрддреНрд░рдХ рдирд╛рдордХ рдХреБрдЫ рдЬрд╛рджреБрдИ рдЪреАрдЬ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ рдХрд┐ рдПрдорд╡реАрд╕реА рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ "рд╕рд╣реА" рд╣реИ) - рд▓реЗрдХрд┐рди рдпрд╣ рджреЛ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЫреЛрдЯрд╛ рд╣реИ рдХрд╛рд░рдгреЛрдВ

рдП) рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп - рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрд╕рд┐рдВрдХ/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ 10 рдореЗрдВ рд╕реЗ 9 рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдПрд╕рд┐рдВрдХ рд╣реИрдВ ... рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ "рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ"ред async рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рднреА async рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдЪрд╛рдирдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреБрд░реНрдЧрдо рд╣реИрдВ

рдмреА) рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрдпред рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдРрд╕рд╛ рдХреБрдЫ:

    {{#query "select name, total from summary"}}
          <tr><td>{{this.name}}</td><td>{{this.total}}</td></tr>
    {{/query}}

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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rizen picture rizen  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ustun picture ustun  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ShintaroOkuda picture ShintaroOkuda  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

snimavat picture snimavat  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

morgondag picture morgondag  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ