#BlackLivesMatter
AMP

Criar um blog ao vivo

Os blogs ao vivo são páginas da Web atualizadas com frequência durante eventos em andamento, como competições esportivas ou eleições. É possível implementar um blog ao vivo nas AMP por meio do componente amp-live-list.

Este tutorial oferece uma visão geral sobre o componente amp-live-list e se concentra em alguns detalhes de implementação dos blogs ao vivo, como a paginação e os links diretos. A amostra de blog ao vivo do AMP By Example será usada para ilustrar a implementação de blogs ao vivo nas AMP.

Use a marcação de metadados LiveBlogPosting (em inglês) para integrar seu blog a recursos de plataformas de terceiros.

Visão geral do amp-live-list

O componente amp-live-list normalmente busca conteúdo atualizado no documento do host e atualiza o navegador do usuário à medida que novos itens se tornam disponíveis Assim, sempre que for preciso adicionar uma nova postagem no blog, o documento do host será atualizado pelo CMS para incluir a atualização no corpo e na seção de metadados da página.

Este é um exemplo do código inicial do blog:

<amp-live-list id="my-live-list"
    data-poll-interval="15000"
    data-max-items-per-page="5">
  <button update on="tap:my-live-list.update">You have updates</button>
  <div items></div>
</amp-live-list>

Vamos analisar esse código:

Cada componente amp-live-list precisa ter um código exclusivo, porque pode haver mais de um deles na página. Nesse exemplo, especificamos my-live-list como o código exclusivo.

O atributo data-poll-interval especifica a frequência das pesquisas. Se o documento do host for atualizado, a atualização será disponibilizada para o usuário após o próximo intervalo.

Toda vez que um novo item for adicionado ao documento do host, o elemento <button update on="tap:my-live-list.update"> exibirá um botão indicando que há atualizações ("You have updates", na imagem). Com um clique, ele mostra as últimas postagens na página.

O conteúdo dos blogs ao vivo pode aumentar bastante, o que deixa a página muito longa. Use o atributo data-max-items-per-page para especificar quantos itens poderão ser adicionados ao blog ao vivo. Se o número de itens após uma atualização for superior a data-max-items-per-page, as atualizações mais antigas que ultrapassarem esse número serão removidas. Por exemplo, se a página tiver 9 itens, data-max-items-per-page estiver definido como 10 e a última atualização tiver 3 itens novos, os 2 itens mais antigos serão removidos da página após essa atualização.

O componente amp-live-list exige que todas as postagens sejam filhas da tag <div items></div>. Ao se referir a cada postagem como um item, cada item precisa ter um id exclusivo e um data-sort-time.

Detalhes da implementação

Agora que você conhece o componente amp-live-list, veremos como implementar um blog ao vivo mais complexo. Leia mais para saber como implementar a paginação e como funcionam os links diretos.

Paginação

Os blogs longos podem usar a paginação para melhorar o desempenho ao limitar o número de itens exibidos em cada página. Para implementar a paginação, adicione o elemento <div pagination></div> ao componente amp-live-list e insira a marcação necessária para a paginação (por exemplo, um número de página ou links para a página seguinte e a anterior).

Com a paginação, o código simples que usamos antes ficará assim:

<amp-live-list id="my-live-list"
    data-poll-interval="15000"
    data-max-items-per-page="5">
  <button update on="tap:my-live-list.update">You have updates</button>
  <div items></div>
  <div pagination>
    <nav>
      <ul>
        <li>1</li>
        <li>Next</li>
      </ul>
     </nav>
   </div>
</amp-live-list>

Você precisa atualizar a página hospedada para preencher os itens de navegação corretamente. Por exemplo, na amostra de blog ao vivo, renderizamos a página por meio de um modelo no servidor e usamos um parâmetro de consulta para especificar o primeiro item do blog que deverá ser exibido na página. Limitamos o tamanho da página a 5 itens. Portanto, se o servidor tiver gerado mais de 5 itens, quando um usuário for para a página principal, ela mostrará o elemento "Próxima" na área de navegação. Consulte amp-live-list para saber mais.

Quando o tamanho das postagens do blog ultrapassar o número máximo de itens especificado por data-max-items-per-page, os itens mais antigos serão exibidos nas páginas seguintes (por exemplo, na página 2). Como amp-live-list pesquisa o servidor regularmente para ver se há alguma alteração nos itens, não será preciso fazer essa pesquisa se o usuário não estiver na primeira página.

É possível adicionar o atributo "disabled" à página hospedada para evitar a ação do mecanismo de pesquisa. Na amostra de blog ao vivo, usamos esse comportamento em um modelo no servidor. Quando a página solicitada não for a primeira, adicionaremos o atributo "disabled" ao componente amp-live-list.

Ao publicar uma postagem do blog, é importante poder criar links diretos para a postagem, porque isso permite o uso de recursos como o compartilhamento. Com o amp-live-list, basta usar o id do item do blog para criar um link direto. Por exemplo, na amostra https://amp.dev/documentation/examples/news-publishing/live_blog/preview/index.html#post3, é possível navegar diretamente para a postagem do blog com o código post3.

O AMP By Example usa um cookie na amostra de blog ao vivo para gerar conteúdo novo. Assim, se for a primeira vez que você acessa a página, talvez a postagem com código "post3" não esteja disponível, mas você será redirecionado para a primeira postagem.

Recursos

Saiba mais com estes recursos: