Xslt рд╢реИрд▓реА HTML рдлрд╝рд╛рдЗрд▓ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо

рд╕рдорд╕реНрдпрд╛



рдПрдХ рдмрд╛рд░, рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рджреМрд░рд╛рди, рд╣рдорд╛рд░реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП HTML рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЕрдиреБрдХреВрд▓рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:



{{if app.version==versions.main}} <!-- html --> {{else if app.version==versions.custom1}} <!-- html --> {{else if app.version==versions.custom2}} <!--  html --> {{endif}}
      
      





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



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



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



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



рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ HTML рдлрд╝рд╛рдЗрд▓ "myfile.html" рдореЗрдВ рдирд┐рдореНрди рд▓реЗрдЖрдЙрдЯ рд╣реИ:

 <div> Blah blah blah <div>Main version</div> </div>
      
      







рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдореЗрдВ рдПрдХ рдкрд╛рда "рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг" рдХреЗ рдмрдЬрд╛рдп "myversion" рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдПрдХ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: "рдореЗрд░рд╛ рд╕рдВрд╕реНрдХрд░рдг"ред HTML- рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 2 рд╕рд░рд▓ рдЪрд░рдг рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:



1. рдЯреИрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреИрдЧ рдореЗрдВ "bl-" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ:


 <div> Blah blah blah <div bl-mytag>Main version</div> </div>
      
      







2. рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ "myfile.myversion.html" рдмрдирд╛рдПрдБ:


  <div bl-mytag="replace">Custom version</div>
      
      







рдпрд╣ рдмрд╛рдд рд╣реИ! рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди, рд╕рднреА HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдмрдбрд╝реЗ рдХрд░реАрдиреЗ рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:



 рдЬрд┐рд▓реЗ
   |
   рдореБрдЦреНрдп /
      рдХреЗ рдЕрдВрддрд░реНрдЧрдд myfile.html
   myversion /
      рдХреЗ рдЕрдВрддрд░реНрдЧрдд myfile.html


рдЕрдм рдпрд╣ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ html рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд╣рд╛рдБ рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рдХрд╛рдо рдХрд░реЗрдЧрд╛!



рд╕реНрдерд╛рдкрдирд╛



рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ grunt-html-inheritance рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде npm рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

 npm install grunt-html-inheritance --save-dev
      
      





рдпрд╛ package.json рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВ, рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХреЛ Gruntfile.js рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ

 grunt.loadNpmTasks('grunt-html-inheritance');
      
      





рдФрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдп рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

 grunt.initConfig({ html_inheritance: { main: { files: { src: "**.html" //   }, options: { modules: ["version1", "version2"], //  dstDir: "../dist", //,       }, }, }, });
      
      





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



рд▓рд╛рдн



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



рдХреЗ рдЙрдкрдпреЛрдЧ



рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреИрдЪ рдореЗрдВ рдЖрдзрд╛рд░ рдЯреИрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЛрдб рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

  1. рд╣рдЯрд╛рдПрдВ - рдкреИрдЪ рдореЗрдВ рдореВрд▓ рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ
  2. рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ - рддрддреНрд╡ рдХреЗ рдкреИрдЪ рдореЗрдВ рдбрд╛рд▓реЗрдВ , рдЬрдмрдХрд┐ рддрддреНрд╡ рдХрд╛ рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛
  3. рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдВрд╢реЛрдзрди - рдЕрднрд┐рднрд╛рд╡рдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛, рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛ред


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



All Articles