Пример #1
0
        public async Task <ActionResult> CollectionCreate(string userName, string Title, string Theme, string Description, string ShortDescription, string ImageUrl)
        {
            User User = await _userManager.FindByNameAsync(userName);

            string[] integers = Request.Form["Int"];
            string[] strings  = Request.Form["Str"];
            string[] dates    = Request.Form["Date"];
            string[] booles   = Request.Form["Bool"];
            string[] texts    = Request.Form["Text"];
            for (int i = 0; i < booles.Length; i++)
            {
                if (booles[i] == "$$$$$")
                {
                    booles[i] = "Incorrect name";
                }
            }
            Dictionary <string, string[]> dictionary = new Dictionary <string, string[]>
            {
                ["int"]  = integers,
                ["str"]  = strings,
                ["date"] = dates,
                ["bool"] = booles,
                ["text"] = texts
            };

            string     description = markdown.Transform(Description);
            string     title       = markdown.Transform(Title);
            Collection collection  = new Collection
            {
                Id               = Guid.NewGuid().ToString(),
                UserName         = User.UserName,
                UserId           = User.Id,
                nItems           = 0,
                Title            = title,
                Theme            = Theme,
                Description      = description,
                ShortDescription = ShortDescription,
                Fields           = JsonSerializer.Serialize(dictionary),
                Img              = ImageUrl,
                Type             = "Collection",
                Date             = DateTime.Now
            };

            User.nCollections++;
            await _userManager.UpdateAsync(User);

            await _collectionContext.Collections.AddAsync(collection);

            await _collectionContext.SaveChangesAsync();

            return(RedirectToAction("Collection", "Collection", new{ userName = userName, collectionId = collection.Id }));
        }
        /// <summary>
        /// Function that builds the contents of the generated file based on the contents of the input file
        /// </summary>
        /// <param name="inputFileContent">Content of the input file</param>
        /// <returns>Generated file as a byte array</returns>
        protected override byte[] GenerateCode(string inputFileContent)
        {

            var mdRegex = new System.Text.RegularExpressions.Regex(@"(\.\w+)\.(?:md|markdown)$");
            var matches = mdRegex.Match(Path.GetFileName(InputFilePath));

            if (matches.Groups.Count > 1)
            {
                try
                {
                    var input = File.ReadAllText(InputFilePath);
                    var md = new MarkdownSharp.Markdown();
                    var output = md.Transform(input);
                    return ConvertToBytes(output);
                }
                catch (Exception exception)
                {
                    GeneratorError(0, exception.Message, 0, 0);
                }
            }
            else
            {
                GeneratorError(0, "The Markdown tool is only for Markdown files with the following filename format: filename.[required_extension].md or filename.[required_extension].markdown", 0, 0);
            }

            return null;
        }
Пример #3
0
        /// <summary>
        /// Renders stand alone / master page
        /// </summary>
        /// <param name="templateContent">Template content</param>
        /// <returns>HTML converted to markdown</returns>
        public static string RenderMasterPage(string templateContent)
        {
            var second =
               templateContent.Substring(
                   templateContent.IndexOf("<!DOCTYPE html>", StringComparison.OrdinalIgnoreCase),
                   templateContent.IndexOf("<body", StringComparison.OrdinalIgnoreCase));

            var third = templateContent.Substring(second.Length);

            var forth = templateContent.Substring(second.Length, third.IndexOf(">", StringComparison.Ordinal) + 1);

            var header = second + forth;

            var toConvert = templateContent.Substring(header.Length,
                                                      (templateContent.IndexOf("</body>", StringComparison.Ordinal) -
                                                       (templateContent.IndexOf(forth, StringComparison.Ordinal) + forth.Length)));

            var footer =
                templateContent.Substring(templateContent.IndexOf("</body>", StringComparison.OrdinalIgnoreCase));

            var parser = new MarkdownSharp.Markdown();

            var html = parser.Transform(toConvert.Trim());

            var serverHtml = ParagraphSubstitution.Replace(html, "$1");

            //TODO: The "Replace" is simply for unit testing HTML/MD strings. Probably needs improving
            return string.Concat(header, serverHtml, footer).Replace("\r\n", "").Replace("\n", "").Replace("\r", "");
        }
        /// <summary>
        /// Request handler function. Overriden from RequestHandler class
        /// </summary>
        /// <param name="context">Request context</param>
        public override void HandleReqest(HttpListenerContext context)
        {
            _content.Append(TemplateText);

            if (context.Request.HttpMethod == "GET")
            {
                if (GetHandler != null)
                {
                    GetHandler(this, new HTTPEventArgs(EmbeddedHttpServer.GetFileName(context.Request.RawUrl), context.Request.QueryString));
                }
            }

            if (TemplateTags != null)
            {
                foreach (var keyvaluepair in TemplateTags)
                {
                    var toreplace = "{{" + keyvaluepair.Key + "}}";
                    _content.Replace(toreplace, keyvaluepair.Value.ToString());
                }
            }



            MarkdownSharp.Markdown md = new MarkdownSharp.Markdown();

            var output = Encoding.UTF8.GetBytes(BaseHTMLTemplate.Replace("{{md}}", md.Transform(_content.ToString())));

            context.Response.ContentType     = "text/html";
            context.Response.ContentLength64 = output.Length;
            context.Response.OutputStream.Write(output, 0, output.Length);
        }
Пример #5
0
        public void OnGet()
        {
            var    posts    = new List <Dictionary <string, string> >();
            string dbString = Environment.GetEnvironmentVariable("AZURE_DATABASE_CONNECTION_STRING");

            using (SqlConnection con = new SqlConnection(dbString)){
                con.Open();
                SqlCommand cmd = new SqlCommand("GetRecentPosts", con);
                cmd.CommandType = CommandType.StoredProcedure;

                SqlDataReader reader   = cmd.ExecuteReader();
                var           markdown = new MarkdownSharp.Markdown();
                while (reader.Read())
                {
                    var post = new Dictionary <string, string>();
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        post.Add(reader.GetName(i), reader.GetValue(i).ToString());
                    }

                    post["Content"] = markdown.Transform(post["Content"]);
                    Match m = Regex.Match(post["Content"], @"<p>\s*(.+?)\s*</p>");
                    if (m.Success)
                    {
                        post["Content"] = m.Groups[1].Value;
                    }
                    else
                    {
                        post["Content"] = "";
                    }
                    posts.Add(post);
                }
            }
            ViewData["Posts"] = posts;
        }
Пример #6
0
        public string Md2Html(string md)
        {
            string html = _md.Transform(md);

            html = string.Format(HTML_TMPL, CssText, html);
            return(html);
        }
Пример #7
0
        public string Transform(string input)
        {
            var md = new MarkdownSharp.Markdown();
            var outputContent = md.Transform(input);

            return outputContent;
        }
Пример #8
0
        public static string ReadDocFile(string file)
        {
            string html;

            switch (Path.GetExtension(file))
            {
            case ".md":
            case ".markdown":
                var markdown = new MarkdownSharp.Markdown();
                html = PrependHTML + "<div class='markdown-body'>" + markdown.Transform(File.ReadAllText(file)) + "</div>";
                break;

            case ".html":
            case ".htm":
            case ".xhtml":
                html = File.ReadAllText(file);
                break;

            case ".txt":
                html = PrependHTML + "<div class='markdown-body'>" + (File.ReadAllText(file).Replace("\r\n", "<br/>").Replace("\n\r", "<br/>").Replace("\r", "<br/>").Replace("\n", "<br/>")) + "</div>";
                break;

            default:
                throw new NotSupportedException("The file format cannot be converted to HTML or isn't supported by Auto-Autorun");
            }
            return(html);
        }
Пример #9
0
        private void UpdateOutput()
        {
            string outputHtml = markdown.Transform(inputTextBox.Text);

            outputWebBrowser.DocumentText = Style + outputHtml;
            //outputRichTextBox.Text = outputHtml;
        }
Пример #10
0
        public CommandResult Execute(NewPostCommand command)
        {
            var markdown = new MarkdownSharp.Markdown();
            //TODO:应该验证TitleSlug是否唯一
            var post = new BlogPost
            {
                AuthorEmail       = command.Author.Email,
                AuthorDisplayName = command.Author.DisplayName,
                MarkDown          = command.MarkDown,
                Content           = markdown.Transform(command.MarkDown),
                PubDate           = command.PubDate.CloneToUtc(),
                Status            = command.Published ? PublishStatus.Published : PublishStatus.Draft,
                Title             = command.Title,
                TitleSlug         = command.TitleSlug.IsNullOrWhitespace() ? command.Title.Trim().ToSlug() : command.TitleSlug.Trim().ToSlug(),
                DateUTC           = DateTime.UtcNow
            };

            if (!command.Tags.IsNullOrWhitespace())
            {
                post.Tags = command.Tags.Trim().Split(',')
                            .Select(t => new Tag {
                    Name = t.Trim(), Slug = t.Trim().ToSlug()
                })
                            .ToArray();
            }
            else
            {
                post.Tags = new Tag[] { }
            };

            var result = _collections.BlogPostCollection.Insert(post);

            return(CommandResult.SuccessResult);
        }
    }
Пример #11
0
        public AboutVoodoo()
        {
            InitializeComponent();

            try
            {
                Assembly     assembly         = Assembly.GetExecutingAssembly();
                Stream       textStream       = assembly.GetManifestResourceStream("VoodooUI.Resources.about.md");
                StreamReader textStreamReader = new StreamReader(textStream);

                String text = new StreamReader(textStream).ReadToEnd();

                MarkdownSharp.MarkdownOptions mdopt = new MarkdownSharp.MarkdownOptions();
                mdopt.AutoHyperlink = true; mdopt.LinkEmails = true;
                MarkdownSharp.Markdown parser = new MarkdownSharp.Markdown(mdopt);

                text = parser.Transform(text);
                webBrowser1.DocumentText = text;

                textStreamReader.Close();
            }
            catch (Exception exc)
            {
                webBrowser1.DocumentText = "Voodoo Shader Framework<br>\nCopyright (c) 2010-2013 by Sean Sube, All Rights Reserved.<br>\n<br>\nError loading info:<br>\n\t" + exc.Message;
            }

            m_NoNav = true;
        }
Пример #12
0
        public AboutVoodoo()
        {
            InitializeComponent();

            try
            {
                Assembly assembly = Assembly.GetExecutingAssembly();
                Stream textStream = assembly.GetManifestResourceStream("VoodooUI.Resources.about.md");
                StreamReader textStreamReader = new StreamReader(textStream);

                String text = new StreamReader(textStream).ReadToEnd();

                MarkdownSharp.MarkdownOptions mdopt = new MarkdownSharp.MarkdownOptions();
                mdopt.AutoHyperlink = true; mdopt.LinkEmails = true;
                MarkdownSharp.Markdown parser = new MarkdownSharp.Markdown(mdopt);

                text = parser.Transform(text);
                webBrowser1.DocumentText = text;

                textStreamReader.Close();
            }
            catch (Exception exc)
            {
                webBrowser1.DocumentText = "Voodoo Shader Framework<br>\nCopyright (c) 2010-2013 by Sean Sube, All Rights Reserved.<br>\n<br>\nError loading info:<br>\n\t" + exc.Message;
            }

            m_NoNav = true;
        }
Пример #13
0
        /// <summary>
        /// Get the contents of a template
        /// </summary>
        /// <param name="templateName">Name/location of the template</param>
        /// <param name="model">Model to use to locate the template via conventions</param>
        /// <returns>Contents of the template, or null if not found</returns>
        public string GetTemplate(string templateName, object model)
        {
            var viewLocationResult = this.renderContext.LocateView(templateName, model);

            if (viewLocationResult == null)
            {
                return("[ERR!]");
            }

            string templateContent;

            using (var reader = viewLocationResult.Contents.Invoke())
                templateContent = reader.ReadToEnd();

            if (viewLocationResult.Name.ToLower() == "master" && validExtensions.Any(x => x.Equals(viewLocationResult.Extension, StringComparison.OrdinalIgnoreCase)))
            {
                return(MarkdownViewengineRender.RenderMasterPage(templateContent));
            }

            if (!validExtensions.Any(x => x.Equals(viewLocationResult.Extension, StringComparison.OrdinalIgnoreCase)))
            {
                using (var reader = viewLocationResult.Contents.Invoke())
                    return(reader.ReadToEnd());
            }

            return(parser.Transform(templateContent));
        }
Пример #14
0
        /// <summary>
        /// Renders stand alone / master page
        /// </summary>
        /// <param name="templateContent">Template content</param>
        /// <returns>HTML converted to markdown</returns>
        public static string RenderMasterPage(string templateContent)
        {
            var second =
                templateContent.Substring(
                    templateContent.IndexOf("<!DOCTYPE html>", StringComparison.OrdinalIgnoreCase),
                    templateContent.IndexOf("<body", StringComparison.OrdinalIgnoreCase));

            var third = templateContent.Substring(second.Length);

            var forth = templateContent.Substring(second.Length, third.IndexOf(">", StringComparison.Ordinal) + 1);

            var header = second + forth;

            var toConvert = templateContent.Substring(header.Length,
                                                      (templateContent.IndexOf("</body>", StringComparison.Ordinal) -
                                                       (templateContent.IndexOf(forth, StringComparison.Ordinal) + forth.Length)));

            var footer =
                templateContent.Substring(templateContent.IndexOf("</body>", StringComparison.OrdinalIgnoreCase));

            var parser = new MarkdownSharp.Markdown();

            var html = parser.Transform(toConvert.Trim());

            var serverHtml = ParagraphSubstitution.Replace(html, "$1");

            //TODO: The "Replace" is simply for unit testing HTML/MD strings. Probably needs improving
            return(string.Concat(header, serverHtml, footer).Replace("\r\n", "").Replace("\n", "").Replace("\r", ""));
        }
Пример #15
0
        public ActionResult Show([Bind(Prefix = "id")] string slug)
        {
            if (string.IsNullOrWhiteSpace(slug))
            {
                throw new ArgumentNullException("slug");
            }

            Entry entry;

            try
            {
                entry = Services.Entry.GetBySlug(slug);
            }
            catch (Exception ex)
            {
                throw new HttpException(404, "Entry not found", ex);
            }

            var markdown = new MarkdownSharp.Markdown();
            var html     = markdown.Transform(entry.Markdown);

            var model = new ShowModel
            {
                Date             = entry.DateCreated.ToString("dddd, dd MMMM yyyy"),
                Slug             = entry.Slug,
                Title            = entry.Title,
                Html             = html,
                IsCodePrettified = entry.IsCodePrettified ?? true
            };

            return(View(model));
        }
Пример #16
0
        public string FormatBody(string link)
        {
            var engine = new MarkdownSharp.Markdown();
            var html   = engine.Transform(Markdown.Replace("{LINK}", link));

            return(html);
        }
Пример #17
0
        public static string GetHomeHtml(int appId)
        {
            string text;

            if (homes.TryGetValue(appId, out text))
            {
                return(text);
            }

            ServiceModel sm  = ServiceModel.GetCurrent();
            Application  app = sm.GetApplication(appId);

            sm.Dispose();

            MarkdownSharp.Markdown md = new MarkdownSharp.Markdown();
            md.AutoHyperlink   = true;
            md.AutoNewLines    = true;
            md.BaseHeaderLevel = 1;
            try {
                string res     = md.Transform(app.Description);
                var    newDict = new Dictionary <int, string> (homes);
                newDict [appId] = res;
                homes           = newDict;
                return(res);
            } catch (Exception ex) {
                return("Invalid description: " + ex.Message);
            }
        }
        string GetHTMLText(string text, bool extraSpace)
        {
            StringBuilder html = new StringBuilder();

            html.AppendLine("<html><head>")
            .AppendLine("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">")
            .AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">")
            .AppendFormat("<link rel='stylesheet' href='{0}'/>", MarkdownCssPath).AppendLine()
            .AppendLine("<script>function getVerticalScrollPosition() {return document.body.scrollTop.toString();} function setVerticalScrollPosition(position) {document.body.scrollTop = position;}</script>")
            .AppendLine("</head><body>");

            markdownTransform.SkipIncludes    = MarkdownSettings.SkipIncludeProcessing;
            markdownTransform.HideIncludeDivs = MarkdownSettings.HideIncludeDivs;
            markdownTransform.SkipImages      = MarkdownSettings.SkipImages;
            markdownTransform.HideImages      = MarkdownSettings.HideImages;

            html.AppendLine(markdownTransform.Transform(text, markdownDocumentPath));
            if (extraSpace)
            {
                for (int i = 0; i < 20; i++)
                {
                    html.Append("<br />");
                }
            }

            html.AppendLine("</body></html>");

            return(html.ToString());
        }
        /// <summary>
        /// Function that builds the contents of the generated file based on the contents of the input file
        /// </summary>
        /// <param name="inputFileContent">Content of the input file</param>
        /// <returns>Generated file as a byte array</returns>
        protected override byte[] GenerateCode(string inputFileContent)
        {
            try
            {               
                //If the input file doesn't contain an inline output extension then use the file namespace,
                if (new Regex(@"(\.\w+)\" + Path.GetExtension(InputFilePath))
                    .Match(Path.GetFileName(InputFilePath)).Groups.Count == 1)
                {
                    DefaultExtension = "." + this.FileNameSpace;
                }
                else //leave the default extension blank to use the inline extension
                {
                    DefaultExtension = string.Empty;
                }

                var input = File.ReadAllText(InputFilePath);
                var md = new MarkdownSharp.Markdown();
                var output = md.Transform(input);
                return ConvertToBytes(output);
            }
            catch (Exception exception)
            {
                GeneratorError(0, exception.Message, 0, 0);
            }

            return null;
        }
Пример #20
0
        /// <summary>
        /// Function that builds the contents of the generated file based on the contents of the input file
        /// </summary>
        /// <param name="inputFileContent">Content of the input file</param>
        /// <returns>Generated file as a byte array</returns>
        protected override byte[] GenerateCode(string inputFileContent)
        {

            //if (InputFilePath.EndsWith("_md"))
            var mdRegex = new System.Text.RegularExpressions.Regex(@"\w+\.\w+_md");
            if (mdRegex.IsMatch(Path.GetFileName(InputFilePath)))
            {
                try
                {
                    var input = File.ReadAllText(InputFilePath);
                    var md = new MarkdownSharp.Markdown();
                    var output = md.Transform(input);
                    return ConvertToBytes(output);
                }
                catch (Exception exception)
                {
                    GeneratorError(0, exception.Message, 0, 0);
                }
            }
            else
            {
                GeneratorError(0, "The Markdown tool is only for Markdown files with the following filename format: filename.[required_extension]_md", 0, 0);
            }

            return null;
        }
Пример #21
0
        private string GetReleaseNotes(NetSparkleAppCastItem item)
        {
            if (string.IsNullOrEmpty(item.ReleaseNotesLink))
            {
                return(null);
            }

            string notes = DownloadReleaseNotes(item.ReleaseNotesLink);

            if (string.IsNullOrEmpty(notes))
            {
                return(null);
            }

            var extension = Path.GetExtension(item.ReleaseNotesLink);

            if (extension != null && MarkDownExtension.Contains(extension.ToLower()))
            {
                try
                {
                    var md = new MarkdownSharp.Markdown();
                    notes = md.Transform(notes);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Error parsing MarkDown syntax: " + ex.Message);
                }
            }
            return(notes);
        }
Пример #22
0
        public ActionResult Show([Bind(Prefix = "id")] string slug)
        {
            if (string.IsNullOrWhiteSpace(slug))
                throw new ArgumentNullException("slug");

            Entry entry;
            try
            {
                entry = Services.Entry.GetBySlug(slug);
            }
            catch (Exception ex)
            {
                throw new HttpException(404, "Entry not found", ex);
            }

            var markdown = new MarkdownSharp.Markdown();
            var html = markdown.Transform(entry.Markdown);

            var model = new ShowModel
            {
                Date = entry.DateCreated.ToString("dddd, dd MMMM yyyy"),
                Slug = entry.Slug,
                Title = entry.Title,
                Html = html,
                IsCodePrettified = entry.IsCodePrettified ?? true
            };

            return View(model);
        }
Пример #23
0
        public void RenderIssue()
        {
            NavigationItem.RightBarButtonItem.Enabled = true;

            var state = ViewModel.Issue.State;

            if (state == null)
            {
                state = "No State";
            }

            var milestone     = ViewModel.Issue.Milestone;
            var milestoneStr  = milestone != null ? milestone.Title : "No Milestone";
            var assignedTo    = ViewModel.Issue.Assignee;
            var assignedToStr = ViewModel.Issue.Assignee != null ? ViewModel.Issue.Assignee.Login : null;

            var issue = new { state             = state,
                              milestone         = milestoneStr,
                              assigned_to       = assignedToStr ?? "Unassigned",
                              updated_at        = "Updated " + ViewModel.Issue.UpdatedAt.ToDaysAgo(),
                              title             = ViewModel.Issue.Title,
                              assigned_to_login = assignedToStr ?? "" };

            var data = new RestSharp.Serializers.JsonSerializer().Serialize(issue);

            Web.EvaluateJavascript("var a = " + data + "; setData(a);");

            var md = new MarkdownSharp.Markdown();

            var desc = FileSourceViewController.JavaScriptStringEncode(md.Transform(ViewModel.Issue.Body));

            Web.EvaluateJavascript("var a = \"" + desc + "\"; setDescription(a);");
        }
Пример #24
0
        private static string MarkdownReplace(string text) {
            if (string.IsNullOrEmpty(text))
                return string.Empty;

            var markdown = new MarkdownSharp.Markdown();
            return markdown.Transform(text);
        }
Пример #25
0
        public static void Write(HttpContext context, string file)
        {
            var md = new MarkdownSharp.Markdown();
            context.Response.ContentType = "text/html";

            // < html xmlns = ""http://www.w3.org/1999/xhtml"">
            context.Response.Output.Write(@"<!DOCTYPE html>
            <html>
            <head>
            <meta http-equiv=""X-UA-Compatible"" content=""IE=edge,chrome=1"" />
            <meta charset=""utf-8"">
            <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" />
            <title>");

            context.Response.Output.Write(System.IO.Path.GetFileNameWithoutExtension(file));

            context.Response.Output.Write(@"</title>
            <meta http-equiv=""cache-control"" content=""max-age=0"" />
            <meta http-equiv=""cache-control"" content=""no-cache"" />
            <meta http-equiv=""expires"" content=""0"" />
            <meta http-equiv=""expires"" content=""Tue, 01 Jan 1980 1:00:00 GMT"" />
            <meta http-equiv=""pragma"" content=""no-cache"" />

            <base href =""/ajax/Resource.ashx/");
            context.Response.Output.Write(System.Web.HttpUtility.UrlPathEncode(
            Base64Encode(System.IO.Path.GetDirectoryName(file))
             ));
            context.Response.Output.Write(@"/"" />
            <link rel=""canonical"" href=""");

            string str = new System.Uri(file).AbsoluteUri;
            context.Response.Output.Write(str);

            context.Response.Output.Write(@""" />");

            context.Response.Output.Write("<style type=\"text/css\">");

            // http://stackoverflow.com/questions/6784799/what-is-this-char-65279
            // It's a zero-width no-break space. It's more commonly used as a byte-order mark (BOM).
            // context.Response.WriteFile(System.Web.Hosting.HostingEnvironment.MapPath("~/style.css"));
            // http://www.fileformat.info/info/unicode/char/feff/index.htm
            // \32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\64\102\111\110\116\45\102\97\99\101\32\123
            // \32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\65279\64\102\111\110\116\45\102\97\99\101\32\123

            context.Response.Output.Write(
                System.IO.File.ReadAllText(System.Web.Hosting.HostingEnvironment.MapPath("~/style.css"), System.Text.Encoding.UTF8)
            );
            context.Response.Output.Write("</style>");

            context.Response.Output.Write(@"
            <link type=""text/css"" rel=""stylesheet"" href=""Content/style.css"" />
            <script type=""text/javascript"" src=""./Scripts/libs/jquery.js""></script>
            </head>
            <body>
            ");

            context.Response.Output.Write(md.Transform(System.IO.File.ReadAllText(file)));
            context.Response.Output.Write(@"</body></html>");
        }
Пример #26
0
        private string GetReleaseNotes(NetSparkleAppCastItem item)
        {
            // at first try to use embedded description
            if (!string.IsNullOrEmpty(item.Description))
            {
                // check for markdown
                Regex containsHtmlRegex = new Regex(@"<\s*([^ >]+)[^>]*>.*?<\s*/\s*\1\s*>");
                if (containsHtmlRegex.IsMatch(item.Description))
                {
                    return(item.Description);
                }
                else
                {
                    var md   = new MarkdownSharp.Markdown();
                    var temp = md.Transform(item.Description);
                    return(temp);
                }
            }

            // no embedded so try to get external
            if (string.IsNullOrEmpty(item.ReleaseNotesLink))
            {
                return(null);
            }

            // download release note
            string notes = DownloadReleaseNotes(item.ReleaseNotesLink);

            if (string.IsNullOrEmpty(notes))
            {
                return(null);
            }

            // check dsa of release notes
            if (!string.IsNullOrEmpty(item.ReleaseNotesDSASignature))
            {
                if (_sparkle.DSAVerificator.VerifyDSASignatureOfString(item.ReleaseNotesDSASignature, notes) == ValidationResult.Invalid)
                {
                    return(null);
                }
            }

            // process release notes
            var extension = Path.GetExtension(item.ReleaseNotesLink);

            if (extension != null && MarkDownExtension.Contains(extension.ToLower()))
            {
                try
                {
                    var md = new MarkdownSharp.Markdown();
                    notes = md.Transform(notes);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Error parsing MarkDown syntax: " + ex.Message);
                }
            }
            return(notes);
        }
Пример #27
0
 private string ConvertToHtml(string source)
 {
     var md = new MarkdownSharp.Markdown();
     md.AddExtension(new GitHubCodeBlockExtension());
     var html = md.Transform(source);
     html = CleanHtml(html);
     return html;
 }
Пример #28
0
        public static string Encode(string text)
        {
            var md = new MarkdownSharp.Markdown();

            return(md.Transform(text));
            //question.HtmlBody = question.HtmlBody.Replace("<code>", "<pre class='prettyprint'>");
            //question.HtmlBody = question.HtmlBody.Replace("</code>", "</pre>");
        }
Пример #29
0
        /// <summary>
        /// Converts markdown into HTML
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string ConvertMarkDown(string str)
        {
            var md = new MarkdownSharp.Markdown {
                AutoHyperlink = true, LinkEmails = false
            };

            return(md.Transform(str));
        }
Пример #30
0
        public string Transform(string input)
        {
            var md = new MarkdownSharp.Markdown();
            return md.Transform(input);

            //var md = new anrControls.Markdown();
            //return md.Transform(input);
        }
Пример #31
0
        public void WriteMain(string title, string about)
        {
            StreamWriter writer = new StreamWriter("index.html", false, Encoding.UTF8);

            WriteHtmlHeader(ref writer, title);
            writer.WriteLine("<frameset cols=\"230,*\" title=\"index\">");
            writer.WriteLine("<frame src=\"frame_index.html\" name=\"index\" id=\"index\" title=\"インデックス\" />");
            writer.WriteLine("<frame src=\"about.html\" name=\"main\" id=\"main\" title=\"内容\" />");
            writer.WriteLine("<noframes><body>フレーム対応のブラウザでご覧ください</body></noframes>");
            writer.WriteLine("</frameset>");
            writer.WriteLine("</html>");
            writer.Close();

            writer = new StreamWriter("about.html", false, Encoding.UTF8);
            WriteHtmlHeader(ref writer, title);
            writer.WriteLine("<body>");
            writer.WriteLine(Markdown.Transform(about));
            writer.WriteLine("</body>");
            writer.WriteLine("</html>");
            writer.Close();

            WriteIndex();

            WriteHtml(this, "");
        }
Пример #32
0
        public string ConvertToMarkdown(string str)
        {
            var options = new MarkdownSharp.MarkdownOptions();

            options.AutoHyperlink = true;
            var md = new MarkdownSharp.Markdown(options);

            return(md.Transform(str));
        }
Пример #33
0
 public static string Convert(string markdownContent)
 {
     MarkdownSharp.Markdown markdown = new MarkdownSharp.Markdown
     {
         AutoNewLines  = true,
         AutoHyperlink = true
     };
     return(markdown.Transform(markdownContent));
 }
Пример #34
0
        public IResult Render(AtomInstance atom)
        {
            var transformer = new MarkdownSharp.Markdown();

            var markdown = atom.Properties.Get("markdown");

            var html = transformer.Transform(markdown);

            return(new Result(viewHelper => viewHelper.RenderPartial("Markdown", html)));
        }
Пример #35
0
        public static string Transform(string input)
        {
            //MarkdownSharp.MarkdownOptions mdo = new MarkdownSharp.MarkdownOptions();
            //mdo.AutoHyperlink = true;
            //mdo.AutoNewlines = true;
            MarkdownSharp.Markdown md = new MarkdownSharp.Markdown(); //mdo);
            md.AutoHyperlink = true;

            return md.Transform(input);
        }
Пример #36
0
        public static string TranslateWithStyle(string markdownText)
        {
            var lMarkdown = new MarkdownSharp.Markdown();

            var lStyleSheet = Properties.Resources.PreviewStyleSheet;
            var lHeader = Properties.Settings.Default.MarkdownStyleHeader + lStyleSheet + Properties.Settings.Default.MarkdownBodyHeader;
            var lBody = lMarkdown.Transform(markdownText);
            var lFooter = Properties.Settings.Default.MarkdownBodyFooter;
            return lHeader + lBody + lFooter;
        }
Пример #37
0
        public string Transform(string markdownText, string baseUrl)
        {
            // TODO Valutare se usare un'altra libreria per performance migliori
            //  e perchè credo che questa non supporta il multithreading e bisogna ricreare ogni volta l'istanza. Da verificare.

            var markdown = new MarkdownSharp.Markdown();
            markdown.BaseUrl = baseUrl;

            return markdown.Transform(markdownText);
        }
Пример #38
0
        /// <summary> Transform markdown to html. </summary>
        static string GenerateHtml(string markdown)
        {
            var parser = new MarkdownSharp.Markdown(new MarkdownSharp.MarkdownOptions()
            {
                AutoNewLines = true
            });
            string result = parser.Transform(markdown);

            return(html_head + result + html_tail);
        }
Пример #39
0
        // Prepares a single chunk of code for HTML output and runs the text of its
        // corresponding comment through **Markdown**, using a C# implementation
        // called [MarkdownSharp](http://code.google.com/p/markdownsharp/).
        private static void Hightlight(List <Section> sections)
        {
            var markdown = new MarkdownSharp.Markdown();

            foreach (var section in sections)
            {
                section.DocsHtml = markdown.Transform(section.DocsHtml);
                section.CodeHtml = System.Web.HttpUtility.HtmlEncode(section.CodeHtml);
            }
        }
Пример #40
0
		/// <summary>
		/// Gets the block with the given internal id.
		/// </summary>
		/// <param name="internalId">The internal id</param>
		/// <returns>The block content as html</returns>
		public static IHtmlString Get(string internalId) {
			using (var rep = new Goldfish.Blocks.Api()) {
				var block = rep.GetByInternalId(internalId);

				if (block != null) {
					var converter = new MarkdownSharp.Markdown();
					return new HtmlString(converter.Transform(block.Body));
				}
				return new HtmlString("");
			}
		}
Пример #41
0
        public static string RenderMarkdown(string input)
        {
            // string input = "code sample:\n\n    <head>\n    <title>page title</title>\n    </head>\n";
            MarkdownSharp.Markdown m = new MarkdownSharp.Markdown();
            string strHTML           = m.Transform(input);

            // strHTML = string.Format(PageTemplate, strHTML);
            m = null;

            return(strHTML);
        }         // End Function RenderMarkdown
Пример #42
0
        private static string MarkdownReplace(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(string.Empty);
            }

            var markdown = new MarkdownSharp.Markdown();

            return(markdown.Transform(text));
        }
Пример #43
0
        public static string TranslateWithStyle(string markdownText)
        {
            var lMarkdown = new MarkdownSharp.Markdown();

            var lStyleSheet = Properties.Resources.PreviewStyleSheet;
            var lHeader     = Properties.Settings.Default.MarkdownStyleHeader + lStyleSheet + Properties.Settings.Default.MarkdownBodyHeader;
            var lBody       = lMarkdown.Transform(markdownText);
            var lFooter     = Properties.Settings.Default.MarkdownBodyFooter;

            return(lHeader + lBody + lFooter);
        }
Пример #44
0
        // Prepares a single chunk of code for HTML output and runs the text of its
        // corresponding comment through **Markdown**, using a C# implementation
        // called [MarkdownSharp](http://code.google.com/p/markdownsharp/).
        private static void Hightlight(string source, List <Section> sections)
        {
            var markdown = new MarkdownSharp.Markdown();

            for (var i = 0; i < sections.Count; i++)
            {
                var section = sections[i];
                section.DocsHtml = markdown.Transform(section.DocsHtml);
                section.CodeHtml = System.Web.HttpUtility.HtmlEncode(section.CodeHtml);
            }
        }
        public override string Compile([NotNull] IFieldCompileContext context, [NotNull] Field field)
        {
            var indicator = GetIndicatorToken(context.Configuration);

            // Trim indicator
            var wip = field.Value.Substring(indicator.Length);

            var transformer = new MarkdownSharp.Markdown();
            wip = transformer.Transform(wip);

            return wip;
        }
Пример #46
0
 public static string ConvertToHtml(string mdStr)
 {
     try
     {
         MarkdownSharp.Markdown mds = new MarkdownSharp.Markdown();
         return(mds.Transform(mdStr));
     }
     catch (Exception ex)
     {
         return("Convert MarkDown To HTML Faile!");
     }
 }
Пример #47
0
        public ActionResult Index(string returnUrl = null) {
            var settings = _wca.GetContext().CurrentSite.As<SplashScreenSettingsPart>();
            var markdown = new MarkdownSharp.Markdown();

            return View(new SplashScreenViewModel {
                AcceptButtonText = settings.AcceptButtonText,
                RedirectUrl = settings.RedirectUrl,
                RejectButtonText = settings.RejectButtonText,
                ReturnUrl = returnUrl,
                SplashScreenContents = markdown.Transform(settings.SplashScreenContents)
            });
        }
        static HtmlString FormatMarkdown(string value)
        {
            if (String.IsNullOrWhiteSpace(value)) return null;

            var md = new MarkdownSharp.Markdown();

            //if (convertToCode) value = ConvertToCode(value);

            var result = md.Transform(value);

            return new HtmlString(result);
        }
        public static void Configure()
        {
            Mapper.CreateMap<User, UserInfo>()
                .ForMember(ui => ui.IsAuthenticated, opt => opt.UseValue(true))
                .ForMember(ui => ui.IsAdmin, opt => opt.Condition((User u) => u is Administrator));

            var markDown = new MarkdownSharp.Markdown();
            Mapper.CreateMap<Service, ServiceSerializeInfo>()
                .ForMember(si => si.Lat, opt => opt.MapFrom(s => s.Location.Y))
                .ForMember(si => si.Lng, opt => opt.MapFrom(s => s.Location.X))
                .ForMember(si => si.Body, opt => opt.MapFrom(s => markDown.Transform(s.Body)));

            Mapper.CreateMap<User, EditUserModel>()
                .ForMember(si => si.Latitude, opt => opt.MapFrom(s => s.Location.Y))
                .ForMember(si => si.Longitude, opt => opt.MapFrom(s => s.Location.X));
        }
        public string GetTemplate(string templateName, object model)
        {
            var viewLocationResult = this.renderContext.LocateView(templateName, model);

            if (viewLocationResult == null)
            {
                return "[ERR!]";
            }

            var masterpartialContent = viewLocationResult.Contents.Invoke().ReadToEnd();

            if (viewLocationResult.Extension == "md")
            {
                string html = string.Empty;

                if (viewLocationResult.Name == "master")
                {
                    string header = masterpartialContent.Substring(masterpartialContent.IndexOf("<!DOCTYPE html>", System.StringComparison.Ordinal),
                                                                   masterpartialContent.IndexOf("<body>", System.StringComparison.Ordinal) + 6);

                    string toConvert =
                        masterpartialContent.Substring(
                            masterpartialContent.IndexOf("<body>", System.StringComparison.Ordinal) + 6,
                            (masterpartialContent.IndexOf("</body>", System.StringComparison.Ordinal) - 7) -
                            (masterpartialContent.IndexOf("<body>", System.StringComparison.Ordinal)));

                    string footer = masterpartialContent.Substring(masterpartialContent.IndexOf("</body>", System.StringComparison.Ordinal));

                    var parser = new MarkdownSharp.Markdown();
                    html = parser.Transform(toConvert);

                    var regex = new Regex("<p>(@[^<]*)</p>");
                    var serverHtml = regex.Replace(html, "$1");

                    return header + serverHtml + footer;
                }
                else
                {
                    var parser = new MarkdownSharp.Markdown();
                    html = parser.Transform(masterpartialContent);
                }

                return html;
            }
            
            return masterpartialContent;
        }
Пример #51
0
        /// <summary>
        /// mini test harness for one-liner Markdown bug repros 
        /// for anything larger, I recommend using the folder based approach and Test()
        /// </summary>
        private static void AdHocTest()
        {
            var m = new MarkdownSharp.Markdown();
            //var m = new MarkdownSharp.MarkdownOld();

            //string input = "<div class=\"inlinepage\">\n<div class=\"toggleableend\">\nfoo\n</div>\n</div>";
            //string input = "Same thing but with paragraphs:\n\n1. First\n\n2. Second:\n\t* Fee\n\t* Fie\n\t* Foe\n\n3. Third\n\n";
            //string input = "*\tthis\n\n\t*\tsub\n\n\tthat";
            string input = "1. one\n\n        code<t>\n\n2. two\n\n        code<t>\n            indented-12-spaces<t>\n\n";

            string output = m.Transform(input);

            Console.WriteLine("input:");
            Console.WriteLine(input);
            Console.WriteLine("output:");
            Console.WriteLine(output);
        }
Пример #52
0
        private async void pivot_SelectionChanged(object sender, 
            SelectionChangedEventArgs e)
        {
            var pivot = sender as Pivot;
            if (pivot == null)
            {
                return;
            }

            // 入力されているテキストを保存する
            await SaveTextAsync(editorArea.Text);

            // markdownからhtmlに変換してプレビューページに表示する
            var markdown = new MarkdownSharp.Markdown();
            var transHtml = markdown.Transform(editorArea.Text);
            previewArea.NavigateToString(transHtml);
        }
Пример #53
0
        static void Main(string[] args)
        {
            try
            {
                var m = new MarkdownSharp.Markdown();

                m.AutoHyperlink = true;
                m.StrictBoldItalic = true;

                string html = m.Transform(File.ReadAllText(args[0]));

                File.WriteAllText(args[1], html);
            }
            catch (Exception e)
            {
                Console.Error.Write(e.ToString());
            }
        }
Пример #54
0
 public ActionResult Create(ProjectEditModel project)
 {
     if (ModelState.IsValid)
     {
         var md = new MarkdownSharp.Markdown();
         var proj = new Project
         {
             Name = project.Name,
             Description = md.Transform(project.DescriptionMarkdown),//TODO sanitise, see jeff atwoods sanitizer http://refactormycode.com/codes/333-sanitize-html (its currently offline)
             DescriptionMarkdown = project.DescriptionMarkdown,
             Conception = DateTime.Now,
             Conceivers = new List<User> { _userRepository.GetCurrentUser() }
         };
         _projectRepository.Create(proj);
         return Json(new { success = true });
     }
     return PartialView("EditModal", project);
 }
		public static Document GetContentPage(string pageId)
		{
			pageId = pageId.Replace(Path.PathSeparator, ' ')
				.Replace(Path.VolumeSeparatorChar, ' ')
				.Replace(Path.AltDirectorySeparatorChar, ' ')
				.Replace(Path.DirectorySeparatorChar, ' ');

			var path = Path.Combine(Settings.PagesPath, pageId + ".markdown");
			if (!File.Exists(path))
				return null;

			var contents = File.ReadAllText(path);
			var markdown = new MarkdownSharp.Markdown();
			return new Document
					{
						Content = MvcHtmlString.Create(markdown.Transform(contents)),
						Id = pageId,
						Title = MvcHtmlString.Create(pageId),
					};
		}
Пример #56
0
        public static string ToHtml(string markdown)
        {
            var md = new MarkdownSharp.Markdown();

            var result = md.Transform(markdown);

            // HACK: postprocessing to cleanup stuff
            result = Regex.Replace(result, "(\n)", "<br />");
            if (result.EndsWith("<br />"))
            {
                result = result.Remove(result.Length - 6);
            }

            foreach (var tag in BlockLevelTags)
            {
                result = result.Replace("<" + tag + "><br />", "<" + tag + ">");
                result = result.Replace("</" + tag + "><br />", "</" + tag + ">");
            }

            return result;
        }
Пример #57
0
        public ActionResult Index()
        {
            var markdown = new MarkdownSharp.Markdown();
            var baseUri = new Uri(Request.Url.GetLeftPart(UriPartial.Authority));

            var entries =
                _services.Entry.GetList()
                .OrderByDescending(e => e.DateCreated)
                .Take(10)
                .Select(e => new SyndicationItem(
                    e.Title,
                    markdown.Transform(e.Markdown),
                    new Uri(baseUri, Url.Action("Show", "Entry", new { id = e.Slug }, null))));

            var feed = new SyndicationFeed(
                title: _services.Config.Current.Heading,
                description: _services.Config.Current.Tagline,
                feedAlternateLink: new Uri(baseUri, Url.Action("Index", "Feed")),
                items: entries);

            return new RssResult(feed);
        }
Пример #58
0
        public string Transform(string source, bool external = true)
        {
            if (external)
                source = HttpUtility.UrlDecode(source);
            var md = new MarkdownSharp.Markdown();
            var transformed = md.Transform(source);

            var start = "<p>```c#";
            var end = "```</p>";

            while (transformed.IndexOf(start, StringComparison.Ordinal) > -1)
            {
                var startIndex = transformed.IndexOf(start, StringComparison.Ordinal);
                var endIndex = transformed.IndexOf(end, startIndex, StringComparison.Ordinal);
                var firstHalf = transformed.Substring(0, startIndex);
                var secondHalf = transformed.Substring(endIndex + end.Length);
                var text = transformed.Substring(startIndex + start.Length, endIndex - startIndex - start.Length).Replace("&gt;", ">").Replace("&lt;", "<");
                transformed = firstHalf + _highlighter.HighlightToHtml(HtmlRemoval.StripTagsRegexCompiled(text), "c#", "vs", lineNumberStyle: LineNumberStyle.table, fragment: false) + secondHalf;
            }
            /*if (external)
                return HttpUtility.UrlEncode(transformed);*/
            return transformed;
        }
Пример #59
0
 /// <summary>
 /// Converts markdown into HTML
 /// </summary>
 /// <param name="str"></param>
 /// <returns></returns>
 public static string ConvertMarkDown(string str)
 {
     var md = new MarkdownSharp.Markdown { AutoHyperlink = true, LinkEmails = false };
     return md.Transform(str);
 }
Пример #60
0
 public string FormatBody(string link)
 {
     var engine = new MarkdownSharp.Markdown();
       var html = engine.Transform(this.Markdown.Replace("{LINK}", link));
       return html;
 }