public MvcHtmlString Render(RepositoryBlob blob) { var tag = new TagBuilder("img"); tag.Attributes.Add("src", blob.RawUrl); tag.Attributes.Add("alt", blob.FileName); return(new MvcHtmlString(tag.ToString(TagRenderMode.SelfClosing))); }
public MvcHtmlString Render(RepositoryBlob blob) { var tag = new TagBuilder("pre"); tag.AddCssClass("prettyprint linenums"); tag.InnerHtml = HttpUtility.HtmlEncode(blob.Content); return(new MvcHtmlString(tag.ToString(TagRenderMode.Normal))); }
public static RepositoryBlob FindFile(this Tree instance, string subPath) { var repositoryBlob = new RepositoryBlob(); var segments = subPath.Split( new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); var obj = instance; foreach (var segment in segments) { foreach (var entry in obj) { if (entry.Name.Equals(segment, StringComparison.OrdinalIgnoreCase)) { if (entry.TargetType == TreeEntryTargetType.Tree) { obj = (Tree)entry.Target; break; } if (entry.TargetType == TreeEntryTargetType.Blob) { var blob = (Blob)entry.Target; repositoryBlob.FileName = entry.Name; repositoryBlob.RawContent = blob.Content; using (var ms = new MemoryStream(blob.Content)) using (var reader = new StreamReader(ms, true)) { repositoryBlob.Content = reader.ReadToEnd(); } repositoryBlob.FileSize = string.Format( "{0:0.###} kb", ((double)blob.Content.LongLength / 1024)); return(repositoryBlob); } } } } return(null); }
public static MvcHtmlString RenderViewer( this HtmlHelper instance, RepositoryBlob blob) { Func <Type, IContentViewer> createInstance = type => (IContentViewer)Activator.CreateInstance(type); Func <string, ExtensionCollection, bool> matchesExtension = (fileName, extensions) => { fileName = fileName.ToUpper(); return(extensions .Cast <ExtensionElement>() .Select(element => element.Extension.ToUpper()) .Any(extension => fileName.EndsWith(extension))); }; var section = Settings.Section; if (matchesExtension(blob.FileName, section.Extensions)) { return(new MvcHtmlString("// NO PREVIEW AVAILABLE")); } var viewers = section.Viewers; var contentViewer = viewers .Cast <ViewerElement>() .Where(viewer => matchesExtension(blob.FileName, viewer.Extensions)) .Select(viewer => createInstance(viewer.Type)) .FirstOrDefault() ?? createInstance(viewers.FallbackViewerType); return(contentViewer.Render(blob)); }
public MvcHtmlString Render(RepositoryBlob blob) { var markdown = new Markdown(); return(new MvcHtmlString(markdown.Transform(blob.Content))); }