> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kiwify.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Templates

> Arquivos JSON que definem a estrutura e conteúdo da página

# Templates

<Info>
  Templates definem a estrutura das páginas na sua Área de Membros. Eles servem como armazenamento de dados para o editor de tema visual e determinam quais seções aparecem em uma página.
</Info>

## Templates Disponíveis

Atualmente, apenas duas páginas podem ser personalizadas:

* **Página de login** (`login.json`) - A página de autenticação
* **Página inicial** (`index.json`) - A página do painel principal

Estes arquivos seguem uma estrutura fixa e não podem ser deletados ou renomeados. Você também não pode criar novas páginas nesta pasta.

## Formato de Template

<Tabs>
  <Tab title="Estrutura do Schema">
    Templates são arquivos JSON com um schema específico:

    ```json theme={null}
    {
      "order": ["section-id-1", "section-id-2", "section-id-3"],
      "sections": {
        "section-id-1": {
          "type": "banner",
          "settings": { 
            // Configurações da seção
          },
          "blocks": {
            // Blocos opcionais dentro da seção
          },
          "block_order": ["block-id-1", "block-id-2"]
        },
        "section-id-2": {
          "type": "modules",
          "settings": {
            // Configurações da seção
          }
        }
        // Seções adicionais...
      }
    }
    ```
  </Tab>

  <Tab title="Propriedades">
    | Propriedade                | Tipo   | Descrição                                                          |
    | -------------------------- | ------ | ------------------------------------------------------------------ |
    | `order`                    | Array  | Lista de IDs de seção na ordem de renderização                     |
    | `sections`                 | Object | Mapa de IDs de seção para configurações de seção                   |
    | `sections[id].type`        | String | O tipo de seção (deve corresponder ao nome de um arquivo de seção) |
    | `sections[id].settings`    | Object | Valores de configuração para a seção                               |
    | `sections[id].blocks`      | Object | Blocos opcionais dentro da seção                                   |
    | `sections[id].block_order` | Array  | Ordem dos blocos dentro da seção                                   |
  </Tab>

  <Tab title="Exemplo">
    ```json theme={null}
    {
      "order": ["banner", "featured-modules", "continue-watching"],
      "sections": {
        "banner": {
          "type": "banner",
          "settings": { 
            "slides_delay": 5 
          },
          "blocks": {
            "slide-1": {
              "id": "slide-1",
              "type": "slide",
              "settings": {
                "banner_type": "image",
                "mobile_image": "https://example.com/mobile.jpg",
                "desktop_image": "https://example.com/desktop.jpg"
              }
            }
          },
          "block_order": ["slide-1"]
        },
        "featured-modules": {
          "type": "modules",
          "settings": {
            "external_section_id": "featured-modules",
            "items_variant": "content_over",
            "title": "Uma seção pode conter módulos",
            "course_id": "course-id-example"
          }
        },
        "continue-watching": {
          "type": "continue_watching",
          "settings": {
            "external_section_id": "continue-watching",
            "items_variant": "content_over",
            "margin_top": 20
          }
        }
      }
    }
    ```
  </Tab>
</Tabs>

## Limitações

<Warning>
  * Templates são arquivos auto-gerados que podem ser editados tanto pelo editor de código quanto pelo editor de tema
  * Cada template pode renderizar até 25 seções
  * Cada seção pode ter até 50 blocos
</Warning>

## Como os Templates Funcionam

Quando você edita um template no editor de tema:

1. O editor de tema lê o arquivo JSON do template
2. Ele renderiza controles de UI baseados nos schemas das seções
3. Quaisquer mudanças que você fizer são salvas de volta no arquivo JSON
4. A página é re-renderizada com suas mudanças

Você também pode editar estes arquivos diretamente no editor de código clicando no botão "Editor de Código".
