public void Apply(MarkupContent content, MarkupRendererContext context)
 {
     content.Html = _standardLink.Replace(content.Html, match => BuildLink(context, match.Groups["Foo"].Value, match.Groups["Foo"].Value, null));
     content.Html = _anchoredLink.Replace(content.Html, match => BuildLink(context, match.Groups["Foo"].Value, match.Groups["Foo"].Value, match.Groups["Bar"].Value));
     content.Html = _namedLink.Replace(content.Html, match => BuildLink(context, match.Groups["Foo"].Value, match.Groups["Foobar"].Value, null));
     content.Html = _namedAnchoredLink.Replace(content.Html, match => BuildLink(context, match.Groups["Foo"].Value, match.Groups["Foobar"].Value, match.Groups["Bar"].Value));
 }
 public void Apply(MarkupContent content, MarkupRendererContext context)
 {
     var lines = content.Html.Split('\n');
     var writer = new HtmlParagraphWriter();
     foreach (var line in lines)
     {
         writer.WriteLine(line);
     }
     content.Html = writer.ToString();
 }
 public override void Apply(MarkupContent content, MarkupRendererContext context)
 {
     content.Html = Expression.Replace(content.Html,
         delegate (Match match)
             {
                 var childContent = context.LoadSiblingContent(match.Groups["path"].Value);
                 if (childContent == null) return "";
                 content.SourceFiles.AddRange(childContent.SourceFiles);
                 return childContent.Html;
             }
         );
 }
        private static string BuildLink(MarkupRendererContext context, string content, string url, string anchor)
        {
            var builder = new StringBuilder();
            builder.Append("<a href='");

            if (url != null) builder.Append(context.ResolveInterContentLink(url));
            else builder.Append(context.ResolveInterContentLink(content));

            if (anchor != null) builder.Append("#" + anchor);

            builder.Append("'>");
            builder.Append(HttpUtility.HtmlEncode(content));
            builder.Append("</a>");
            return builder.ToString();
        }
 public override void Apply(MarkupContent content, MarkupRendererContext context)
 {
     content.Html = Expression.Replace(content.Html,
         delegate (Match match)
             {
                 var image = context.ResolveContentAttachmentPath(match.Groups["image"].Value);
                 var builder = new StringBuilder();
                 builder.AppendLine("<div class='image'>");
                 builder.AppendFormat("<img src='{0}' alt='Image {1}: {2}' />", image, match.Groups["index"].Value, match.Groups["caption"]).AppendLine();
                 builder.AppendFormat("<div>Image {0}: {1}</div>", match.Groups["index"].Value, match.Groups["caption"]);
                 builder.AppendLine("</div>");
                 return builder.ToString();
             }
         );
 }
        public MarkupRenderer(MarkupRendererContext context)
        {
            _context = context;
            _formatters = new List<IMarkupFormatter>
                              {
                                  // Block-level
                                  new ListingFormatter(),
                                  new QuoteFormatter(),
                                  new ImageFormatter(),
                                  new TableFormatter(),

                                  // Paragraph
                                  new ListFormatter(),

                                  // Paragraph level
                                  new BoldFormatter(),
                                  new HorizontalRuleFormatter(),
                                  new BackSlashFormatter(),
                                  new HeadingFormatter(),
                                  new InternalLinkFormatter(),
                                  new ParagraphFormatter(),
                                  new IncludeFormatter()
                              };
        }
 public abstract void Apply(MarkupContent content, MarkupRendererContext context);
 public override void Apply(MarkupContent content, MarkupRendererContext context)
 {
     content.Html = Expression.Replace(content.Html, Matcher);
 }
 public void Apply(MarkupContent content, MarkupRendererContext context)
 {
     content.Html = content.Html.Replace("\\", "");
 }
 public void Apply(MarkupContent content, MarkupRendererContext context)
 {
     content.Html = _listMatcher.Replace(content.Html, MatchFormatter);
 }