To me the best thinking around in the design of a writing tool is Scrivener. It is the first writing tool that seems to understand that writing, research, note taking a process and the page is the output from that process. My single objection to Scrivener is that its native data structure is RTF. I dearly wish it was a pure markdown tool.