A reminder of the original design goal of Markdown - my personal thoughts

Michel Fortin michel.fortin at michelf.com
Mon Sep 5 13:36:31 EDT 2005


About these two forms:

<h3 id="inlinehtml">Inline HTML</h3>

### Inline HTML ### {#inlinehtml}

Fletcher T. Penney wrote:


> I find the second version to be distracting when read as raw text,

> and it certainly doesn't follow the original idea of not "looking

> like it’s been marked up with tags or formatting instructions."


I disagree. I find the second form less "marked up" and more readable
than than the first. The reason is that the header content (Inline
HTML) is placed first and isn't mixed with had-to-read metadata. The
id attribute is somewhat left-aligned and can more easily be ignored
as "markup" than in the first form where everything is packed and the
id attribute is shown first.

I think this the id attribute for headers makes a lot of sense since
you need it to make links to different parts of a document. Event the
Markdown syntax description document needs this. So it *is*, in my
view, pretty necessary.

Well, we could argue that what is really necessary is a way to link
to headers, not to set manually the id attribute of each one. But
there is many reasons to not want automatic id generation: What
happen to internal links if you change slightly the name of one
header? Will adding a new section in the middle of the document break
outside links to other headers? These two problems cannot appear if
you set your own id and do not change them.

Now, I also think you have a good point: there is no reason to allow
this syntax everywhere if it is not needed. While I think the id
attribute is pretty necessary for headers, I'm less sure about other
attributes and other elements. Currently, I see these as "important":

* Cite attribute for blockqutoes
* Image width and height (maybe)
* Class attribute (do we need this absolutely everywhere?)

(Did I forgot something?)


> Otherwise, I envision myself (and other "purists" if there are any)

> creating a "Markdown Lite" that removes any additions that don't

> fit the original plan. If the project is going to deviate from

> this plan, I believe it should at least deviate on purpose. Not

> through the slow unchecked feature-bloat of time.


I think for that to be successful, such a Markdown Lite would need to
be either

1. significantly faster that a "bloated" Markdown; or
2. standard Markdown would need to cause enough trouble to people
not using the "advanced features" to make them switch.

The first condition will probably be hard to achieve without a total
rewrite since I think the parts of Markdown that are most time-
consuming right now are for working around inline HTML. This include
HTML produced by Markdown's own conversion of its syntax, so you
cannot remove inline HTML support and say it will run faster.

The second condition presume a Markdown with more features will be
less usable. I somewhat doubt this: the Markdown syntax says you
don't have to use every features and I don't see this changing. If
you prefer to write `<strong>` instead of `**`, do it; if you prefer
to write `<h3 id="somehting"></h3>` instead of `### {#something}`,
just do so.


Michel Fortin
michel.fortin at michelf.com
http://www.michelf.com/




More information about the Markdown-Discuss mailing list