Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nested lists shown as un-nested #744

Closed
AvverbioPronome opened this issue Feb 8, 2013 · 7 comments
Closed

nested lists shown as un-nested #744

AvverbioPronome opened this issue Feb 8, 2013 · 7 comments

Comments

@AvverbioPronome
Copy link

+ one
+ two
+ three
  + three.one
  + three.two

outputs like

+ one
+ two
+ three
+ three.one
+ three.two

And that is not the way it should be: items three.one & three.two are on level 2, inside "three"

  • , not below on same level.

  • @AvverbioPronome
    Copy link
    Author

    argh, missed this note:

    Note: Although the four-space rule for continuation paragraphs comes from the official markdown syntax guide, the reference implementation, Markdown.pl, does not follow it. So pandoc will give different results than Markdown.pl when authors have indented continuation paragraphs fewer than four spaces.

    The markdown syntax guide is not explicit whether the four-space rule applies to all block-level content in a list item; it only mentions paragraphs and code blocks. But it implies that the rule applies to all block-level content (including nested lists), and pandoc interprets it that way.

    although I don't like it. aren't two spaces enough?

    @jgm
    Copy link
    Owner

    jgm commented Feb 8, 2013

    +++ Giuseppe C [Feb 08 13 08:08 ]:

    argh, missed [1]this note:

     Note: Although the four-space rule for continuation paragraphs comes
     from the official markdown syntax guide, the reference
     implementation, Markdown.pl, does not follow it. So pandoc will give
     different results than Markdown.pl when authors have indented
     continuation paragraphs fewer than four spaces.
    
     The markdown syntax guide is not explicit whether the four-space
     rule applies to all block-level content in a list item; it only
     mentions paragraphs and code blocks. But it implies that the rule
     applies to all block-level content (including nested lists), and
     pandoc interprets it that way.
    

    although I don't like it. aren't two spaces enough?

    Markdown implementations are all over the place in their treatment
    of nested lists. I don't think the 4-space rule is necessarily the
    best, but at least it's consistent and arguably follows the spec.

    @AvverbioPronome
    Copy link
    Author

    Markdown implementations are all over the place in their treatment
    of nested lists. I don't think the 4-space rule is necessarily the
    best, but at least it's consistent and arguably follows the spec.

    Well... we're talking about a minimum number of spaces, not an exact one. So, are there any reasons to raise this limit to 4? (I dunno what the limit is: I didn't try Markdown.pl with just one space.)

    @jgm
    Copy link
    Owner

    jgm commented Feb 8, 2013

    +++ Giuseppe C [Feb 08 13 09:38 ]:

     Markdown implementations are all over the place in their treatment
     of nested lists. I don't think the 4-space rule is necessarily the
     best, but at least it's consistent and arguably follows the spec.
    

    Well... we're talking about a minimum number of spaces, not an exact
    one. So, are there any reasons to raise this limit to 4? (I dunno what
    the limit is: I didn't try Markdown.pl with just one space.)

    There are a couple of reasons. First, the spec strongly implies that
    4 are required (even if Markdown.pl doesn't consistently follow this --
    nor does it follow a 2-space rule consistently).

    Second, there needs to be a clear rule for where indented code blocks
    inside nested lists begin. The 4-space rule makes this rule clear
    and predictable. They begin 4 spaces after the point where the nested
    list can begin.

    That said, I'm not completely sold on the 4-space rule, and I'm doing
    something different in a javascript markdown I've been working on.
    If it all works out, I may eventually change pandoc to match.

    @AvverbioPronome
    Copy link
    Author

    Second, there needs to be a clear rule for where indented code blocks
    inside nested lists begin. The 4-space rule makes this rule clear
    and predictable. They begin 4 spaces after the point where the nested
    list can begin.

    That meaning if I use more than 8 spaces, everything becomes a code block? Awful.

    That said, I'm not completely sold on the 4-space rule, and I'm doing
    something different in a javascript markdown I've been working on.
    If it all works out, I may eventually change pandoc to match.

    Cool.

    There has to be someway to identify the beginning of a list, based on, ie, the first char of the first sentence. It could be a real mess with ordered lists, regrettably, as item identifiers vary in size... :(

    @jgm
    Copy link
    Owner

    jgm commented Feb 8, 2013

    +++ Giuseppe C [Feb 08 13 09:58 ]:

     Second, there needs to be a clear rule for where indented code
     blocks
     inside nested lists begin. The 4-space rule makes this rule clear
     and predictable. They begin 4 spaces after the point where the
     nested
     list can begin.
    

    That meaning if I use more than 8 spaces, everything becomes a code
    block? Awful.

    Yes. And this is explicit in the markdown spec.

     That said, I'm not completely sold on the 4-space rule, and I'm
     doing
     something different in a javascript markdown I've been working on.
     If it all works out, I may eventually change pandoc to match.
    

    Cool.

    There has to be someway to identify the beginning of a list, based on,
    ie, the first char of the first sentence. It could be a real mess with
    ordered lists, regrettably, as item identifiers vary in size... :(

    Yes, there are a lot of complexities, especially when you realize
    that a list can START with an indented code block...

    @jgm
    Copy link
    Owner

    jgm commented Feb 8, 2013

    I'll go ahead and close this. IN the long term, I may revisit the list indenting rules.

    @jgm jgm closed this as completed Feb 8, 2013
    jgm added a commit that referenced this issue Aug 19, 2017
    Closes #3511.
    
    Previously pandoc used the four-space rule: continuation paragraphs,
    sublists, and other block level content had to be indented 4
    spaces.  Now the indentation required is determined by the
    first line of the list item:  to be included in the list item,
    blocks must be indented to the level of the first non-space
    content after the list marker. Exception: if are 5 or more spaces
    after the list marker, then the content is interpreted as an
    indented code block, and continuation paragraphs must be indented
    two spaces beyond the end of the list marker.  See the CommonMark
    spec for more details and examples.
    
    Documents that adhere to the four-space rule should, in most cases,
    be parsed the same way by the new rules.  Here are some examples
    of texts that will be parsed differently:
    
        - a
          - b
    
    will be parsed as a list item with a sublist; under the four-space
    rule, it would be a list with two items.
    
        - a
    
              code
    
    Here we have an indented code block under the list item, even though it
    is only indented six spaces from the margin, because it is four spaces
    past the point where a continuation paragraph could begin.  With the
    four-space rule, this would be a regular paragraph rather than a code
    block.
    
        - a
    
                code
    
    Here the code block will start with two spaces, whereas under
    the four-space rule, it would start with `code`.  With the four-space
    rule, indented code under a list item always must be indented eight
    spaces from the margin, while the new rules require only that it
    be indented four spaces from the beginning of the first non-space
    text after the list marker (here, `a`).
    
    This change was motivated by a slew of bug reports from people
    who expected lists to work differently (#3125, #2367, #2575, #2210,
     #1990, #1137, #744, #172, #137, #128) and by the growing prevalance
    of CommonMark (now used by GitHub, for example).
    
    Users who want to use the old rules can select the `four_space_rule`
    extension.
    
    * Added `four_space_rule` extension.
    * Added `Ext_four_space_rule` to `Extensions`.
    * `Parsing` now exports `gobbleAtMostSpaces`, and the type
      of `gobbleSpaces` has been changed so that a `ReaderOptions`
      parameter is not needed.
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    None yet
    Projects
    None yet
    Development

    No branches or pull requests

    2 participants