public override bool Execute(string[] arguments) { Md2HtmlParameters args = new Md2HtmlParameters(); if (!ArgumentParser.ParseArguments(arguments, args)) { return(false); } var log = new ConsoleLog(LogLevel.Info); string md = args.InputFile.ReadFile(log); string pageTemplate = ResourceHandler.GetFile(KnownFile.TemplateSinglePageHtml); string cssForInline = ""; if (args.Css.IsExisting) { cssForInline = args.Css.ReadFile(log); } using var pipeline = new BookGenPipeline(BookGenPipeline.Preview); pipeline.InjectPath(args.InputFile.GetDirectory()); pipeline.SetSyntaxHighlightTo(!args.NoSyntax); var mdcontent = pipeline.RenderMarkdown(md); string rendered; if (args.RawHtml) { rendered = mdcontent; } else { rendered = pageTemplate.Replace("<!--{css}-->", cssForInline); rendered = rendered.Replace("<!--{content}-->", mdcontent); } if (args.OutputFile == new FsPath("con")) { Console.WriteLine(rendered); } else { args.OutputFile.WriteFile(log, rendered); } return(true); }
private void Preview(HttpListenerRequest request, HttpListenerResponse response) { Dictionary <string, string> parameters = request.ParsePostParameters(); if (parameters.ContainsKey("content")) { string base64content = Uri.UnescapeDataString(parameters["content"]); byte[] contentBytes = Convert.FromBase64String(base64content); string rawContent = Encoding.UTF8.GetString(contentBytes); using (var pipeline = new BookGenPipeline(BookGenPipeline.Preview)) { pipeline.InjectPath(new FsPath(_workdir)); string rendered = pipeline.RenderMarkdown(rawContent); response.WriteString(rendered, "text/html"); } } }