1. An in-browser content editor comprising: a processor; a non-transitory computer readable memory; a display in communication with said processor and said memory; and a plurality of subsystems comprising: 1) a parser that converts a mark-up language document comprising data displayed in a browser into an Intermediary DOM (Document Object Model) comprising a plurality of data nodes, wherein said Intermediary DOM stores elements of the document that are not represented in a native browser DOM of the browser; 2) the Intermediary DOM which contains all of the data that was in the mark-up language document, including data for whitespace, parse errors, capitalization of tag names, mark-up language attributes, and any other source code data that is not represented in the native browser DOM; 3) the native browser DOM which displays content of the in-browser editor on a display, wherein most nodes in the Intermediary DOM are linked to corresponding nodes in the native browser DOM, wherein modifications to the Intermediary DOM are reflected in the native browser DOM, wherein the only nodes in the Intermediary DOM that are not linked to corresponding nodes are Intermediary DOM nodes that contain elements that are not visually renderable on the display; 4) an event handling subsystem that handles and records user-initiated input events, wherein the Intermediary DOM includes nodes that reference the input events and corresponding render nodes are created in the native browser DOM; 5) a selection data structure that contains selections of browser content made by the user in the in-browser editor; and 6) a content converter configured to convert browser content in the Intermediary DOM into a string, which can then be saved or output to the browser as a mark-up language string for processing; whereby edits made to the displayed content in the browser are accurately reflected in source code of the mark-up language document stored as elements in the Intermediary DOM in real time, and displayed browser content, mark-up language document source code, and the Intermediary DOM are maintained in synchronization.