Whats Wrong with Markdown
adamhyde.net
adamhyde.net
Markdown is a markup language for relatively simple structured documents. You can convert it to HTML, but you could as well convert it to something else.
> However that is where the use case ends. .MD is not a useful format for many other cases unless you want to prove to the programmers that you too can do tricky stuff in plain text. For the rest of us it has little value.
It's used by Reddit and some content management systems. Regular users don't have any problems with it. It's a lot easier to use than HTML and also more convenient to use than RTEs.
Markdown isn't for writing HTML. It's for writing the actual content.
I wrote about 100 articles in "raw" HTML. I surely don't miss those days. It was error prone and the tags added very distracting visual noise.
One very common problem I've seen is a conversation like "How old are you?" "21." which Markdown interprets '21.' as a list and renumbers from 1, leading to: "How old are you?" "1."
Another problem is that single linebreaks are ignored. Things like song lyrics and ASCII art get messed up, and some people even use single linebreaks for paragraphs. And even if you do use two linebreaks for paragraphs, there's still the problem that copy/pasting text will eliminate paragraph breaks since they're copy/pasted as one linebreak.
I could go on, but the point is that Markdown is honestly not a very user-friendly way to format text on a discussion website.
It's just annoying that he/she isn't providing any solutions and is just being a Negative Nelly. Why not write something like: "Whats Wrong with Cars and How We Can Fix Them". All I got from the article was "Cars suck, all the people who use them are just 'cool aid' drinkers".
Also there are numerous typos, such as: "...it woudl look like this:"
As for negative nelly, the post right after the markdown one is about an alternative (for a very specific context). But no matter, you're probably right, it might have been better to add a few alternatives to the end of the article.
Markdown is just a horrible solution to this problem. Rather than 'Common Markdown' there really needs to be 'Common Markup' which strictly limits the tags WYSIWYG editors use. This would enable true interop and solve the real issue for most people who could - like the author pointed out - see the formatting they were using.
Think of it as the equivalent of ASM.js for markup - only the core tags (the ones Markdown uses) would be used, and only in a specific way. That would speed up parsing, processing and display and none of us would have to remember if adding a link uses () or [] first again (I always get it backwards).
I also often forgot, until I read this paraphrased explanation [0]: when we write, we are much more likely to parenthesize than "bracketize" (as in this parenthetical), so the square brackets [] go first when making a link. This makes it easier for the parser.
[0] I read this in a comment on HN, but sadly I cannot find the comment, else I would give proper attribution.
I do this. Reading through my recent comments on [Website X] concludes that I use it as kind of an "italics" tag even though there IS markdown on that very website. I guess it becomes more pronounced.
Virtually all of the text I write is Markdown. Even this very comment is written in a subset of Markdown (and so is yours).
It's converted into paragraphs. Just like stuff inside asterisks is converted into emphasis.
The comments are written in a markup language (Markdown, UBB, whatever...) which is then converted to HTML.
It's transformed and not displayed as-is.
Anyway. Im not going to argue this further. Agreed to disagree.
reasons:
* a third party tool produces different results from other third party tools
* the chosen third party tool works from the command line
* because un-official docs say so
its document markup specifically to be rendered to html, its not html abstraction, if it was html abstraction, it would be looking like haml instead
- - -
"![]()" doesn't look like an image, "" does, and would be really hard to mistake for anything else
thats like complaining about the use of brackets in C by just saying, "`{([])}` looks unreadable, doesn't it?"
- - -
"Markdown is good for limited use cases. Use it for README files on github." and yet you just spent an entire blog post complaining about that exact series of use cases
zero alternatives mentioned to complaints raised, pre-emptive insults against those who might have issue with a poor article
"I need the user to give me plain text but they also need bold, hyperlinks, and bullets" is the use-case for markdown. It does this fine. It could do things better, but it does its job fine.
I have had users get annoyed, however, that _underscore_ doesn't underline.
So although it might be slightly easier to get started with, it doesn't let you do everything you need (as a scientific writer).
That's not the purpose of Markdown. Markdown is a quick language to write HTML formatted content,nothing more.It's supports a limited set of tags. It's popular because it's simple ,unlike LaTeX. It's popular because it's easy to write a Markdown parser. Simple tools are always popular.There is nothing more to it. A rant against Markdown is unnecessary.It was designed for a single,limited purpose.
If you're using programming slang to make yourself more productive, then you're not programming. You're a boiler-plate code generator. Therefore you could be replaced by a program or DSL that a more adept programmer could write. Stop using slanguages and start thinking about what and how you're coding. You'll become a better programmer. Quit trying to fool yourself that syntactic sugar and shortcuts are a valid development paradigm. You'll become a better project manager.
I abhor things like CoffeeScript and Markdown and various metalanguages, because they are speciously productive at first. You type less and get the same result. Great! However, most coding actually requires some thought and the logic and structures don't simply fly off your fingers. It comes slowly and these slanguages stop being useful at this point. So you take the time and effort to learn a modified, non-standard syntax that stops paying off once you get to the core of your task.
I hate to think of how many wasted programming man-hours non-standardized formats have produced.
Use case for markdown: when I build website (by hand, writing pure HTML-CSS-JS on my text editor of choice), adding the copy can be a chore. If I write it in markdown, or ask people to write it in markdown, or reprocess whatever they send me in a markdown editor with html output (I.e. Byword), I save a ton of time by producing a very simple html text block I just need to copy and paste where needed.
Second use case: when I wrote my degree thesis I chose to do that with a normal text processing software (Pages on the Mac). When I had to put it online, I simply copied it inside a markdown editor coupled with a previewer (Marked) and I quickly wrote a couple of scripts to convert footnotes (supported by hyper markdown). Half a day later I had my chapters in a format that I was able to quickly turn into html blocks for my website and convert to ePub with Pandoc. Markdown saved me hours of work.
Third use case: whenever I write a post for the web publications I work for, I write it in markdown with Byword, because it gives me a good distraction-free writing environment and the ability to send my editors (that being myself, sometimes) a perfectly fit HTML a version of the article. When I write articles, I want to focus on writing the article, not writing even the simplest HTML.
Last, but not least, the guy seems to willfully ignore the plethora of very good markdown editors (with incredible support to HTML conversion) out there.
This is why the article sounded more like a bitter rant, than a thought critique.
Non-standardized formats/languages are the jive (http://en.wikipedia.org/wiki/Glossary_of_jive_talk) of the development world. It sets you apart from the general population (of programmers) when you use it. It primarily effects obfuscated communication to a smaller group. The specific form of jive will fall out of fashion a few years after you learn it. There is very little value in committing it into your brain other than for 'funsies'.
(In regard to Markdown specifically: there are tons of WYSIWYG HTML editors out there. Use those and copy/paste the HTML text. It requires no learning at all. Markdown was pre-emptively made useless over a decade ago.)
That statement may or may not be true, but its converse ("typing MORE makes me more productive") is nigh-certainly false.
> The original purpose of .MD is that it can be read without converting it to another format like HTML (...) .MD is designed not to be rendered for display, it is meant to be the display.
And this is the first paragraph from Markdown's introduction[1]:
> Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).
Keywords here: "for web writers" and "convert it". Let me say it again: this is the first paragraph you read when you look for Markdown.
"Thus, “Markdown” is two things: (1) a plain text formatting syntax; and (2) a software tool, written in Perl, that converts the plain text formatting to HTML. "
The article was about the former, your comment confused it with the later. Cheers.
EDIT: the parser on this site seems to think that > is valid in a URL.
I use Markdown to take text notes; it's quick to write, and especially with my text editor's syntax highlighting it looks decent too.
> Markdown (.MD) is a text format that lazy people use to write HTML.
This is just blatantly false. Markdown was never intended to replace HTML.
Second, the author points how how "The quick brown fox jumps over the lazy dog" is not very legible. I completely agree. However, this is contrived example that you are unlikely to encounter in practice. Just as it would be unlikely someone would mix bold and italics so closely in "real" formatted text.
The author then goes on to say that
> Lets face it, even Programmers don't like reading raw Markdown and so in the most popular .MD repository of them all - github - the Markdown files are rendered in the browser as nicely formatted HTML.
As a programmer, I actually really enjoy reading Markdown files. While it is true that it can be made more visually appealing for inclusion in a website like what happens on GitHub, it is great to have a somewhat standardized format that makes it pleasant to read those same files when you aren't browsing the files online. While I would bring up browsing files from the command-line here, the author seems to have a strong dislike for those of us who dabble in the black magic that is the shell.
All this aside, it is true that Markdown is not the right tool for everyone, and that the toolchain does not necessarily make it easy for beginners to get started writing all of their documents in Markdown. However, try to make someone open a Word document without Word, and see how easy that is. The lack of (beginner friendly) tooling is definitely not a sign of a poor format.
Finally, the author ends with
> However, if you have heard that there is this cool format available and it cures all your textual needs and it is just really really easy to use and really really quick...then think about the elixir you are being offered and re-read this document before slurping away...
a) it is not a new format
b) it never claims to cure all your textual needs - it aims to make it easier to create formatted text, where previously there was none
c) it is, without a doubt, really really easy, and really really quick, because any plain text document is valid Markdown. All Markdown does is attempt to standardize some (already fairly common) methods for applying *simple* formatting to that text.
While the author bashes Markdown's lack of standardization, the cases that are brought up by CommonMark are more important for implementors than for writers, and "regular" users will likely find the informal language description more than satisfactory for common usage.TL;DR: The author is hating on Markdown, mostly due to incorrect assumptions and seemingly a personal dislike for plain-text formats.
Argh. My reply got burned by the server downtime. Just to say I dont have anything against the shell and plain text- I produced (facilitated) the production of numerous books around this topic including http://www.flossmanuals.net/command-line/
Glad you like reading markdown. I don't think that is a majority position though and I see markdown being promoted to a larger community at times that really wouldn't find it useful or nice to use.
So yes, people will enjoy reading Markdown in at least as much as they do plain text. And yes, the implementation quirks will be annoying for anyone using it. But I don't see how all these add up to a larger argument against Markdown.
Successful rants provide solutions at the end. Otherwise, its just that, a rant that has no real meaning at all other than allowing you to vent - like this post.
Feel better (I do).
I'd suggest some things here:
* Do not post; wait. I don't know what was going on when you wrote [2], but you were clearly not in a mood to write anything constructive. Maybe you should have skipped [2] and only write your second article about markdown (not that I really agree with it either (see below), but at least it is developed).
* I don't really see the point in complaining alone. Maybe you should look for alternatives, and post them along with your complains. Or if you don't know any and don't want/have time to look for one, ask people (I don't know if you can easily add things like discuss on Ghost). For [1], I think you would like GitLab, for example.
Honestly, after reading your article about markdown (the long one), I don't feel like reading any other of your articles. Not that it's bad, but I waited the whole article for some things that never came[], and ended up feeling like I wasted my time there: I just listened to someone complaining about something (mainly about being bad for doing things it's not really meant to do), and nothing else. So now I expect to experience the same with any of your articles (and I'm probably wrong), and I may be missing some great things. [] I was expecting some kind of "solution". Alternatives? Anything?
~
About the article:
You complain about markdown, but use Ghost for your blog (or can you write blog posts with something else on Ghost? Didn't see any from their home page). You never mention any alternative.
Maybe because there isn't many that are:
* easy to read without being parsed, with most of the syntax being somewhat explicit
* can be used to produce "clean" html
* widely used (with some flavors but mainly the same syntax)
And that's markdown (to me at least). It's not here to replace html, MS Word, etc. More like replacing bbcode and other ugly syntaxes. You sound like you'd rather use plain html, but do you? Would anyone rather use plain html than markdown (when available) for writing simple formatted text? (well yes, some would.. xD)
Markdown could greatly benefit from standardization, though. That was the one valid point in your article, imho. It's sad but I haven't seen many big differences anyway, except: * some space differences (line breakings, etc.), but no change in the meaning of the syntax * lists must be preceded by an empty line on some parsers * custom syntax for additional parsing (images, etc.) but well, that's not really a problem with markdown, more like a problem with ghost-flavored (or anythingelse-flavored) markdown
It's not perfect, and still wouldn't be even if standardized (but would be much closer); but I see no better alternative. And neither do you, seemingly. (so no, I did not find your "numerous articles on better alternatives" =/)