const GitBook = require('gitbook-core'); const { React } = GitBook; const Highlight = require('react-highlighter'); const MAX_DESCRIPTION_SIZE = 500; const Result = React.createClass({ propTypes: { result: React.PropTypes.object, query: React.PropTypes.string }, render() { const { result, query } = this.props; let summary = result.body.trim(); if (summary.length > MAX_DESCRIPTION_SIZE) { summary = summary.slice(0, MAX_DESCRIPTION_SIZE).trim() + '...'; } return (

{result.title}

{summary}

); } }); const SearchResults = React.createClass({ propTypes: { i18n: GitBook.Shapes.I18n, results: GitBook.Shapes.list, query: React.PropTypes.string, children: React.PropTypes.node }, render() { const { i18n, query, results, children } = this.props; if (!query) { return React.Children.only(children); } return (

{i18n.t('SEARCH_RESULTS_TITLE', { query, count: results.size })}

{results.map((result, i) => { return ; })}
); } }); const mapStateToProps = (state) => { const { results, query } = state.search; return { results, query }; }; module.exports = GitBook.connect(SearchResults, mapStateToProps);