Most chat clients support plugins to extend the user interface in one way or another.
A plugin system could be used to implement the less mainstream features, e.g. the latex support (#121).
Qt provides an easy way to create and load plugins (http://qt-project.org/doc/qt-5/plugins-howto.html).
I think the first question to answer is what could/should be modifiable by a plugin. If that question is answered we could start thinking about the the interfaces that need to be defined to support such plugins.
Most chat clients support plugins to extend the user interface in one way or another.
A plugin system could be used to implement the less mainstream features, e.g. the latex support (#121). Qt provides an easy way to create and load plugins (http://qt-project.org/doc/qt-5/plugins-howto.html).
I think the first question to answer is what could/should be modifiable by a plugin. If that question is answered we could start thinking about the the interfaces that need to be defined to support such plugins.