```theme
technical
accent: #6366f1
page_width: 1000
page_padding: 24
```

_flows.md · documentação_

# Links

Três jeitos de ligar uma coisa a outra sem escrever o endereço inteiro, e o que cada leitor vê.

## Uma página pelo nome

Escreva o nome de outra página entre colchetes duplos, como nos apps de notas:

```
[[Roadmap]]
[[Roadmap|o plano do trimestre]]
[[Roadmap#Próximos passos]]
[[~/trabalho/roadmap]]
```

Ao salvar, cada um que aponta para **uma** página vira um link comum para o endereço dela — `[o plano do trimestre](/@ana/trabalho/roadmap)` — e o texto continua legível em qualquer leitor de Markdown. Mover a página reescreve o link, como qualquer outro.

O nome é o título da página ou a última parte do endereço, no mesmo espaço. Vale a mais próxima: primeiro as páginas dentro desta, depois as do lado, depois as do lado de cada página acima. Se nenhuma está tão perto, vale a única do espaço com aquele nome. Duas igualmente perto não são adivinhadas: o `[[…]]` fica como foi escrito, e quem escreveu pelo MCP recebe as candidatas.

Só contam páginas que quem escreveu pode abrir, e as palavras do link são as que a pessoa escreveu, nunca o título da outra página. Numa tabela, escreva a barra assim: `[[Roadmap\|o plano]]`. Dentro de código nada muda.

## Palavras que viram link sozinhas

Um espaço pode dizer que certas palavras são nomes de coisas em outro lugar: `#511` é um pull request, `TICK-42` é um chamado. Crie no espaço uma coleção chamada `link-patterns`:

~~~
```@schema collection:link-patterns
pattern text
url text
scope text
use text
active boolean default:true
```
~~~

e uma linha por padrão:

| pattern | url | scope |
|---|---|---|
| `#{num}` | `https://github.com/acme/app/pull/{num}` | |
| `TICK-{num}` | `https://tickets.example.com/browse/TICK-{num}` | |
| `#{num}` | `https://github.com/acme/site/pull/{num}` | `~/site` |

`{num}` é um número; `{id}` são letras e números. O texto da página nunca muda: o link aparece quando a página é mostrada, então corrigir um padrão corrige todas as páginas de uma vez. Uma palavra grudada (`issue#511`, `#511a`), o que está dentro de código e um link que você já escreveu ficam como estão.

Com `scope`, o padrão vale naquela página e nas de dentro, e o mais próximo vence — como um tema. Uma linha só com `use: /@outro` traz os padrões de outro espaço, quando eles são públicos ou quem escreveu a linha pode lê-los. A coleção precisa aceitar linhas só de quem escreve no espaço; uma linha que nunca poderia virar link é recusada na hora, com o motivo.

## Quem vê o quê

- **Citada em.** No fim de cada página, a lista das páginas que apontam para ela — só as que quem lê pode abrir. O MCP responde o mesmo em `backlinks`.
- **Um link para uma página fechada para quem lê** aparece como as palavras de quem escreveu, sem link, igual a um link para uma página que não existe. O endereço e o título da página fechada não chegam a quem não pode abri-la.
- **Um `[[…]]` que não achou página** aparece como as palavras, e vira link sozinho quando a página passa a existir para quem lê.
