From ce0c865cd8767e961ce3088b3155fc982d4c2e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lorber?= Date: Sat, 24 Jun 2023 10:00:15 +0200 Subject: [PATCH] docs: add docusaurus-v3 entry (#1946) --- packages/website/docs/templates.mdx | 114 ++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/packages/website/docs/templates.mdx b/packages/website/docs/templates.mdx index 56e771d6..4562899a 100644 --- a/packages/website/docs/templates.mdx +++ b/packages/website/docs/templates.mdx @@ -389,6 +389,120 @@ new Crawler({ +## Docusaurus v3 template + +
docusaurus-v3.js +
+ +```js +new Crawler({ + appId: 'YOUR_APP_ID', + apiKey: 'YOUR_API_KEY', + rateLimit: 8, + maxDepth: 10, + startUrls: ['https://YOUR_WEBSITE_URL/'], + sitemaps: ['https://YOUR_WEBSITE_URL/sitemap.xml'], + ignoreCanonicalTo: true, + discoveryPatterns: ['https://YOUR_WEBSITE_URL/**'], + actions: [ + { + indexName: 'YOUR_INDEX_NAME', + pathsToMatch: ['https://YOUR_WEBSITE_URL/**'], + recordExtractor: ({ $, helpers }) => { + // priority order: deepest active sub list header -> navbar active item -> 'Documentation' + const lvl0 = + $( + '.menu__link.menu__link--sublist.menu__link--active, .navbar__item.navbar__link--active' + ) + .last() + .text() || 'Documentation'; + + return helpers.docsearch({ + recordProps: { + lvl0: { + selectors: '', + defaultValue: lvl0, + }, + lvl1: ['header h1', 'article h1'], + lvl2: 'article h2', + lvl3: 'article h3', + lvl4: 'article h4', + lvl5: 'article h5, article td:first-child', + lvl6: 'article h6', + content: 'article p, article li, article td:last-child', + }, + indexHeadings: true, + aggregateContent: true, + recordVersion: 'v3', + }); + }, + }, + ], + initialIndexSettings: { + YOUR_INDEX_NAME: { + attributesForFaceting: [ + 'type', + 'lang', + 'language', + 'version', + 'docusaurus_tag', + ], + attributesToRetrieve: [ + 'hierarchy', + 'content', + 'anchor', + 'url', + 'url_without_anchor', + 'type', + ], + attributesToHighlight: ['hierarchy', 'content'], + attributesToSnippet: ['content:10'], + camelCaseAttributes: ['hierarchy', 'content'], + searchableAttributes: [ + 'unordered(hierarchy.lvl0)', + 'unordered(hierarchy.lvl1)', + 'unordered(hierarchy.lvl2)', + 'unordered(hierarchy.lvl3)', + 'unordered(hierarchy.lvl4)', + 'unordered(hierarchy.lvl5)', + 'unordered(hierarchy.lvl6)', + 'content', + ], + distinct: true, + attributeForDistinct: 'url', + customRanking: [ + 'desc(weight.pageRank)', + 'desc(weight.level)', + 'asc(weight.position)', + ], + ranking: [ + 'words', + 'filters', + 'typo', + 'attribute', + 'proximity', + 'exact', + 'custom', + ], + highlightPreTag: '', + highlightPostTag: '', + minWordSizefor1Typo: 3, + minWordSizefor2Typos: 7, + allowTyposOnNumericTokens: false, + minProximity: 1, + ignorePlurals: true, + advancedSyntax: true, + attributeCriteriaComputedByMinProximity: true, + removeWordsIfNoResults: 'allOptional', + separatorsToIndex: '_', + }, + }, +}); +``` + +
+
+ ## Vuepress v1 template
vuepress-v1.js