diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-10-13 19:33:04 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-10-13 19:33:04 +0200 |
commit | 4c174f916e86ff1202f374c2344d013d3ee47c74 (patch) | |
tree | bcd925bd3227d5309d5d6c8c68a5f1bb8d33527f /packages/gitbook-plugin-search/src/components/Results.js | |
parent | 4db57fe5c57555c30f318159ee0301828d7e3980 (diff) | |
download | gitbook-4c174f916e86ff1202f374c2344d013d3ee47c74.zip gitbook-4c174f916e86ff1202f374c2344d013d3ee47c74.tar.gz gitbook-4c174f916e86ff1202f374c2344d013d3ee47c74.tar.bz2 |
Add highlighting for search terms in results
Diffstat (limited to 'packages/gitbook-plugin-search/src/components/Results.js')
-rw-r--r-- | packages/gitbook-plugin-search/src/components/Results.js | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/packages/gitbook-plugin-search/src/components/Results.js b/packages/gitbook-plugin-search/src/components/Results.js index 647528a..0e44960 100644 --- a/packages/gitbook-plugin-search/src/components/Results.js +++ b/packages/gitbook-plugin-search/src/components/Results.js @@ -1,22 +1,31 @@ const GitBook = require('gitbook-core'); const { React } = GitBook; +const Highlight = require('react-highlighter'); const Result = React.createClass({ propTypes: { - result: React.PropTypes.object + result: React.PropTypes.object, + query: React.PropTypes.string }, render() { - const { result } = this.props; + const { result, query } = this.props; return ( <div className="Search-ResultContainer"> - <GitBook.InjectedComponent matching={{ role: 'search:result' }} props={{ result }}> + <GitBook.InjectedComponent matching={{ role: 'search:result' }} props={{ result, query }}> <div className="Search-Result"> <h3> <GitBook.Link to={result.url}>{result.title}</GitBook.Link> </h3> - <p>{result.body}</p> + <p> + <Highlight + matchElement="span" + matchClass="Search-MatchSpan" + search={query}> + {result.body} + </Highlight> + </p> </div> </GitBook.InjectedComponent> </div> @@ -46,7 +55,7 @@ const SearchResults = React.createClass({ <h1>{i18n.t('SEARCH_RESULTS_TITLE', { query, count: results.size })}</h1> <div className="Search-Results"> {results.map((result, i) => { - return <Result key={i} result={result} />; + return <Result key={i} result={result} query={query} />; })} </div> </div> |