From a03c93524ba2ca4143c10770a2fa0dd134b57a83 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalczyk Date: Sun, 8 Sep 2013 01:28:57 +0100 Subject: Allow for nesting of paragraphs under lists. The nesting rules are similar to Markdown's with the exception that we can not simply indent the first line of a hard wrapped indented paragraph and have it treated as if it was fully indented. The reason is differences in markup as some of our constructs care about whitespace while others just swallow everything up so it's just a lot easier to not bother with it rather than making arbitrary rules. Note that we now drop trailing for string entities inside of lists. They weren't needed and it makes the output look uniform whether we use a single or double newline between list elements. Conflicts: src/Haddock/Parser.hs test/Haddock/ParserSpec.hs --- html-test/ref/Bold.html | 6 +- html-test/ref/DeprecatedReExport.html | 3 +- html-test/ref/Nesting.html | 288 ++++++++++++++++++++++++++++++++++ html-test/ref/PruneWithWarning.html | 3 +- html-test/ref/Test.html | 18 +-- html-test/src/Nesting.hs | 115 ++++++++++++++ 6 files changed, 413 insertions(+), 20 deletions(-) create mode 100644 html-test/ref/Nesting.html create mode 100644 html-test/src/Nesting.hs (limited to 'html-test') diff --git a/html-test/ref/Bold.html b/html-test/ref/Bold.html index 4d5f559a..f6bdbd5e 100644 --- a/html-test/ref/Bold.html +++ b/html-test/ref/Bold.html @@ -68,8 +68,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bold.html");}; >
  • Bold in a list -
  • in a list
    bold in a definition
    list -
    list
     bold What is tested here:

    • Deprecation messages are shown for re-exported items. -
    • Deprecation messages are shown for re-exported items.
    +Nesting
    Safe HaskellSafe-Inferred

    Nesting

    Synopsis

    • d :: t
    • e :: t
    • f :: t
    • g :: t
    • h :: t
    • i :: t
    • j :: t

    Documentation

    d :: t

    • We can
      • easily go back
        1. some indentation
      • levels
    1. back at the top

    e :: t

    • Beginning of list
      • second list
    • Some indented list but +the presence of this text pushes it out of nesting back to the top.

    f :: t

    • Beginning of list
      nested code
      +    we preserve the space correctly
      +

    g :: t

    • Beginning of list
      • Nested list

    h :: t

    • Beginning of list
       nested
      + bird
      + tracks

    i :: t

    • Beginning of list +This belongs to the list above!
       nested
      + bird
      + tracks
      • Next list +More of the indented list.
        • Deeper
          • Deeper
            • Even deeper!
            • No newline separation even in indented lists.

    j :: t

    All this
    Works for +definition lists too.
     nested
    + bird
    + tracks
    • Next list +with more of the indented list content.

      Even more content on a new line.

      1. Different type of list
        1. Deeper
        >>> Here's an example in a list
        +example result
        +
        b
        Even deeper!
        c
        No newline separation even in indented lists. + We can have any paragraph level element that we normally + can, like headers

        Level 3 header

        with some content…

        • and even more lists inside
    diff --git a/html-test/ref/PruneWithWarning.html b/html-test/ref/PruneWithWarning.html index 837c28b4..4fba05b6 100644 --- a/html-test/ref/PruneWithWarning.html +++ b/html-test/ref/PruneWithWarning.html @@ -52,8 +52,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_PruneWithWarning.html" >If a binding has a deprecation message but no documentation, it is pruned when OPTIONS_HADDOCK prune is used. - is used..

    • This is a bulleted list -
    • This is a bulleted list
    • This is the next item (different kind of bullet) -
    • This is the next item (different kind of bullet)
    1. This is an ordered list -
    2. This is an ordered list
    3. This is the next item (different kind of bullet) -
    4. This is the next item (different kind of bullet)
    cat
    a small, furry, domesticated mammal -
    a small, furry, domesticated mammal
    pineapple
    a fruit grown in the tropics -
    a fruit grown in the tropics
         This is a block of code, which can include other markup:  nested
    +    > bird
    +    > tracks
    +-}
    +h :: t
    +h = undefined
    +
    +{-|
    +* Beginning of list
    +This belongs to the list above!
    +
    +    > nested
    +    > bird
    +    > tracks
    +
    +    * Next list
    +    More of the indented list.
    +
    +        * Deeper
    +
    +            * Deeper
    +
    +                    * Even deeper!
    +                    * No newline separation even in indented lists.
    +-}
    +i :: t
    +i = undefined
    +
    +
    +
    +{-|
    +[All this] Works for
    +definition lists too.
    +
    +    > nested
    +    > bird
    +    > tracks
    +
    +    * Next list
    +    with more of the indented list content.
    +
    +        Even more content on a new line.
    +
    +        1. Different type of list
    +
    +            (2) Deeper
    +
    +            >>> Here's an example in a list
    +            example result
    +
    +                    [b] Even deeper!
    +                    [c] No newline separation even in indented lists.
    +                    We can have any paragraph level element that we normally
    +                    can, like headers
    +
    +                    === Level 3 header
    +                    with some content…
    +
    +                    * and even more lists inside
    +-}
    +j :: t
    +j = undefined
    -- 
    cgit v1.2.3