Improve message markup parsing
This commit is contained in:
parent
49269c3173
commit
5a4e509359
|
@ -200,14 +200,13 @@ public static string parse_add_markup(string s_, string? highlight_word, bool pa
|
||||||
string[] convenience_tag = new string[]{"tt", "i", "b"};
|
string[] convenience_tag = new string[]{"tt", "i", "b"};
|
||||||
|
|
||||||
for (int i = 0; i < markup_string.length; i++) {
|
for (int i = 0; i < markup_string.length; i++) {
|
||||||
Regex regex = new Regex(Regex.escape_string(markup_string[i]) + ".+" + Regex.escape_string(markup_string[i]));
|
string markup_esc = Regex.escape_string(markup_string[i]);
|
||||||
|
Regex regex = new Regex("(^|\\s)" + markup_esc + "(\\S.*?\\S|\\S)" + markup_esc + "($|\\s)");
|
||||||
MatchInfo match_info;
|
MatchInfo match_info;
|
||||||
regex.match(s.down(), 0, out match_info);
|
regex.match(s.down(), 0, out match_info);
|
||||||
if (match_info.matches()) {
|
if (match_info.matches()) {
|
||||||
int start, end;
|
int start, end;
|
||||||
match_info.fetch_pos(0, out start, out end);
|
match_info.fetch_pos(2, out start, out end);
|
||||||
start += markup_string[i].length;
|
|
||||||
end -= markup_string[i].length;
|
|
||||||
return parse_add_markup(s[0:start], highlight_word, parse_links, parse_text_markup, already_escaped) +
|
return parse_add_markup(s[0:start], highlight_word, parse_links, parse_text_markup, already_escaped) +
|
||||||
@"<$(convenience_tag[i])>" + s[start:end] + @"</$(convenience_tag[i])>" +
|
@"<$(convenience_tag[i])>" + s[start:end] + @"</$(convenience_tag[i])>" +
|
||||||
parse_add_markup(s[end:s.length], highlight_word, parse_links, parse_text_markup, already_escaped);
|
parse_add_markup(s[end:s.length], highlight_word, parse_links, parse_text_markup, already_escaped);
|
||||||
|
|
Loading…
Reference in a new issue