With a product history of over ten years, it's quite often a challenge keeping the product right on trend. Old technologies go and we make provisions to remove them and likewise, we make provisions to incorporate new technologies.
For example, IP.Board was the first bulletin board to incorporate Ajax functionality all the way back in IP.Board 2.1 back in 2005. We were also one of the first boards to add in 'WYSIWYG' editing to make constructing styled posts much easier. Of course, this was long before jQuery and Prototype frameworks make writing javascript easier so we hand-rolled our own editor. This was eventually replaced in February 2011 with the arrival of IP.Board 3.2 in which we used CKEditor.
However, the underpinnings of the editor remained unchanged which lead to some challenges. For example, the actual post was saved as BBCode in the database. This meant that the post had to be converted into BBCode before saving and then converted back into HTML before editing or showing the post. This lead to some frustrating due to inconsistencies with this process.
Happily, the underpinnings to our editor have now been completely rewritten to increase stability and to remove these inconsistencies. Now, the post is actually saved as cleaned HTML (via the excellent HTMLPurify) which means it does not have to be converted between states. You can still edit the BBCode manually if you wish, but this is handled by a single BBCode plug-in for CKEditor. This is very exciting because it frees up IP.Board from having to deal with BBCode manually saving hundreds of lines of code.
Of course, your custom BBCode will work normally and because of built-in legacy functionality you won't need to convert your posts to the new format as this is handled 'on-the-fly'.
We've also taken the time to improve several other elements within the editor:
Code Boxes
The code box has been improved to allow you to select the code format (HTML, Javascript, PHP, etc) and a starting line number. Tabs and spaces are also preserved correctly.
Live Previews
When adding quote and code boxes, the editor will preview them live, like so:
The code box when rendered fully contains striping and line numbers which makes it easier to read the code:
We're confident that by rewriting the editor and parsing engines, the editor in IP.Board 3.4 will be much more stable and reduce those annoyances which can sometimes crop up when writing complex posts.