public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<p>"); args.Encoding.Transform(args, match.Matches[0]); args.Output.AppendUnixLine("</p>"); args.Output.AppendUnixLine(); }
public void Transform(Match match, MarkdownReplacementArgs args) { var text = match.Text; var ch = text[0]; if (ch == '<') args.Output.Append("<"); else if (ch == '>') args.Output.Append(">"); else if (ch == '\"') args.Output.Append("""); else if (ch == '&') args.Output.Append("&"); else if (ch == '\r') args.Output.Append('\n'); else if (ch == '\t') args.Output.Append(" "); else if (ch == '\\') { ch = text[1]; if (ch == '<') args.Output.Append("<"); else if (ch == '>') args.Output.Append(">"); else if (ch == 'r') args.Output.AppendUnixLine(); else args.Output.Append(ch); } else args.Output.Append(text); }
public void Transform(Match match, MarkdownReplacementArgs args) { var html = match.Matches[0]; var text = html.Text; if (text.StartsWith("<script") || text.Contains("javascript:")) { args.Output.AppendUnixLine(MarkdownEncoding.Encode(text)); return; } int last = 0; var matches = html.Matches; for (int i = 0; i < matches.Count; i++) { var content = matches[i]; if (content.Index - match.Index > last) { args.Output.Append(text, last, content.Index - match.Index - last); } last = content.Index - match.Index + content.Length; args.Encoding.Transform(args, content); } if (last < text.Length) args.Output.Append(text, last, text.Length - last); }
public void Transform(Match match, MarkdownReplacementArgs args) { var html = match.Matches[0]; var text = html.Text; if (text.StartsWith("<script") || text.Contains("javascript:")) { args.Output.AppendUnixLine(MarkdownEncoding.Encode(text)); return; } int last = 0; var matches = html.Matches; for (int i = 0; i < matches.Count; i++) { var content = matches[i]; if (content.Index - match.Index > last) { args.Output.Append(text, last, content.Index - match.Index - last); } last = content.Index - match.Index + content.Length; args.Encoding.Transform(args, content); } if (last < text.Length) { args.Output.Append(text, last, text.Length - last); } }
public void AddReference(Match match, MarkdownReplacementArgs args) { var reference = new MarkdownReference { Url = match.Matches[1].Text }; if (match.Matches.Count > 2) reference.Title = match.Matches[2].StringValue; args.References[match.Matches[0].Text] = reference; }
public void Transform(Match match, MarkdownReplacementArgs args) { var text = match.Text; int start = 0; int end = text.Length - 1; while (start < text.Length && text[start] == '`') { start++; } while (end >= 0 && text[end] == '`') { end--; } var len = end - start + 1; end = text.Length - end - 1; var count = Math.Min(start, end); args.Output.Append("<code>"); if (start > count) { args.Output.Append(text, 0, start - count); } var lines = text.Substring(start, len).Trim(' '); args.Output.Append(Encode(lines)); if (end > count) { args.Output.Append(text, start + len, end - count); } args.Output.Append("</code>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { var text = match.Text; if (text.Contains("<script") || text.Contains("javascript:")) args.Output.AppendUnixLine(MarkdownEncoding.Encode(text)); else args.Output.AppendUnixLine(text); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<em>"); if (match.HasMatches) args.Encoding.ReplaceEncoding(match.Index + 1, match.Index + match.Length - 1, match.Scanner, match.Matches, args); else args.Output.Append(match.Scanner.Substring(match.Index + 1, match.Length - 2)); args.Output.Append("</em>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<strong>"); //args.Encoding.Transform(args, match, 2, -4); if (match.HasMatches) args.Encoding.ReplaceEncoding(match.Index + 2, match.Index + match.Length - 2, match.Scanner, match.Matches, args); else args.Output.Append(match.Scanner.Substring(match.Index + 2, match.Length - 4)); args.Output.Append("</strong>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { var text = match.Text; var ch = text[0]; if (ch == '<') { args.Output.Append("<"); } else if (ch == '>') { args.Output.Append(">"); } else if (ch == '\"') { args.Output.Append("""); } else if (ch == '&') { args.Output.Append("&"); } else if (ch == '\r') { args.Output.Append('\n'); } else if (ch == '\t') { args.Output.Append(" "); } else if (ch == '\\') { ch = text[1]; if (ch == '<') { args.Output.Append("<"); } else if (ch == '>') { args.Output.Append(">"); } else if (ch == 'r') { args.Output.AppendUnixLine(); } else { args.Output.Append(ch); } } else { args.Output.Append(text); } }
public void Transform(Match match, MarkdownReplacementArgs args) { var level = match.Matches[1]; args.Output.Append("<"); args.Output.Append(level.Name); args.Output.Append(">"); args.Encoding.Transform(args, match.Matches[0]); args.Output.Append("</"); args.Output.Append(level.Name); args.Output.AppendUnixLine(">"); args.Output.AppendUnixLine(); }
public void Transform(Match match, MarkdownReplacementArgs args) { var level = Math.Min(match.Matches[0].Length, 6); args.Output.Append("<h"); args.Output.Append(level); args.Output.Append(">"); args.Encoding.Transform(args, match.Matches[1]); args.Output.Append("</h"); args.Output.Append(level); args.Output.AppendUnixLine(">"); args.Output.AppendUnixLine(); }
public void AddReference(Match match, MarkdownReplacementArgs args) { var reference = new MarkdownReference { Url = match.Matches[1].Text }; if (match.Matches.Count > 2) { reference.Title = match.Matches[2].StringValue; } args.References[match.Matches[0].Text] = reference; }
public void Transform(Match match, MarkdownReplacementArgs args) { var text = match.Text; if (text.Contains("<script") || text.Contains("javascript:")) { args.Output.AppendUnixLine(MarkdownEncoding.Encode(text)); } else { args.Output.AppendUnixLine(text); } }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<em>"); if (match.HasMatches) { args.Encoding.ReplaceEncoding(match.Index + 1, match.Index + match.Length - 1, match.Scanner, match.Matches, args); } else { args.Output.Append(match.Scanner.Substring(match.Index + 1, match.Length - 2)); } args.Output.Append("</em>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { string suffix = null; bool lastSpace = false; var count = match.Matches.Count; for (int i = 0; i < count; i++) { var item = match.Matches[i]; if (i == 0) { if (item["num"]) { args.Output.AppendUnixLine("<ol>"); suffix = "</ol>"; } else { args.Output.AppendUnixLine("<ul>"); suffix = "</ul>"; } } var inner = item["inner"]; var hasInnerList = inner.Success && inner.HasMatches && inner.Matches[0].Name == Name; var addSpace = (inner.Success && !hasInnerList) || (i < count - 1 && item["spacing"].Length > 0); args.Output.Append("<li>"); if (addSpace || lastSpace) { args.Output.Append("<p>"); } var content = item.Matches["content"]; //args.Encoding.Transform(args, content); args.Encoding.ReplaceEncoding(args, content); if (addSpace || lastSpace) { args.Output.Append("</p>"); } if (inner.Success) { args.Grammar.Transform(inner, args); } args.Output.AppendUnixLine("</li>"); lastSpace = addSpace; } args.Output.AppendUnixLine(suffix); args.Output.AppendUnixLine(); args.Output.AppendUnixLine(); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.AppendUnixLine("<blockquote>"); var str = new StringBuilder(match.Length); for (int i = 0; i < match.Matches.Count - 1; i += 2) { var prefix = match.Matches[i]; var line = match.Matches[i+1]; str.AppendUnixLine(line.Text); //args.Encoding.Replace(line.Text, args); } args.Output.Append(grammar.Transform(str.ToString())); args.Output.AppendUnixLine("</blockquote>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<strong>"); //args.Encoding.Transform(args, match, 2, -4); if (match.HasMatches) { args.Encoding.ReplaceEncoding(match.Index + 2, match.Index + match.Length - 2, match.Scanner, match.Matches, args); } else { args.Output.Append(match.Scanner.Substring(match.Index + 2, match.Length - 4)); } args.Output.Append("</strong>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.AppendUnixLine("<blockquote>"); var str = new StringBuilder(match.Length); for (int i = 0; i < match.Matches.Count - 1; i += 2) { var prefix = match.Matches[i]; var line = match.Matches[i + 1]; str.AppendUnixLine(line.Text); //args.Encoding.Replace(line.Text, args); } args.Output.Append(grammar.Transform(str.ToString())); args.Output.AppendUnixLine("</blockquote>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<pre><code>"); var count = match.Matches.Count; for (int i = 0; i < count; i++) { var line = match.Matches[i]; if (line.Name == "sep") args.Output.AppendUnixLine(); else args.Output.Append(CodeEncoding.Encode(line.Text)); } args.Output.AppendUnixLine(); args.Output.AppendUnixLine("</code></pre>"); args.Output.AppendUnixLine(); }
public void Transform(Match match, MarkdownReplacementArgs args) { string suffix = null; bool lastSpace = false; var count = match.Matches.Count; for (int i = 0; i < count; i++) { var item = match.Matches[i]; if (i == 0) { if (item["num"]) { args.Output.AppendUnixLine("<ol>"); suffix = "</ol>"; } else { args.Output.AppendUnixLine("<ul>"); suffix = "</ul>"; } } var inner = item["inner"]; var hasInnerList = inner.Success && inner.HasMatches && inner.Matches[0].Name == Name; var addSpace = (inner.Success && !hasInnerList) || (i < count - 1 && item["spacing"].Length > 0); args.Output.Append("<li>"); if (addSpace || lastSpace) args.Output.Append("<p>"); var content = item.Matches["content"]; //args.Encoding.Transform(args, content); args.Encoding.ReplaceEncoding(args, content); if (addSpace || lastSpace) args.Output.Append("</p>"); if (inner.Success) { args.Grammar.Transform(inner, args); } args.Output.AppendUnixLine("</li>"); lastSpace = addSpace; } args.Output.AppendUnixLine(suffix); args.Output.AppendUnixLine(); args.Output.AppendUnixLine(); }
public void Transform(Match match, MarkdownReplacementArgs args) { var text = match.Text; int start = 0; int end = text.Length - 1; while (start < text.Length && text[start] == '`') start++; while (end >= 0 && text[end] == '`') end--; var len = end - start + 1; end = text.Length - end - 1; var count = Math.Min(start, end); args.Output.Append("<code>"); if (start > count) args.Output.Append(text, 0, start - count); var lines = text.Substring(start, len).Trim(' '); args.Output.Append(Encode(lines)); if (end > count) args.Output.Append(text, start + len, end - count); args.Output.Append("</code>"); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<pre><code>"); var count = match.Matches.Count; for (int i = 0; i < count; i++) { var line = match.Matches[i]; if (line.Name == "sep") { args.Output.AppendUnixLine(); } else { args.Output.Append(CodeEncoding.Encode(line.Text)); } } args.Output.AppendUnixLine(); args.Output.AppendUnixLine("</code></pre>"); args.Output.AppendUnixLine(); }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.AppendUnixLine("<hr />"); }
public void Transform(Match match, MarkdownReplacementArgs args) { // blank! }
public void Transform(Match match, MarkdownReplacementArgs args) { args.Output.Append("<br />\n"); }
public void Transform(Match match, MarkdownReplacementArgs args) { Match link; string linkValue, nameValue; var count = match.Matches.Count; if (count == 1) { link = match.Matches[0]; linkValue = nameValue = link.StringValue; } else { nameValue = match.Matches[0].Text; link = match.Matches[1]; linkValue = link.StringValue; } MarkdownReference reference; string url; string title; if (link.Name == "ref" || link.Name == "name") { if (string.IsNullOrEmpty(linkValue)) { linkValue = nameValue; } if (args.References.TryGetValue(linkValue, out reference)) { url = reference.Url; title = reference.Title; } else { url = title = null; } } else { url = linkValue; if (count > 2) { title = match.Matches[2].StringValue; } else { title = null; } } if (url != null) { var isImage = match.Scanner.Substring(match.Index, 1) == "!"; if (isImage) { args.Output.Append("<img src=\""); } else { args.Output.Append("<a href=\""); } args.Output.Append(MarkdownEncoding.EncodeAttribute(url)); args.Output.Append("\""); if (isImage) { var alt = nameValue; if (!string.IsNullOrEmpty(alt)) { args.Output.Append(" alt=\""); args.Output.Append(MarkdownEncoding.EncodeAttribute(alt)); args.Output.Append("\""); } } if (!string.IsNullOrEmpty(title)) { args.Output.Append(" title=\""); args.Output.Append(MarkdownEncoding.EncodeAttribute(title)); args.Output.Append("\""); } if (isImage) { args.Output.Append(" />"); } else { args.Output.Append(">"); args.Encoding.Transform(args, nameValue); args.Output.Append("</a>"); } } else { args.Output.Append(match.Text); } }