aboutsummaryrefslogtreecommitdiff
path: root/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2016-02-12 10:04:22 +0100
committerBen Gamari <ben@smart-cactus.org>2016-02-12 10:04:22 +0100
commite18d166b39cdc8c6672b626b4b840c1c383a9685 (patch)
tree43aa1526b9980fdf9f6fc8cbd5a6027b9e82970c /haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
parent57a5dcfd3d2a7e01229a2c3a79b1f99cd95d5de1 (diff)
parent6a6029f1fc7b2cfeea8e231c8806d293d6644004 (diff)
Merge remote-tracking branch 'origin/master' into ghc-head
Diffstat (limited to 'haddock-api/src/Haddock/Backends/Xhtml/Layout.hs')
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml/Layout.hs11
1 files changed, 7 insertions, 4 deletions
diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
index 98df09fe..26aeaff8 100644
--- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
+++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
@@ -43,12 +43,13 @@ import Haddock.Backends.Xhtml.DocMarkup
import Haddock.Backends.Xhtml.Types
import Haddock.Backends.Xhtml.Utils
import Haddock.Types
-import Haddock.Utils (makeAnchorId)
+import Haddock.Utils (makeAnchorId, nameAnchorId)
import qualified Data.Map as Map
import Text.XHtml hiding ( name, title, p, quote )
import FastString ( unpackFS )
import GHC
+import Name (nameOccName)
--------------------------------------------------------------------------------
-- * Sections of the document
@@ -256,9 +257,11 @@ topDeclElem lnks loc splice names html =
-- | Adds a source and wiki link at the right hand side of the box.
-- Name must be documented, otherwise we wouldn't get here.
links :: LinksInfo -> SrcSpan -> Bool -> DocName -> Html
-links ((_,_,sourceMap,lineMap), (_,_,maybe_wiki_url)) loc splice (Documented n mdl) =
- (srcLink <+> wikiLink)
- where srcLink = let nameUrl = Map.lookup origPkg sourceMap
+links ((_,_,sourceMap,lineMap), (_,_,maybe_wiki_url)) loc splice docName@(Documented n mdl) =
+ srcLink <+> wikiLink <+> (selfLink ! [theclass "selflink"] << "#")
+ where selfLink = linkedAnchor (nameAnchorId (nameOccName (getName docName)))
+
+ srcLink = let nameUrl = Map.lookup origPkg sourceMap
lineUrl = Map.lookup origPkg lineMap
mUrl | splice = lineUrl
-- Use the lineUrl as a backup