Offline-/lokale Suche nach Docusaurus v2+ , die hinter Ihrer Firewall funktioniert.
Funktionshighlights:
Hinweis: Wir verwenden die Open-Source-Bibliothek algolia/autocomplete für das Suchfeld. Diese Bibliothek wird nur als Frontend verwendet und stellt im Gegensatz zur standardmäßigen Docusaurus-Sucherfahrung (algolia/docsearch) keine Verbindung zu Algolia- oder Drittanbieter-Servern her .
npm install @cmfcmf/docusaurus-search-local
oder
yarn add @cmfcmf/docusaurus-search-local
Fügen Sie dieses Plugin zum plugins
Array in docusaurus.config.js
hinzu.
module . exports = {
// ...
plugins : [ require . resolve ( "@cmfcmf/docusaurus-search-local" ) ] ,
// or, if you want to specify options:
// ...
plugins : [
[
require . resolve ( "@cmfcmf/docusaurus-search-local" ) ,
{
// Options here
} ,
] ,
] ,
} ;
Die folgenden Optionen stehen zur Verfügung (die Standardeinstellungen werden unten angezeigt):
{
// whether to index docs pages
indexDocs : true ,
// Whether to also index the titles of the parent categories in the sidebar of a doc page.
// 0 disables this feature.
// 1 indexes the direct parent category in the sidebar of a doc page
// 2 indexes up to two nested parent categories of a doc page
// 3...
//
// Do _not_ use Infinity, the value must be a JSON-serializable integer.
indexDocSidebarParentCategories : 0 ,
// Includes parent categories path in search result
includeParentCategoriesInPageTitle : false ,
// whether to index blog pages
indexBlog : true ,
// whether to index static pages
// /404.html is never indexed
indexPages : false ,
// language of your documentation, see next section
language : "en" ,
// setting this to "none" will prevent the default CSS to be included. The default CSS
// comes from autocomplete-theme-classic, which you can read more about here:
// https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-theme-classic/
// When you want to overwrite CSS variables defined by the default theme, make sure to suffix your
// overwrites with `!important`, because they might otherwise not be applied as expected. See the
// following comment for more information: https://github.com/cmfcmf/docusaurus-search-local/issues/107#issuecomment-1119831938.
style : undefined ,
// The maximum number of search results shown to the user. This does _not_ affect performance of
// searches, but simply does not display additional search results that have been found.
maxSearchResults : 8 ,
// lunr.js-specific settings
lunr : {
// When indexing your documents, their content is split into "tokens".
// Text entered into the search box is also tokenized.
// This setting configures the separator used to determine where to split the text into tokens.
// By default, it splits the text at whitespace and dashes.
//
// Note: Does not work for "ja" and "th" languages, since these use a different tokenizer.
tokenizerSeparator : / [s-]+ / ,
// https://lunrjs.com/guides/customising.html#similarity-tuning
//
// This parameter controls the importance given to the length of a document and its fields. This
// value must be between 0 and 1, and by default it has a value of 0.75. Reducing this value
// reduces the effect of different length documents on a term’s importance to that document.
b : 0.75 ,
// This controls how quickly the boost given by a common word reaches saturation. Increasing it
// will slow down the rate of saturation and lower values result in quicker saturation. The
// default value is 1.2. If the collection of documents being indexed have high occurrences
// of words that are not covered by a stop word filter, these words can quickly dominate any
// similarity calculation. In these cases, this value can be reduced to get more balanced results.
k1 : 1.2 ,
// By default, we rank pages where the search term appears in the title higher than pages where
// the search term appears in just the text. This is done by "boosting" title matches with a
// higher value than content matches. The concrete boosting behavior can be controlled by changing
// the following settings.
titleBoost : 5 ,
contentBoost : 1 ,
tagsBoost : 3 ,
parentCategoriesBoost : 2 , // Only used when indexDocSidebarParentCategories > 0
}
}
Sie können jetzt die Suchleiste verwenden, um Ihre Dokumentation zu durchsuchen.
Wichtig: Die Suche funktioniert nur für die statisch erstellte Dokumentation (dh nachdem Sie npm run docusaurus build
in Ihrem Dokumentationsordner aus).
Die Suche funktioniert in der Entwicklung nicht (dh wenn Sie npm run docusaurus start
). Wenn Sie die Suche lokal testen möchten, erstellen Sie zunächst die Dokumentation mit npm run docusaurus build
und stellen Sie sie dann über npm run docusaurus serve
bereit.
Verwenden Sie die language
, wenn Ihre Dokumentation nicht auf Englisch verfasst ist. Sie können entweder eine einzelne Sprache oder ein Array mehrerer Sprachen angeben. Folgende Sprachen stehen zur Verfügung:
ar, da, de, en, es, fi, fr, hi, hu, it, ja, nl, no, pt, ro, ru, sv, th, tr, vi, zh
Wichtig: Für die Unterstützung der chinesischen Sprache ( zh
) müssen Sie auch das nodejieba
npm-Paket unter ^2.5.0 || ^3.0.0
installieren ^2.5.0 || ^3.0.0
.
Dokumentationsversionen, die mit dem offiziellen Docusaurus-Dokumenten-Plugin erstellt wurden, werden unterstützt. Wenn Sie sich nicht auf einer Dokumentationsseite befinden (z. B. beim Betrachten eines Blog-Beitrags oder einer statischen Seite), wird in der Suchleiste standardmäßig die neueste Version angezeigt (nicht next
, sondern die neueste versions.json
definierte Version). Wenn der Benutzer eine Dokumentationsseite besucht, wird die Version von der Seite extrahiert und die Suche durchsucht nur die Dokumentation dieser Version. Der Platzhaltertext der Suchleiste spiegelt immer die aktuell erkannte Dokumentationsversion wider.
Dieses Plugin unterstützt die Dokumentation mit Docusaurus i18n sofort. Bitte tragen Sie zusätzliche Übersetzungen bei, indem Sie eine neue Übersetzungsdatei im Unterordner codeTranslations erstellen und eine PR einreichen.
Sie können Übersetzungen auch anpassen, indem Sie die Übersetzungen in <yourfolder>/i18n/<locale>/code.json
ändern, die mit cmfcmf/dsl.
. Lesen Sie mehr unter: https://docusaurus.io/docs/i18n/tutorial#translate-json-files
Wenn beim Erstellen Ihrer Dokumentation ein Fehler auftritt, können Sie ihn im Debug-Modus erstellen, um herauszufinden, welche Seite ihn verursacht. Legen Sie dazu einfach die Umgebungsvariable DEBUG
beim Erstellen Ihrer Dokumentation fest: DEBUG=1 npm run docusaurus build
.
Weitere Informationen finden Sie in der Datei CONTRIBUTING.md.
MIT