How to add custom page elements to the WYSIWYG editor?

It’s possible to manually add buttons to your editor.
https://codex.wordpress.org/TinyMCE_Custom_Buttons

The Codex actually links to a full tutorial detailing the process, as well.
http://code.tutsplus.com/tutorials/guide-to-creating-your-own-wordpress-editor-buttons–wp-30182

That will guide you through all the steps:

  • Adding shortcodes to your site
  • Creating a TinyMCE plugin (register, set up, create buttons, and add what they should do)
  • Including editor styles so it displays properly in the admin area
  • Including theme styles os it displays properly in the front-end