Opção filters
Lista de filtros.
- Tipo: Array.
- Valor padrão:
[]
.
Isso deve ser uma array contendo todos os filtros que serão usados. Por padrão nenhum filtro é adicionado ― pois existem algumas palavras que não são vistas como de baixo-calão por todas as pessoas ou para determinadas situações ―, portanto, você deverá criar o seu próprio filtro ou obter um de terceiros.
/**
* Sintaxe.
*/
const piii = new Piii({
filters: [
// todos os filtros aqui...
]
});
Criando filtros
Para a criação de filtros, é usado arrays que posteriormente serão convertidas em regexs.
Exemplo simples de filtro:
["foo", "bar"]
O Piii.js interpretará a array acima como (foo|bar)
, portanto, com isso, serão filtrados todas as ocorrências de foo e bar denttro de uma string. Veja o exemplo:
const filtro = ["foo", "bar"];
const piii = new Piii({
filters: [
filtro
]
});
piii.filter("foo bar baz") // "* * bar"
Obs.: Tudo dentro do filtro deve ser arrays e/ou strings e as strings DEVEM corresponder a expressão regular
/^[a-zA-Z]+$/
, ou seja, só podem ter letras (sem acentos) ― um erro será lançado caso isso não seja seguido.
Algumas regras do interpretador de filtros para conversão em regexs.
- Uma string retorna uma string.
-
Uma array de strings retorna-as como alternação.
- Antes disso a array é posta em ordem decrescente.
-
Uma array de arrays retorna-as como alternação.
- Antes disso a array é invertida.
- Uma array de strings e arrays retorna-as como continuação.
Exemplos de cada uma das regras:
"abc" // é como "abc"
["def", "abc"] // é como "(abc|def)"
[["def", "abc"], ["jkl", "ghi"]] // é como "((abc|def)|(ghi|jkl))"
["abc", ["ghi", "def"]] // é como "(abc(def|ghi))"
Exemplos
Supondo que você queira criar um filtro para merda.
Você pode fazer algo como:
const filtroDeExemplo = [
"merd",
[
"a",
"inha",
"ao" // observe que não tem acento
]
];
const piii = new Piii({
filters: [
filtroDeExemplo
]
});
// Exemplos:
piii.filter("Que merda!"); // "Que *!"
piii.filter("Que merdinha!"); // "Que *!"
piii.filter("Que merdão!"); // "Que *!"
Usando filtros de terceiros
Você também pode importar filtros de terceiros para usar. Você pode pesquisar no GitHub por topic:piii-filter
para encontrar filtros ― e caso você crie seu próprio filtro e publique-o no GitHub você poderá adicionar piii-filter nos topics do repositório para que ele seja encontrado por outras pessoas.
Caso queira começar com Piii.js sem ter que fazer muitas configurações você poderá usar o piii-filters
que já vem com alguns filtros dos palavrões mais usados na língua portuguesa (e visto como de baixo-calão por quase todos).
Você pode instalá-lo com:
npm install --save-dev piii-filters
E usá-lo com:
const Piii = require("piii");
const piiiFilters = require("piii-filters");
const piii = Piii({
filters: [
...Object.values(piiiFilters)
]
});
piii.filter("Vá se foder!"); // "Vá se *!"