GRAV CMS – introdução e testes

Já imaginou como poderia ser simples o desenvolvimento de aplicações básicas, através de uma estrutura simples, que possibilita uma fácil manutenção além de ter uma curva de aprendizagem quase nula? Nesse post pretendo apresentar o CMS Grav, que é um CMS flat-file no padrão NoSQL, fácil de instalar, configurar e utilizar.


A intenção deste post é apresentar a solução CMS GRAV, e depois de analisar como ele funciona, vamos criar um blog simples para consolidar as informações apresentadas.

Introdução

O GRAV foi criado com intuito de facilitar mais ainda a produção de projetos e páginas simples com suporte a dados dinâmicos, NoSQL flat-file, que basicamente significa que ele guarda dados porém não em um banco de dados relacional, como normalmente é feito, e sim em arquivos de texto .md. Quem manja do Jekyll ou já criou uma página no GitHub Pages com certeza vai se indentificar com a forma do GRAV operar.

Sua utilização não é voltada para portais com alto tráfego e muito conteúdo (como portais de noticias), mas para projetos pessoais, portfólio ou blog o GRAV é um solução perfeita.

As funcionalidades e recursos presentes no GRAV são bem úteis. Ele é realmente um CMS bem simples e funcional.

Grav - um CMS flat-file super simples - Web Social Dev
algumas das funcionalidades destacadas no site da ferramenta.

Instalando o GRAV

Para utilizar o GRAV basta baixar o arquivo compactado no site da solução, ou clonar o repositório do GitHub para o seu servidor.

A propósito, fiz um demo para testes do GRAV, assim como faço na maioria dos posts. Também disponibilizei o demo no GitHub, para quem quiser baixar o pacote zipado ou clonar o repositório do demo.

Dica: se você quiser testar o GRAV de forma gratuita, utilize o Hostinger. Ele fornece uma hospedagem PHP 5.4+ grátis, da pra testar várias ferramentas além do GRAV.


Vamos executar o procedimento mais simples, que é baixar o arquivo compactado e extrair as informações no servidor.

Após baixar o pacote zipado no site do GRAV, acesse o painel de controle da sua hospedagem e faça upload deste arquivo para a raiz da hospagem, geralmente a pasta /public_html. Enviamos o arquivo zipado para otimizar o tempo de upload e após terminar o upload do arquivo, extraímos o conteúdo direto na raiz da pasta.

Com os procedimentos acima executados corretamente, você vai acabar com uma grade de arquivos bem similar a esta:

Grav - um CMS flat-file super simples - Web Social Dev

Feito isso, basta acessar o link da sua hospedagem. Caso o GRAV esteja em uma sub pasta, não esqueça de apontar a mesma. Ex: public_htm/…/index.php.

No primeiro acesso ao GRAV, você vai se deparar com a página a seguir (a página pode sofrer mudanças conforme a atualização da ferramenta):

Grav - um CMS flat-file super simples - Web Social Dev

Agora que tudo está configurado, vamos entender como funciona o gerenciamento de páginas e conteúdo do GRAV.

Instalando através do terminal

Se você tem acesso ao terminal do seu servidor (ou consegue executar comandos através do shell SSH), da para executar a instalação com um procedimento bem simples.

Primeiro, apontamos o terminal para a pasta onde desejamos instalar o Grav. No nosso exemplo, utilizamos a public_html, mas poderia ser uma pasta dentro desta (public_html/teste), desde que o terminal aponte para o local correto, tudo bem. Execute o seguinte comando para clonar o repositório do GitHub:

git clone https://github.com/getgrav/grav.git

Após clonar o repositório, uma pasta chamada Grav deve aparecer no diretório. Ao tentar acessar o Grav, ainda neste momento, você vai se deparar com uma falha, orientado executar o seguinte comando:

bin/grav install

Esse comando finaliza a configuração do Grav, e após sua execução, já estamos prontos para utilizar a plataforma.

Gerenciando conteúdo

Antes de partirmos para a edição do layout e criação de novas páginas, vamos entender como funciona o gerenciamento de arquivos do GRAV.

  • Todo conteúdo das páginas é agrupado na pasta user/pages/.
  • Nesta pasta no momento temos apenas uma pasta chamada 01.home. A numeração não é obrigatória, mas ajuda o GRAV a entender a ordem das páginas no menu e indica que a URL para página deve estar visível no menu.
  • Para alterar as configurações do template devemos acessar o arquivo user/config/system.yaml.

Grav - um CMS flat-file super simples - Web Social Dev

Editando as páginas

Para editar as páginas é bem simples, com base na estrutura de arquivos do GRAV, vamos até a página que já vem criada no exemplo, que é a home na pasta user/pages/01.home/default.md.

Ao abrir o arquivo você vai ver que todo conteúdo da página é descrito no arquivo como texto Markdown, conforme o exemplo abaixo:

---
title: Home
---

# Grav is Running!
## You have installed **Grav** successfully

Congratulations! You have installed the **Base Grav Package** that provides a **simple page** and the default **antimatter** theme to get you started.

>>>>> If you want a more **full-featured** base install, you should check out [**Skeleton** packages available in the downloads](http://getgrav.org/downloads).

### Find out all about Grav

* Learn about **Grav** by checking out our dedicated [Learn Grav](http://learn.getgrav.org) site.
* Download **plugins**, **themes**, as well as other Grav **skeleton** packages from the [Grav Downloads](http://getgrav.org/downloads) page.
* Check out our [Grav Development Blog](http://getgrav.org/blog) to find out the latest goings on in the Grav-verse.

### Edit this Page

To edit this page, simply navigate to the folder you installed **Grav** into, and then browse to the `user/pages/01.home` folder and open the `default.md` file in your [editor of choice](http://learn.getgrav.org/basics/requirements).  You will see the content of this page in [Markdown format](http://learn.getgrav.org/content/markdown).

### Create a New Page

Creating a new page is a simple affair in **Grav**.  Simply follow these simple steps:

1. Navigate to your pages folder: `user/pages/` and create a new folder.  In this example, we will use [explicit default ordering](http://learn.getgrav.org/content/content-pages) and call the folder `02.mypage`.
2. Launch your text editor and paste in the following sample code:

        ---
        title: My New Page
        ---
        # My New Page!

        This is the body of **my new page** and I can easily use _Markdown_ syntax here.

3. Save this file in the `user/pages/02.mypage/` folder as `default.md`. This will tell **Grav** to render the page using the **default** template.
4. That is it! Reload your browser to see your new page in the menu.

>>> NOTE: The page will automatically show up in the Menu after the "Home" menu item. If you wish to change the name that shows up in the Menu, simple add: `menu: My Page` between the dashes in the page content. This is called the YAML front matter, and it is where you configure page-specific options.

Para alterar as informações dessa página que por enquanto é a Index, basta alterar o texto. Se você tiver dúvidas ou não se familiarizar com a sintaxe Markdown, acesse esse guia do GitHub que explica muito bem como utilizar a liguagem de marcação.

BTW, o texto neste arquivo é uma manual de como editar e criar novas páginas.


Criando novas páginas

Para criar novas páginas, basta criar uma nova pasta no caminho user/pages/ com o nome da página. Como informado anteriormente, a nomenclatura da página não requer numeração (como no exemplo já criado), mas se houver, o GRAV entende a ordem da página no menu e automaticamente inclui a página no menu (o que precisa ser feito de outra maneira caso não tenha esta nomenclatura).

Vamos criar uma segunda página de teste. Crie uma pasta com o nome 02.test, logo em seguida, dentro da pasta, crie um arquivo com o nome default.md.

Agora edite o arquivo criado, colando o seguinte bloco de texto markdown:

---
title: Teste
---
# Testando o CMS Grav!

Primeiro teste com página customizada!

Nota: o item title define o nome do link no menu. Note que no menu, nossa página aparece com o nome Teste.

Para finalizar…

Bom, para uma introdução, até aqui está bom. Ainda estou explorando o Grav, então é bem provável que eu crie mais posts conforme as fuçadas, principalmente um falando sobre o arquivo de configuração (system.yaml) do Grav e sobre a instalação de temas.

Então, até!

  • Slegin

    Oi! Você tem alguma live demo?

    • Oi! Até tenho, no cloud9, mas deve estar off porque faz um tempo que não uso. Sobe uma VM no cloud9 e instala o grav. É muito simples!