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

After reading the hundreds of comments on Jeff's blog, and the SO blog, and the first question that was posted here, I think there may be a simple solution to most of the [perceived] usability problems in the edit form. Several people have suggested that Markdown should be optional, matthock in particular.

Consider this hypothetical question that could be asked by a first-time user:

I'm trying to create* a custom tag in ColdFusion, called cf_helloworld.

Here's the code in hello.cfm:
<cfparam name="greeting" default="Hello">
<cfparam name="name" default="friend">

#attributes.greeting#, #attributes.name#. We've been expecting you.

And here's the code in index.cfm I use to call it:
<cfoutput><cf_helloworld name="Patrick"/></cfoutput>

It doesn't throw any errors, but it's not quite working the way I want.
1. It prints "#attributes.greeting#, #attributes.name#..." instead 
of "Hello, Patrick..."
2. It prints the whole thing twice.  

Thanks!

* Actually, I'm trying to edit an existing one, but first I need to 
figure out how these things work. 

Here's how Markdown would render that question:

I'm trying to create* a custom tag in ColdFusion, called cf_helloworld.

Here's the code in hello.cfm:

attributes.greeting#, #attributes.name#. We've been expecting you.

And here's the code in index.cfm I use to call it:

It doesn't throw any errors, but it's not quite working the way I want. 1. It prints "#attributes.greeting#, #attributes.name#..." instead of "Hello, Patrick..." 2. It prints the whole thing twice.

Thanks!

  • Actually, I'm trying to edit an existing one, but first I need to figure out how these things work.

The proposed line break change wouldn't help much.

I'm trying to create* a custom tag in ColdFusion, called cf_helloworld.

Here's the code in hello.cfm:


attributes.greeting#, #attributes.name#. We've been expecting you.

And here's the code in index.cfm I use to call it:

It doesn't throw any errors, but it's not quite working the way I want.
1. It prints "#attributes.greeting#, #attributes.name#..." instead of "Hello, Patrick..."
2. It prints the whole thing twice.

Thanks!

  • Actually, I'm trying to edit an existing one, but first I need to figure out how these things work.

The only hope the system has of getting this question right is just to treat it as plain text.

I'm trying to create* a custom tag in ColdFusion, called cf_helloworld.

Here's the code in hello.cfm:
<cfparam name="greeting" default="Hello>
<cfparam name="name" default="friend">

#attributes.greeting#, #attributes.name#. We've been expecting you.

And here's the code in index.cfm I use to call it:
<cfoutput><cf_helloworld name="Patrick"/></cfoutput>

It doesn't throw any errors, but it's not quite working the way I want.
1. It prints "#attributes.greeting#, #attributes.name#..." instead of "Hello, Patrick..."
2. It prints the whole thing twice.

Thanks!

* Actually, I'm trying to edit an existing one, but first I need to figure out how these things work.


It might make sense to treat posts as plain text by default, and only enable Markdown at the user's request (a checkbox below the editor).

[ ] Enable advanced formatting with Markdown (Tell me more...)

The setting would be sticky. If you choose Markdown when you create a post, it will be selected by default the next time you create a post. If you edit an existing post (your own or someone else's), the checkbox will default to the state it was in when the post was saved.

What do you think?

share|improve this question
    
There might need to be a rule that you can't enable/disable Markdown on someone else's post. (But users would be free to toggle the setting on their own posts.) –  Patrick McElhaney Oct 29 '09 at 1:07
7  
Oh... That would just make it even worse. Then if I wanted to go in and add proper formatting, hyperlinks, etc. to a post, I'd need to plead with the author to enable Markdown first. The same author who couldn't figure out how to turn it on in the first place. I would probably just throw up my hands and vote to close on a lot more badly-formatted posts. –  Shog9 Oct 29 '09 at 1:51
1  
The last person to edit is responsible for the formatting - I don't think you need a special rule. There might be an edge case where someone wants to add to their edited post but doesn't understand the formatting codes, but with judicious placement of a formatting help button they might figure it out. –  Mark Ransom Oct 29 '09 at 4:07
1  
No. Codes should be indented by 4 spaces or wrapped in backticks, and special Markdown characters should be escaped with a backslash (\). –  nyuszika7h Feb 20 '11 at 12:57

4 Answers 4

What people don't seem to grok is that some barriers are there for a reason.

Those armchair designers who say "make it so easy anyone can do it" have no idea that they are, in a very real way, destroying the very system they set out to 'improve'.

The primary example is Wikipedia, where editing is so complex as to be completely impenetrable by the average user. This seems "wrong" but is in fact a feature. It keeps editing limited to people committed enough to the topic that they're willing. (and for the record our system is nowhere near as complex as Wikipedia. I mean, it's several orders of magnitude easier.)

If users can't be trained, and aren't willing to jump through the extremely minor hoop that is Markdown -- we do not want those users. The internet is a big place, and I have no desire to capture every user. I'm sure there are other websites where these types of users will be perfectly happy.

The design ethos here is "be brave enough to say no", instead of "saying yes to everything". I have seen so much software destroyed by well-meaning "say yes to everything!" teams.

share|improve this answer
    
At the very least Jeff, you have to make Markdown easier to learn. I've been on StackOverflow for a long time and racked up a decent rep, but I didn't know about ending a line with two spaces until I saw it on your blog. And I've been pasting 4 spaces to the beginning of each line of code, but now I suspect there has been an easier way all along - I haven't been able to confirm my suspicion yet. My earlier experiments with the code/pre tags never worked for me. –  Mark Ransom Oct 29 '09 at 4:26
1  
P.S. Do you hold the same opinion of an entry barrier for the StackExchange sites? –  Mark Ransom Oct 29 '09 at 4:27
1  
Jeff, just the other day you were asking "How do we grow the Server Fault and Super User communities?" Perhaps part of the answer is by not saying that you don't want users who are more interested in finding out why their mouse driver isn't working than in mastering the intricacies of some arbitrary obscure markup language. –  phenry Oct 29 '09 at 4:37
4  
that's a tradeoff I am more than willing to make. Not all users are worth having, and designing as if they are is why most sites fail. –  Jeff Atwood Oct 29 '09 at 4:49
1  
"you have to make Markdown easier to learn" while I completely admit that the 2-spaces-at-end-of-line is utterly undiscoverable, a huge plurality of users are able to parse the "How to Format" sidebar and the help ( meta.stackoverflow.com/editing-help ) linked generously from every page.. not to mention the real time preview which allows infinite real time experimentation. –  Jeff Atwood Oct 29 '09 at 4:51
5  
For me it's the real time preview which is the big life-saver, yes. It's one of the major differentiators of SO, in my view. –  Jon Skeet Oct 29 '09 at 7:02
1  
Mark, indenting each line with four spaces is the right way to enter code. You should only use the two spaces at the end when you need a break within a paragraph -- cases such as poetry and postal addresses. It's analogous to using SHIFT+ENTER in a word processor or WYSIWYG HTML editor (which is also not very discoverable). –  Patrick McElhaney Oct 29 '09 at 12:56
    
The "say yes to everything" crowd is clearly wrong (sethgodin.typepad.com/seths_blog/2009/10/…). I'm more sympathetic to the "inmates are running the asylum" crowd. Maybe I should stop listening to the voices in my head. –  Patrick McElhaney Oct 29 '09 at 13:20

For Stack Exchange? Sure.

For SO, the site built by programmers, for programmers? No. If you can't be bothered to learn such a simple markup language... or even bother to notice that it's required... Then you're hopeless.

On top of that... Most of the SO Markdown rendering is stuff that you probably already want! Lists get turned into HTML lists, *asterisk emphasis* gets italicized, URLs get hyperlinked, etc... Turning off Markdown by default just means the questions of lazy newbies will be ugly-looking for a new set of reasons.

share|improve this answer
1  
A few hours ago, I would have vehemently agreed with you, but a handful of thoughtful people (among a horde of brats) who disagree have weakened my resolve. I found the comment by Homer on October 27, 2009 9:35 PM at codinghorror.com/blog/archives/001306.html particularly persuasive. –  Patrick McElhaney Oct 29 '09 at 2:55
1  
I still don't think StackOverflow should deviate from standard Markdown, as Jeff suggested in the blog entry that started the whole controversy (codinghorror.com/blog/archives/001306.html). I'm willing to go along with just about any idea, as long as that catastrophe is averted. –  Patrick McElhaney Oct 29 '09 at 3:01
    
For the "stuff that I probably already want," I have another markup language at my disposal: HTML. It's nearly 20 years old and is used on a daily basis by thousands of people around the world. Best of all, HTML can handle asterisks and hashes and all sorts of things people are entitled to want to use without randomly turning things bold or formatting them in 24 point Trebuchet. –  phenry Oct 29 '09 at 3:31
3  
I agree this makes sense for Stack Exchange –  Jeff Atwood Oct 29 '09 at 4:52
4  
what you have to get over here is the idea that every user is sacred. You have to discard the 10% of users who are incapable or unwilling to learn things. These are not users you want. –  Jeff Atwood Oct 29 '09 at 4:53
4  
@phenry: Anyone who wants to ignore Markdown and just use HTML for formatting can already do so. Put all your paragraphs in <p> tags, and Markdown won't even try to interpret what's inside. Of course, if you happen to be asking a question that includes HTML or XML markup in a code listing, then that's still gonna fall apart unless you escape it... Users who escape their angle brackets and use the <pre> tag for code samples have already avoided the primary issue pointed out by Patrick here. –  Shog9 Oct 29 '09 at 12:37

Markdown already is opt-in, in that you can do everything via the toolbar if you want.

share|improve this answer
3  
I think you have a different understanding of the term "opt-in" than I do... –  Mark Ransom Oct 29 '09 at 4:00

Actually, you could have multiple different editors -- say like Altassian Confluence wiki does -- with the editor having RTF/Markdown/Preview tabs. The user could choose which type of editor they want as their default. I suspect most people would pick one and stick with it. All of the editors would probably need to save to one or the other format and a translation would be needed to the other's format.

share|improve this answer
3  
The ability to edit someone else's post really complicates matters - I don't think it's workable to allow more than one sanctioned editor. The question under consideration is a simple yes/no to a single formatting option, Markdown. –  Mark Ransom Oct 29 '09 at 4:45
    
Why would it make it more complicated? If there were always two options and your chosen option displayed each time as the default, you'd never be bothered with the other editor. Since they both save in the same format, no one even need know which editor anyone else is using. –  tvanfosson Oct 29 '09 at 12:19
3  
Having different editors saving to a common format is the complicated part. –  Mark Ransom Oct 29 '09 at 13:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .