diff options
| author | Carol Nichols <carol.nichols@gmail.com> | 2014-08-31 17:11:42 -0400 |
|---|---|---|
| committer | Carol Nichols <carol.nichols@gmail.com> | 2014-08-31 17:11:42 -0400 |
| commit | 3dc9deb6e5b41859dcbbe28d1e326d296a5e1bb9 (patch) | |
| tree | 8537d4c86aab51717ab26f908e610b8463dd61bd | |
| parent | 08176a356124322dfe9ec33b7846a517fc7ae532 (diff) | |
| download | rust-3dc9deb6e5b41859dcbbe28d1e326d296a5e1bb9.tar.gz rust-3dc9deb6e5b41859dcbbe28d1e326d296a5e1bb9.zip | |
Make doc search results use <a> tags instead of js for navigating
This has the primary advantage of not interfering with browser default behavior for links like being able to cmd/ctrl+click on a result to open the result in a new tab but leave the current page as-is (previous behavior both opened a new tab and changed the current tab's location to the result's)
| -rw-r--r-- | src/librustdoc/html/static/main.css | 20 | ||||
| -rw-r--r-- | src/librustdoc/html/static/main.js | 54 |
2 files changed, 36 insertions, 38 deletions
diff --git a/src/librustdoc/html/static/main.css b/src/librustdoc/html/static/main.css index e41566e07fd..6a7fc907c0b 100644 --- a/src/librustdoc/html/static/main.css +++ b/src/librustdoc/html/static/main.css @@ -218,11 +218,10 @@ nav.sub { } .content .highlighted { - cursor: pointer; color: #000 !important; background-color: #ccc; } -.content .highlighted a { color: #000 !important; } +.content .highlighted a, .content .highlighted span { color: #000 !important; } .content .highlighted.trait { background-color: #fece7e; } .content .highlighted.mod { background-color: #afc6e4; } .content .highlighted.enum { background-color: #b4d1b9; } @@ -335,11 +334,11 @@ a { p a { color: #4e8bca; } p a:hover { text-decoration: underline; } -.content a.trait, .block a.current.trait { color: #ed9603; } -.content a.mod, .block a.current.mod { color: #4d76ae; } -.content a.enum, .block a.current.enum { color: #5e9766; } -.content a.struct, .block a.current.struct { color: #e53700; } -.content a.fn, .block a.current.fn { color: #8c6067; } +.content span.trait, .block a.current.trait { color: #ed9603; } +.content span.mod, .block a.current.mod { color: #4d76ae; } +.content span.enum, .block a.current.enum { color: #5e9766; } +.content span.struct, .block a.current.struct { color: #e53700; } +.content span.fn, .block a.current.fn { color: #8c6067; } .content .fnname { color: #8c6067; } .search-input { @@ -377,6 +376,13 @@ p a:hover { text-decoration: underline; } display: block; } +.search-results a { + display: block; +} + +.content .search-results td:first-child { padding-right: 0; } +.content .search-results td:first-child a { padding-right: 10px; } + #help { background: #e9e9e9; border-radius: 4px; diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 7b5d1b7be2f..99cb41d8981 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -395,8 +395,8 @@ if (window.location.pathname == dst.pathname) { $('#search').addClass('hidden'); $('#main').removeClass('hidden'); + document.location.href = dst.href; } - document.location.href = dst.href; }).on('mouseover', function() { var $el = $(this); clearTimeout(hoverTimeout); @@ -451,7 +451,7 @@ shown = []; results.forEach(function(item) { - var name, type; + var name, type, href, displayPath; if (shown.indexOf(item) !== -1) { return; @@ -461,43 +461,35 @@ name = item.name; type = itemTypes[item.ty]; - output += '<tr class="' + type + ' result"><td>'; - if (type === 'mod') { - output += item.path + - '::<a href="' + rootPath + - item.path.replace(/::/g, '/') + '/' + - name + '/index.html" class="' + - type + '">' + name + '</a>'; + displayPath = item.path + '::'; + href = rootPath + item.path.replace(/::/g, '/') + '/' + + name + '/index.html'; } else if (type === 'static' || type === 'reexport') { - output += item.path + - '::<a href="' + rootPath + - item.path.replace(/::/g, '/') + - '/index.html" class="' + type + - '">' + name + '</a>'; + displayPath = item.path + '::'; + href = rootPath + item.path.replace(/::/g, '/') + + '/index.html'; } else if (item.parent !== undefined) { var myparent = item.parent; var anchor = '#' + type + '.' + name; - output += item.path + '::' + myparent.name + - '::<a href="' + rootPath + - item.path.replace(/::/g, '/') + - '/' + itemTypes[myparent.ty] + - '.' + myparent.name + - '.html' + anchor + - '" class="' + type + - '">' + name + '</a>'; + displayPath = item.path + '::' + myparent.name + '::'; + href = rootPath + item.path.replace(/::/g, '/') + + '/' + itemTypes[myparent.ty] + + '.' + myparent.name + + '.html' + anchor; } else { - output += item.path + - '::<a href="' + rootPath + - item.path.replace(/::/g, '/') + - '/' + type + - '.' + name + - '.html" class="' + type + - '">' + name + '</a>'; + displayPath = item.path + '::'; + href = rootPath + item.path.replace(/::/g, '/') + + '/' + type + '.' + name + '.html'; } - output += '</td><td><span class="desc">' + item.desc + - '</span></td></tr>'; + output += '<tr class="' + type + ' result"><td>' + + '<a href="' + href + '">' + + displayPath + '<span class="' + type + '">' + + name + '</span></a></td><td>' + + '<a href="' + href + '">' + + '<span class="desc">' + item.desc + + ' </span></a></td></tr>'; }); } else { output += 'No results :( <a href="https://duckduckgo.com/?q=' + |
