Jadeã§XAMLãšMSBuildçšã®ãããžã§ã¯ããã¡ã€ã«ãã€ãã£ãŠãã«ããã
誰ãåŸããã®ãããããªããããªããšã§ãã¿ãŸããã
æšå€ããµãšãããããã°Jadeã£ãŠãã£ãããªâŠããšæãåºããŠããŸããŸããŠããã£ãšXMLãã€ããããšãã§ããã ãããšæãç«ã£ãŠãã£ãŠã¿ãŸããã çµè«ããèšããšãã§ããªãã¯ãããŸããã
node.jsã®ããã±ãŒãžã§ãåç¬ã®ã³ãã³ãã©ã€ã³ããŒã«ã§ããããŸãã
ãã³ãã¬ãŒããšã³ãžã³ã§ããŠãruby補ã®hamlãªãããšåãé¡ã§ããããã node.jsãå匷ãããšãã«åãããŠå°ãããã£ãŠããŸããã ãªããšãªãdoctypeã§XMLãããããããªæ°ãããŠããã®ã§HTMLãã€ãããšãã®ããã«ãããšããæãã«ãªãããããªãããšã ã€ãŸãã¯XAMLãç°¡åã«ã€ããããšãã§ããããªïŒãšæã£ã次第ã§ãã ãªã«ããã¿ã°ãã¿ã€ãããã®ããã«ãã§ãããVisual Studioãèµ·åããªããŠãæžãããšãã§ããã®ã§ããã§ãããïŒæ³šæïŒã€ã³ããªã»ã³ã¹ãå¹ããã»ãã絶察ããã§ãïŒïŒ
Jadeã§XMLãã€ããã«ã¯
Jadeã§ã¯doctypeã®æå®ã«ãxmlããšããã°ããã§ãã ããã ãã§ããã®é·ãããã¥ã¡ã³ãã¿ã€ãã®æå®ã«ããŠãããŸãã
ããšã¯äœäºããªãã£ããã®ããã«ã¿ã°ãæ¹è¡ããªããã¿ã€ãããŠãããŸãã XAMLãèããŠããŸãã®ã§ãç»é¢ã«ãªããã®ã®ã«ãŒãèŠçŽ ã¯Windowã§ãã ãŸããXAMLã§ã¯åå空éã«æå®ã®ãã®ããããŸãã®ã§ãããã¿ã°ã®å±æ§ãšããŠæå®ããŠãããŸãã
doctype xml Window(xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation")
ã¿ã€ãã«ãç»é¢ã®ãµã€ãºæå®ããããªããåãããã«ã«ã³ãã§åºåã£ãŠå
¥ããŠãããŸãã
doctype xml Window(xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation",Title="My First Jade XAML",Width="800",Height="600")
æåŸã«Hello Worldçãªããšããããã®ã§ããã¹ããããã¯ãå
¥ããŸãã æçµçã«ã¯ä»¥äžã®ããã«ãªããŸããã
doctype xml Window(xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation",Title="My First Jade XAML",Width="800",Height="600") TextBlock(name="txt") Hello
ãããæåã³ãŒãUTF-8ã§ãmain.jadeããšããååã®ãã¡ã€ã«ã«ä¿åããŸãã
Jadeã§XMLã«å€æãããã®ã§ãŸãã¯ã€ã³ã¹ããŒã«ããŠãããŸãã node.jsã¯ã€ã³ã¹ããŒã«æžã¿ãšããŠã次ã®ããã«ããŸãããã
ããããã§ãjadeãã³ãã³ãã䜿ããã¯ãã§ãã PowerShellãªãGet-Commandã³ãã³ãã¬ããã§ç¢ºèªã§ãããšæããŸãã
ã§ã¯jadeã³ãã³ãã䜿ããŸãããã ããã§ãã²ãšã€æ³šæãå¿
èŠã§ãã æ¬¡ã®ããã«ãã®ãŸãŸå®è¡ããŠããŸããšâŠ
ãrendered main.htmlããšè¡šç€ºããããšæããŸãã ããã§ããããã©ã«ãã§ã¯HTMLãäœæããããã«ãªã£ãŠããããã§ãã
ã§ã¯ååãä»ããã°ããã®ã§ã¯ïŒãšæãã®ã§ããã-nããããã¯ã--nameãã¯é¢ä¿ããããŸãããããã«ãã¯ã©ã€ã¢ã³ããµã€ãã ãããšããŠã-cããã--clientããã€ããŠã¯ã ãã§ãããªããšJavaScriptã«å€æãããŠããŸããŸãïŒ
XMLãåºåããJavaScriptã«ãªãã®ã§XAMLã§ã¯ãªããªããŸãã®ã§ã ãã§ããã
ã©ãããããšãããšæ¡åŒµåãã-Eããªãã·ã§ã³ãä»ããã ãã§ããã
ããã§ãmain.xamlããã§ãããããŸãã
MSBuildã§ãã«ãã§ããããã«ãã
次ã¯ãã«ãã§ããããã«ããŸãã åãèŠé ã§jadeãæžããŠãããŸãã
ä»åã¯ã¢ããªã±ãŒã·ã§ã³å®çŸ©ã®XAMLãçšæããŠXAMLã ãã§GUIãã€ãããŸãã ãŸãã¢ããªã±ãŒã·ã§ã³å®çŸ©ã®ãapp.jadeãã§ãã åãããã«ã-Eããªãã·ã§ã³ã§ãxamlããšæå®ããŠãapp.xamlããã€ãããŸãã
doctype xml Application(xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation", StartupUri="main.xaml")
ApplicationèŠçŽ ãããããªãã®ã§ç°¡åã§ããã
次ã«ãããžã§ã¯ããã¡ã€ã«ãã€ãããŸãã ãã¡ãã¯é©åœã«ãjadexaml.jadeããšååãä»ããŸããã-Eããªãã·ã§ã³ã«ã¯ãprojããæå®ããŸãã
doctype xml Project(xmlns="http://schemas.microsoft.com/developer/msbuild/2003", DefaultTargets="Build") PropertyGroup AssemblyName jadexaml OutputType winexe OutputPath .\ ItemGroup ApplicationDefinition(Include="app.xaml") Page(Include="main.xaml") Reference(Include="System") Reference(Include="WindowsBase") Reference(Include="PresentationCore") Reference(Include="PresentationFramework") Import(Project="$(MSBuildBinPath)\\Microsoft.CSharp.targets")
ããã§ãããžã§ã¯ããã¡ã€ã«ã«ããŸãã
jade jadexaml.jade -E proj
ããŸããã£ãŠããã°ãjadexaml.projãã宿ããŠããã¯ãã§ãã ããã§ã¯ãMSBuildããšãããŸãããã
ããããã¹ãéã£ãŠããªãïŒã³ãã³ããèŠã€ãããªãïŒå Žåã¯ç°å¢å€æ°PATHã«ãããŸãããã PowerShellã§ããã°ä»¥äžã®ããã«ã
[System.Environment]::SetEnvironmentVariables("PATH","$env:PATH;MSBuildããããã¹")
ãã¹ãéã£ãã確èªãããªãGet-Commandã§èŠãŠã¿ãŸãããã
ãã«ããããŸããã£ããåããã©ã«ãã«ãjadexaml.exeããçèªããŠããã¯ãã§ãã
ãã§ããããã§ããã æ¬åœã«èª°ãåŸãããã ããã