예제 #1
0
        private static string MarkdownReplace(string text) {
            if (string.IsNullOrEmpty(text))
                return string.Empty;

            var markdown = new MarkdownSharp.Markdown();
            return markdown.Transform(text);
        }
        /// <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);
        }
예제 #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>
        /// 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;
        }
예제 #5
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;
        }
예제 #6
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;
        }
예제 #7
0
        private void ReleaseHandler()
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");

                using (var response = client.GetAsync("https://api.github.com/repos/smith-chem-wisc/MetaMorpheus/releases").Result)
                {
                    string        json            = response.Content.ReadAsStringAsync().Result;
                    JArray        GitArray        = JArray.Parse(json);
                    var           currV           = GetVersionNumber(GlobalVariables.MetaMorpheusVersion);
                    StringBuilder allVersionsText = new StringBuilder();
                    foreach (JObject obj in GitArray.Children <JObject>())
                    {
                        var checkVersion = GetVersionNumber(obj.SelectToken("tag_name").ToString());
                        if (checkVersion.Item1 < currV.Item1 ||
                            (checkVersion.Item1 == currV.Item1 && checkVersion.Item2 < currV.Item2) ||
                            (checkVersion.Item1 == currV.Item1 && checkVersion.Item2 == currV.Item2 && checkVersion.Item3 <= currV.Item3))
                        {
                            break;
                        }
                        string body = new MarkdownSharp.Markdown().Transform(obj.SelectToken("body").ToString());
                        allVersionsText.AppendLine("<font face=\"Arial\" size=2>");
                        allVersionsText.AppendLine("<h3>" + obj.SelectToken("tag_name").ToString() + "</h3>");
                        allVersionsText.AppendLine(body);
                        allVersionsText.AppendLine();
                        allVersionsText.AppendLine("</font>");
                    }
                    releases.NavigateToString(allVersionsText.ToString());
                    releases.Navigating += Releases_Navigating;
                }
            }
        }
 public MarkdownViewEngineHost(IViewEngineHost viewEngineHost, IRenderContext renderContext)
 {
     this.viewEngineHost = viewEngineHost;
     this.renderContext = renderContext;
     this.Context = this.renderContext.Context;
     this.parser = new MarkdownSharp.Markdown();
 }
예제 #9
0
        public string Transform(string input)
        {
            var md = new MarkdownSharp.Markdown();
            var outputContent = md.Transform(input);

            return outputContent;
        }
예제 #10
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);
        }
예제 #11
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);
        }
    }
예제 #12
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);");
        }
예제 #13
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;
        }
        /// <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;
        }
예제 #15
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", ""));
        }
예제 #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 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);
        }
        /// <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;
        }
예제 #19
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);
            }
        }
예제 #20
0
        private void ReleaseHandler()
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");

                using (var response = client.GetAsync("https://api.github.com/repos/smith-chem-wisc/Spritz/releases").Result)
                {
                    string        json            = response.Content.ReadAsStringAsync().Result;
                    JArray        GitArray        = JArray.Parse(json);
                    var           currV           = GetVersionNumber(MainWindow.CurrentVersion);
                    StringBuilder allVersionsText = new StringBuilder();
                    foreach (JObject obj in GitArray.Children <JObject>())
                    {
                        if (IsVersionLower(obj.SelectToken("tag_name").ToString()))
                        {
                            break;
                        }
                        string body = new MarkdownSharp.Markdown().Transform(obj.SelectToken("body").ToString());
                        allVersionsText.AppendLine("<font face=\"Arial\" size=2>");
                        allVersionsText.AppendLine("<h3>" + obj.SelectToken("tag_name").ToString() + "</h3>");
                        allVersionsText.AppendLine(body);
                        allVersionsText.AppendLine();
                        if (!IsMsiAvailableForUpdate)
                        {
                            allVersionsText.AppendLine("Warning: A new version of Spritz was detected, but the installer file hasn't been uploaded yet. Please try again in a few minutes.");
                            Bt_DownloadAndRunInstaller.IsEnabled = false;
                        }
                        allVersionsText.AppendLine("</font>");
                    }
                    releases.NavigateToString(allVersionsText.ToString());
                    releases.Navigating += Releases_Navigating;
                }
            }
        }
예제 #21
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);
        }
예제 #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
        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);
        }
예제 #24
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>");
        }
예제 #25
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));
        }
예제 #26
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MarkdownViewEngineHost"/> class.
 /// </summary>
 /// <param name="viewEngineHost">A decorator <see cref="IViewEngineHost"/></param>
 /// <param name="renderContext">The render context.</param>
 /// <param name="viewExtensions">The allowed extensions</param>
 public MarkdownViewEngineHost(IViewEngineHost viewEngineHost, IRenderContext renderContext, IEnumerable<string> viewExtensions)
 {
     this.viewEngineHost = viewEngineHost;
     this.renderContext = renderContext;
     this.validExtensions = viewExtensions;
     this.Context = this.renderContext.Context;
     this.parser = new MarkdownSharp.Markdown();
 }
예제 #27
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>");
        }
예제 #28
0
        public string Transform(string input)
        {
            var md = new MarkdownSharp.Markdown();
            return md.Transform(input);

            //var md = new anrControls.Markdown();
            //return md.Transform(input);
        }
예제 #29
0
        public MarkdownFormat()
        {
            markdown = new MarkdownSharp.Markdown();

            this.MarkdownBaseType = typeof(MarkdownViewBase);
            this.MarkdownGlobalHelpers = new Dictionary<string, Type>();
            this.FindMarkdownPagesFn = FindMarkdownPages;
        }
예제 #30
0
        private static void ConvertMarkdownToHtml(string file, string outputfile)
        {
            string input  = File.ReadAllText(file);
            var    output = new MarkdownSharp.Markdown().Transform(input);

            EnsureDirectoryExists(Path.GetDirectoryName(outputfile));
            File.WriteAllText(outputfile, output);
        }
예제 #31
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;
 }
예제 #32
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MarkdownViewEngineHost"/> class.
 /// </summary>
 /// <param name="viewEngineHost">A decorator <see cref="IViewEngineHost"/></param>
 /// <param name="renderContext">The render context.</param>
 /// <param name="viewExtensions">The allowed extensions</param>
 public MarkdownViewEngineHost(IViewEngineHost viewEngineHost, IRenderContext renderContext, IEnumerable <string> viewExtensions)
 {
     this.viewEngineHost  = viewEngineHost;
     this.renderContext   = renderContext;
     this.validExtensions = viewExtensions;
     this.Context         = this.renderContext.Context;
     this.parser          = new MarkdownSharp.Markdown();
 }
예제 #33
0
        private static void ConvertMarkdownToHtml(string file, string outputfile)
        {
            string input = File.ReadAllText(file);
            var output = new MarkdownSharp.Markdown().Transform(input);

            EnsureDirectoryExists(Path.GetDirectoryName(outputfile));
            File.WriteAllText(outputfile,output);
        }
예제 #34
0
        public string ConvertToMarkdown(string str)
        {
            var options = new MarkdownSharp.MarkdownOptions();

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

            return(md.Transform(str));
        }
예제 #35
0
        public MarkdownFormat()
        {
            markdown = new MarkdownSharp.Markdown();

            this.MarkdownBaseType      = typeof(MarkdownViewBase);
            this.MarkdownGlobalHelpers = new Dictionary <string, Type>();
            this.FindMarkdownPagesFn   = FindMarkdownPages;
            this.MarkdownReplaceTokens = new Dictionary <string, string>();
        }
예제 #36
0
        public MarkdownFormat()
        {
            markdown = new MarkdownSharp.Markdown(); //Note: by default MarkdownDeep is used

            this.MarkdownBaseType = typeof(MarkdownViewBase);
            this.MarkdownGlobalHelpers = new Dictionary<string, Type>();
            this.FindMarkdownPagesFn = FindMarkdownPages;
            this.ReplaceTokens = new Dictionary<string, string>();
        }
예제 #37
0
 public static string Convert(string markdownContent)
 {
     MarkdownSharp.Markdown markdown = new MarkdownSharp.Markdown
     {
         AutoNewLines  = true,
         AutoHyperlink = true
     };
     return(markdown.Transform(markdownContent));
 }
예제 #38
0
                /// <summary>
                /// Initializes a new instance of the <see cref="Documentation"/> class.
                /// </summary>
                /// <param name="dir">The folder which contains markdown files and 'screenshots' folder</param>
                public Documentation(string dir)
                {
                    Directory = dir;
                    MarkdownSharp.Markdown markdown = new MarkdownSharp.Markdown();
                    foreach (var file in EnumerateFile(dir))
                    {
                        foreach (string item in new string[] {
                            ".md",
                            ".markdown",
                            ".html",
                            ".htm",
                            ".xhtml",
                            ".txt"
                        })
                        {
                            if (Path.GetExtension(file) == item)
                            {
                                Pages.Add(new string[] { Path.GetFileNameWithoutExtension(file), ReadDocFile(file), file });
                                break;
                            }
                        }
                    }

                    #region Icon
                    tryOpenIcon(dir + "icon.png");
                    tryOpenIcon(dir + "icon.ico");
                    tryOpenIcon(dir + "icon.jpg");
                    tryOpenIcon(dir + "icon.jpeg");
                    tryOpenIcon(dir + "icon.jfif");
                    tryOpenIcon(dir + "icon.bmp");
                    #endregion

                    #region Screenshots

                    var docsdirs = EnumerateDir(dir);
                    if (docsdirs.Count() == 0)
                    {
                        return;
                    }
                    var scrdir = docsdirs.First();
                    ScreenShotsDirectoryName = scrdir.Split('\\').Last();
                    ScreenShots = new List <Image>();
                    foreach (var item in EnumerateFile(scrdir))
                    {
                        try
                        {
                            var img = Image.FromFile(item);
                            img.Tag = item;
                            ScreenShots.Add(img);
                        }
                        catch
                        {
                        }
                    }
                    #endregion
                }
예제 #39
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);
        }
예제 #40
0
        public MarkdownFormat()
        {
            markdown = new MarkdownSharp.Markdown();

            this.WatchForModifiedPages = true;
            this.MarkdownBaseType = typeof(MarkdownViewBase);
            this.MarkdownGlobalHelpers = new Dictionary<string, Type>();
            this.FindMarkdownPagesFn = FindMarkdownPages;
            this.MarkdownReplaceTokens = new Dictionary<string, string>();
        }
예제 #41
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;
        }
예제 #42
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)));
        }
예제 #43
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);
        }
예제 #44
0
파일: Nocco.cs 프로젝트: vishal-h/nocco
        // 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);
            }
        }
예제 #45
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);
        }
예제 #46
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);
        }
예제 #47
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
예제 #48
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("");
			}
		}
예제 #49
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);
            }
        }
예제 #50
0
        private static string MarkdownReplace(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(string.Empty);
            }

            var markdown = new MarkdownSharp.Markdown();

            return(markdown.Transform(text));
        }
예제 #51
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)
            });
        }
        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;
        }
        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);
        }
예제 #54
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!");
     }
 }
예제 #55
0
        public StandardTranslator()
        {
            const string pattern = @"^```[ \t]*(\S*)[ \t]*\r?\n(.*?)\r?\n```[ \t]*\r?$";

            _markdownParser = new MarkdownSharp.Markdown();

            _codeColorizer = new CodeColorizer();

            _codeBlockRegex = new Regex(
                pattern,
                RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.Compiled
            );
        }
예제 #56
0
        public MarkdownFormat()
        {
            markdown = new MarkdownSharp.Markdown(); //Note: by default MarkdownDeep is used

            this.MarkdownBaseType = typeof(MarkdownViewBase);
            this.MarkdownGlobalHelpers = new Dictionary<string, Type>();
            this.FindMarkdownPagesFn = FindMarkdownPages;
            this.ReplaceTokens = new Dictionary<string, string>();
            //Skip scanning common VS.NET extensions
            this.SkipPaths = new List<string> {
                "/obj/", 
                "/bin/",
            };
        }
        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;
        }
예제 #59
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);
        }
예제 #60
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);
        }