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(); }
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(); } }