Example #1
0
        public static void L2Categories()
        {
            string       L1CategoriesPath = @"D:\265.com\L1\1.txt";
            StreamReader sr = new StreamReader(L1CategoriesPath);

            string L2CategoriesDir = @"D:\265.com\L2\";

            string category = "", url = "", tmp = "";
            int    count = 0;

            while ((tmp = sr.ReadLine()) != null)
            {
                if (tmp != "" && tmp != "\n")
                {
                    Console.WriteLine(++count);
                    string[] line = tmp.Split('\t');
                    category = line[0];
                    url      = line[1];

                    string          L2CategoryPath = L2CategoriesDir + category + ".txt";
                    string          html           = DownloadHtml.DownloadHtmlstring(url);
                    List <HtmlNode> nodes          = markupParser.Parse(html);

                    Subpath(html, nodes, L2CategoryPath);
                }
            }
            sr.Close();
        }
Example #2
0
        public DocumentWithSpans GetDocumentWithSpansFromMarkup([NotNull] AnalyzerTestContext context)
        {
            Guard.NotNull(context, nameof(context));

            var           parser        = new MarkupParser(context.MarkupCode);
            CodeWithSpans codeWithSpans = parser.Parse();

            ParseOptions       parseOptions       = GetParseOptions(context.DocumentationMode, context.LanguageName);
            CompilationOptions compilationOptions = GetCompilationOptions(context.CompilerWarningLevel, context.LanguageName);

            Document document = new AdhocWorkspace()
                                .AddProject(context.AssemblyName, context.LanguageName)
                                .WithParseOptions(parseOptions)
                                .WithCompilationOptions(compilationOptions)
                                .AddMetadataReferences(context.References)
                                .AddDocument(context.FileName, codeWithSpans.Code);

            return(new DocumentWithSpans(document, codeWithSpans.Spans));
        }
Example #3
0
        /// <summary>
        /// parse a HTML
        /// </summary>
        /// <param name="html">content of HTML file</param>
        /// <returns>parsed result</returns>
        public ParsedHtml Parse(string html)
        {
            // markup parsing
            List <HtmlNode> nodes = markupParser.Parse(html);

            if (nodes == null)
            {
                return(null);
            }

            // parsing links
            ParsedHtml parsedHtml = new ParsedHtml();

            parsedHtml.Html  = html;
            parsedHtml.Nodes = nodes;


            // process parsed Html
            parsedHtml.Process();

            return(parsedHtml);
        }
Example #4
0
        public static void Process(string directory)
        {
            DirectoryInfo folder = new DirectoryInfo(directory);

            FileInfo[] files = folder.GetFiles("*.htm");
            foreach (FileInfo file in files)
            {
                string path = file.FullName;
                using (StreamReader streamReader = File.OpenText(path))
                {
                    string          html  = streamReader.ReadToEnd();
                    List <HtmlNode> nodes = markupParser.Parse(html);
                    Dump(path, html, nodes);

                    LinkExtractor linkExtractor = new LinkExtractor();

                    ParsedHtml parsedHtml = new ParsedHtml();
                    parsedHtml.Html  = html;
                    parsedHtml.Nodes = nodes;
                    linkExtractor.Process(parsedHtml, true);
                    Dump(parsedHtml);
                }
            }
        }
Example #5
0
 /// <summary>
 /// Writes the specified markup to the console.
 /// </summary>
 /// <param name="console">The console to write to.</param>
 /// <param name="value">The value to write.</param>
 public static void Markup(this IAnsiConsole console, string value)
 {
     console.Write(MarkupParser.Parse(value));
 }
Example #6
0
        public static MarkupContent ParseMarkup(string text)
        {
            var parser = new MarkupParser(text);

            return(parser.Parse());
        }
Example #7
0
        private void WalkLines(IEnumerable <DocLine> lines, StringBuilder toc, StringBuilder sb)
        {
            int tocId = 0;

            WalkLines(lines,
                      (str, type) =>
            {
                if (type == LineType.CodeItem)
                {
                    GenerateCodeItem(str, sb);
                }
                else if (type == LineType.Table)
                {
                    str      = HttpUtility.HtmlEncode(str);
                    var rows = str.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);

                    sb.Append("<table class='textTable'>");

                    foreach (var r in rows)
                    {
                        var cells  = new List <String>();
                        var buffer = r.ToCharArray();
                        var pos    = 0;
                        var l      = '\0';

                        for (var i = 0; i < buffer.Length; i++)
                        {
                            var c    = buffer[i];
                            var last = i == buffer.Length - 1;

                            if ((l == ' ' && c == '|') || last)
                            {
                                cells.Add(new String(buffer, pos, i - pos + (last ? 1 : 0)));
                                pos = i + 1;
                            }

                            l = c;
                        }

                        sb.Append("<tr>");

                        foreach (var c in cells)
                        {
                            sb.AppendFormat("<td class='textTd'>{0}</td>",
                                            MarkupParser.Parse(c));
                        }

                        sb.Append("</tr>");
                    }

                    sb.Append("</table>");
                }
                else if (type == LineType.ElaCode || type == LineType.EvalCode)
                {
                    if (type == LineType.EvalCode)
                    {
                        lnk.SetSource(str);
                        var res = lnk.Build();

                        if (res.Success)
                        {
                            if (vm == null)
                            {
                                vm = new ElaMachine(res.Assembly);
                            }
                            else
                            {
                                vm.RefreshState();
                            }

                            try
                            {
                                var rv = vm.Resume();

                                if (!rv.ReturnValue.Is <ElaUnit>())
                                {
                                    var val = vm.PrintValue(rv.ReturnValue);

                                    if (val.Contains('\r') || val.Length > 30)
                                    {
                                        str += "\r\n/*\r\nThe result is:\r\n" + val + "\r\n*/";
                                    }
                                    else
                                    {
                                        str += " //The result is: " + val;
                                    }
                                }
                            }
                            catch (ElaCodeException ex)
                            {
                                Error(ex.Message);
                            }
                        }
                        else
                        {
                            res.Messages.ToList().ForEach(m => Console.Write("\r\n" + m.ToString()));
                        }
                    }

                    sb.AppendFormat(ELACODE, Lex(str));
                }
                else if (type == LineType.Code)
                {
                    str = HttpUtility.HtmlEncode(str);
                    sb.AppendFormat(CODE, str);
                }
                else if (type == LineType.Header1)
                {
                    str    = HttpUtility.HtmlEncode(str);
                    var id = (tocId++).ToString();
                    sb.AppendFormat("<a name=\"{0}\"></a>", id);
                    sb.AppendFormat(H1, str);
                    toc.Append("<b>");
                    toc.AppendFormat(A, id, str);
                    toc.Append("</b><br/>");
                }
                else if (type == LineType.Header2)
                {
                    str    = HttpUtility.HtmlEncode(str);
                    var id = (tocId++).ToString();
                    sb.AppendFormat("<a name=\"{0}\"></a>", id);
                    sb.AppendFormat(H2, str);
                    toc.Append("&nbsp;&nbsp;&nbsp;&nbsp;");
                    toc.AppendFormat(A, id, str);
                    toc.Append("<br/>");
                }
                else if (type == LineType.Header3)
                {
                    str = HttpUtility.HtmlEncode(str);
                    sb.AppendFormat(H3, str);
                }
                else if (type == LineType.List)
                {
                    str = HttpUtility.HtmlEncode(str);
                    sb.Append("<ul>");
                    var split = str.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                    split.ToList().ForEach(s => sb.AppendFormat(LI, MarkupParser.Parse(s)));
                    sb.Append("</ul>");
                }
                else
                {
                    str = HttpUtility.HtmlEncode(str);
                    sb.AppendFormat(TEXT, MarkupParser.Parse(str));
                }
            });
        }