fix: book canonical, fr/de pin warnings, pin grouping per locale, SEO checks
CI / Lint e auditorias (push) Successful in 48s
CI / Trivy (dependências e segredos) (push) Successful in 12s
CI / Imagem Docker (linux/arm64) (push) Successful in 3m41s
Release / Plano (reaproveitar a imagem?) (push) Successful in 6s
Release / ci (push) Skipped
Release / Publica a imagem (linux/arm64) (push) Successful in 16s
Release / Cria a release no Gitea (push) Successful in 6s
CI / Lint e auditorias (push) Successful in 48s
CI / Trivy (dependências e segredos) (push) Successful in 12s
CI / Imagem Docker (linux/arm64) (push) Successful in 3m41s
Release / Plano (reaproveitar a imagem?) (push) Successful in 6s
Release / ci (push) Skipped
Release / Publica a imagem (linux/arm64) (push) Successful in 16s
Release / Cria a release no Gitea (push) Successful in 6s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5a9fe676fc
commit
fe1802f818
67 files changed
+11875
-9596
No files matched your search
+13
-10
@@ -621,19 +621,22 @@ function verificarRegrasLivro() {
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// 5. Português dentro dos dados de outros idiomas
|
||||
// 5. Português ou inglês dentro dos dados de outros idiomas
|
||||
// ---------------------------------------------------------------------------
|
||||
// Valores que começam com número ("4 (SPI0/1 para Flash...)") passam pela allowlist
|
||||
// técnica; esta varredura pega o texto em português que sobra dentro deles.
|
||||
const PALAVRAS_SO_PORTUGUESAS = /\b(até|canais|uso geral|conforme a carga|podem ser|saída|resolução|integrada no|encapsulamento|memória|não|única|isócronos|proximidade e)\b/i;
|
||||
const PALAVRAS_SO_PORTUGUESAS = /\b(até|canais|uso geral|conforme a carga|podem ser|saída|resolução|integrada no|encapsulamento|memória|não|única|isócronos|proximidade e|dividida em|a partir da|e mais \d+|ativa|ativo|baixo consumo|correspondentes|velocidade|com (GCM|LP|cache))\b/i;
|
||||
// Frases de aviso em inglês que não podem aparecer nos dados dos outros idiomas (en é a origem delas).
|
||||
const FRASES_EM_INGLES = /\b(Do not leave|Must not be|Not recommended|Recommended Voltage|For chips (with|without)|Dedicated (to|Chip|Hold|analog)|Analog input pin|Multifunction pin|Floating by default|Used to control|Voltage level must|Low-power|Primary Strapping|This pin does not)\b/;
|
||||
|
||||
function percorrer(valor, caminho, aoAchar) {
|
||||
function percorrer(valor, caminho, aoAchar, ingles = true) {
|
||||
if (typeof valor === "string") {
|
||||
if (PALAVRAS_SO_PORTUGUESAS.test(valor)) aoAchar(caminho, valor);
|
||||
if (PALAVRAS_SO_PORTUGUESAS.test(valor)) aoAchar(caminho, valor, "português");
|
||||
else if (ingles && FRASES_EM_INGLES.test(valor)) aoAchar(caminho, valor, "inglês");
|
||||
} else if (Array.isArray(valor)) {
|
||||
valor.forEach((v, i) => percorrer(v, `${caminho}[${i}]`, aoAchar));
|
||||
valor.forEach((v, i) => percorrer(v, `${caminho}[${i}]`, aoAchar, ingles));
|
||||
} else if (valor && typeof valor === "object") {
|
||||
for (const [k, v] of Object.entries(valor)) percorrer(v, `${caminho}.${k}`, aoAchar);
|
||||
for (const [k, v] of Object.entries(valor)) percorrer(v, `${caminho}.${k}`, aoAchar, ingles);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -647,13 +650,13 @@ function verificarPortuguesNosDados() {
|
||||
if (existsSync(dirCon)) for (const a of readdirSync(dirCon)) arquivos.push(join(dirCon, a));
|
||||
for (const arq of arquivos) {
|
||||
if (!existsSync(arq)) continue;
|
||||
percorrer(JSON.parse(readFileSync(arq, "utf8")), arq, (caminho, valor) => {
|
||||
if (achados < 10) falha(`'${loc}': texto em português em ${caminho}: "${valor.slice(0, 80)}"`);
|
||||
percorrer(JSON.parse(readFileSync(arq, "utf8")), arq, (caminho, valor, lingua) => {
|
||||
if (achados < 10) falha(`'${loc}': texto em ${lingua} em ${caminho}: "${valor.slice(0, 80)}"`);
|
||||
achados++;
|
||||
});
|
||||
}, loc !== "en");
|
||||
}
|
||||
}
|
||||
if (achados === 0) sucesso("Nenhum texto em português nos dados dos outros idiomas.");
|
||||
if (achados === 0) sucesso("Nenhum texto em português ou inglês solto nos dados dos outros idiomas.");
|
||||
else if (achados > 10) falha(`... e mais ${achados - 10} ocorrência(s).`);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user