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

Indented bullets in markdown lose indentation in mediawiki #2367

Closed
ragesoss opened this issue Aug 19, 2015 · 3 comments
Closed

Indented bullets in markdown lose indentation in mediawiki #2367

ragesoss opened this issue Aug 19, 2015 · 3 comments

Comments

@ragesoss
Copy link

When converting from markdown to mediawiki, this input:

* item
  * sub-item
  * sub-item 2

produces this output:

* item
* sub-item
* sub-item 2

The indentation / sub-item hierarchy is lost in the conversion. The actual corresponding mediawiki syntax would be either of these:

* item
:* sub-item
:* sub-item 2

or

* item
** sub-item
** sub-item 2
@KurtPfeifle
Copy link

You have to indent each additional sublevel by 4 extra spaces. Then it works:

* item
    * sub-item 1
    * sub-item 2

It will produce:

* item
** sub-item 1
** sub-item 2

See also the docu: http://pandoc.org/README.html#the-four-space-rule

@ragesoss
Copy link
Author

Thanks, that's helpful. It would be better, though, if Pandoc also recognized the two-space format, since that's how most markdown implementations work.

@jgm
Copy link
Owner

jgm commented Aug 19, 2015

Actually, there is a lot of variation among markdown implementations in this regard. Many of the implementations that sometimes allow a two-space indent don't do so consistently:
http://johnmacfarlane.net/babelmark2/?normalize=1&text=-+a%0A++-+b%0A++++-+c%0A++++++-+d%0A

More inconsistency with one-space indents:
http://johnmacfarlane.net/babelmark2/?normalize=1&text=-+a%0A+-+b%0A++-+c%0A+++-+d%0A

Moreover, if you allow < 4 space indent, but retain Gruber's rule that indented code under a list item must be indented 8 spaces, you get an ugly situation.

In my view, the only implementations with really coherent rules for indented lists are those that adopt the 4-space rule, like pandoc, and those that conform to the CommonMark spec, which allows two-space indentation and alters Gruber's rule about indented code under list items in a way that ensures backwards compatibility with 4-space-rule implementations.

@jgm jgm closed this as completed Aug 19, 2015
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

3 participants