Búsqueda local/sin conexión de Docusaurus v2+ que funciona detrás de su firewall.
Características destacadas:
Nota: Usamos la biblioteca algolia/autocompletar de código abierto para el cuadro de búsqueda. Esta biblioteca solo se utiliza como interfaz y, a diferencia de la experiencia de búsqueda predeterminada de Docusaurus (algolia/docsearch), no se conecta a ningún servidor de Algolia o de terceros .
npm install @cmfcmf/docusaurus-search-local
o
yarn add @cmfcmf/docusaurus-search-local
Agregue este complemento a la matriz de plugins
en docusaurus.config.js
.
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
} ,
] ,
] ,
} ;
Las siguientes opciones están disponibles (las opciones predeterminadas se muestran a continuación):
{
// 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
}
}
Ahora puede utilizar la barra de búsqueda para buscar su documentación.
Importante: la búsqueda solo funciona para la documentación compilada estáticamente (es decir, después de ejecutar npm run docusaurus build
en su carpeta de documentación).
La búsqueda no funciona en desarrollo (es decir, cuando se ejecuta npm run docusaurus start
). Si desea probar la búsqueda localmente, primero cree la documentación con npm run docusaurus build
y luego publíquela a través de npm run docusaurus serve
.
Utilice la opción de language
si su documentación no está escrita en inglés. Puede especificar un solo idioma o una serie de varios idiomas. Los siguientes idiomas están disponibles:
ar, da, de, en, es, fi, fr, hi, hu, it, ja, nl, no, pt, ro, ru, sv, th, tr, vi, zh
Importante: para obtener compatibilidad con el idioma chino ( zh
), también debe instalar el paquete npm nodejieba
en ^2.5.0 || ^3.0.0
.
Se admiten las versiones de documentación creadas con el complemento de documentos oficial de Docusaurus. La barra de búsqueda muestra de forma predeterminada la última versión (no next
, sino la última versión definida en versions.json
) cuando no está en una página de documentación (por ejemplo, cuando mira una publicación de blog o una página estática). Si el usuario visita una página de documentación, la versión se extrae de la página y la búsqueda solo buscará la documentación de esa versión. El texto del marcador de posición de la barra de búsqueda siempre refleja la versión de la documentación detectada actualmente.
Este complemento admite documentación que utiliza Docusaurus i18n listo para usar. Contribuya con traducciones adicionales creando un nuevo archivo de traducción en la subcarpeta codeTranslations y enviando un PR.
También puede ajustar las traducciones modificando las traducciones en <yourfolder>/i18n/<locale>/code.json
que comienzan con cmfcmf/dsl.
. Lea más en: https://docusaurus.io/docs/i18n/tutorial#translate-json-files
Si la compilación de su documentación produce un error, puede compilarla en modo de depuración para determinar qué página lo está causando. Para hacerlo, simplemente configure la variable de entorno DEBUG
al crear su documentación: DEBUG=1 npm run docusaurus build
.
Consulte el archivo CONTRIBUTING.md para obtener más información.
MIT