Update Docs CI with mdbook translation support (#516)

* Update Docs CI with mdbook translation support #514

* install mdbook with --rev
This commit is contained in:
Marco Godoy authored and GitHub committed 2022-08-04 10:26:04 -05:00
1 parent df5338f4e6
commit 9538cfe733
37 files changed
+151 -145

No files matched your search

@@ -3,13 +3,13 @@
Em alguns casos, você pode desejar criar um componente que atue como um contêiner para algum outro conteúdo, sem que o componente precise saber qual é esse conteúdo. Para conseguir isso, crie uma _prop_ do tipo `Element`:
```rust
{{#include ../../examples/component_element_props.rs:Clickable}}
{{#include ../../../examples/component_element_props.rs:Clickable}}
```
Então, ao renderizar o componente, você pode passar a saída de `cx.render(rsx!(...))`:
```rust
{{#include ../../examples/component_element_props.rs:Clickable_usage}}
{{#include ../../../examples/component_element_props.rs:Clickable_usage}}
```
> Nota: Como `Element<'a>` é uma _prop_ emprestado, não haverá memoização.
@@ -21,11 +21,11 @@ Então, ao renderizar o componente, você pode passar a saída de `cx.render(rsx
Em vez de passar o `RSX` através de uma _prop_ regular, você pode querer aceitar filhos da mesma forma que os elementos podem ter filhos. O prop "mágico" `children` permite que você consiga isso:
```rust
{{#include ../../examples/component_children.rs:Clickable}}
{{#include ../../../examples/component_children.rs:Clickable}}
```
Isso torna o uso do componente muito mais simples: basta colocar o `RSX` dentro dos colchetes `{}` – e não há necessidade de uma chamada `render` ou outra macro!
```rust
{{#include ../../examples/component_children.rs:Clickable_usage}}
{{#include ../../../examples/component_children.rs:Clickable_usage}}
```
@@ -20,13 +20,13 @@ Existem 2 tipos de estruturas Props:
_Props_ próprios são muito simples – eles não emprestam nada. Exemplo:
```rust
{{#include ../../examples/component_owned_props.rs:Likes}}
{{#include ../../../examples/component_owned_props.rs:Likes}}
```
Você pode então passar valores de _prop_ para o componente da mesma forma que você passaria atributos para um elemento:
```rust
{{#include ../../examples/component_owned_props.rs:App}}
{{#include ../../../examples/component_owned_props.rs:App}}
```
![Screenshot: Likes component](./images/component_owned_props_screenshot.png)
@@ -38,13 +38,13 @@ Possuir _props_ funciona bem se seus _props_ forem fáceis de copiar – como um
Rust permite algo mais eficiente – emprestar a `String` como um `&str` – é para isso que servem as _props emprestadas_!
```rust
{{#include ../../examples/component_borrowed_props.rs:TitleCard}}
{{#include ../../../examples/component_borrowed_props.rs:TitleCard}}
```
Podemos então usar o componente assim:
```rust
{{#include ../../examples/component_borrowed_props.rs:App}}
{{#include ../../../examples/component_borrowed_props.rs:App}}
```
![Screenshot: TitleCard component](./images/component_borrowed_props_screenshot.png)
@@ -58,13 +58,13 @@ A macro `#[derive(Props)]` tem alguns recursos que permitem personalizar o compo
Você pode criar campos opcionais usando o tipo `Option<…>` para um campo:
```rust
{{#include ../../examples/component_props_options.rs:OptionalProps}}
{{#include ../../../examples/component_props_options.rs:OptionalProps}}
```
Em seguida, você pode optar por fornecê-los ou não:
```rust
{{#include ../../examples/component_props_options.rs:OptionalProps_usage}}
{{#include ../../../examples/component_props_options.rs:OptionalProps_usage}}
```
### `Option` Explicitamente Obrigatórias
@@ -72,13 +72,13 @@ Em seguida, você pode optar por fornecê-los ou não:
Se você quiser exigir explicitamente uma `Option`, e não uma _prop_ opcional, você pode anotá-la com `#[props(!optional)]`:
```rust
{{#include ../../examples/component_props_options.rs:ExplicitOption}}
{{#include ../../../examples/component_props_options.rs:ExplicitOption}}
```
Então, você tem que passar explicitamente `Some("str")` ou `None`:
```rust
{{#include ../../examples/component_props_options.rs:ExplicitOption_usage}}
{{#include ../../../examples/component_props_options.rs:ExplicitOption_usage}}
```
### Props Padrão
@@ -86,13 +86,13 @@ Então, você tem que passar explicitamente `Some("str")` ou `None`:
Você pode usar `#[props(default = 42)]` para tornar um campo opcional e especificar seu valor padrão:
```rust
{{#include ../../examples/component_props_options.rs:DefaultComponent}}
{{#include ../../../examples/component_props_options.rs:DefaultComponent}}
```
Então, da mesma forma que _props_ opcionais, você não precisa fornecê-lo:
```rust
{{#include ../../examples/component_props_options.rs:DefaultComponent_usage}}
{{#include ../../../examples/component_props_options.rs:DefaultComponent_usage}}
```
### Conversão Automática com `.into`
@@ -100,13 +100,13 @@ Então, da mesma forma que _props_ opcionais, você não precisa fornecê-lo:
É comum que as funções Rust aceitem `impl Into<SomeType>` em vez de apenas `SomeType` para suportar uma ampla gama de parâmetros. Se você quiser uma funcionalidade semelhante com _props_, você pode usar `#[props(into)]`. Por exemplo, você pode adicioná-lo em uma prop `String` – e `&str` também será aceito automaticamente, pois pode ser convertido em `String`:
```rust
{{#include ../../examples/component_props_options.rs:IntoComponent}}
{{#include ../../../examples/component_props_options.rs:IntoComponent}}
```
Então, você pode usá-lo assim:
```rust
{{#include ../../examples/component_props_options.rs:IntoComponent_usage}}
{{#include ../../../examples/component_props_options.rs:IntoComponent_usage}}
```
## A macro `inline_props`
@@ -5,7 +5,7 @@ Assim como você não gostaria de escrever um programa complexo em uma única e
Um componente é uma função Rust, nomeada em _UpperCammelCase_, que recebe um parâmetro `Scope` e retorna um `Element` descrevendo a interface do usuário que deseja renderizar. Na verdade, nossa função `App` é um componente!
```rust
{{#include ../../examples/hello_world_desktop.rs:component}}
{{#include ../../../examples/hello_world_desktop.rs:component}}
```
> Você provavelmente desejará adicionar `#![allow(non_snake_case)]` no topo de sua caixa para evitar avisos sobre o nome da função
@@ -13,13 +13,13 @@ Um componente é uma função Rust, nomeada em _UpperCammelCase_, que recebe um
Um Componente é responsável por alguma tarefa de renderização – normalmente, renderizando uma parte isolada da interface do usuário. Por exemplo, você pode ter um componente `About` que renderiza uma breve descrição do Dioxus Labs:
```rust
{{#include ../../examples/components.rs:About}}
{{#include ../../../examples/components.rs:About}}
```
Em seguida, você pode renderizar seu componente em outro componente, da mesma forma que os elementos são renderizados:
```rust
{{#include ../../examples/components.rs:App}}
{{#include ../../../examples/components.rs:App}}
```
![Captura de tela contendo o componente Sobre duas vezes](./images/screenshot_about_component.png)
+8 -8
View File
@@ -5,7 +5,7 @@ Dioxus é uma estrutura _declarativa_. Isso significa que, em vez de dizer ao Di
Você já viu um exemplo simples ou sintaxe `RSX` no aplicativo "hello world":
```rust
{{#include ../../examples/hello_world_desktop.rs:component}}
{{#include ../../../examples/hello_world_desktop.rs:component}}
```
Aqui, usamos a macro `rsx!` para _declarar_ que queremos um elemento `div`, contendo o texto `"Hello, world!"`. Dioxus pega o RSX e constrói uma interface do usuário a partir dele.
@@ -15,7 +15,7 @@ Aqui, usamos a macro `rsx!` para _declarar_ que queremos um elemento `div`, cont
O RSX é muito semelhante ao HTML, pois descreve elementos com atributos e filhos. Aqui está um elemento `div` vazio no RSX, bem como o HTML resultante:
```rust
{{#include ../../examples/rsx_overview.rs:empty}}
{{#include ../../../examples/rsx_overview.rs:empty}}
```
```html
@@ -27,7 +27,7 @@ O RSX é muito semelhante ao HTML, pois descreve elementos com atributos e filho
Para adicionar filhos a um elemento, coloque-os dentro dos colchetes `{}`. Eles podem ser outros elementos ou texto. Por exemplo, você pode ter um elemento `ol` (lista ordenada), contendo 3 elementos `li` (item da lista), cada um dos quais contém algum texto:
```rust
{{#include ../../examples/rsx_overview.rs:children}}
{{#include ../../../examples/rsx_overview.rs:children}}
```
```html
@@ -45,7 +45,7 @@ Você também pode "agrupar" elementos envolvendo-os em `Fragment {}`. Isso não
> Nota: você também pode renderizar vários elementos no nível superior de `rsx!` e eles serão agrupados automaticamente – não há necessidade de um `Fragment {}` explícito lá.
```rust
{{#include ../../examples/rsx_overview.rs:fragments}}
{{#include ../../../examples/rsx_overview.rs:fragments}}
```
```html
@@ -61,7 +61,7 @@ Você também pode "agrupar" elementos envolvendo-os em `Fragment {}`. Isso não
Os atributos também são especificados dentro dos colchetes `{}`, usando a sintaxe `name: value`. Você pode fornecer o valor como um literal no RSX:
```rust
{{#include ../../examples/rsx_overview.rs:attributes}}
{{#include ../../../examples/rsx_overview.rs:attributes}}
```
```html
@@ -80,7 +80,7 @@ Os atributos também são especificados dentro dos colchetes `{}`, usando a sint
Dioxus tem um conjunto pré-configurado de atributos que você pode usar. O RSX é validado em tempo de compilação para garantir que você não especificou um atributo inválido. Se você quiser substituir esse comportamento por um nome de atributo personalizado, especifique o atributo entre aspas:
```rust
{{#include ../../examples/rsx_overview.rs:custom_attributes}}
{{#include ../../../examples/rsx_overview.rs:custom_attributes}}
```
```html
@@ -92,7 +92,7 @@ Dioxus tem um conjunto pré-configurado de atributos que você pode usar. O RSX
Da mesma forma que você pode [formatar](https://doc.rust-lang.org/rust-by-example/hello/print/fmt.html) Rust _strings_, você também pode interpolar no texto RSX. Use `{variable}` para exibir o valor de uma variável em uma _string_, ou `{variable:?}` para usar a representação `Debug`:
```rust
{{#include ../../examples/rsx_overview.rs:formatting}}
{{#include ../../../examples/rsx_overview.rs:formatting}}
```
```html
@@ -108,7 +108,7 @@ Da mesma forma que você pode [formatar](https://doc.rust-lang.org/rust-by-examp
Você pode incluir expressões Rust arbitrárias dentro do RSX, mas deve escapá-las entre colchetes `[]`:
```rust
{{#include ../../examples/rsx_overview.rs:expression}}
{{#include ../../../examples/rsx_overview.rs:expression}}
```
```html
@@ -9,7 +9,7 @@ Se você estiver trabalhando com itens pré-renderizados, modelos ou uma bibliot
Por exemplo, enviar um conversor de markdown para Dioxus pode aumentar significativamente o tamanho final do aplicativo. Em vez disso, você desejará pré-renderizar sua remarcação para HTML e, em seguida, incluir o HTML diretamente em sua saída. Usamos essa abordagem para a [página inicial do Dioxus](https://dioxuslabs.com):
```rust
{{#include ../../examples/dangerous_inner_html.rs:dangerous_inner_html}}
{{#include ../../../examples/dangerous_inner_html.rs:dangerous_inner_html}}
```
> Nota! Esse atributo é chamado de "dangerous_inner_html" porque é **perigoso** passar dados que você não confia. Se você não for cuidadoso, poderá facilmente expor ataques de [cross-site scripting (XSS)](https://en.wikipedia.org/wiki/Cross-site_scripting) aos seus usuários.
@@ -23,7 +23,7 @@ A maioria dos atributos, quando renderizados, serão renderizados exatamente com
Portanto, este RSX não renderizaria o atributo `hidden`:
```rust
{{#include ../../examples/boolean_attribute.rs:boolean_attribute}}
{{#include ../../../examples/boolean_attribute.rs:boolean_attribute}}
```
```html