Text() public method

public Text ( string text ) : HtmlWriter
text string
return HtmlWriter
示例#1
0
文件: NiHelp.cs 项目: netide/netide
        private void FormatEmphasis(HtmlWriter writer, HashSet<string> query, string text)
        {
            var words = ParseContent(text);
            int start = -1;
            int end = -1;

            for (int i = 0; i < words.Count; i++)
            {
                if (!query.Contains(words[i].ToLower()))
                    continue;

                int leading = SearchResultLeading;
                start = 0;

                for (int j = i - 1; j >= 0; j--)
                {
                    leading -= words[j].Length;
                    if (leading < 0)
                    {
                        start = j + 1;
                        break;
                    }
                }

                end = FindEnd(start, words);

                break;
            }

            if (start == -1)
            {
                start = 0;
                end = FindEnd(start, words);
            }

            bool wasContained = false;

            for (int j = start; j < end; j++)
            {
                bool isContained = query.Contains(words[j].ToLower());

                if (isContained != wasContained)
                {
                    if (isContained)
                        writer.OpenTag("b");
                    else
                        writer.CloseTag();

                    wasContained = isContained;
                }

                writer.Text(words[j]);
            }

            if (wasContained)
                writer.CloseTag();
        }
示例#2
0
        private void FormatEmphasis(HtmlWriter writer, HashSet <string> query, string text)
        {
            var words = ParseContent(text);
            int start = -1;
            int end   = -1;

            for (int i = 0; i < words.Count; i++)
            {
                if (!query.Contains(words[i].ToLower()))
                {
                    continue;
                }

                int leading = SearchResultLeading;
                start = 0;

                for (int j = i - 1; j >= 0; j--)
                {
                    leading -= words[j].Length;
                    if (leading < 0)
                    {
                        start = j + 1;
                        break;
                    }
                }

                end = FindEnd(start, words);

                break;
            }

            if (start == -1)
            {
                start = 0;
                end   = FindEnd(start, words);
            }

            bool wasContained = false;

            for (int j = start; j < end; j++)
            {
                bool isContained = query.Contains(words[j].ToLower());

                if (isContained != wasContained)
                {
                    if (isContained)
                    {
                        writer.OpenTag("b");
                    }
                    else
                    {
                        writer.CloseTag();
                    }

                    wasContained = isContained;
                }

                writer.Text(words[j]);
            }

            if (wasContained)
            {
                writer.CloseTag();
            }
        }