@yariplus, thank you very much! I found that composer is really the way to go.
I'm currently reading the code of default composer, it looks like a really good starting point.
There are two options: one is to modify the default composer; another is to implement something like "nodebb-plugin-poll" which basically injects HTML to composer.
I will need to read more code to get a better idea.