Metadata-Version: 2.4
Name: portulong
Version: 0.0.1
Summary: Linguagem 100% PT-PT para desenvolvimento web — interpretador, servidor e extensão VS Code integrados.
Author: Silvio
Author-email: silvio@portulong.dev
License-Expression: MIT
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: discord
Requires-Dist: discord.py>=2.0.0; extra == "discord"
Provides-Extra: supabase
Requires-Dist: supabase; extra == "supabase"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: vsce; extra == "dev"
Dynamic: author-email
Dynamic: license-file
Dynamic: requires-python

# Portulong (v1.1.0)

Linguagem de programação em Português de Portugal para criar páginas web e aplicações completas com interpretador e servidor integrado.

## Instalação

```bash
pip install portulong-sistema
```

## Utilização

Para executar um ficheiro `.ptg`:

```bash
ptg meu_programa.ptg
```

Para iniciar o servidor web integrado:

```bash
ptg meu_programa.ptg --servidor
```

## Publicar no PyPI

Para publicar a versão **1.1.0** no PyPI:

```bash
# 1. Instalar as ferramentas de publicação
pip install --upgrade build twine

# 2. Gerar o pacote em dist/
python -m build

# 3. Enviar para o PyPI
twine upload dist/*
```

Ou execute diretamente o script auxiliar:
```bash
bash publicar_pypi.sh
```

## Exemplo (`ola_mundo.ptg`)

```ptg
pagina "Minha Primeira Pagina"

cabecalho "Olá, Mundo em Portulong!"
paragrafo "Criado com sintaxe 100% em Português de Portugal."

estilo:
corpo { fundo: #f0fdf4; espacamento: 40px; }

script:
escrever("ola tudo ?")
```

## Novidades v1.1.0

### Bloco Supabase Declarativo
Conecte à sua base de dados Supabase com uma sintaxe simples:

```ptg
supabase:
    url "https://teu-projeto.supabase.co"
    chave "tua-chave-api"
fim_supabase
```

### Rotas Backend com Execução Dinâmica
Rotas que executam código Python e retornam JSON dinamicamente:

```ptg
rota GET /api/usuarios:
    resposta = {"usuarios": [{"id": 1, "nome": "João"}]}
fim_rota

rota POST /api/usuario:
    nome_usuario = dados.get("nome", "")
    resposta = {"sucesso": verdadeiro, "mensagem": "Utilizador " + nome_usuario + " criado!"}
fim_rota
```

### Múltiplos Ecrãs (SPA)
Crie aplicações de página única com navegação sem recarregar:

```ptg
tela "inicio":
    cabecalho "Bem-vindo"
    botao "Ir para Dashboard" acao "mostrar_tela('dashboard')"
fim_tela

tela "dashboard":
    cabecalho "Dashboard"
    botao "Voltar" acao "mostrar_tela('inicio')"
fim_tela
```

### CSS Avançado — Liberdade Total
Suporte completo a animações, responsividade e efeitos visuais:

```ptg
estilo:
@keyframes pulse {
    0% { opacidade: 0.6; }
    50% { opacidade: 1; }
    100% { opacidade: 0.6; }
}

@media (max-width: 768px) {
    corpo { espacamento: 15px; }
}

.botao-animado {
    animacao: pulse 2s infinito;
    transformar: escorregar(10px);
    fundo: linear-gradient(135deg, #2563eb, #1e40af);
}
fim_estilo
```
