Spaces/repeated characters in headers and horizontal rules

I feel the spec needs more consistency in which types of characters can be duplicated or separated by spaces. Here are some (hopefully illustrative) examples:

This is a regular header
========================

And here's another
------------------

### And yet another ###

But this isn't a header.
- - - - - - - - - - - -

# # # Nor is this # # #

########## NOR THIS ##########

Here is a long horizontal rule.
- - - - - - - - - - - - - - - -

And here's another.
** ** ** ** ** ** **

But

This is just a bunch of hashes
##############################

Bigger but still just octothorpes
# # # # # # # # # # # # # # # # # 

Or an empty h6?
###### #######

A nice long header
------------------

And a nifty horizontal line
- -------------------------

Are just a simple typo apart.


I’m not sure what the right solution would be, but here are a few options (some of which may be mutually exclusive):

  • Allow more than 6 # symbols in ATX-style headers (6 or more will produce an h6).

  • Don’t allow empty ATX headers.

    • (Instead,) allow # to be used as a horizontal rule character.
  • Allow spaces between -s in Setext headers, and/or between #s in ATX headers.

We’re trying to follow John Gruber’s original Markdown syntax
specification here. One can see virtues in your proposals, but
it’s getting away from Markdown as it exists now.