
ããŒãžã§ã³0.9.0ããã
WebMarkupMinã¯
KnockoutJS ïŒä»¥äžãåã«KnockoutïŒãš
AngularJS ïŒä»¥äžãåã«AngularïŒã®ãã¥ãŒã®æå°åããµããŒãããŸãã ããªãã®å€ãã¯ãã
å£ã²ãã
äžç·ã§ã¯ãªãããªãããã¯ã¢ãŠããšè§åºŠãªã®ãïŒããšå°ãããããããŸããã ãã®éžæã¯ã次ã®çç±ã§è¡ãããŸããã
- DOMããŒã¹ã®ãã³ãã¬ãŒãã KnockoutãšAngularã«çµã¿èŸŒãŸããŠãããã³ãã¬ãŒããšã³ãžã³ã¯ãMustacheãUnderscoreãªã©ã®æååããŒã¹ã®ãã³ãã¬ãŒãã§ã¯ãªããDOMããŒã¹ã®ãã³ãã¬ãŒãã«åºã¥ããŠããŸãã ãã®ãããªãã³ãã¬ãŒãã®ã³ãŒãã«ã¯ãèŠçŽ ïŒã¿ã°ïŒããã³å±æ§å€ã®ããã¹ãã³ã³ãã³ãã®å€åŽã«ããã°ã©ã æ¿å
¥ïŒããšãã°
{{âŠ}}
ãŸãã¯<%âŠ%>
ïŒãå«ãŸããŠããªããããéåžžã®HTMLãšããŠæå°åã§ããŸãã - .NETéçºè
ã®éã§ã®äººæ°ã Knockoutã¯ãå
ã
.NETéçºè
ãMVVMã¢ããªã±ãŒã·ã§ã³éçºã®çµéšãWPFããã³Silverlightããéåžžã®Webã«ç§»è¡ã§ããããã«ããããã«äœæãããŸããã Angularã«é¢ããŠã¯ããŸã£ããå°å
¥ããå¿
èŠã¯ãªããWebéçºè
ã®éã§ã®äººæ°ã¯å
šäœãšããŠèãããããã¹ãŠã®èšé²ãç ŽããŸãã .NETéçºè
ã®éã§ã®ãããã®ã©ã€ãã©ãªã®äººæ°ã«å ããŠãMicrosoftãšãã³ãžã§ãªã¹ãã®ãžã§ã³ã»ããã«ããèšå€§ãªæ°ã®èšäºãå¯çš¿ããŸããã
- éåžžã«å¹ççãªãã€ã³ãã£ã³ã°åŒå§çž®ã Knockoutããã³Angularã®ãã€ã³ãã£ã³ã°åŒã¯ãå®éã«ã¯åçŽãªJavaScriptã³ãŒããŸãã¯JSãããã€ã¶ãŒã§å§çž®å¯èœãªJSON圢åŒã®ãªããžã§ã¯ãã§ãã
æ°ããæ§æããããã£
ããã©ã«ãã§ã¯ããã¥ãŒã®æå°åã¯ç¡å¹ã«ãªã£ãŠããŸããæå¹ã«ããã«ã¯ã
HtmlMinificationSettings
ã¯ã©ã¹ã®æ¬¡ã®ããããã£ã®å€ã倿Žããå¿
èŠããããŸãã
ç©ä»¶ | ããŒã¿å | ããã©ã«ãå€ | 説æ |
---|
ProcessableScriptTypeList | ã²ã | ç©ºè¡ | script ã¿ã°ã¿ã€ãã®ã³ã³ãåºåããªã¹ãïŒããšãã°ã text/html,text/ng-template ïŒãå«ãŸãããã®ã³ã³ãã³ãã¯HTMLãããã€ã¶ãŒã«ãã£ãŠåŠçãããå¿
èŠããããŸãã |
MinifyKnockoutBindingExpressions | ããŒã«å€ | false | data-bind 屿§ããã³ã³ã³ããã¬ã¹ã³ã¡ã³ãå
ã®ããã¯ã¢ãŠããã€ã³ãã£ã³ã°åŒãæå°åãããã©ã°ã |
MinifyAngularBindingExpressions | ããŒã«å€ | false | Moustacheã®ãããªã¿ã°ïŒ {{ }} ïŒããã³ãã£ã¬ã¯ãã£ãã®è§åºŠãã€ã³ãã£ã³ã°åŒãæå°åãããã©ã°ã |
CustomAngularDirectiveList | ã²ã | ç©ºè¡ | ãã€ã³ãã£ã³ã°åŒãå«ãã«ã¹ã¿ã Angularãã£ã¬ã¯ãã£ãã®ã³ã³ãåºåãã®ãªã¹ãïŒäŸïŒ myDir,btfCarousel ïŒãå«ãŸããŸãã MinifyAngularBindingExpressions ããããã£ã®å€ãtrue ããŠãŒã¶ãŒãã£ã¬ã¯ãã£ãã®åŒã¯æå°åãããŸãã |
åããããã£ãããè©³çŽ°ã«æ€èšããŠãã ããã
ProcessableScriptTypeList
ããŒãžã§ã³0.9.0ããåã§ã¯ãJavaScriptã³ãŒããå«ãŸãªã
script
ã¿ã°ã¯ãHTMLãããã€ã¶ãŒã«ãã£ãŠåã«ç¡èŠãããŠããŸããã ããã¯ããããã®ã¿ã°ã«VBScriptã³ãŒãããHandlebarsãã³ãã¬ãŒããŸã§ãå«ããããšãã§ããããã§ãã ãã ããåæã«ã
script
ã¿ã°ã«DOMãã³ãã¬ãŒãã®ã³ãŒããå«ãŸããŠããå Žåã¯ãHTMLãããã€ã¶ãŒãééãã䟡å€ããããŸãã ãããã£ãŠããŠãŒã¶ãŒã«ã¯ãåãå
¥ãå¯èœãªã³ã³ãã³ãã¿ã€ãã®ãªã¹ããèªåã§æ±ºå®ããæ©äŒãäžããããŸããã
èšäºã®ãããã¯ã«æ»ã£ãŠãããã€ãäŸãæããŸãã
- Knockoutãã¥ãŒãæå°åããå Žåã¯ã
ProcessableScriptTypeList
ããããã£ãtext/html
ã«èšå®ããå¿
èŠããããŸãã - è§åºŠãã¥ãŒãæ±ã£ãŠããå Žåã¯ã
text/ng-template
ã - ãããžã§ã¯ãã§2ã€ã®ã©ã€ãã©ãªãäžåºŠã«äœ¿çšããå Žåãã³ã³ãã§åºåãããã³ã³ãã³ãã¿ã€ãããªã¹ãããå¿
èŠããããŸãïŒ
text/html,text/ng-template
ã
ãŸããKnockoutãšAngularã ãã«éå®ãããªãããšãçè§£ããå¿
èŠããããŸããçè«çã«ã¯ãDOMããŒã¹ã®ãã³ãã¬ãŒããæå°éã«æããããšãã§ããŸãïŒããšãã°ãKnockoutãšããŸãå€ãããªã
Kendo MVVMãã¥ãŒã®ã³ã³ãã³ãã¿ã€ã
text/x-kendo-tmpl
ãæå®ã§ããŸãïŒ ïŒ
MinifyKnockoutBindingExpressions
éåžžãWebMarkupMinã«ã€ããŠè©±ããšãã¯ã
shell.html
ãã¢ãããžã§ã¯ãã®
shell.html
ãã¡ã€ã«
shell.html
ã
äŸãšããŠäœ¿çšã
ãŸã ã
<div> <header> </header> <section id="content" class="main container-fluid"> </section> <footer> </footer> </div>
æå°ååŸããã®ã³ãŒãã¯æ¬¡ã®åœ¢åŒãåããŸãã
<div><header></header><section id="content" class="main container-fluid"> </section><footer></footer></div>
ã³ã³ãããªãã®ã³ã¡ã³ãïŒãããã
ã³ã³ãããªãã®å¶åŸ¡ãããŒæ§æ ïŒã®ãã€ã³ãã£ã³ã°åŒïŒä»¥äžãåã«åŒïŒã«å«ãŸããç©ºçœæåãå€ããããããæå°éã«æããå¿
èŠãããããšãããã«ããã
ãŸã ã
äŸãã°ãåŒ
compose: {view: 'nav'}
ãããã¯ãæ¬è³ªçã«ãå€éšäžæ¬åŒ§ãªãã®JSON圢åŒã®ãªããžã§ã¯ãã§ãã äžæ¬åŒ§ã§å
ãããšãã§ããŸãïŒ
{compose: {view: 'nav'}}
ãJS
{compose: {view: 'nav'}}
ã§åŠçããŸãã æ¬¡ã«ãæå°åãããã³ãŒãããå€åŽã®äžæ¬åŒ§ãåé€ããã³ã³ãããªãã®ã³ã¡ã³ãã«æ»ããŸãã
MinifyKnockoutBindingExpressions
ããããã£
MinifyKnockoutBindingExpressions
true
ã«èšå®ãããŠãã
true
ãäžèšã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ãåŒã«é©çšãããŸãã
CrockfordJsMinifier
ã¯ãJSONã³ãŒããæ£ããæå°åã§ããããããããã®ç®çã®JS
MsAjaxJsMinifier
ãšããŠåžžã«äœ¿çšãããŸãïŒ
MsAjaxJsMinifier
ãš
YuiJsMinifier
ãããã®ç®çã«ã¯é©ã
YuiJsMinifier
ããŸããïŒã
æ°ããèšå®ã§ã¯ã次ã®ã³ãŒããååŸãããŸãã
<div><header></header><section id="content" class="main container-fluid"> </section><footer></footer></div>
data-bind
屿§ã§ãåãã¢ã¯ã·ã§ã³ãå®è¡ãããŸãã ããšãã°ã次ã®ã³ãŒãããããŸãã
<span data-bind="text: price() > 50 ? 'expensive' : 'cheap'"></span>
æå°ååŸã次ã®ããã«ãªããŸãã
<span data-bind="text:price()>50?'expensive':'cheap'"></span>
MinifyAngularBindingExpressions
ããã¥ã¡ã³ãã«ãããšãAngularã®åŒã¯JavaScriptã«äŒŒãã³ãŒãã¹ããããã§ãã ãã ãããããã¯
CrockfordJsMinifier
ã§æå°åã§ããŸãã å¯äžã®åé¡ã¯ã1åéãã®ãã€ã³ãã£ã³ã°åŒïŒ
::
å§ãŸãïŒã§ããã å
ã®JSMinã¯åžžã«ç©ºçœãåé€ããŠããŸãããã
CrockfordJsMinifier
ã³ãŒãã«å°ããªå€æŽãå ããåŸãåé¡ã¯ä¿®æ£ãããŸããã
Angularã§ã¯ãåŒãMustacheã®ãããªã¿ã°ïŒ
{{ }}
ïŒããã³ãã£ã¬ã¯ãã£ãã«å«ããããšãã§ããŸãã
次ã«ãMustacheã®ãããªã¿ã°ãèŠçŽ ã®ããã¹ãã³ã³ãã³ãã«å«ããããšãã§ããŸãã
<strong>Price:</strong> {{ 3 * 10 | currency }}
ããã³å±æ§å€ïŒ
<img src="/Content/images/icons/{{ iconName + '.png' }}">
ãããã£ãŠã
MinifyAngularBindingExpressions
ããããã£ã
true
èšå®ãããšã次ã®çµæãåŸãããŸãã
<strong>Price:</strong> {{3*10|currency}}
ãããŠ
<img src="/Content/images/icons/{{iconName+'.png'}}">
ãã£ã¬ã¯ãã£ãã¯ã¯ããã«è€éã§ãã ãã³ãã¬ãŒãã³ãŒãã§ã¯ããã£ã¬ã¯ãã£ãã¯4ã€ã®æ¹æ³ã§è¡šãããšãã§ããŸãã
- èŠçŽ ãšããŠ
- 屿§ãšããŠ
class
屿§ã®ã³ã³ãã³ãã®ããã«- ã³ã¡ã³ããšããŠ
ãã£ã¬ã¯ãã£ãåã«ã¯ç°ãªãã¹ãã«ã䜿çšããããšãã§ããŸãã ããšãã°ã
ngBind
ãã£ã¬ã¯ãã£ãã«ã¯ã次ã®ãªãã·ã§ã³ããããŸãã
ng-bind
ng:bind
ng_bind
x-ng-bind
data-ng-bind
ãããã®æ©èœã¯ãã¹ãŠãæå°åãããšãã«èæ
®ãããŸãã
ãŸãããã¹ãŠã®ãã£ã¬ã¯ãã£ãã«åŒãå«ãŸããŠããããã§ã¯ãããŸããã äžéšã®ãã£ã¬ã¯ãã£ãã«ã¯ããã³ãã¬ãŒããåçŽãªå€ããŸãã¯äœãå«ãŸããªãå ŽåããããŸãã åŒãå«ããã£ã¬ã¯ãã£ããä»ã®ãã£ã¬ã¯ãã£ãããåé¢ããããã«ã次ã®ãªã¹ãã䜿çšãããŸãïŒ
ngBind
ã
ngBindHtml
ã
ngBlur
ã
ngChange
ã
ngChecked
ã
ngClass
ã
ngClassEven
ã
ngClassOdd
ã
ngClick
ã
ngController
ã
ngCopy
ã
ngCut
ã
ngDblclick
ã
ngInit
ngKeydown
ngKeypress
ngKeyup
ngModelOptions
ngMousedown
ngRepeatStart
ngSelected
ngShow
ngStyle
ngSubmit
ngSwitch
ã¢ã€ãã
HTML
ngPluralize
1ã€ã®èŠçŽ ãã£ã¬ã¯ãã£ãã®ã¿ãåŠçããŸãã ããå
·äœçã«ã¯ã
count
å
ã®åŒãããã³å±æ§ãæå°åã
when
ã
次ã®ã³ãŒãããããšããŸãïŒ
<ng-pluralize count=" personCount " when="{ '0': 'Nobody is viewing.', 'one': '1 person is viewing.', 'other': '{} people are viewing.' }"> </ng-pluralize>
æå°ååŸã次ã®ããã«ãªããŸãã
<ng-pluralize count="personCount" when="{'0':'Nobody is viewing.','one':'1 person is viewing.','other':'{} people are viewing.'}"> </ng-pluralize>
屿§
Angularã®å±æ§ãã£ã¬ã¯ãã£ãã®åŒãæå°å
data-bind
ããšã¯ãKnockoutã®
data-bind
屿§ã®ã³ã³ãã³ããæå°åãããããç°¡åã§ããå€éšã®äžæ¬åŒ§ãèããå¿
èŠããªãããã§ãã
ngRepeat
ãšããŠ
ngRepeat
ãã£ã¬ã¯ãã£ã
ngRepeat
ã屿§ãã£ã¬ã¯ãã£ãã®åŒãæå°åããããšãæ€èšããŠãã ããã
<li ng-repeat="customer in customers | filter:nameText | orderBy:'name'"> {{customer.name}} - {{customer.city}} </li>
ïŒJavaScriptã®èгç¹ããïŒå±æ§ã«ã誀ã£ããã³ãŒããå«ãŸããŠãããšããäºå®ã«ãããããããæå°åã¯åŒãç¶ãæåããŸãã
<li ng-repeat="customer in customers|filter:nameText|orderBy:'name'">{{customer.name}} - {{customer.city}}</li>
ã¯ã©ã¹
ãã£ã¬ã¯ãã£ãã¯ã©ã¹ãšå±æ§ãã£ã¬ã¯ãã£ãã®äž»ãªéãã¯ã
class
屿§ã«è€æ°ã®ãã£ã¬ã¯ãã£ããåæã«å«ããããšãã§ããããšã§ãã
<span class="ng-bind: name; ng-cloak; ng-style: { 'background-color': 'lime' };"></span>
ãã®åé¡ã解決ãããŸããã
<span class="ng-bind:name;ng-cloak;ng-style:{'background-color':'lime'}"></span>
ã³ã¡ã³ã
æ®å¿µãªãããAngularã«ã¯ãã³ã¡ã³ããšããŠè¡šç€ºã§ããåäžã®çµã¿èŸŒã¿ãã£ã¬ã¯ãã£ãããããŸããã ãã®ããããŠãŒã¶ãŒãã£ã¬ã¯ãã£ã
myDir
ãã³ã¡ã³ããã£ã¬ã¯ãã£ããšããŠäœ¿çšãããå°ã工倫ãããäŸãæ€èšããŸãã
æå°ååŸã次ã®ã³ãŒããååŸããŸãã
CustomAngularDirectiveList
Angularã«ã¯ç¬èªã®ãã£ã¬ã¯ãã£ããäœæããæ©èœãããããããŠãŒã¶ãŒã«ã¯ãããã®ãã£ã¬ã¯ãã£ãã®ååãç¹å¥ãªãªã¹ãã«è¿œå ããæ©äŒãäžããããŸããã
CustomAngularDirectiveList
ããããã£ã§æå®ãããã«ã¹ã¿ã ãã£ã¬ã¯ãã£ãã¯ãAngularçµã¿èŸŒã¿ãã£ã¬ã¯ãã£ããšåæ§ã«ã
CustomAngularDirectiveList
ã«ãã£ãŠåŠçãããŸãã
Web Essentials 2013ã§ã®ãµããŒã
ãã¥ãŒãåå¥ã®HTMLãã¡ã€ã«ã«ä¿åããå ŽåãWebMarkupMinã«ãã³ãã«ãããŠããæšæºã®ASP.NETæ¡åŒµæ©èœã¯ã»ãšãã©åœ¹ã«ç«ã¡ãŸããã ãã®å Žåããããžã§ã¯ãã®ã¢ã»ã³ããªæ®µéã§HTMLãã¡ã€ã«ãæå°åããæ ¹æ¬çã«ç°ãªãããŒã«ãå¿
èŠã§ãã çŸæç¹ã§ã¯ããã®ãããªããŒã«ã¯1ã€ã ãã§ããããã¯
Web Essentials 2013ã® VSæ¡åŒµæ©èœã§ãã
Web Essentials 2013ã®ææ°ã®å®å®ããŒãžã§ã³ïŒããŒãžã§ã³2.3ïŒã¯ãWebMarkupMinã®å€ãããŒãžã§ã³ïŒããŒãžã§ã³0.8.21ïŒããµããŒãããŠããŸãã ãã®ãããWeb Essentials 2013ã®ãã€ããªãŒãã«ããã€ã³ã¹ããŒã«ããå¿
èŠããããŸãïŒæ¡åŒµãµã€ãã«ã¯
ã€ã³ã¹ããŒã«ã¬ã€ãã
ãããŸã ïŒã
æåŸã«ããã®èšäºã®å·çæç¹ã§ã¯ããã€ããªãŒãã«ãïŒããŒãžã§ã³2.3.4.1ïŒã¯WebMarkupMin 0.9.3ããµããŒãããèæ
®ããããã¹ãŠã®æ§æããããã£ãæ§æã§ããŸãã

åç
§è³æ
- CodePlexã®WebMarkupMinãããžã§ã¯ãããŒãž
- WebMarkupMin HTML Minifier-.NETãã©ãããã©ãŒã çšã®ææ°ã®HTMLãããã€ã¶ãŒ
- å
¬åŒWeb Essentials VSæ¡åŒµWebãµã€ã
- èšäºãWeb Essentials 2013ã®HTMLæå°åã
- èšäºãWeb Essentials 2013ã§ã®HTMLã®æå°åïŒå¹Žéã§äœãå€ãã£ãã®ã§ããïŒã
UPD1ïŒ 10æ17æ¥ã«ã
Web Essentials 2013ã®å®å®ããŒãžã§ã³ ïŒããŒãžã§ã³2.4ïŒããªãªãŒã¹ãããŸãããããã¯æç€ºããããã¹ãŠã®æ©èœããµããŒãããŸãã