User:Leszek Manicki (WMDE)/Echo

link>Special:MyLanguage/Extension:Echo|Extension:Echo provides another notification system for MediaWiki.

Mentions
Echo can send notifications to users mentioned in discussions; this feature is often referred to as "pinging". Linking to a user's page in a signed message, either directly or through a template, will trigger a mention notification for them. The technical details of this are laid out below.

Technical details
When generating mention events, Echo processes revision diffs chunk by chunk, to check when a user has added a new comment which should be searched for mentioned users to ping. As of this writing, for user mention notifications to work:


 * The diff chunk must be recognised as an addition of new lines of text, not a change to existing lines.


 * The user must sign his or her message; the message cannot contain any other signatures. 


 * The signature must contain a plain wiki link ( ) to the user's page, user talk page, or contributions page, on the local wiki; it cannot be embedded in a template. 


 * In order for the signature to be recognised, the post must contain the exact same markup that writing   (and  ) generates. 


 * The comment must either belong in its entirety to existing sections (the diff chunk of added lines must not contain new section headers)  </>, or start a new section (diff chunk starts with a new section header).<tvar|ref3> </><tvar|ref4> </> Only sections of level 2 and above count.<tvar|ref5> </>


 * Links to mentioned users' pages may be embedded in templates or not, since the diff is template-expanded<tvar|ref> </>


 * The <tvar|revisionid> </> and <tvar|revisionuser> </> variables expand to the empty string when Echo parses the diff.


 * If the number of detected to-be-pinged users exceeds <tvar|number>50</>, no notifications will be delivered.<tvar|ref> </>


 * Mentioning self by the user <tvar|ref> </> and on user's own talk page <tvar|ref2> </> is not possible


 * Notifications are only sent to valid <tvar|ref> </> non-anonymous <tvar|ref2> </> users

Also, all markup is parsed with regular expressions; sufficiently tricky markup can trigger bogus results.