flows.md · documentação · Blocos

@schema#

Declara os campos de uma coleção do espaço — a tabela que um @data lê e em que um @form grava — numa página, como qualquer outro texto.

Ao vivo#

Os dois blocos abaixo estão nesta página e são de verdade: são eles que criam as coleções tarefas-exemplo (lida pelas páginas @data) e contato-exemplo (desenhada pelo @form, que aqui é só uma prévia). Você não vê nada entre esta linha e a próxima seção, e é isso mesmo: um leitor nunca vê a declaração.

Quem edita a página vê cada declaração como um cartão, com o estado da coleção (nova, igual, diferente) e um botão para aplicá-la. Só quem tem as configurações do espaço aplica.

O markdown#

```@schema collection:tarefas-exemplo visibility:public
titulo text required label:"Tarefa"
status select:ideia,fazendo,revisao,pronto label:"Status"
responsavel text label:"Quem"
prazo date label:"Prazo"
pronto boolean label:"Pronto"
ordem number label:"Ordem"
```

Um campo por linha: nome tipo, e depois required, indexed ou label:"…". Os tipos: text, long_text, number, boolean, date, datetime, email, url, select, multi_select, tags, file, reference e computed.

Variações#

Quem lê as linhas. visibility:private (o padrão) deixa as linhas só para as pessoas do espaço; visibility:public, para qualquer leitor — é o que deixa uma tabela @data aparecer numa página publicada.

Quem envia pelo formulário. accepts:nobody (o padrão), accepts:members ou accepts:anyone. Um @form só aparece para quem a coleção aceita. As duas coleções desta página não aceitam ninguém: nenhum leitor grava nelas.

```@schema collection:inscricoes accepts:anyone
nome text label:"Nome"
email email required label:"E-mail"
mensagem long_text label:"Mensagem"
```

Referências e contas. Um campo aponta para a linha de outra coleção, e outro conta ou soma por ela:

```@schema collection:projetos
nome text required
tarefas computed:count(tarefas.projeto)
```

Agenda e lembretes. calendar:prazo põe cada linha no calendário das pessoas do espaço, e uma linha @remind field:prazo before:1d avisa antes do prazo — por e-mail no plano Pro; com via:calendar, como alarme no calendário, em qualquer plano. Uma linha @hook manda as mudanças das linhas para um endereço seu.

O que precisa#

Uma página do espaço onde escrever, e alguém com as configurações do espaço para aplicar. A lista completa de tipos e opções está na Referência.