Adicionando a data da última modificação do post no Jekyll

Tempo de leitura: 3 minutos

Adicionando a data da última modificação do post no Jekyll

Neste tutorial, vamos aprender como implementar um plugin simples para exibir a data e hora da última modificação de um arquivo no Jekyll, usando o fuso horário de São Paulo. Apanhei muito até consegui essa solução, rsrs…

Sobre strftime e tzinfo

  • strftime: É um método em linguagens de programação, como Ruby, usado para formatar a representação de datas e horas em texto. Ele permite que você defina como a data e a hora serão apresentadas, incluindo o formato dos meses, dias, anos, horas, minutos, entre outros.

  • tzinfo: É uma biblioteca Ruby usada para lidar com informações de fuso horário. Com ela, você pode obter informações sobre diferentes fusos horários, converter entre fusos horários, manipular datas e horas em diferentes zonas de tempo e mais.

Passo 1: Instalação de dependências

  1. Verifique a presença das gems: Certifique-se de ter as gems strftime e tzinfo instaladas no seu ambiente Ruby.

     gem install strftime tzinfo
    

    Isso instalará as gems necessárias para a utilização das funcionalidades no código.

Passo 2: Criando o arquivo do plugin

  1. Crie um arquivo para o plugin: Na raiz do seu projeto Jekyll, crie uma pasta chamada _plugins, isso se ela ainda não existir.

  2. Crie um arquivo para o plugin: Dentro da pasta _plugins, crie um arquivo chamado last_modified_date.rb.

  3. Adicione o código do plugin: Copie e cole o código do plugin last_modified_date.rb que forneço abaixo neste arquivo que você acabou de criar.

require 'strftime'
require 'tzinfo'

module Jekyll
  class LastModifiedDate < Liquid::Tag
    def render(context)
      page = context.registers[:page]
      file_path = page['path']

      return '' unless File.exist?(file_path) # Retorna uma string vazia se o arquivo não existe

      modified_time = File.mtime(file_path)

      timezone = TZInfo::Timezone.get('America/Sao_Paulo')
      local_modified_time = timezone.utc_to_local(modified_time.utc)

      pt_br_months = {
        "January" => "janeiro",
        "February" => "fevereiro",
        "March" => "março",
        "April" => "abril",
        "May" => "maio",
        "June" => "junho",
        "July" => "julho",
        "August" => "agosto",
        "September" => "setembro",
        "October" => "outubro",
        "November" => "novembro",
        "December" => "dezembro"
      }

      formatted_date = local_modified_time.strftime("Última atualização: %e de %B de %Y às %H:%M:%S")
      pt_br_months.each { |en_month, pt_br_month| formatted_date.sub!(en_month, pt_br_month) }
      formatted_date
    end
  end
end

Liquid::Template.register_tag('last_modified_date', Jekyll::LastModifiedDate)

Passo 3: Utilizando o plugin no seu site

  1. 2- Adicione a tag nos seus templates ou posts: Em qualquer lugar dos seus arquivos Markdown (por exemplo, em um layout ou em um post), você pode usar a tag {% last_modified_date %} para exibir a data e hora da última modificação. Por exemplo:

     {% last_modified_date %}
    

    Isso exibirá a frase “Última atualização:” seguida pela data e hora da última modificação com o horário de São Paulo.

  2. 2- Reinicie o servidor Jekyll: Após adicionar o arquivo do plugin, certifique-se de reiniciar o servidor Jekyll para que as alterações tenham efeito.

Ao seguir esses passos e compreender o papel do strftime e do tzinfo, você estará habilitado a implementar e personalizar a exibição da data de modificação em seu site ou blog Jekyll.

Nos falamos no próximo artigo. Até lá!!!


Publicidade

📢 Quer ficar por dentro de todas as novidades do nosso blog? Não perca os últimos artigos, dicas valiosas e informações relevantes!

Junte-se a nós nas redes sociais para receber em primeira mão:

  • Artigos exclusivos;
  • Dicas práticas;
  • Ofertas especiais e descontos exclusivos para nossos seguidores.

Não vamos inundar sua caixa de entrada com newsletters! Simplesmente nos siga em uma de nossas redes sociais para garantir que você não perca nenhum conteúdo interessante. Estamos ansiosos para tê-lo(a) conosco! 🚀

Cristiano Ribeiro Braga
Autor: Cristiano Ribeiro Braga
Projetos, opinião, tecnologia e muito mais
comentários gerenciados por Disqus