public void Can_Render_Markdown_with_variable_statements() { var template = @"## Welcome to Razor! @var lastName = Model.LastName; Hello @Upper(lastName), @Model.FirstName ### Breadcrumbs @Combine("" / "", Model.FirstName, lastName) @var links = Model.Links ### Menus @foreach (var link in links) { - @link.Name - @link.Href @var labels = link.Labels @foreach (var label in labels) { - @label } }".NormalizeNewLines(); var expectedHtml = @"## Welcome to Razor! Hello BELLOT, Demis ### Breadcrumbs Demis / Bellot ### Menus - ServiceStack - http://www.servicestack.net - REST - JSON - XML - AjaxStack - http://www.ajaxstack.com - HTML5 - AJAX - SPA ".NormalizeNewLines(); var dynamicPage = new MarkdownPage(markdownFormat, "/path/to/tpl", "DynamicModelTpl", template); dynamicPage.Compile(); var templateOutput = dynamicPage.RenderToMarkdown(templateArgs); templateOutput = templateOutput.Replace("\r\n", "\n"); Assert.That(dynamicPage.ExecutionContext.BaseType, Is.EqualTo(typeof(MarkdownViewBase))); Console.WriteLine(templateOutput); Assert.That(templateOutput, Is.EqualTo(expectedHtml)); }
public void Can_Render_page_to_Markdown_only() { var headerTemplate = @"## Header Links! - [Google](http://google.com) - [Bing](http://bing.com) "; var template = @"## Welcome to Razor! @Html.Partial(""HeaderLinks"", Model) Hello @Upper(Model.LastName), @Model.FirstName ### Breadcrumbs @Combine("" / "", Model.FirstName, Model.LastName) ### Menus @foreach (var link in Model.Links) { - @link.Name - @link.Href @foreach (var label in link.Labels) { - @label } }"; var expectedHtml = @"## Welcome to Razor! ## Header Links! - [Google](http://google.com) - [Bing](http://bing.com) Hello BELLOT, Demis ### Breadcrumbs Demis / Bellot ### Menus - ServiceStack - http://www.servicestack.net - REST - JSON - XML - AjaxStack - http://www.ajaxstack.com - HTML5 - AJAX - SPA ".Replace("\r\n", "\n"); markdownFormat.RegisterMarkdownPage(new MarkdownPage(markdownFormat, "/path/to/page", "HeaderLinks", headerTemplate)); var dynamicPage = new MarkdownPage(markdownFormat, "/path/to/tpl", "DynamicModelTpl", template); dynamicPage.Prepare(); var templateOutput = dynamicPage.RenderToMarkdown(templateArgs); templateOutput = templateOutput.Replace("\r\n", "\n"); Assert.That(dynamicPage.ExecutionContext.BaseType, Is.EqualTo(typeof(MarkdownViewBase))); Console.WriteLine(templateOutput); Assert.That(templateOutput, Is.EqualTo(expectedHtml)); }