New enum cached, lazy generated KeywordReplacer
This runs before the pager, so keywords on other pages will still be parsed.