fix: work around GitHub formatting issue
authorGreg Hurrell <greg.hurrell@liferay.com>
Tue, 1 Sep 2020 18:10:41 +0000 (20:10 +0200)
committerGreg Hurrell <greg.hurrell@liferay.com>
Tue, 1 Sep 2020 18:14:48 +0000 (20:14 +0200)
When we generate Markdown like this:

    <p align="right"><a name="loupe-smartcase-override" href="#user-content-loupe-smartcase-override"><code>loupe-smartcase-override</code></a></p>
    <strong>`'smartcase'`</strong>

    Turned on (overrides <strong>`'ignorecase'`</strong>, making the search pattern case-sensitive whenever it containers uppercase characters).

GitHub mangles the first `<strong>` element:

    <strong>`'smartcase'`</strong>

But does the right thing with the second one:

    <strong><code>'ignorecase'</code></strong>

If we add another line break in between, the problem goes away.

So, rejig how we emit newlines. Instead of emitting them before
headings, emit them after link targets. This ends up looking better
anyway, resulting in fewer blank lines overall in the output.

Sample change in Loupe project as a result of this change:

https://gist.github.com/wincent/3305bd10ba651320b2c3ea4852d22e91

lib/Text/Docvim/Printer/Markdown.hs

index 19c373499fde8a902bc86a8ec3b43854e39e1bff..eec6268e7ddd9514e5208bfc4e0d7cc0364dfb9f 100644 (file)
@@ -120,6 +120,7 @@ linkTargets ls =  "<p align=\"right\">"
                ++ unwords (map linkify $ sort ls)
                ++ "</p>"
                ++ "\n"
+               ++ "\n"
   where
     linkify l = a $ Anchor [ Attribute "name" (sanitizeAnchor l)
                            , Attribute "href" (gitHubAnchor l)
@@ -138,7 +139,7 @@ h3 = heading 3
 heading :: Int -> String -> Env
 heading level string = do
   metadata <- ask
-  return $ "\n" ++ replicate level '#' ++ " " ++ string ++ anch (pluginName metadata) ++ "\n\n"
+  return $ replicate level '#' ++ " " ++ string ++ anch (pluginName metadata) ++ "\n\n"
   where
     anch name = a $ Anchor [ Attribute "name" (sanitizeAnchor $ pre ++ string)
                            , Attribute "href" (gitHubAnchor $ pre ++ string)