Skip to content
Snippets Groups Projects
Unverified Commit 7484cf88 authored by Hécate Moonlight's avatar Hécate Moonlight Committed by GitHub
Browse files

Merge pull request #1516 from duog/9-4-backport-fix-hyperlinks

Backport 9-4: Fix hyperlinks to external items and modules (#1482)
parents 2368e932 2036454b
No related branches found
No related tags found
No related merge requests found
......@@ -24,6 +24,7 @@ import System.FilePath.Posix ((</>))
import qualified Data.Map as Map
import qualified Data.Set as Set
import qualified Data.List as List
import Text.XHtml (Html, HtmlAttr, (!))
import qualified Text.XHtml as Html
......@@ -249,14 +250,20 @@ hyperlink (srcs, srcs') ident = case ident of
Left name -> externalModHyperlink name
where
-- In a Nix environment, we have file:// URLs with absolute paths
makeHyperlinkUrl url | List.isPrefixOf "file://" url = url
makeHyperlinkUrl url = ".." </> url
internalHyperlink name content =
Html.anchor content ! [ Html.href $ "#" ++ internalAnchorIdent name ]
externalNameHyperlink name content = case Map.lookup mdl srcs of
Just SrcLocal -> Html.anchor content !
[ Html.href $ hypSrcModuleNameUrl mdl name ]
Just (SrcExternal path) -> Html.anchor content !
[ Html.href $ spliceURL Nothing (Just mdl) (Just name) Nothing (".." </> path) ]
Just (SrcExternal path) ->
let hyperlinkUrl = makeHyperlinkUrl path </> hypSrcModuleNameUrl mdl name
in Html.anchor content !
[ Html.href $ spliceURL Nothing (Just mdl) (Just name) Nothing hyperlinkUrl ]
Nothing -> content
where
mdl = nameModule name
......@@ -265,8 +272,10 @@ hyperlink (srcs, srcs') ident = case ident of
case Map.lookup moduleName srcs' of
Just SrcLocal -> Html.anchor content !
[ Html.href $ hypSrcModuleUrl' moduleName ]
Just (SrcExternal path) -> Html.anchor content !
[ Html.href $ spliceURL' Nothing (Just moduleName) Nothing Nothing (".." </> path) ]
Just (SrcExternal path) ->
let hyperlinkUrl = makeHyperlinkUrl path </> hypSrcModuleUrl' moduleName
in Html.anchor content !
[ Html.href $ spliceURL' Nothing (Just moduleName) Nothing Nothing hyperlinkUrl ]
Nothing -> content
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment