diff options
author | Iñaki <1238558+garetxe@users.noreply.github.com> | 2020-04-25 23:38:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-25 18:38:11 -0400 |
commit | 3c9e8081228ffcc38c760a6d9501a626071a5105 (patch) | |
tree | a2adb031d6fe8e5dd20e0c0c263fd872347e7c09 /haddock-api/src | |
parent | 5bc5016a14bc872a8315cddc629f8171a9ccd62e (diff) |
Add support for custom section anchors (#1179)
This allows to have stable anchors for groups, even if the set of
groups in the documentation is altered.
The syntax for setting the anchor of a group is
-- * Group name #desiredAnchor#
Which will produce an html anchor of the form '#g:desiredAnchor'
Co-authored-by: Iñaki García Etxebarria <git@inaki.blueleaf.cc>
Diffstat (limited to 'haddock-api/src')
-rw-r--r-- | haddock-api/src/Haddock/Backends/Xhtml.hs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index e3d4e8ca..4e87d0be 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -672,10 +672,16 @@ numberSectionHeadings = go 1 where go :: Int -> [ExportItem DocNameI] -> [ExportItem DocNameI] go _ [] = [] go n (ExportGroup lev _ doc : es) - = ExportGroup lev (show n) doc : go (n+1) es + = case collectAnchors doc of + [] -> ExportGroup lev (show n) doc : go (n+1) es + (a:_) -> ExportGroup lev a doc : go (n+1) es go n (other:es) = other : go n es + collectAnchors :: DocH (Wrap (ModuleName, OccName)) (Wrap DocName) -> [String] + collectAnchors (DocAppend a b) = collectAnchors a ++ collectAnchors b + collectAnchors (DocAName a) = [a] + collectAnchors _ = [] processExport :: Bool -> LinksInfo -> Bool -> Maybe Package -> Qualification -> ExportItem DocNameI -> Maybe Html |