Um verificador ortográfico simples e rápido com sugestões de ortografia e integração do Electron
O simples verificador de ortografia é um módulo de verificador ortográfico para o Node.js, que permite verificar se uma palavra está com erros ortográficos e obter sugestões de ortografia.
Ele vem com dicionários para inglês, espanhol, francês, alemão e holandês, mas você pode adicionar facilmente mais idiomas, simplesmente definindo um arquivo de texto com uma lista de palavras válidas.
Ele também possui uma ferramenta CLI que permite verificar as palavras da linha de comando.
Para usar o módulo, você deve primeiro instalá -lo usando o NPM.
npm install simple-spellchecker
E, em seguida, requer o módulo, obtenha um objeto Dictionary
e invoca seus métodos.
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . getDictionary ( "fr-FR" , function ( err , dictionary ) {
if ( ! err ) {
var misspelled = ! dictionary . spellCheck ( 'maisonn' ) ;
if ( misspelled ) {
var suggestions = dictionary . getSuggestions ( 'maisonn' ) ;
}
}
} ) ;
O módulo possui três métodos públicos: getDictionary()
, getDictionarySync()
e normalizeDictionary()
.
Este método permite obter uma instância Dictionary
de um arquivo.
Parâmetros:
fileName
: o nome do arquivo do dicionário. O método vai primeiro pesquisar um arquivo com a extensão .dic
, se não for encontrada, pesquisará um .zip
e vai descompactá -lo.folderPath
: a pasta na qual o arquivo do dicionário está localizado. Este parâmetro é opcional, por padrão, assume que o arquivo está na pasta dict
.callback
: uma função que será invocada para retornar o objeto Dictionary
.Exemplo:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . getDictionary ( "fr-FR" , function ( err , result ) {
var dictionary = result ;
} ) ;
Este método permite obter uma instância Dictionary
de um arquivo, de maneira síncrona.
Parâmetros:
fileName
: o nome do arquivo do dicionário. O arquivo deve ter uma extensão .dic
.folderPath
: a pasta na qual o arquivo do dicionário está localizado. Este parâmetro é opcional, por padrão, assume que o arquivo está na pasta dict
.Retornos:
Dictionary
.Exemplo:
var SpellChecker = require ( 'simple-spellchecker' ) ;
var dictionary = SpellChecker . getDictionarySync ( "fr-FR" ) ;
Este método lê um arquivo de dicionário UTF-8, remove os caracteres Bom e r
e classifica a lista de palavras.
Parâmetros:
inputPath
: o caminho do arquivo de dicionário.outputPath
: o caminho para o arquivo de dicionário normalizado. Este parâmetro é opcional, por Dealtt o arquivo original é substituído.callback
: uma função que será invocada quando o processo terminar.Exemplo:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . normalizeDictionary ( inputFile , outputFile , function ( err , success ) {
if ( success ) console . log ( "The file was normalized" ) ;
} ) ;
A classe Dictionary
possui seis métodos públicos: getLength()
, setWordlist()
, spellCheck()
, isMisspelled()
, getSuggestions()
e checkAndSuggest()
Este método permite obter a quantidade de palavras que o dicionário possui.
Retornos:
Este método permite definir as palavras do dicionário.
Parâmetro:
wordlist
: uma variedade de cordas.Este método permite verificar se é uma palavra escrita corretamente ou não.
Parâmetro:
word
: a palavra a verificar.Retornos:
true
se a palavra estiver no dicionário, false
, se não. Este método permite verificar se uma palavra é incorreta ou não.
Parâmetro:
word
: a palavra a verificar.Retornos:
true
se a palavra for incorreta, false
se não Este método permite obter sugestões de ortografia para uma palavra.
Parâmetros:
word
: A palavra usada para gerar as sugestões.limit
: o número máximo de sugestões para obter (por padrão, 5).maxDistance
: A distância máxima de edição que uma palavra pode ter do parâmetro word
, a fim de ser considerado como uma sugestão válida (por padrão, 2).Retornos:
Este método permite verificar se uma palavra está com ortografia e obter sugestões de ortografia.
Parâmetros:
word
: a palavra a verificar.limit
: o número máximo de sugestões para obter (por padrão, 5).maxDistance
: A distância máxima de edição que uma palavra pode ter do parâmetro word
, a fim de ser considerado como uma sugestão válida (por padrão, 2).Retornos:
misspelled
, que contém um booleano, e suggestions
, que contém uma variedade de cordas. Este método adiciona uma expressão regular que será usada para verificar se uma palavra é válida, embora não esteja no dicionário.
Isso pode ser útil ao evitar a marcação de palavras especiais como incorretas, como números, e -mails ou endereços de URL.
Parâmetros:
regex
: um objeto de expressão regular. Este método remove todas as expressões regulares anteriores adicionadas usando o método addRegex()
.
Para usar dicionários personalizados, você deve definir um arquivo de texto com uma lista de palavras válidas, onde cada palavra é separada por uma nova linha.
A extensão do arquivo deve ser .dic
, e o nome deve (de preferência) ser composto pelo código do idioma e pelo designador da região (por exemplo es-AR
se o idioma for espanhol e a região for a Argentina).
Opcionalmente, você também pode embalar o arquivo em um pacote ZIP, o módulo poderá descompactá-lo e lê-lo enquanto o arquivo .zip
tiver o mesmo nome ter o arquivo .dic
(por exemplo, um arquivo es-AR.zip
que contém o arquivo es-AR.dic
).
O arquivo deve ser codificado no UTF8 (sem BOM), as palavras devem ser separadas com um feed de linha (ou seja, n
) e não com um retorno de carruagem mais um feed de linha (ou seja, rn
), e as palavras devem ser classificadas em ordem crescente.
O módulo pode remover todos os caracteres indesejados e classificar as palavras, se você invocar o método normalize()
ou embalar o arquivo em um arquivo zip (o módulo chama automaticamente o método normalize()
após descompactá -lo).
O módulo vem com um script que permite normalizar os dicionários e testá -los.
Para testar um arquivo de dicionário, você deve executar o script indicando a pasta e o nome do arquivo do dicionário e a palavra que deseja testar.
Por exemplo, a frase a seguir pesquisará na pasta dict
um dicionário que está no arquivo en-GB.dic
ou en-GB.zip
, e vai verificar se a house
da palavra está errada ou não e vai pesquisar Algumas sugestões de ortografia.
node cli.js check "./dict" en-GB house
Para normalizar um arquivo de dicionário, você deve executar o script indicando o caminho do arquivo:
node cli.js normalize "./dict/en-GB.dic"
Se você não deseja substituir o arquivo original, pode especificar o caminho para um arquivo de saída:
node cli.js normalize "./dict/en-GB.dic" "C:/output/en-GB.dic"
Existem várias maneiras pelas quais você pode integrar este módulo ao elétron. Mas se você quiser um ponto de partida, o exemplo a seguir mostra como ativar o Dicionário Inglês:
1) Instale o módulo como uma dependência do seu projeto ( npm install simple-spellchecker --save
).
2) No processo principal, requer o módulo, carregue o dicionário e defina uma função para acessar seus métodos:
// Initialization.
var SpellChecker = require ( 'simple-spellchecker' ) ;
var myDictionary = null ;
// Load dictionary.
SpellChecker . getDictionary ( "en-US" , "./node_modules/simple-spellchecker/dict" , function ( err , result ) {
if ( ! err ) {
myDictionary = result ;
}
} ) ;
// Define function for consult the dictionary.
ipcMain . on ( 'checkspell' , function ( event , word ) {
var res = null ;
if ( myDictionary != null && word != null ) {
res = myDictionary . spellCheck ( word ) ;
}
event . returnValue = res ;
} ) ;
3) No processo de renderizador, defina um provedor de verificador ortográfico que usa o dicionário carregado anteriormente.
// Get web frame.
var webFrame = require ( 'electron' ) . webFrame ;
webFrame . setSpellCheckProvider ( "en-US" , false , {
spellCheck : function ( text ) {
var res = ipcRenderer . sendSync ( 'checkspell' , text ) ;
return res != null ? res : true ;
}
} ) ;
O módulo é parcialmente testado pelo arquivo test.js
(usando mocha e chai ). Para executar os testes, basta executar o npm test
de comando.
Checker simples ou soletal é software livre; Você pode redistribuí -lo e/ou modificá -lo nos termos da licença pública de Mozilla v2.0. Você deveria ter recebido uma cópia do MPL 2.0 junto com esta biblioteca, caso contrário, poderá obter uma em http://mozilla.org/mpl/2.0/.