Em VitePress, cada arquivo Markdown é compilado para HTML e então processado como um [Componente de Arquivo Único Vue](https://vuejs.org/guide/scaling-up/sfc.html). Isso significa que você pode usar qualquer funcionalidade Vue dentro do Markdown, incluindo a interpolação dinâmica, usar componentes Vue ou lógica arbitrária de componentes Vue dentro da página adicionando uma tag `<script>`.
@ -8,9 +8,9 @@ Vale ressaltar que VitePress aproveita o compilador Vue para detectar e otimizar
Todo uso do Vue precisa ser compatível com SSR. Consulte [Compatibilidade SSR](./ssr-compat) para detalhes e soluções comuns.
:::
## Criação de _Templates_
## Criação de _Templates_ {#templating}
### Interpolação
### Interpolação {#interpolation}
Cada arquivo Markdown é primeiro compilado para HTML e depois passado como um componente Vue para a canalização de processos Vite. Isso significa que você pode usar interpolação no estilo Vue no texto:
@ -24,7 +24,7 @@ Cada arquivo Markdown é primeiro compilado para HTML e depois passado como um c
Diretivas também funcionam (observe que, por definiçào, HTML cru também é válido em Markdown):
@ -96,11 +96,11 @@ const { page } = useData()
}
```
## Usando Componentes
## Usando Componentes {#using-components}
Você pode importar e usar componentes Vue diretamente nos arquivos Markdown.
### Importando no Markdown
### Importando no Markdown {#importing-in-markdown}
Se um componente é usado apenas por algumas páginas, é recomendável importá-los explicitamente onde são usados. Isso permite que eles sejam divididos adequadamente e carregados apenas quando as páginas relevantes são mostradas:
@ -120,7 +120,7 @@ Este é um arquivo .md usando um componente personalizado
Se um componente for usado na maioria das páginas, eles podem ser registrados globalmente personalizando a instância do aplicativo Vue. Consulte a seção relevante em [Estendendo o Tema Padrão](./extending-default-theme#registering-global-components) para um exemplo.
@ -128,7 +128,7 @@ Se um componente for usado na maioria das páginas, eles podem ser registrados g
Certifique-se de que o nome de um componente personalizado contenha um hífen ou esteja em PascalCase. Caso contrário, ele será tratado como um elemento alinhado e envolvido dentro de uma tag `<p>`, o que levará a uma incompatibilidade de hidratação pois `<p>` não permite que elementos de bloco sejam colocados dentro dele.
:::
### Usando Componentes Em Cabeçalhos <ComponenteNoCabeçalho/>
### Usando Componentes Em Cabeçalhos <ComponenteNoCabeçalho/> {#using-components-in-headers}
Você pode usar componentes Vue nos cabeçalhos, mas observe a diferença entre as seguintes sintaxes:
@ -143,7 +143,7 @@ O HTML envolvido por `<code>` será exibido como é; somente o HTML que **não**
O HTML de saída é realizado por [Markdown-it](https://github.com/Markdown-it/Markdown-it), enquanto os cabeçalhos processados são manipulados pelo VitePress (e usados tanto na barra lateral quanto no título do documento).
:::
## Escapes
## Escapes {#escaping}
Você pode escapar de interpolações Vue envolvendo-as em um `<span>` ou outros elementos com a diretiva `v-pre`:
@ -177,7 +177,7 @@ Alternativamente, você pode envolver todo o parágrafo em um container personal
</div>
## "Des-escape" em Blocos de Código
## "Des-escape" em Blocos de Código {#unescape-in-code-blocks}
Por padrão, todos os blocos de código cercados são automaticamente envolvidos com `v-pre`, então nenhuma sintaxe Vue será processada dentro deles. Para permitir a interpolação no estilo Vue dentro do cercado, você pode adicionar a linguagem com o sufixo `-vue` , por exemplo, `js-vue`:
@ -197,7 +197,7 @@ Olá {{ 1 + 1 }}
Observe que isso pode impedir que certos tokens sejam realçados corretamente.
O VitePress possui [suporte embutido](https://vitejs.dev/guide/features.html#css-pre-processors) para pré-processadores CSS: arquivos `.scss`, `.sass`, `.less`, `.styl` e `.stylus`. Não é necessário instalar plugins específicos do Vite para eles, mas o próprio pré-processador correspondente deve ser instalado:
@ -221,7 +221,7 @@ Então você pode usar o seguinte em Markdown e nos componentes do tema:
</style>
```
## Usando _Teleports_
## Usando _Teleports_ {#using-teleports}
Vitepress atualmente oferece suporte a SSG para _teleports_ apenas para o corpo. Para outros alvos, você pode envolvê-los dentro do componente embutido `<ClientOnly>` ou injetar a marcação de _teleport_ na localização correta em sua página final HTML por meio do [gancho `postRender`](../reference/site-config#postrender).