This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/lib/highlight-text.js
2020-03-12 13:29:55 -04:00

19 lines
629 B
JavaScript

import { PHRASE_MATCH_REGEXP_PATTERN } from "discourse/lib/concerns/search-constants";
export const CLASS_NAME = "search-highlight";
export default function($elem, term, opts = {}) {
if (!_.isEmpty(term)) {
// special case ignore "l" which is used for magic sorting
let words = _.reject(
term.match(new RegExp(`${PHRASE_MATCH_REGEXP_PATTERN}|[^\\s]+`, "g")),
t => t === "l"
);
words = words.map(w => w.replace(/^"(.*)"$/, "$1"));
const highlightOpts = { wordsOnly: true };
if (!opts.defaultClassName) highlightOpts.className = CLASS_NAME;
$elem.highlight(words, highlightOpts);
}
}