{
    "site": "https://jhoweb.com.br/",
    "name": "JhoWeb",
    "language": "pt-BR",
    "description": "Portal brasileiro de ferramentas online leves. Maioria dos cálculos no navegador.",
    "updated": "2026-11-02",
    "llms_txt": "https://jhoweb.com.br/llms.txt",
    "llms_full": "https://jhoweb.com.br/llms-full.txt",
    "para_ias": "https://jhoweb.com.br/para-ias.php",
    "tools_json": "https://jhoweb.com.br/ai/tools.json",
    "openapi": "https://jhoweb.com.br/ai/openapi.json",
    "api_catalog": "https://jhoweb.com.br/.well-known/api-catalog",
    "health": "https://jhoweb.com.br/.well-known/health",
    "tools": [
        {
            "path": "/ferramentas/porcentagem/",
            "name": "Porcentagem",
            "desc": "Calcule porcentagens em segundos",
            "cat": "Matemática",
            "keywords": "porcento percentual desconto",
            "slug": "porcentagem",
            "formula": "X% de Y = (X/100)×Y; quanto % A é de B = (A/B)×100",
            "example": "15% de 200 = 30; 30 é 15% de 200",
            "notes": "Cálculo no navegador. Casas decimais aceitas.",
            "inputs": [
                "modo (pct-de | quanto-pct)",
                "X",
                "Y"
            ],
            "url": "https://jhoweb.com.br/ferramentas/porcentagem/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/porcentagem.md"
        },
        {
            "path": "/ferramentas/regra-de-tres/",
            "name": "Regra de 3",
            "desc": "Resolva proporções simples",
            "cat": "Matemática",
            "keywords": "proporcao regra tres",
            "slug": "regra-de-tres",
            "formula": "Se A está para B como C está para X, então X = (B×C)/A (direta)",
            "example": "2 está para 10 como 5 está para X → X = 25",
            "notes": "Proporção direta simples.",
            "inputs": [
                "A",
                "B",
                "C"
            ],
            "url": "https://jhoweb.com.br/ferramentas/regra-de-tres/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/regra-de-tres.md"
        },
        {
            "path": "/ferramentas/imc/",
            "name": "IMC",
            "desc": "Calcule o índice de massa corporal",
            "cat": "Matemática",
            "keywords": "imc peso altura saude",
            "slug": "imc",
            "formula": "IMC = peso_kg / (altura_m)²",
            "example": "70 kg e 1,75 m → IMC ≈ 22,9 (peso normal OMS)",
            "notes": "Informativo, não substitui orientação médica. Faixas OMS.",
            "inputs": [
                "peso (kg)",
                "altura (m ou cm; >3 tratado como cm)"
            ],
            "url": "https://jhoweb.com.br/ferramentas/imc/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/imc.md"
        },
        {
            "path": "/ferramentas/contador-caracteres/",
            "name": "Contador de caracteres",
            "desc": "Conte caracteres, palavras e linhas",
            "cat": "Texto",
            "keywords": "contador palavras letras",
            "slug": "contador-caracteres",
            "formula": "Contagem de caracteres, palavras (split por espaço) e linhas",
            "example": "\"Olá mundo\" → caracteres com espaço, 2 palavras, 1 linha",
            "notes": "Processamento local no navegador.",
            "inputs": [
                "texto"
            ],
            "url": "https://jhoweb.com.br/ferramentas/contador-caracteres/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/contador-caracteres.md"
        },
        {
            "path": "/ferramentas/maiusculas-minusculas/",
            "name": "Maiúsculas e minúsculas",
            "desc": "Converta o texto em um clique",
            "cat": "Texto",
            "keywords": "maiuscula minuscula titulo",
            "slug": "maiusculas-minusculas",
            "formula": "Transformações: UPPER, lower, Title Case",
            "example": "\"olá MUNDO\" → \"OLÁ MUNDO\" / \"olá mundo\" / \"Olá Mundo\"",
            "notes": "Não envia dados ao servidor.",
            "inputs": [
                "texto",
                "modo"
            ],
            "url": "https://jhoweb.com.br/ferramentas/maiusculas-minusculas/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/maiusculas-minusculas.md"
        },
        {
            "path": "/ferramentas/remover-acentos/",
            "name": "Remover acentos",
            "desc": "Tire acentos do texto",
            "cat": "Texto",
            "keywords": "acento cedilha slug",
            "slug": "remover-acentos",
            "formula": "Normalização NFD + remoção de diacríticos (ç→c, ã→a, etc.)",
            "example": "\"São Paulo\" → \"Sao Paulo\"",
            "notes": "Útil antes de slug ou busca ASCII.",
            "inputs": [
                "texto"
            ],
            "url": "https://jhoweb.com.br/ferramentas/remover-acentos/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/remover-acentos.md"
        },
        {
            "path": "/ferramentas/gerador-senha/",
            "name": "Gerador de senha",
            "desc": "Crie senhas aleatórias fortes",
            "cat": "Geradores",
            "keywords": "senha password aleatoria",
            "slug": "gerador-senha",
            "formula": "Amostra aleatória de alfabeto configurável (letras, dígitos, símbolos)",
            "example": "Comprimento 16, com símbolos → senha aleatória forte",
            "notes": "Gerado com APIs do navegador; não armazenado.",
            "inputs": [
                "comprimento",
                "tipos de caracteres"
            ],
            "url": "https://jhoweb.com.br/ferramentas/gerador-senha/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/gerador-senha.md"
        },
        {
            "path": "/ferramentas/temperatura/",
            "name": "Temperatura",
            "desc": "Converta °C, °F e Kelvin",
            "cat": "Conversores",
            "keywords": "celsius fahrenheit kelvin",
            "slug": "temperatura",
            "formula": "C→F: F=C×9/5+32; F→C: C=(F-32)×5/9; K=C+273,15",
            "example": "25 °C = 77 °F = 298,15 K",
            "notes": "Celsius, Fahrenheit e Kelvin.",
            "inputs": [
                "valor",
                "unidade de origem"
            ],
            "url": "https://jhoweb.com.br/ferramentas/temperatura/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/temperatura.md"
        },
        {
            "path": "/ferramentas/dias-entre-datas/",
            "name": "Dias entre datas",
            "desc": "Calcule a diferença entre duas datas",
            "cat": "Datas",
            "keywords": "dias data intervalo",
            "slug": "dias-entre-datas",
            "formula": "Diferença absoluta em dias civis entre duas datas",
            "example": "01/01/2026 a 11/01/2026 = 10 dias",
            "notes": "Não desconta feriados; para isso use dias úteis.",
            "inputs": [
                "data inicial",
                "data final"
            ],
            "url": "https://jhoweb.com.br/ferramentas/dias-entre-datas/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/dias-entre-datas.md"
        },
        {
            "path": "/ferramentas/validador-cpf/",
            "name": "Validador de CPF",
            "desc": "Verifique se um CPF é válido",
            "cat": "Validadores",
            "keywords": "cpf validar documento",
            "slug": "validador-cpf",
            "formula": "11 dígitos; 2 verificadores pelo algoritmo módulo 11; rejeita sequência igual",
            "example": "CPF com pontuação é normalizado; válido estruturalmente ≠ cadastrado na Receita",
            "notes": "Só estrutura matemática. Não consulta base oficial. Dado não sai do navegador.",
            "inputs": [
                "cpf (com ou sem máscara)"
            ],
            "url": "https://jhoweb.com.br/ferramentas/validador-cpf/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/validador-cpf.md"
        },
        {
            "path": "/ferramentas/desconto/",
            "name": "Desconto",
            "desc": "Calcule preço final ou percentual de desconto",
            "cat": "Matemática",
            "keywords": "desconto promocao preco",
            "slug": "desconto",
            "formula": "Preço final = preço×(1-d/100); ou d% = (1-final/preço)×100",
            "example": "R$ 100 com 20% off → R$ 80",
            "notes": "Modos: aplicar desconto ou descobrir percentual.",
            "inputs": [
                "preço",
                "desconto % ou preço final"
            ],
            "url": "https://jhoweb.com.br/ferramentas/desconto/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/desconto.md"
        },
        {
            "path": "/ferramentas/juros-simples/",
            "name": "Juros simples",
            "desc": "Calcule juros e montante simples",
            "cat": "Matemática",
            "keywords": "juros simples capital taxa",
            "slug": "juros-simples",
            "formula": "J = C×i×t; M = C+J (i em decimal)",
            "example": "C=1000, i=2%/mês, t=12 → J=240, M=1240",
            "notes": "Informativo. Sem IOF/IR.",
            "inputs": [
                "capital",
                "taxa % por período",
                "períodos"
            ],
            "url": "https://jhoweb.com.br/ferramentas/juros-simples/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/juros-simples.md"
        },
        {
            "path": "/ferramentas/juros-compostos/",
            "name": "Juros compostos",
            "desc": "Calcule montante com juros compostos",
            "cat": "Matemática",
            "keywords": "juros compostos investimento",
            "slug": "juros-compostos",
            "formula": "M = C×(1+i)^n; J = M−C",
            "example": "C=1000, i=1%/mês, n=12 → M≈1126,83",
            "notes": "Taxa e períodos na mesma base (mês/mês). Informativo.",
            "inputs": [
                "capital",
                "taxa % por período",
                "períodos"
            ],
            "url": "https://jhoweb.com.br/ferramentas/juros-compostos/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/juros-compostos.md"
        },
        {
            "path": "/ferramentas/combustivel/",
            "name": "Combustível",
            "desc": "Estime litros e custo da viagem",
            "cat": "Matemática",
            "keywords": "combustivel gasolina viagem km",
            "slug": "combustivel",
            "formula": "Litros = distância/consumo_km_por_litro; custo = litros×preço",
            "example": "300 km, 10 km/l, R$ 6/l → 30 l, R$ 180",
            "notes": "Estimativa de viagem.",
            "inputs": [
                "distância",
                "consumo",
                "preço do litro"
            ],
            "url": "https://jhoweb.com.br/ferramentas/combustivel/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/combustivel.md"
        },
        {
            "path": "/ferramentas/validador-cnpj/",
            "name": "Validador de CNPJ",
            "desc": "Verifique se um CNPJ é válido",
            "cat": "Validadores",
            "keywords": "cnpj validar empresa",
            "slug": "validador-cnpj",
            "formula": "14 dígitos; 2 verificadores módulo 11; rejeita sequência igual",
            "example": "Aceita com ou sem pontuação; válido ≠ empresa ativa",
            "notes": "Só algoritmo. Sem consulta Receita. Local no navegador.",
            "inputs": [
                "cnpj"
            ],
            "url": "https://jhoweb.com.br/ferramentas/validador-cnpj/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/validador-cnpj.md"
        },
        {
            "path": "/ferramentas/mmc-mdc/",
            "name": "MMC e MDC",
            "desc": "Calcule mínimo múltiplo e máximo divisor comum",
            "cat": "Matemática",
            "keywords": "mmc mdc mdc euclides",
            "slug": "mmc-mdc",
            "formula": "MDC por Euclides; MMC = |a×b|/MDC(a,b)",
            "example": "MDC(12,18)=6; MMC(12,18)=36",
            "notes": "Suporta múltiplos valores conforme a UI.",
            "inputs": [
                "números inteiros"
            ],
            "url": "https://jhoweb.com.br/ferramentas/mmc-mdc/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/mmc-mdc.md"
        },
        {
            "path": "/ferramentas/numeros-romanos/",
            "name": "Números romanos",
            "desc": "Converta arábico e romano",
            "cat": "Conversores",
            "keywords": "romano arabe algarismo",
            "slug": "numeros-romanos",
            "formula": "Mapeamento I,V,X,L,C,D,M com regras de subtração (IV, IX, …)",
            "example": "2026 → MMXXVI; XIV → 14",
            "notes": "Faixa típica 1–3999.",
            "inputs": [
                "número arábico ou romano"
            ],
            "url": "https://jhoweb.com.br/ferramentas/numeros-romanos/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/numeros-romanos.md"
        },
        {
            "path": "/ferramentas/px-rem/",
            "name": "px para rem",
            "desc": "Converta pixels e rem para CSS",
            "cat": "Conversores",
            "keywords": "px rem css fonte",
            "slug": "px-rem",
            "formula": "rem = px/root; px = rem×root (root padrão 16)",
            "example": "24px com root 16 → 1,5rem",
            "notes": "Para CSS.",
            "inputs": [
                "valor",
                "root font-size"
            ],
            "url": "https://jhoweb.com.br/ferramentas/px-rem/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/px-rem.md"
        },
        {
            "path": "/ferramentas/binario-hex/",
            "name": "Binário e hex",
            "desc": "Converta binário, decimal e hexadecimal",
            "cat": "Conversores",
            "keywords": "binario hex decimal base",
            "slug": "binario-hex",
            "formula": "Conversões entre base 2, 10 e 16",
            "example": "255 → FF (hex) → 11111111 (bin)",
            "notes": "Inteiros não negativos.",
            "inputs": [
                "valor",
                "base de origem"
            ],
            "url": "https://jhoweb.com.br/ferramentas/binario-hex/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/binario-hex.md"
        },
        {
            "path": "/ferramentas/uuid/",
            "name": "Gerador de UUID",
            "desc": "Gere UUID v4 aleatório",
            "cat": "Geradores",
            "keywords": "uuid guid identificador",
            "slug": "uuid",
            "formula": "UUID v4 (aleatório) via crypto.getRandomValues",
            "example": "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
            "notes": "Não é sequencial; adequado a IDs client-side.",
            "inputs": [],
            "url": "https://jhoweb.com.br/ferramentas/uuid/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/uuid.md"
        },
        {
            "path": "/ferramentas/url-encode/",
            "name": "URL encode/decode",
            "desc": "Codifique ou decodifique URLs",
            "cat": "Texto",
            "keywords": "url encode decode uri",
            "slug": "url-encode",
            "formula": "encodeURIComponent / decodeURIComponent",
            "example": "\"a b\" → \"a%20b\"",
            "notes": "UTF-8.",
            "inputs": [
                "texto",
                "modo encode|decode"
            ],
            "url": "https://jhoweb.com.br/ferramentas/url-encode/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/url-encode.md"
        },
        {
            "path": "/ferramentas/idade/",
            "name": "Calculadora de idade",
            "desc": "Calcule idade em anos, meses e dias",
            "cat": "Datas",
            "keywords": "idade aniversario nascimento",
            "slug": "idade",
            "formula": "Diferença calendário entre nascimento e data de referência",
            "example": "Nasc. 16/10/2000 em 16/10/2026 → 26 anos",
            "notes": "Anos, meses e dias.",
            "inputs": [
                "data de nascimento",
                "data de referência (opcional=hoje)"
            ],
            "url": "https://jhoweb.com.br/ferramentas/idade/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/idade.md"
        },
        {
            "path": "/ferramentas/gorjeta/",
            "name": "Divisão de conta e gorjeta",
            "desc": "Divida a conta e calcule a gorjeta",
            "cat": "Matemática",
            "keywords": "gorjeta conta divisao restaurante",
            "slug": "gorjeta",
            "formula": "Gorjeta = conta×(g/100); total = conta+gorjeta; por pessoa = total/n",
            "example": "Conta 200, 10%, 4 pessoas → gorjeta 20, total 220, R$ 55/pessoa",
            "notes": "Para Pix com QR por pessoa, ver rachar-conta-pix.",
            "inputs": [
                "valor da conta",
                "gorjeta %",
                "pessoas"
            ],
            "url": "https://jhoweb.com.br/ferramentas/gorjeta/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/gorjeta.md"
        },
        {
            "path": "/ferramentas/media/",
            "name": "Média aritmética e ponderada",
            "desc": "Calcule média simples ou ponderada",
            "cat": "Matemática",
            "keywords": "media aritmetica ponderada",
            "slug": "media",
            "formula": "Simples: Σx/n; ponderada: Σ(x×w)/Σw",
            "example": "Notas 7 e 9 → média 8; com pesos 1 e 2 → ≈8,33",
            "notes": "Aritmética e ponderada.",
            "inputs": [
                "valores",
                "pesos (opcional)"
            ],
            "url": "https://jhoweb.com.br/ferramentas/media/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/media.md"
        },
        {
            "path": "/ferramentas/velocidade/",
            "name": "Conversor de velocidade",
            "desc": "Converta km/h, m/s e mph",
            "cat": "Conversores",
            "keywords": "velocidade kmh ms mph",
            "slug": "velocidade",
            "formula": "1 km/h = 1000/3600 m/s; 1 mph ≈ 1,60934 km/h",
            "example": "100 km/h ≈ 27,78 m/s ≈ 62,14 mph",
            "notes": "km/h, m/s, mph.",
            "inputs": [
                "valor",
                "unidade"
            ],
            "url": "https://jhoweb.com.br/ferramentas/velocidade/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/velocidade.md"
        },
        {
            "path": "/ferramentas/tempo/",
            "name": "Conversor de tempo",
            "desc": "Converta horas, minutos e segundos",
            "cat": "Conversores",
            "keywords": "tempo horas minutos segundos",
            "slug": "tempo",
            "formula": "Normalização para segundos e reconversão h/m/s",
            "example": "90 min = 1 h 30 min = 5400 s",
            "notes": "Conversor de unidades de tempo.",
            "inputs": [
                "horas",
                "minutos",
                "segundos"
            ],
            "url": "https://jhoweb.com.br/ferramentas/tempo/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/tempo.md"
        },
        {
            "path": "/ferramentas/cronometro/",
            "name": "Cronômetro e timer",
            "desc": "Cronômetro e contagem regressiva",
            "cat": "Utilitários",
            "keywords": "cronometro timer countdown",
            "slug": "cronometro",
            "formula": "Cronômetro = tempo decorrido; timer = contagem regressiva",
            "example": "Timer 5:00 → alerta ao zerar",
            "notes": "UI no navegador; não é precisão científica.",
            "inputs": [
                "modo",
                "duração (timer)"
            ],
            "url": "https://jhoweb.com.br/ferramentas/cronometro/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/cronometro.md"
        },
        {
            "path": "/ferramentas/qr-code/",
            "name": "Gerador de QR Code",
            "desc": "Gere QR Code de texto ou URL",
            "cat": "Geradores",
            "keywords": "qrcode qr code gerar",
            "slug": "qr-code",
            "formula": "Codificação QR de texto/URL (lib client-side)",
            "example": "Texto \"https://jhoweb.com.br\" → PNG/canvas QR",
            "notes": "Geração local; conteúdo não vai ao servidor JhoWeb.",
            "inputs": [
                "conteúdo"
            ],
            "url": "https://jhoweb.com.br/ferramentas/qr-code/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/qr-code.md"
        },
        {
            "path": "/ferramentas/slug/",
            "name": "Gerador de slug",
            "desc": "Crie slug amigável para URL",
            "cat": "Texto",
            "keywords": "slug url permalink",
            "slug": "slug",
            "formula": "Lowercase, remove acentos, espaços→hífen, só [a-z0-9-]",
            "example": "\"Olá JhoWeb!\" → \"ola-jhoweb\"",
            "notes": "Para permalinks.",
            "inputs": [
                "texto"
            ],
            "url": "https://jhoweb.com.br/ferramentas/slug/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/slug.md"
        },
        {
            "path": "/ferramentas/linhas-texto/",
            "name": "Contar linhas e limpar vazias",
            "desc": "Conte linhas e remova linhas vazias",
            "cat": "Texto",
            "keywords": "linhas vazias texto limpar",
            "slug": "linhas-texto",
            "formula": "Contagem de linhas; filtro de linhas vazias/trim",
            "example": "Lista com linhas em branco → contagem e limpeza",
            "notes": "Utilitário de limpeza de listas.",
            "inputs": [
                "texto"
            ],
            "url": "https://jhoweb.com.br/ferramentas/linhas-texto/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/linhas-texto.md"
        },
        {
            "path": "/ferramentas/json/",
            "name": "Formatador JSON",
            "desc": "Formate, minifique e valide JSON",
            "cat": "Desenvolvimento",
            "keywords": "json formatar minificar validar",
            "slug": "json",
            "formula": "JSON.parse + JSON.stringify com indentação ou minify",
            "example": "{\"a\":1} formatado com 2 espaços; inválido → erro de parse",
            "notes": "Validação sintática apenas.",
            "inputs": [
                "json",
                "modo format|minify|validate"
            ],
            "url": "https://jhoweb.com.br/ferramentas/json/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/json.md"
        },
        {
            "path": "/ferramentas/cores/",
            "name": "Conversor de cores",
            "desc": "Converta HEX, RGB, HSL e contraste",
            "cat": "Desenvolvimento",
            "keywords": "cor hex rgb hsl contraste",
            "slug": "cores",
            "formula": "Conversões HEX ↔ RGB ↔ HSL; contraste relativo WCAG aproximado",
            "example": "#00C9A7 → rgb(0,201,167)",
            "notes": "Para UI e acessibilidade básica.",
            "inputs": [
                "cor em HEX/RGB/HSL"
            ],
            "url": "https://jhoweb.com.br/ferramentas/cores/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/cores.md"
        },
        {
            "path": "/ferramentas/regra-de-tres-composta/",
            "name": "Regra de três composta",
            "desc": "Resolva proporções com várias grandezas",
            "cat": "Matemática",
            "keywords": "regra tres composta proporcao",
            "slug": "regra-de-tres-composta",
            "formula": "Produto dos meios / produto dos extremos com grandezas diretas/inversas",
            "example": "Várias grandezas proporcionais resolvidas na UI",
            "notes": "Mais geral que regra de 3 simples.",
            "inputs": [
                "grandezas e relação direta/inversa"
            ],
            "url": "https://jhoweb.com.br/ferramentas/regra-de-tres-composta/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/regra-de-tres-composta.md"
        },
        {
            "path": "/ferramentas/churrasco/",
            "name": "Calculadora de churrasco",
            "desc": "Estime carne e bebidas para a festa",
            "cat": "Utilitários",
            "keywords": "churrasco carne bebida festa",
            "slug": "churrasco",
            "formula": "Estimativa: kg carne/pessoa × convidados + bebidas por pessoa",
            "example": "10 adultos → ordem de grandeza de carne e bebidas",
            "notes": "Heurística de festa, não receita oficial.",
            "inputs": [
                "pessoas",
                "preferências"
            ],
            "url": "https://jhoweb.com.br/ferramentas/churrasco/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/churrasco.md"
        },
        {
            "path": "/ferramentas/financiamento/",
            "name": "Simulador de financiamento",
            "desc": "Simule parcela Price, total e juros",
            "cat": "Matemática",
            "keywords": "financiamento parcela juros price",
            "slug": "financiamento",
            "formula": "Sistema Price: PMT = PV×i/(1−(1+i)^−n)",
            "example": "Taxa mensal e n parcelas → valor da parcela e total",
            "notes": "Simulação educativa; sem tarifas bancárias.",
            "inputs": [
                "valor",
                "taxa",
                "parcelas"
            ],
            "url": "https://jhoweb.com.br/ferramentas/financiamento/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/financiamento.md"
        },
        {
            "path": "/ferramentas/link-whatsapp/",
            "name": "Link WhatsApp e vCard",
            "desc": "Gere link wa.me ou cartão vCard",
            "cat": "Geradores",
            "keywords": "whatsapp wame vcard contato",
            "slug": "link-whatsapp",
            "formula": "https://wa.me/<E164>?text=<urlencoded>",
            "example": "5511999999999 + mensagem → link clicável; opcional vCard",
            "notes": "Não envia mensagem pelo JhoWeb.",
            "inputs": [
                "telefone",
                "mensagem",
                "campos vCard"
            ],
            "url": "https://jhoweb.com.br/ferramentas/link-whatsapp/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/link-whatsapp.md"
        },
        {
            "path": "/ferramentas/cep/",
            "name": "Consulta de CEP",
            "desc": "Busque endereço pelo CEP (ViaCEP)",
            "cat": "Consultas",
            "keywords": "cep endereco viacep correios",
            "slug": "cep",
            "formula": "Consulta ViaCEP (API pública) por CEP 8 dígitos",
            "example": "01001-000 → endereço em São Paulo",
            "notes": "Única tool que chama API externa (ViaCEP). Dados públicos de endereço.",
            "inputs": [
                "cep"
            ],
            "url": "https://jhoweb.com.br/ferramentas/cep/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/cep.md"
        },
        {
            "path": "/ferramentas/feriados/",
            "name": "Feriados do ano",
            "desc": "Liste feriados nacionais por ano",
            "cat": "Datas",
            "keywords": "feriados nacionais pascoa carnaval",
            "slug": "feriados",
            "formula": "Fixos (01/01, 21/04, …) + móveis via Páscoa (algoritmo)",
            "example": "Ano 2026 → Carnaval, Sexta-feira Santa, Corpus Christi, etc.",
            "notes": "Feriados nacionais; não inclui municipais/estaduais.",
            "inputs": [
                "ano"
            ],
            "url": "https://jhoweb.com.br/ferramentas/feriados/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/feriados.md"
        },
        {
            "path": "/ferramentas/ddd/",
            "name": "DDD para estado",
            "desc": "Descubra UF e cidades pelo DDD",
            "cat": "Consultas",
            "keywords": "ddd telefone estado cidade",
            "slug": "ddd",
            "formula": "Tabela estática DDD → UF e cidades principais",
            "example": "DDD 11 → São Paulo (SP)",
            "notes": "Referência; sem consulta operadora.",
            "inputs": [
                "ddd"
            ],
            "url": "https://jhoweb.com.br/ferramentas/ddd/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/ddd.md"
        },
        {
            "path": "/ferramentas/base64/",
            "name": "Base64 encode/decode",
            "desc": "Codifique ou decodifique texto em Base64",
            "cat": "Desenvolvimento",
            "keywords": "base64 encode decode utf8",
            "slug": "base64",
            "formula": "btoa/atob com suporte UTF-8",
            "example": "\"JhoWeb\" → \"SmhvV2Vi\"",
            "notes": "Local no navegador.",
            "inputs": [
                "texto",
                "modo encode|decode"
            ],
            "url": "https://jhoweb.com.br/ferramentas/base64/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/base64.md"
        },
        {
            "path": "/ferramentas/timestamp/",
            "name": "Timestamp Unix",
            "desc": "Converta data e timestamp Unix",
            "cat": "Datas",
            "keywords": "timestamp unix epoch data",
            "slug": "timestamp",
            "formula": "Unix time = segundos desde 1970-01-01 UTC",
            "example": "0 → 1970-01-01; conversão bidirecional + ISO/pt-BR",
            "notes": "Fuso exibido conforme navegador.",
            "inputs": [
                "timestamp ou data/hora"
            ],
            "url": "https://jhoweb.com.br/ferramentas/timestamp/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/timestamp.md"
        },
        {
            "path": "/ferramentas/medidas/",
            "name": "Conversor de medidas",
            "desc": "Converta mm, cm, m, km, polegadas e mais",
            "cat": "Conversores",
            "keywords": "medidas comprimento metro km",
            "slug": "medidas",
            "formula": "Fatores para mm, cm, m, km, in, ft, etc.",
            "example": "1 m = 100 cm = 1000 mm ≈ 39,37 in",
            "notes": "Comprimento.",
            "inputs": [
                "valor",
                "unidade origem/destino"
            ],
            "url": "https://jhoweb.com.br/ferramentas/medidas/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/medidas.md"
        },
        {
            "path": "/ferramentas/area/",
            "name": "Calculadora de área",
            "desc": "Calcule área de formas geométricas",
            "cat": "Matemática",
            "keywords": "area retangulo triangulo circulo",
            "slug": "area",
            "formula": "Retângulo l×a; triângulo (b×h)/2; círculo πr²",
            "example": "Círculo r=2 → área ≈ 12,566",
            "notes": "Formas geométricas básicas.",
            "inputs": [
                "forma",
                "dimensões"
            ],
            "url": "https://jhoweb.com.br/ferramentas/area/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/area.md"
        },
        {
            "path": "/ferramentas/lorem-ipsum/",
            "name": "Gerador Lorem Ipsum",
            "desc": "Gere texto placeholder Lorem Ipsum",
            "cat": "Geradores",
            "keywords": "lorem ipsum placeholder texto",
            "slug": "lorem-ipsum",
            "formula": "Amostragem de corpus Lorem Ipsum por palavras/parágrafos",
            "example": "3 parágrafos de placeholder",
            "notes": "Texto fictício para layout.",
            "inputs": [
                "quantidade",
                "unidade"
            ],
            "url": "https://jhoweb.com.br/ferramentas/lorem-ipsum/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/lorem-ipsum.md"
        },
        {
            "path": "/ferramentas/hash/",
            "name": "Gerador de hash",
            "desc": "Gere hash SHA-256 e variantes",
            "cat": "Desenvolvimento",
            "keywords": "hash sha256 sha512 checksum",
            "slug": "hash",
            "formula": "SubtleCrypto digest (SHA-256 etc.) → hex",
            "example": "SHA-256 de texto → hash hex",
            "notes": "Checksum; não é criptografia reversível.",
            "inputs": [
                "texto",
                "algoritmo"
            ],
            "url": "https://jhoweb.com.br/ferramentas/hash/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/hash.md"
        },
        {
            "path": "/ferramentas/markdown/",
            "name": "Preview Markdown",
            "desc": "Veja Markdown em preview ao vivo",
            "cat": "Desenvolvimento",
            "keywords": "markdown preview md html",
            "slug": "markdown",
            "formula": "Parse Markdown → HTML para preview",
            "example": "# Título → heading; **negrito** → strong",
            "notes": "Preview local.",
            "inputs": [
                "markdown"
            ],
            "url": "https://jhoweb.com.br/ferramentas/markdown/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/markdown.md"
        },
        {
            "path": "/ferramentas/rachar-conta-pix/",
            "name": "Rachar conta com Pix",
            "desc": "Divida a conta e gere o Pix de cada pessoa",
            "cat": "Utilitários",
            "keywords": "pix rachar dividir conta qr code copia e cola",
            "slug": "rachar-conta-pix",
            "formula": "Total=conta+gorjeta; por pessoa=ceil centavos; BR Code EMV Pix no cliente",
            "example": "Conta 240, 10% gorjeta, 4 pessoas → valor/pessoa + QR/Pix Copia e Cola",
            "notes": "Chave Pix não é enviada ao servidor JhoWeb. Padrão Banco Central.",
            "inputs": [
                "conta",
                "pessoas",
                "gorjeta %",
                "chave Pix",
                "nome",
                "cidade"
            ],
            "url": "https://jhoweb.com.br/ferramentas/rachar-conta-pix/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/rachar-conta-pix.md"
        },
        {
            "path": "/ferramentas/placa-mercosul/",
            "name": "Placa Mercosul",
            "desc": "Converta placa antiga para Mercosul e vice-versa",
            "cat": "Conversores",
            "keywords": "placa mercosul antiga converter carro moto detran",
            "slug": "placa-mercosul",
            "formula": "Antiga ABC-1234 ↔ Mercosul ABC1C34 (mapa dígito↔letra na 5ª posição)",
            "example": "ABC-1234 → ABC1C34 (tabela oficial de conversão)",
            "notes": "Conversão de padrão; não consulta DETRAN.",
            "inputs": [
                "placa"
            ],
            "url": "https://jhoweb.com.br/ferramentas/placa-mercosul/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/placa-mercosul.md"
        },
        {
            "path": "/ferramentas/horas-de-trabalho/",
            "name": "Quantas horas de trabalho custa",
            "desc": "Veja o preço de algo em horas do seu salário",
            "cat": "Utilitários",
            "keywords": "horas trabalho salario preco custa quanto tempo",
            "slug": "horas-de-trabalho",
            "formula": "Horas = preço / (salário / horas_do_período)",
            "example": "Salário mensal ÷ jornada → valor/hora; item R$ X → Y horas",
            "notes": "Perspectiva educativa de custo de oportunidade.",
            "inputs": [
                "salário",
                "jornada",
                "preço do item"
            ],
            "url": "https://jhoweb.com.br/ferramentas/horas-de-trabalho/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/horas-de-trabalho.md"
        },
        {
            "path": "/ferramentas/formatar-whatsapp/",
            "name": "Formatador de texto WhatsApp",
            "desc": "Negrito, itálico e riscado com preview",
            "cat": "Texto",
            "keywords": "whatsapp negrito italico riscado monoespacado formatar texto",
            "slug": "formatar-whatsapp",
            "formula": "*negrito* _itálico_ ~riscado~ ```mono``` `código`",
            "example": "*olá* → negrito após envio no WhatsApp",
            "notes": "Símbolos devem encostar na palavra. Preview local.",
            "inputs": [
                "texto",
                "seleção + estilo"
            ],
            "url": "https://jhoweb.com.br/ferramentas/formatar-whatsapp/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/formatar-whatsapp.md"
        },
        {
            "path": "/ferramentas/dias-uteis/",
            "name": "Dias úteis entre datas",
            "desc": "Conte dias úteis descontando feriados nacionais",
            "cat": "Datas",
            "keywords": "dias uteis feriados prazo contar datas",
            "slug": "dias-uteis",
            "formula": "Dias corridos − sáb/dom − feriados nacionais no intervalo",
            "example": "Intervalo com 1 feriado na sexta → esse dia não conta como útil",
            "notes": "Feriados nacionais alinhados à tool de feriados. Sem municipais.",
            "inputs": [
                "data início",
                "data fim"
            ],
            "url": "https://jhoweb.com.br/ferramentas/dias-uteis/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/dias-uteis.md"
        },
        {
            "path": "/ferramentas/custo-carro/",
            "name": "Custo real do carro",
            "desc": "Some IPVA, seguro, combustível e depreciação por mês",
            "cat": "Utilitários",
            "keywords": "custo carro mensal ipva seguro depreciacao uber aplicativo",
            "slug": "custo-carro",
            "formula": "Soma mensal: combustível + IPVA/12 + seguro/12 + manutenção + depreciação + oportunidade",
            "example": "Entradas anuais diluídas no mês + km → custo/mês e vs app",
            "notes": "Estimativa; não é laudo financeiro.",
            "inputs": [
                "custos fixos/variáveis",
                "km",
                "preço combustível"
            ],
            "url": "https://jhoweb.com.br/ferramentas/custo-carro/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/custo-carro.md"
        },
        {
            "path": "/ferramentas/numero-por-extenso/",
            "name": "Número por extenso",
            "desc": "Escreva números e valores em reais por extenso",
            "cat": "Matemática",
            "keywords": "extenso cardinal reais centavos cheque recibo escrever numero",
            "slug": "numero-por-extenso",
            "formula": "Cardinal pt-BR (grupos de 3 + mil/milhão/bilhão); moeda = reais + centavos",
            "example": "1250 → Mil duzentos e cinquenta; 1.250,45 → … reais e quarenta e cinco centavos",
            "notes": "Conversão no navegador. Limite ~12 dígitos. Ortografia pt-BR corrente.",
            "inputs": [
                "modo (cardinal|moeda)",
                "número"
            ],
            "url": "https://jhoweb.com.br/ferramentas/numero-por-extenso/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/numero-por-extenso.md"
        },
        {
            "path": "/ferramentas/imagem-para-pdf/",
            "name": "Imagem para PDF",
            "desc": "Converta JPG, PNG, WebP e mais em PDF no navegador",
            "cat": "Conversores",
            "keywords": "imagem pdf jpg jpeg png webp gif bmp converter arquivo",
            "slug": "imagem-para-pdf",
            "formula": "PDF no cliente (pdf-lib): embedJpg/embedPng; WebP/GIF/BMP → canvas PNG",
            "example": "2 JPGs → PDF com 2 páginas; modo A4 encaixa com margem",
            "notes": "Sem upload ao servidor. Limite 12 arquivos × 5 MB. Processamento local.",
            "inputs": [
                "arquivos de imagem",
                "modo página (imagem|a4)"
            ],
            "url": "https://jhoweb.com.br/ferramentas/imagem-para-pdf/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/imagem-para-pdf.md"
        },
        {
            "path": "/ferramentas/converter-imagem/",
            "name": "Converter imagem",
            "desc": "Converta entre JPG, PNG e WebP no navegador",
            "cat": "Conversores",
            "keywords": "converter imagem jpg png webp gif bmp formato",
            "slug": "converter-imagem",
            "formula": "Canvas.toBlob → image/jpeg | image/png | image/webp",
            "example": "PNG transparente → JPG (fundo branco) ou WebP",
            "notes": "Sem upload. Limite 15 MB. GIF = 1º quadro.",
            "inputs": [
                "1 imagem",
                "formato",
                "qualidade (JPG/WebP)"
            ],
            "url": "https://jhoweb.com.br/ferramentas/converter-imagem/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/converter-imagem.md"
        },
        {
            "path": "/ferramentas/redimensionar-imagem/",
            "name": "Redimensionar imagem",
            "desc": "Altere largura, altura ou percentual da imagem",
            "cat": "Conversores",
            "keywords": "redimensionar imagem resize largura altura pixels",
            "slug": "redimensionar-imagem",
            "formula": "Nova dimensão por largura/altura/%/livre; drawImage no canvas",
            "example": "1920×1080 → largura 800 → 800×450",
            "notes": "Sem upload. Limite 5 MB; saída até 8000 px/lado.",
            "inputs": [
                "1 imagem",
                "modo",
                "dimensões",
                "formato saída"
            ],
            "url": "https://jhoweb.com.br/ferramentas/redimensionar-imagem/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/redimensionar-imagem.md"
        },
        {
            "path": "/ferramentas/comprimir-imagem/",
            "name": "Comprimir imagem",
            "desc": "Reduza o peso de JPG ou WebP ajustando qualidade",
            "cat": "Conversores",
            "keywords": "comprimir imagem otimizar jpg webp qualidade peso kb",
            "slug": "comprimir-imagem",
            "formula": "toBlob JPEG/WebP com qualidade + escala opcional",
            "example": "Foto 3 MB → qualidade 75% → ~600 KB (varia)",
            "notes": "Sem upload. Limite 5 MB. Mostra tamanho antes/depois.",
            "inputs": [
                "1 imagem",
                "formato jpg|webp",
                "qualidade",
                "escala %"
            ],
            "url": "https://jhoweb.com.br/ferramentas/comprimir-imagem/",
            "ai_markdown_url": "https://jhoweb.com.br/ai/comprimir-imagem.md"
        }
    ],
    "categories": [
        {
            "name": "Consultas",
            "slug": "consultas",
            "path": "/categorias/consultas/",
            "url": "https://jhoweb.com.br/categorias/consultas/",
            "description": "Consulte CEP e DDD com tabelas e APIs públicas, direto no navegador.",
            "tool_count": 2
        },
        {
            "name": "Conversores",
            "slug": "conversores",
            "path": "/categorias/conversores/",
            "url": "https://jhoweb.com.br/categorias/conversores/",
            "description": "Converta temperatura, medidas, imagens (PDF, formato, tamanho, compressão), placas Mercosul e mais.",
            "tool_count": 12
        },
        {
            "name": "Datas",
            "slug": "datas",
            "path": "/categorias/datas/",
            "url": "https://jhoweb.com.br/categorias/datas/",
            "description": "Calcule idade, dias entre datas, dias úteis, feriados e timestamps.",
            "tool_count": 5
        },
        {
            "name": "Desenvolvimento",
            "slug": "desenvolvimento",
            "path": "/categorias/desenvolvimento/",
            "url": "https://jhoweb.com.br/categorias/desenvolvimento/",
            "description": "JSON, Markdown, hash, Base64, cores e px/rem para quem constrói na web.",
            "tool_count": 5
        },
        {
            "name": "Geradores",
            "slug": "geradores",
            "path": "/categorias/geradores/",
            "url": "https://jhoweb.com.br/categorias/geradores/",
            "description": "Gere senha, QR Code, UUID, lorem ipsum e links úteis sem enviar dados ao servidor.",
            "tool_count": 5
        },
        {
            "name": "Matemática",
            "slug": "matematica",
            "path": "/categorias/matematica/",
            "url": "https://jhoweb.com.br/categorias/matematica/",
            "description": "Calculadoras de porcentagem, juros, proporções, médias e outras contas do dia a dia.",
            "tool_count": 14
        },
        {
            "name": "Texto",
            "slug": "texto",
            "path": "/categorias/texto/",
            "url": "https://jhoweb.com.br/categorias/texto/",
            "description": "Conte caracteres, limpe acentos, formate WhatsApp, gere slug e manipule texto no navegador.",
            "tool_count": 7
        },
        {
            "name": "Utilitários",
            "slug": "utilitarios",
            "path": "/categorias/utilitarios/",
            "url": "https://jhoweb.com.br/categorias/utilitarios/",
            "description": "Ferramentas práticas: rachar conta com Pix, custo do carro, churrasco e cronômetro.",
            "tool_count": 5
        },
        {
            "name": "Validadores",
            "slug": "validadores",
            "path": "/categorias/validadores/",
            "url": "https://jhoweb.com.br/categorias/validadores/",
            "description": "Valide CPF e CNPJ pelo algoritmo dos dígitos verificadores, no navegador.",
            "tool_count": 2
        }
    ]
}