|
|
| !("confirmed" in user_groups) & | | !("confirmed" in user_groups) & |
| page_namespace == 0 & | | page_namespace == 0 & |
| ( | | ( |
| ( | | ( |
| /* Text repeated within a line */ | | /* Text repeated within a line */ |
| one_line := "(?i)(?<!\S)(\S++(?:\h++\S++){0,100}?)(?:\h++\1){2}(?!\S)"; | | one_line := "(?i)(?<!\S)(\S++(?:\h++\S++){0,100}?)(?:\h++\1){2}(?!\S)"; |
| matched := get_matches(one_line, added_lines); | | matched := get_matches(one_line, added_lines); |
| matched[0] & | | matched[0] & |
| !(removed_lines irlike one_line) | | !(removed_lines irlike one_line) |
| ) | ( | | ) | ( |
| /* Repeated lines or blocks of lines */ | | /* Repeated lines or blocks of lines */ |
| multi_line := "(?im)^(?![|*#])(\N++(?:\n++\N++){0,100}?)(?:\n++\1){2}$"; | | multi_line := "(?im)^(?![|*#])(\N++(?:\n++\N++){0,100}?)(?:\n++\1){2}$"; |
| matched := get_matches(multi_line, added_lines); | | matched := get_matches(multi_line, added_lines); |
| matched[0] & | | matched[0] & |
| !(removed_lines irlike multi_line) | | !(removed_lines irlike multi_line) & |
| | new_wikitext irlike ("(?:" + rescape(matched[1]) + "\s*){3}") /* Avoid edits to multiple non-contiguous lines */ |
| ) | | ) |
| ) & ( | | ) & ( |
| matched[1] rlike '\p{L}' | | matched[1] rlike '\p{L}' |
| ) | | ) |