Grav - Pages

Neste capítulo, vamos estudar sobre Grav Pages. As páginas podem ser definidas como blocos de construção do site. As páginas combinam conteúdos e navegações; isso torna o trabalho mais fácil, mesmo para usuários inexperientes.

Para começar, deixe-nos saber como criar uma página simples. Todo o conteúdo do usuário será armazenado emuser/pages/pasta. Haverá apenas uma pasta chamada01.home. A parte numérica da pasta é opcional; expressa a ordem de suas páginas (por exemplo, 01 virá antes de 02) e informa explicitamente a Grav que esta página deve estar visível no menu.

Vamos agora ver como criar uma nova página.

Step 1 - Crie uma pasta em /user/pages/; por exemplo, 02.about como mostrado na imagem a seguir.

Step 2 - Crie um arquivo chamado default.md dentro do recém-criado 02.about pasta com o seguinte conteúdo.

---
title: About Us
---

# About Us Page!

This is the body of **about us page**.

O código acima usa alguns Markdownsintaxe explicada resumidamente abaixo. Você pode estudar em detalhes sobreMarkdownno capítulo Markdown .

  • O conteúdo entre os indicadores --- são os Page Headers.

  • # ou hashes sintaxe em Markdown indica um título que será convertido para <h1> cabeçalho em HTML.

  • ** marcadores indicam texto em negrito ou <b> em HTML.

Step 3 - Recarregue seu navegador e você poderá ver uma nova página no menu como mostrado na imagem a seguir.

Tipos de página

Grav Pages suporta 3 tipos de páginas -

  • Página padrão.
  • Página de listagem.
  • Página modular.

Página Padrão

Páginas padrão são os tipos mais básicos de página, como postagem de blog, formulário de contato, página de erro, etc. Por padrão, uma página é considerada uma página padrão. Você será recebido por uma página padrão assim que fizer o download e instalar o pacote Base Grav. Você verá a página a seguir ao instalar o pacote Base Grav.

Página de listagem

Página de listagem é uma extensão de uma página padrão que faz referência a uma coleção de páginas. A maneira mais fácil de configurar a página de listagem é criar páginas filhas abaixo da página de listagem. Uma página de listagem de blog é um bom exemplo disso.

Um exemplo de esqueleto de blog com página de listagem pode ser encontrado em Grav Downloads . Um exemplo é mostrado na imagem a seguir.

Página Modular

Página modular é uma forma de página de listagem que cria uma única página a partir de suas páginas filhas. Isso nos permite construir layouts de uma página muito complexos a partir de páginas de conteúdo modulares menores. Isso pode ser alcançado construindo a página modular a partir de várias pastas modulares encontradas na pasta principal da página.

Um exemplo de esqueleto de uma página usando uma página modular pode ser encontrado em Grav Downloads . Um exemplo é mostrado na imagem a seguir.

Pastas

o /user/pagespasta conterá o conteúdo de suas respectivas páginas. As pastas dentro do/user/pagesAs pastas são tratadas automaticamente como menus pelo Grav e usadas para fins de pedido. Por exemplo, o01.homepasta será tratada como home. O pedido também deve ser mantido, ou seja, 01.home virá antes de 02.about.

Você deve fornecer um ponto de entrada para que especifique o navegador para onde ir ao apontar o navegador para a raiz do seu site. Por exemplo, se você inserir http://mysite.com em seu navegador, Grav espera um aliashome/ por padrão, mas você pode substituir o local da casa alterando o home.alias opção no arquivo de configuração Grav.

Sublinhado (_) antes que o nome da pasta seja identificado como Modular folders, que é um tipo de pasta especial que deve ser usado apenas com o conteúdo modular. Por exemplo, para a pasta comopages/02.about, o slug seria o padrão about, e o URL será http://mysite.com/about.

Se o nome da pasta não for prefixado com números, a página é considerada invisível e não será exibida na navegação. Por exemplo, o ifuser/pages/ tem /contactpasta, não será exibido na navegação. Isso pode ser substituído na própria página, dentro da seção do cabeçalho, definindo visível como verdadeiro, conforme mostrado abaixo, para torná-lo visível na navegação.

---
title: contact
visible: true
---

Por padrão, uma página é visível na navegação se as pastas ao redor tiverem prefixos numéricos. Os valores válidos para definir a visibilidade são true ou false.

Encomenda

Existem muitas maneiras de controlar a ordem da pasta, uma das formas mais importantes é definir content.order.bydas definições de configuração da página. As opções estão listadas abaixo.

  • default - O sistema de arquivos pode ser usado para pedidos, ou seja, 01.home antes de 02.about.

  • title - O título pode ser usado para a ordem definida em cada página.

  • date - A ordenação pode basear-se na data definida em cada página.

  • folder - O nome da pasta que consiste em qualquer prefixo numérico, por exemplo, 01., será removido.

  • basename - A ordenação é baseada na pasta alfabética sem ordem numérica.

  • modified - O carimbo de data / hora modificado da página também pode ser usado.

  • header.x - Qualquer campo do cabeçalho da página pode ser usado para pedidos.

  • manual - Usando order_manual, a ordenação de variáveis ​​pode ser feita.

  • random - A randomização do seu pedido também pode ser feita.

A ordem manual é definida especificamente fornecendo uma lista de opções para o content.order.customdefinição de configuração. Você pode definir opages.order.dir e a pages.order.by opções para substituir o comportamento padrão no arquivo de configuração do sistema Grav.

Arquivo de paginação

A página dentro da pasta da página deve ser criada como .mdarquivo, ou seja, arquivo formatado em Markdown; é remarcação com a matéria frontal YAML. odefaultserá o nome padrão do template principal e você pode dar a ele qualquer nome. Um exemplo de página simples é mostrado abaixo -

---
title: Title of the page
taxonomy:
   category: blog page
---
# Title of the page

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque porttitor eu
felis sed ornare. Sed a mauris venenatis, pulvinar velit vel, dictum enim. Phasellus
ac rutrum velit. **Nunc lorem** purus, hendrerit sit amet augue aliquet, iaculis
ultricies nisl. Suspendisse tincidunt euismod risus. Nunc a accumsan purus.

O conteúdo entre --- marcadores é conhecido como a matéria frontal YAML e esta matéria frontal YAML consiste em configurações YAML básicas. No exemplo acima, estamos definindo título e taxonomia para a página do blog. A seção após o par de --- marcadores é o conteúdo real que vemos em nosso site.

Tamanho resumido e separador

O tamanho padrão do resumo pode ser definido em site.yaml usado via page.summary(). Isso é útil para blogs em que apenas as informações resumidas são necessárias e não o conteúdo da página inteira. Você pode usar omanual summary separator também conhecido como summary delimiter: === e certifique-se de colocá-lo em seu conteúdo com linhas em branco acima e abaixo, conforme mostrado abaixo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.

===

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum."

O texto acima do separador será usado quando referenciado por page.summary() e o conteúdo completo quando referenciado por page.content().

Encontrar outras páginas

Grav tem um recurso chamado find() método para localizar outra página e executar ações nessa página.

Por exemplo, se você deseja listar todos os locais da empresa em uma página específica, use a seguinte regra de redução -

# Locations 
<ul>
   {% for loc in page.find('/locations').children if loc != page %}
      <li><a href="{{loc.url}}">{{ loc.title }}</a></li>
   {% endfor %}
</ul>