What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 128 Stack Exchange communities.

Why does the Stack Overflow trilogy of sites use Markdown instead of some other rich text editor like FCKEditor or TinyMCE?

share|improve this question

migrated from stackoverflow.com Nov 3 '09 at 8:39

This question came from our site for professional and enthusiast programmers.

5  
most of us here are used to markup. it's like Dreamweaver vs Notepad++ –  mauris Nov 3 '09 at 8:00
4  
meta.stackoverflow.com ? –  ukanth Nov 3 '09 at 8:03
    
+1 on the DW vs NP++. I can't cope with editors that are Smarter Then Thou –  Boris Callens Nov 3 '09 at 8:07
    
This may pertain to a programming problem as well. –  Crimson Nov 3 '09 at 8:07
7  
While it isn't a rich-text editor, I consider it a rich text-editor. –  Brad Gilbert Nov 3 '09 at 16:22
    
Why was this question migrated? It fit the context of Stackoverflow much better...The question was asking about rich-text editors. –  monksy Nov 5 '09 at 5:02
2  
@steven: Because the question was worded to be directly about Stack Overflow trilogy. If it was worded "Why should a site use Markdown instead..." it would have fit stackoverflow.com better. And that is not just cosmetics - such a question would have very different answers since the choice of editor depends on the characteristics of the site. –  Ilari Kajaste Dec 1 '09 at 12:59
add comment

9 Answers 9

WYSIWYG RTE editors are generally bad at structuring the underlying data, making it very difficult to analyze/restructure the contents.

Consider this, how often have you seen a Word-user mark a line of text, make it bold, increase font size, and change the font. The experienced user would of course set the style (or what it's called in word) to Heading 1, and modify that style instead.

Why would you do this? Well, try to have word generate a ToC for a document where you changed all the 'headings' manually. Or if you'd like to submit your article for print, where there are other rules (fonts etc). Word actually does make this easier (you can select all instances of a certain combination of attributes), but you'll never be sure you got all of them, or if you managed to snag more than just your headers.

This might be irrelevant for small question/answer entries, but if you'd like to index the entire database, all the answers of all the questions, you'll have quite a substantial data set.

The bottom line is, markup usually conveys structure. WYSIWYG RTE editors usually conveys optical style. The first can pretty easily be turned into the latter, the other way around however, is very difficult. Use structural markup where you can, sooner or later you'll be happy that you did.

For the individual small entries / user experience, I'd go for the other answers (browser problems, source code, etc).

share|improve this answer
add comment

There are many reasons for this:

  1. Take up resources
  2. Can be prone to cross browser issues
  3. A source of errors in javascript (goes with browser issues)
  4. It is quicker for users who are accustom to it to format the text
  5. Also, this site claims to be wiki like/based... so I guess this is just a similarity they are trying to reinforce.
share|improve this answer
    
Of these reasons only #4 is arguably valid. –  Evgeny Jun 21 '12 at 9:35
add comment

6. ... and RTEs suck at entering source code. Since that would be not optimal for a page like SO I am really happy they don't try to apply one.

(the '6' stating, that I fully agree with steven's answer and just wanted to add another important point).

share|improve this answer
1  
What's the "5." for? Is it a quote? From FAQ maybe? –  Boris Callens Nov 3 '09 at 8:08
    
the answer below had only 1-4 (it's been edited since) –  roe Nov 3 '09 at 8:16
1  
Sorry, I let answers be displayed oldest first, so for me it seemed logically. It's refering to steven's answer. –  Boldewyn Nov 3 '09 at 8:37
    
This is the only decent reason, but I don't think the problem of "sucking at entering source code" is fixable, someone just needs to put some work into that. –  Evgeny Jun 21 '12 at 6:47
    
I would add that it would be difficult to deal with copy/pasted content, as it would be necessary to modify html after pasting to match the desired style. –  Evgeny Jun 21 '12 at 9:38
add comment

Jeff talks exactly about this question in one of his blog posts.

share|improve this answer
add comment

Because WYSIWYG doesn't really work. See my blog for an example.

share|improve this answer
2  
+1 for the nice blog post. I don't buy the argument stated as such an absolute, though. WYSIWYG, as a concept, could work. Just, the current implementations don't. One way to fix this would be universal conventions. Another would be subtle hinting. But yes, it's a difficult problem, and WYSIWYM may be a more powerful approach. –  Ilari Kajaste Dec 1 '09 at 13:08
    
Agreed. The main problem is still raw CPU power and code complexity. While the raw power is okay these days, it's still too complex to write the code to do subtle hinting. I mean we have enough RAM today to save the bounding box of every rendered character on the screen (how many can there be? At most 288000 8px "i"s on a 30" screen - that's a mere 4MB) but I can hear developers here gasping at these numbers. And the code would need to interact with the renderer that is optimized for speed and not for being able to be extended. –  Aaron Digulla Dec 7 '09 at 14:06
    
@IlariKajaste what is "subtle hinting"? –  Evgeny Jun 21 '12 at 6:52
    
@Evgeny: "subtle hinting" is, for example, changing the cursor or the status bar to tell you in which state the current text/cursor is (so you know in advance what will happen if you'd add a new character). –  Aaron Digulla Jun 21 '12 at 13:32
add comment

Because I use lots of different websites, and I have no interest in learning different editors for different sites. If the editor gets in the way of my sitting down and typing, which includes code snippets and links, I won't contribute. The toolbar on top of the box I'm typing into is about the most I'm willing to learn to start with.

share|improve this answer
add comment

I am a programmer, and I know HTML and CSS inside-out, so I am not shy of such things. In the early web days, I even invented a way of automatically marking up text to make it break, wrap, and indent as people usually expect. But I absolutely despise markup languages and wiki notation and this "Markdown" notation as a proliferation of lazy programmer bias.

All the reasons given by others here for not supporting WYSIWYG editing are merely excuses and rationalizations, in my opinion, for not doing the work to make it work. Yes, it requires some work to support WYSIWYG, but it has pretty much been done for you already by others.

People who are happy with Markdown will tend to be happier with Stack Overflow as it is, and will stick around longer. People who are not so inclined will tend to leave. This is similar to the Lisp community who are just fine with lots of insanely silly parentheses, and can't understand why they should consider changing.

Why not add the option of switching the editor to WYSIWYG mode? Have its feature set be limited to doing nothing more or less than what Markdown can already do, and then there should be no conversion problems.

share|improve this answer
1  
This is a breath of fresh air. –  a coder Oct 11 '12 at 13:30
add comment

Because it would be a complete nightmare for keeping the site's content clean and readable, even with a magical "strip all formatting" button.

[curls up in fetal position]

share|improve this answer
add comment

Rich text editors might be suitable for average Joes, but it's annoying for programmers.

RTEs are wizards, you can't trust the code they generate.

Plain text makes it a lot easier to reorganize content, and move it somewhere else. RTEs are a big source of headaches when doing that; they just stand in the way.

Markdown is more semantic: you shouldn't care about what exactly some block looks like with regards to font, size, color, etc; markdown will take care of the representation for you.

share|improve this answer
add comment

You must log in to answer this question.