本文整理汇总了C#中ServiceStack.WebHost.Endpoints.Support.Markdown.MarkdownPage类的典型用法代码示例。如果您正苦于以下问题:C# MarkdownPage类的具体用法?C# MarkdownPage怎么用?C# MarkdownPage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MarkdownPage类属于ServiceStack.WebHost.Endpoints.Support.Markdown命名空间,在下文中一共展示了MarkdownPage类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Main
public static void Main(string[] args)
{
// Get executing path and /example.md full path
string exeLocation = Assembly.GetExecutingAssembly().Location;
string path = Path.GetDirectoryName( exeLocation );
string template = Path.Combine(path, "example.md");
// Create the markdown-razor template compiler
MarkdownFormat format = new MarkdownFormat();
string contents = File.ReadAllText(template);
var page = new MarkdownPage(format, path, "example", contents );
format.AddPage(page);
// Create our view container (ViewBag)
var view = new Dictionary<string, object>()
{
{ "examples", examples }
};
// Compile and output.
// This can be redirected to html file
// e.g. RazorExample.exe > output.html
var html = format.RenderDynamicPageHtml("example", view);
Console.WriteLine(html);
}
开发者ID:tjmukurumbira,项目名称:blogs,代码行数:25,代码来源:Main.cs
示例2: Init
public void Init(MarkdownPage markdownPage, Dictionary<string, object> scopeArgs,
bool renderHtml, ViewDataDictionary viewData, HtmlHelper htmlHelper)
{
Init(null, null, markdownPage.Markdown, viewData, htmlHelper);
this.RenderHtml = renderHtml;
this.MarkdownPage = markdownPage;
this.ScopeArgs = scopeArgs;
}
开发者ID:HansS,项目名称:ServiceStack,代码行数:9,代码来源:HtmlHelper.cs
示例3: Does_handle_foreach_when_enumerable_is_empty_first_time
public void Does_handle_foreach_when_enumerable_is_empty_first_time()
{
var content = (string)dynamicListPageContent.Clone();
var markdownPage = new MarkdownPage(new MarkdownFormat(), dynamicListPagePath, "", content);
markdownPage.Compile();
var model = new Person { Links = new List<Link>() };
var scopeArgs = new Dictionary<string, object> { { "Model", model } };
markdownPage.RenderToHtml(scopeArgs); // First time the list is empty
var expected = "A new list item";
model.Links.Add(new Link { Name = expected } );
var html = markdownPage.RenderToHtml(scopeArgs); // Second time the list has 1 item
Console.WriteLine(html);
Assert.That(html, Contains.Substring(expected));
}
开发者ID:KennyBu,项目名称:ServiceStack,代码行数:16,代码来源:TextBlockTests.cs
示例4: RegisterMarkdownPage
public void RegisterMarkdownPage(MarkdownPage markdownPage)
{
AddPage(markdownPage);
}
开发者ID:Arxisos,项目名称:ServiceStack,代码行数:4,代码来源:MarkdownFormat.cs
示例5: ProcessMarkdownPage
public bool ProcessMarkdownPage(IHttpRequest httpReq, MarkdownPage markdownPage, object dto, IHttpResponse httpRes)
{
httpRes.AddHeaderLastModified(markdownPage.GetLastModified());
var renderInTemplate = true;
var renderHtml = true;
string format;
if (httpReq != null && (format = httpReq.QueryString["format"]) != null)
{
renderHtml = !(format.StartsWithIgnoreCase("markdown")
|| format.StartsWithIgnoreCase("text")
|| format.StartsWithIgnoreCase("plain"));
renderInTemplate = !httpReq.GetFormatModifier().StartsWithIgnoreCase("bare");
}
if (!renderHtml)
{
httpRes.ContentType = ContentType.PlainText;
}
var template = httpReq.GetTemplate();
var markup = RenderDynamicPage(markdownPage, markdownPage.Name, dto, renderHtml, renderInTemplate, template);
var markupBytes = markup.ToUtf8Bytes();
httpRes.OutputStream.Write(markupBytes, 0, markupBytes.Length);
return true;
}
开发者ID:Arxisos,项目名称:ServiceStack,代码行数:27,代码来源:MarkdownFormat.cs
示例6: AddPage
public void AddPage(MarkdownPage page)
{
try
{
page.Prepare();
switch (page.PageType)
{
case MarkdownPageType.ViewPage:
ViewPages.Add(page.Name, page);
break;
case MarkdownPageType.SharedViewPage:
ViewSharedPages.Add(page.Name, page);
break;
case MarkdownPageType.ContentPage:
ContentPages.Add(page.FilePath.WithoutExtension(), page);
break;
}
}
catch (Exception ex)
{
Log.Error("AddViewPage() page.Prepare(): " + ex.Message, ex);
}
var templatePath = page.TemplatePath;
if (page.TemplatePath == null) return;
if (PageTemplates.ContainsKey(templatePath)) return;
AddTemplate(templatePath, File.ReadAllText(templatePath));
}
开发者ID:Arxisos,项目名称:ServiceStack,代码行数:30,代码来源:MarkdownFormat.cs
示例7: AddFileAndPage
public static void AddFileAndPage(this MarkdownFormat markdown, MarkdownPage markdownPage)
{
var pathProvider = (InMemoryVirtualPathProvider)markdown.VirtualPathProvider;
pathProvider.AddFile(markdownPage.FilePath, markdownPage.Contents);
markdown.AddPage(markdownPage);
}
开发者ID:grammarware,项目名称:fodder,代码行数:6,代码来源:tests_ServiceStack_ServiceHost_Tests_Formats_MarkdownFormatExtensions.cs
示例8: RenderStaticPage
private string RenderStaticPage(MarkdownPage markdownPage, bool renderHtml)
{
//TODO: Optimize if contains no dynamic elements
return RenderDynamicPage(markdownPage, new Dictionary<string, object>(), renderHtml, true);
}
开发者ID:Arxisos,项目名称:ServiceStack,代码行数:5,代码来源:MarkdownFormat.cs
示例9: RenderDynamicPage
private string RenderDynamicPage(MarkdownPage markdownPage, string pageName, object model, bool renderHtml, bool renderTemplate, string templatePath = null)
{
if (markdownPage == null)
throw new InvalidDataException(ErrorPageNotFound.FormatWith(pageName));
var scopeArgs = new Dictionary<string, object> { { MarkdownPage.ModelName, model } };
return RenderDynamicPage(markdownPage, scopeArgs, renderHtml, renderTemplate, templatePath);
}
开发者ID:Arxisos,项目名称:ServiceStack,代码行数:9,代码来源:MarkdownFormat.cs
示例10: AddPage
public void AddPage(MarkdownPage page)
{
try
{
page.Compile();
AddViewPage(page);
}
catch (Exception ex)
{
Log.Error("AddViewPage() page.Prepare(): " + ex.Message, ex);
}
try
{
var templatePath = page.Template;
if (page.Template == null) return;
if (MasterPageTemplates.ContainsKey(templatePath)) return;
var templateFile = VirtualPathProvider.GetFile(templatePath);
var templateContents = GetPageContents(templateFile);
AddTemplate(templatePath, templateContents);
}
catch (Exception ex)
{
Log.Error("Error compiling template " + page.Template + ": " + ex.Message, ex);
}
}
开发者ID:JonCanning,项目名称:ServiceStack,代码行数:28,代码来源:MarkdownFormat.cs
示例11: GetLatestPage
private IVirtualFile GetLatestPage(MarkdownPage markdownPage)
{
var file = VirtualPathProvider.GetFile(markdownPage.FilePath);
return file;
}
开发者ID:JonCanning,项目名称:ServiceStack,代码行数:5,代码来源:MarkdownFormat.cs
示例12: ReloadIfNeeded
private MarkdownPage ReloadIfNeeded(MarkdownPage markdownPage)
{
if (markdownPage == null || !WatchForModifiedPages) return markdownPage;
if (markdownPage.FilePath != null)
{
var latestPage = GetLatestPage(markdownPage);
if (latestPage == null) return markdownPage;
if (latestPage.LastModified > markdownPage.LastModified)
{
markdownPage.Reload(GetPageContents(latestPage), latestPage.LastModified);
}
}
return markdownPage;
}
开发者ID:JonCanning,项目名称:ServiceStack,代码行数:14,代码来源:MarkdownFormat.cs
示例13: ReloadModifiedPageAndTemplates
public void ReloadModifiedPageAndTemplates(MarkdownPage markdownPage)
{
if (markdownPage == null || !WatchForModifiedPages) return;
ReloadIfNeeded(markdownPage);
IVirtualFile latestPage;
MarkdownTemplate template;
if (markdownPage.DirectiveTemplate != null
&& this.MasterPageTemplates.TryGetValue(markdownPage.DirectiveTemplate, out template))
{
latestPage = GetLatestPage(markdownPage.DirectiveTemplate);
if (latestPage.LastModified > template.LastModified)
template.Reload(GetPageContents(latestPage), latestPage.LastModified);
}
if (markdownPage.Template != null
&& this.MasterPageTemplates.TryGetValue(markdownPage.Template, out template))
{
latestPage = GetLatestPage(template);
if (latestPage.LastModified > template.LastModified)
template.Reload(GetPageContents(latestPage), latestPage.LastModified);
}
}
开发者ID:JonCanning,项目名称:ServiceStack,代码行数:23,代码来源:MarkdownFormat.cs
示例14: ReloadModifiedPageAndTemplates
public void ReloadModifiedPageAndTemplates(MarkdownPage markdownPage)
{
var lastWriteTime = File.GetLastWriteTime(markdownPage.FilePath);
if (lastWriteTime > markdownPage.LastModified)
{
markdownPage.Reload();
}
MarkdownTemplate template;
if (markdownPage.DirectiveTemplatePath != null
&& this.PageTemplates.TryGetValue(markdownPage.DirectiveTemplatePath, out template))
{
lastWriteTime = File.GetLastWriteTime(markdownPage.DirectiveTemplatePath);
if (lastWriteTime > template.LastModified)
ReloadTemplate(template);
}
if (markdownPage.TemplatePath != null
&& this.PageTemplates.TryGetValue(markdownPage.TemplatePath, out template))
{
lastWriteTime = File.GetLastWriteTime(markdownPage.TemplatePath);
if (lastWriteTime > template.LastModified)
ReloadTemplate(template);
}
}
开发者ID:Arxisos,项目名称:ServiceStack,代码行数:24,代码来源:MarkdownFormat.cs
示例15: AddViewPage
private void AddViewPage(MarkdownPage page)
{
switch (page.PageType)
{
case MarkdownPageType.ViewPage:
ViewPages.Add(page.Name, page);
break;
case MarkdownPageType.SharedViewPage:
ViewSharedPages.Add(page.Name, page);
break;
case MarkdownPageType.ContentPage:
ContentPages.Add(page.FilePath.WithoutExtension().TrimStart(DirSeps), page);
break;
}
}
开发者ID:JonCanning,项目名称:ServiceStack,代码行数:15,代码来源:MarkdownFormat.cs
示例16: RenderInTemplateIfAny
private string RenderInTemplateIfAny(MarkdownPage markdownPage, Dictionary<string, object> scopeArgs, string pageHtml, string templatePath = null)
{
MarkdownTemplate markdownTemplate = null;
if (templatePath != null)
MasterPageTemplates.TryGetValue(templatePath, out markdownTemplate);
var directiveTemplate = markdownPage.DirectiveTemplate;
if (markdownTemplate == null && directiveTemplate != null)
{
if (!MasterPageTemplates.TryGetValue(directiveTemplate, out markdownTemplate))
{
var templateInSharedPath = "{0}/{1}.shtml".Fmt(SharedDir, directiveTemplate);
if (!MasterPageTemplates.TryGetValue(templateInSharedPath, out markdownTemplate))
{
var virtualFile = VirtualPathProvider.GetFile(directiveTemplate);
if (virtualFile == null)
throw new FileNotFoundException("Could not find template: " + directiveTemplate);
var templateContents = GetPageContents(virtualFile);
markdownTemplate = AddTemplate(directiveTemplate, templateContents);
}
}
}
if (markdownTemplate == null)
{
if (markdownPage.Template != null)
MasterPageTemplates.TryGetValue(markdownPage.Template, out markdownTemplate);
if (markdownTemplate == null && templatePath == null)
MasterPageTemplates.TryGetValue(DefaultTemplate, out markdownTemplate);
if (markdownTemplate == null)
{
if (templatePath == null)
return pageHtml;
throw new Exception("No template found for page: " + markdownPage.FilePath);
}
}
if (scopeArgs != null)
scopeArgs[MarkdownTemplate.BodyPlaceHolder] = pageHtml;
var htmlPage = markdownTemplate.RenderToString(scopeArgs);
return htmlPage;
}
开发者ID:JonCanning,项目名称:ServiceStack,代码行数:49,代码来源:MarkdownFormat.cs
示例17: RenderInTemplateIfAny
private string RenderInTemplateIfAny(MarkdownPage markdownPage, Dictionary<string, object> scopeArgs, string pageHtml, string templatePath=null)
{
MarkdownTemplate markdownTemplate = null;
if (templatePath != null)
PageTemplates.TryGetValue(templatePath, out markdownTemplate);
var directiveTemplatePath = markdownPage.DirectiveTemplatePath;
if (markdownTemplate == null && directiveTemplatePath != null)
{
if (!PageTemplates.TryGetValue(directiveTemplatePath, out markdownTemplate))
{
var virtualFile = VirtualPathProvider.GetFile(directiveTemplatePath);
if (virtualFile == null)
throw new FileNotFoundException("Could not find template: " + directiveTemplatePath);
var templateContents = virtualFile.ReadAllText();
markdownTemplate = AddTemplate(directiveTemplatePath, templateContents);
}
}
if (markdownTemplate == null)
{
if (markdownPage.TemplatePath != null)
PageTemplates.TryGetValue(markdownPage.TemplatePath, out markdownTemplate);
if (markdownTemplate == null)
{
if (templatePath == null)
return null;
throw new ArgumentNullException("templatePath", templatePath);
}
}
if (scopeArgs != null)
scopeArgs[MarkdownTemplate.BodyPlaceHolder] = pageHtml;
var htmlPage = markdownTemplate.RenderToString(scopeArgs);
return htmlPage;
}
开发者ID:Arxisos,项目名称:ServiceStack,代码行数:42,代码来源:MarkdownFormat.cs
示例18: RenderInTemplateIfAny
private string RenderInTemplateIfAny(MarkdownPage markdownPage, Dictionary<string, object> scopeArgs, string pageHtml)
{
MarkdownTemplate markdownTemplate = null;
var directiveTemplatePath = markdownPage.DirectiveTemplatePath;
if (directiveTemplatePath != null)
{
if (!PageTemplates.TryGetValue(directiveTemplatePath, out markdownTemplate))
{
if (!File.Exists(directiveTemplatePath))
throw new FileNotFoundException("Could not find template: " + directiveTemplatePath);
var templateContents = File.ReadAllText(directiveTemplatePath);
markdownTemplate = AddTemplate(directiveTemplatePath, templateContents);
}
}
if (markdownTemplate == null)
{
var templatePath = markdownPage.TemplatePath;
if (templatePath == null) return pageHtml;
markdownTemplate = PageTemplates[templatePath];
}
if (scopeArgs != null)
scopeArgs[MarkdownTemplate.BodyPlaceHolder] = pageHtml;
var htmlPage = markdownTemplate.RenderToString(scopeArgs);
return htmlPage;
}
开发者ID:nstjelja,项目名称:ServiceStack,代码行数:31,代码来源:MarkdownFormat.cs
示例19: Does_transform_escaped_html_start_tags
public void Does_transform_escaped_html_start_tags()
{
var markdownText =
@"#### Showing Results 1 - 5
^<div id=""searchresults"">
### Markdown > [About Docs](http://path.com/to/about)
^</div>
Text".NormalizeNewLines();
var expectedHtml =
@"<h4>Showing Results 1 - 5</h4>
<div id=""searchresults"">
<h3>Markdown > <a href=""http://path.com/to/about"">About Docs</a></h3>
</div>
<p>Text</p>
".NormalizeNewLines();
var textBlock = new TextBlock("");
var page = new MarkdownPage { Markdown = new MarkdownFormat() };
textBlock.DoFirstRun(new PageContext(page, null, true));
var html = textBlock.TransformHtml(markdownText);
Console.WriteLine(html);
Assert.That(html, Is.EqualTo(expectedHtml));
}
开发者ID:namman,项目名称:ServiceStack,代码行数:31,代码来源:TextBlockTests.cs
示例20: AddPage
public void AddPage(MarkdownPage page)
{
try
{
Log.InfoFormat("Compiling {0}...", page.FilePath);
page.Compile();
AddViewPage(page);
}
catch (Exception ex)
{
Log.Error("AddViewPage() page.Prepare(): " + ex.Message, ex);
}
try
{
var templatePath = page.Template;
if (page.Template == null) return;
if (MasterPageTemplates.ContainsKey(templatePath)) return;
//AddTemplate(templatePath, File.ReadAllText(templatePath));
var templateFile = VirtualPathProvider.GetFile(templatePath);
var templateContents = templateFile.ReadAllText();
AddTemplate(templatePath, templateContents);
}
catch (Exception ex)
{
Log.Error("Error compiling template " + page.Template + ": " + ex.Message, ex);
}
}
开发者ID:zgramana,项目名称:ServiceStack,代码行数:31,代码来源:MarkdownFormat.cs
注:本文中的ServiceStack.WebHost.Endpoints.Support.Markdown.MarkdownPage类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论