Skip to content

Commit

Permalink
Libdoc search: Highlight matches (#1872)
Browse files Browse the repository at this point in the history
  • Loading branch information
pekkaklarck committed Dec 16, 2014
1 parent 2d0e00c commit 62bcbb0
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 6 deletions.
11 changes: 11 additions & 0 deletions src/robot/htmldata/lib/jquery.highlight.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions src/robot/htmldata/lib/versions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,9 @@ jquery.tablesorter.min
----------------------
version 2.7.8
https://github.com/Mottie/tablesorter

jquery.highlight.min
--------------------
https://github.com/bartaz/sandbox.js/blob/master/jquery.highlight.js
Date: 2010-12-01
Minimized using http://jscompress.com/
3 changes: 3 additions & 0 deletions src/robot/htmldata/libdoc/libdoc.css
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,6 @@ fieldset {
#search-pattern {
width: 20em;
}
.highlight {
background: yellow;
}
23 changes: 17 additions & 6 deletions src/robot/htmldata/libdoc/libdoc.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<script type="text/javascript" src="../rebot/util.js"></script> <!-- TODO: Should util.js be moved under common? -->
<script type="text/javascript" src="../lib/jquery.min.js"></script>
<script type="text/javascript" src="../lib/jquery.tmpl.min.js"></script>
<script type="text/javascript" src="../lib/jquery.highlight.min.js"></script>
<!-- JS MODEL --><script type="text/javascript" src="../testdata/libdoc.js"></script>
<title></title>
</head>
Expand Down Expand Up @@ -93,21 +94,31 @@ <h1>Opening library documentation failed</h1>
$('#include-doc').prop('checked'));
}

function search(pattern, includeName, includeArgs, includeDoc) {
var matcher = util.Matcher('*' + pattern + '*');
function search(string, includeName, includeArgs, includeDoc) {
var regexp = new RegExp(util.regexpEscape(string), 'gi');
var result = {};
result.keywords = util.filter(libdoc.keywords, function (kw) {
return (includeName && matcher.matches(kw.name) ||
includeArgs && matcher.matches(kw.args) ||
includeDoc && matcher.matches(kw.doc));
return (includeName && regexp.test(kw.name) ||
includeArgs && regexp.test(kw.args) ||
includeDoc && regexp.test($(kw.doc).text()));
});
renderTemplate('shortcuts', result);
renderTemplate('keywords', result);
var anchor = 'search?pattern=' + encodeURIComponent(pattern);
var anchor = 'search?pattern=' + encodeURIComponent(string);
if (includeName) anchor += '&name=true';
if (includeArgs) anchor += '&args=true';
if (includeDoc) anchor += '&doc=true';
window.location.hash = anchor;
if (includeName) {
$('#shortcuts-container a').highlight(string);
$('#keywords-container td.kw').highlight(string);
}
if (includeArgs) {
$('#keywords-container td.arg').highlight(string);
}
if (includeDoc) {
$('#keywords-container td.doc').highlight(string);
}
}

function openSearch() {
Expand Down
1 change: 1 addition & 0 deletions src/robot/htmldata/rebot/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ window.util = function () {
escape: escape,
unescape: unescape,
normalize: normalize,
regexpEscape: regexpEscape,
Matcher: Matcher,
formatParentName: formatParentName,
timeFromDate: timeFromDate,
Expand Down

0 comments on commit 62bcbb0

Please sign in to comment.