aboutsummaryrefslogtreecommitdiff
path: root/haddock-api
diff options
context:
space:
mode:
Diffstat (limited to 'haddock-api')
-rw-r--r--haddock-api/resources/html/Ocean.std-theme/ocean.css4
-rw-r--r--haddock-api/resources/html/haddock-util.js132
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml.hs70
3 files changed, 9 insertions, 197 deletions
diff --git a/haddock-api/resources/html/Ocean.std-theme/ocean.css b/haddock-api/resources/html/Ocean.std-theme/ocean.css
index 9d2c644f..3bfc8982 100644
--- a/haddock-api/resources/html/Ocean.std-theme/ocean.css
+++ b/haddock-api/resources/html/Ocean.std-theme/ocean.css
@@ -327,10 +327,6 @@ div#style-menu-holder {
}
#synopsis {
- display: none;
-}
-
-.no-frame #synopsis {
display: block;
position: fixed;
right: 0;
diff --git a/haddock-api/resources/html/haddock-util.js b/haddock-api/resources/html/haddock-util.js
index 92d07d2a..05bdaef5 100644
--- a/haddock-api/resources/html/haddock-util.js
+++ b/haddock-api/resources/html/haddock-util.js
@@ -1,7 +1,7 @@
// Haddock JavaScript utilities
var rspace = /\s\s+/g,
- rtrim = /^\s+|\s+$/g;
+ rtrim = /^\s+|\s+$/g;
function spaced(s) { return (" " + s + " ").replace(rspace, " "); }
function trim(s) { return s.replace(rtrim, ""); }
@@ -109,136 +109,6 @@ function getCookie(name) {
return null;
}
-
-
-var max_results = 75; // 50 is not enough to search for map in the base libraries
-var shown_range = null;
-var last_search = null;
-
-function quick_search()
-{
- perform_search(false);
-}
-
-function full_search()
-{
- perform_search(true);
-}
-
-
-function perform_search(full)
-{
- var text = document.getElementById("searchbox").value.toLowerCase();
- if (text == last_search && !full) return;
- last_search = text;
-
- var table = document.getElementById("indexlist");
- var status = document.getElementById("searchmsg");
- var children = table.firstChild.childNodes;
-
- // first figure out the first node with the prefix
- var first = bisect(-1);
- var last = (first == -1 ? -1 : bisect(1));
-
- if (first == -1)
- {
- table.className = "";
- status.innerHTML = "No results found, displaying all";
- }
- else if (first == 0 && last == children.length - 1)
- {
- table.className = "";
- status.innerHTML = "";
- }
- else if (last - first >= max_results && !full)
- {
- table.className = "";
- status.innerHTML = "More than " + max_results + ", press Search to display";
- }
- else
- {
- // decide what you need to clear/show
- if (shown_range)
- setclass(shown_range[0], shown_range[1], "indexrow");
- setclass(first, last, "indexshow");
- shown_range = [first, last];
- table.className = "indexsearch";
- status.innerHTML = "";
- }
-
-
- function setclass(first, last, status)
- {
- for (var i = first; i <= last; i++)
- {
- children[i].className = status;
- }
- }
-
-
- // do a binary search, treating 0 as ...
- // return either -1 (no 0's found) or location of most far match
- function bisect(dir)
- {
- var first = 0, finish = children.length - 1;
- var mid, success = false;
-
- while (finish - first > 3)
- {
- mid = Math.floor((finish + first) / 2);
-
- var i = checkitem(mid);
- if (i == 0) i = dir;
- if (i == -1)
- finish = mid;
- else
- first = mid;
- }
- var a = (dir == 1 ? first : finish);
- var b = (dir == 1 ? finish : first);
- for (var i = b; i != a - dir; i -= dir)
- {
- if (checkitem(i) == 0) return i;
- }
- return -1;
- }
-
-
- // from an index, decide what the result is
- // 0 = match, -1 is lower, 1 is higher
- function checkitem(i)
- {
- var s = getitem(i).toLowerCase().substr(0, text.length);
- if (s == text) return 0;
- else return (s > text ? -1 : 1);
- }
-
-
- // from an index, get its string
- // this abstracts over alternates
- function getitem(i)
- {
- for ( ; i >= 0; i--)
- {
- var s = children[i].firstChild.firstChild.data;
- if (s.indexOf(' ') == -1)
- return s;
- }
- return ""; // should never be reached
- }
-}
-
-function setSynopsis(filename) {
- if (parent.window.synopsis && parent.window.synopsis.location) {
- if (parent.window.synopsis.location.replace) {
- // In Firefox this avoids adding the change to the history.
- parent.window.synopsis.location.replace(filename);
- } else {
- parent.window.synopsis.location = filename;
- }
- }
-}
-
function addMenuItem(html) {
var menu = document.getElementById("page-menu");
if (menu) {
diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs
index 31a748cb..34ecc5b8 100644
--- a/haddock-api/src/Haddock/Backends/Xhtml.hs
+++ b/haddock-api/src/Haddock/Backends/Xhtml.hs
@@ -108,8 +108,8 @@ copyHtmlBits odir libdir themes = do
return ()
-headHtml :: String -> Maybe String -> Themes -> Maybe String -> Html
-headHtml docTitle miniPage themes mathjax_url =
+headHtml :: String -> Themes -> Maybe String -> Html
+headHtml docTitle themes mathjax_url =
header << [
meta ! [httpequiv "Content-Type", content "text/html; charset=UTF-8"],
thetitle << docTitle,
@@ -118,14 +118,11 @@ headHtml docTitle miniPage themes mathjax_url =
script ! [src mjUrl, thetype "text/javascript"] << noHtml,
script ! [thetype "text/javascript"]
-- NB: Within XHTML, the content of script tags needs to be
- -- a <![CDATA[ section. Will break if the miniPage name could
- -- have "]]>" in it!
- << primHtml (
- "//<![CDATA[\nwindow.onload = function () {pageLoad();"
- ++ setSynopsis ++ "};\n//]]>\n")
+ -- a <![CDATA[ section.
+ << primHtml
+ "//<![CDATA[\nwindow.onload = function () {pageLoad();};\n//]]>\n"
]
where
- setSynopsis = maybe "" (\p -> "setSynopsis(\"" ++ p ++ "\");") miniPage
mjUrl = maybe "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" id mathjax_url
@@ -271,7 +268,7 @@ ppHtmlContents dflags odir doctitle _maybe_package
| iface <- ifaces
, instIsSig iface]
html =
- headHtml doctitle Nothing themes mathjax_url +++
+ headHtml doctitle themes mathjax_url +++
bodyHtml doctitle Nothing
maybe_source_url maybe_wiki_url
Nothing maybe_index_url << [
@@ -372,7 +369,7 @@ ppHtmlIndex odir doctitle _maybe_package themes
where
indexPage showLetters ch items =
- headHtml (doctitle ++ " (" ++ indexName ch ++ ")") Nothing themes maybe_mathjax_url +++
+ headHtml (doctitle ++ " (" ++ indexName ch ++ ")") themes maybe_mathjax_url +++
bodyHtml doctitle Nothing
maybe_source_url maybe_wiki_url
maybe_contents_url Nothing << [
@@ -494,7 +491,7 @@ ppHtmlModule odir doctitle themes
= toHtml mdl_str
real_qual = makeModuleQual qual aliases mdl
html =
- headHtml mdl_str_annot (Just $ "mini_" ++ moduleHtmlFile mdl) themes maybe_mathjax_url +++
+ headHtml mdl_str_annot themes maybe_mathjax_url +++
bodyHtml doctitle (Just iface)
maybe_source_url maybe_wiki_url
maybe_contents_url maybe_index_url << [
@@ -504,24 +501,10 @@ ppHtmlModule odir doctitle themes
createDirectoryIfMissing True odir
writeFile (joinPath [odir, moduleHtmlFile mdl]) (renderToString debug html)
- ppHtmlModuleMiniSynopsis odir doctitle themes maybe_mathjax_url iface unicode real_qual debug
signatureDocURL :: String
signatureDocURL = "https://wiki.haskell.org/Module_signature"
-ppHtmlModuleMiniSynopsis :: FilePath -> String -> Themes
- -> Maybe String -> Interface -> Bool -> Qualification -> Bool -> IO ()
-ppHtmlModuleMiniSynopsis odir _doctitle themes maybe_mathjax_url iface unicode qual debug = do
- let mdl = ifaceMod iface
- html =
- headHtml (moduleString mdl) Nothing themes maybe_mathjax_url +++
- miniBody <<
- (divModuleHeader << sectionName << moduleString mdl +++
- miniSynopsis mdl iface unicode qual)
- createDirectoryIfMissing True odir
- writeFile (joinPath [odir, "mini_" ++ moduleHtmlFile mdl]) (renderToString debug html)
-
-
ifaceToHtml :: SourceURLs -> WikiURLs -> Interface -> Bool -> Qualification -> Html
ifaceToHtml maybe_source_url maybe_wiki_url iface unicode qual
= ppModuleContents qual exports (not . null $ ifaceRnOrphanInstances iface) +++
@@ -572,43 +555,6 @@ ifaceToHtml maybe_source_url maybe_wiki_url iface unicode qual
linksInfo = (maybe_source_url, maybe_wiki_url)
-miniSynopsis :: Module -> Interface -> Bool -> Qualification -> Html
-miniSynopsis mdl iface unicode qual =
- divInterface << concatMap (processForMiniSynopsis mdl unicode qual) exports
- where
- exports = numberSectionHeadings (ifaceRnExportItems iface)
-
-
-processForMiniSynopsis :: Module -> Bool -> Qualification -> ExportItem DocName
- -> [Html]
-processForMiniSynopsis mdl unicode qual ExportDecl { expItemDecl = L _loc decl0 } =
- ((divTopDecl <<).(declElem <<)) <$> case decl0 of
- TyClD d -> let b = ppTyClBinderWithVarsMini mdl d in case d of
- (FamDecl decl) -> [ppTyFamHeader True False decl unicode qual]
- (DataDecl{}) -> [keyword "data" <+> b]
- (SynDecl{}) -> [keyword "type" <+> b]
- (ClassDecl {}) -> [keyword "class" <+> b]
- SigD (TypeSig lnames _) ->
- map (ppNameMini Prefix mdl . nameOccName . getName . unLoc) lnames
- _ -> []
-processForMiniSynopsis _ _ qual (ExportGroup lvl _id txt) =
- [groupTag lvl << docToHtml Nothing qual (mkMeta txt)]
-processForMiniSynopsis _ _ _ _ = []
-
-
-ppNameMini :: Notation -> Module -> OccName -> Html
-ppNameMini notation mdl nm =
- anchor ! [ href (moduleNameUrl mdl nm)
- , target mainFrameName ]
- << ppBinder' notation nm
-
-
-ppTyClBinderWithVarsMini :: Module -> TyClDecl DocName -> Html
-ppTyClBinderWithVarsMini mdl decl =
- let n = tcdName decl
- ns = tyvarNames $ tcdTyVars decl -- it's safe to use tcdTyVars, see code above
- in ppTypeApp n [] ns (\is_infix -> ppNameMini is_infix mdl . nameOccName . getName) ppTyName
-
ppModuleContents :: Qualification
-> [ExportItem DocName]
-> Bool -- ^ Orphans sections