Skip to content
Meith
Browse documentation
Configuration & guides

The word filter

Rewriting words as a page renders, never in the stored post: what a rule is, why a pattern is a literal rather than a wildcard, and exactly which surfaces it covers.

The word filter rewrites words as a page is rendered. It is the board's way of taking the sting out of language without editing anybody's post or standing over the composer.

/admin/content holds it, under Word filters. It is an administrator's control: a moderator's route to bad language is the warning ladder or a hidden post, not this screen.

What a rule is

Three fields:

  • The pattern — the word to look for.
  • The replacement — what to put in its place. It may be empty, which removes the word.
  • Whole word — on, the pattern only matches when it stands alone as a word; off, it matches anywhere inside a longer one.

Matching is case-insensitive, and the replacement is inserted exactly as you typed it. A rule with an empty pattern is ignored.

Whole word is the setting that surprises people. With it off, a rule for ass rewrites the middle of class, passage and assessment. With it on, only the word on its own is touched. Leave it on unless you have a reason.

What it changes, and what it does not

The filter runs at render time. It never edits stored text. The post in the database is exactly what its author typed, and removing a rule brings the original word back everywhere immediately. Nothing is destroyed, so a rule is never a decision you have to live with.

Two consequences worth knowing:

  • A member who quotes a filtered post gets the original word, because the quote is built from the stored text.
  • The moderation queue deliberately shows text unfiltered — you are judging the words, so you see them. See the moderator's guide.

The filter only touches the text a reader sees. It steps over HTML tags, so it never rewrites a link's address, a class name or an attribute — a rule for cat cannot break a link to example.com/catalogue.

Where it applies

Filtered Not filtered
Post bodies Thread titles
Excerpts in the latest-posts lists Signatures
Search result excerpts, on the board and through the REST API Custom profile fields
Feed summaries (RSS and Atom) Usernames
The description in a page's metadata, which is what a link preview shows

What it costs

Very little. The compiled rules are cached board-wide and rebuilt when you change one, and the substitution runs over text the board was rendering anyway. A long list of rules is fine; it is one pass per rule over the visible text of a page.

The real cost is judgement. A filter that rewrites a word into a joke reads as the board making light of something a member was serious about, and members can tell the difference between a board that removed a slur and one that made a punchline of it.