import cheerio from 'cheerio'; import { FrontMatter, PluginContext } from './Plugin.js'; const ALGOLIA_CSS_URL = 'https://cdn.jsdelivr.net/npm/@docsearch/css@3.2.0/dist/style.css'; const ALGOLIA_JS_URL = 'https://cdn.jsdelivr.net/npm/@docsearch/js@3.2.0/dist/umd/index.js'; const ALGOLIA_INPUT_SELECTOR = '#algolia-search-input'; function buildAlgoliaInitScript(pluginContext: PluginContext) { return ``; } function insertAlgoliaCustomCss() { return ` `; } function addNoIndexClasses(content: string) { const $ = cheerio.load(content); const noIndexSelectors = [ 'dropdown', 'modal', 'panel:not([expanded])', 'question template[\\#hint] div', 'question template[\\#answer] div', 'tab:nth-of-type(n+2)', 'tab-group:nth-of-type(n+2)', ].join(', '); $(noIndexSelectors).addClass('algolia-no-index'); return $.html(); } const getLinks = (pluginContext: PluginContext) => [ ``, ``, ]; const getScripts = (pluginContext: PluginContext) => [ ``, buildAlgoliaInitScript(pluginContext), insertAlgoliaCustomCss(), ]; const postRender = (_pluginContext: PluginContext, _frontmatter: FrontMatter, content: string) => addNoIndexClasses(content); export { getLinks, getScripts, postRender, };