Repository navigation
Conversation
Isso é feito sobrescrevendo os conversores de imagens do asciidoctor e adicionando o atributo "loading" que, quando não informado, possui o valor "lazy" por padrão.
| # https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/loading | ||
| loading_attr_value = (node.attr 'loading') || (node.document.attr 'image-loading') | ||
| if loading_attr_value && loading_attr_value != 'eager' && loading_attr_value != 'lazy' | ||
| logger.warn 'valid values for attribute "loading" are "eager" and "lazy". found: ' + loading_attr_value | ||
| end | ||
| loading_attr = loading_attr_value ? %( loading="#{loading_attr_value}") : '' |
There was a problem hiding this comment.
Pedaço de código que é diferente do código fonte da função convert_image do asciidoctor.
| # https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/loading | ||
| loading_attr_value = (node.attr 'loading') || (node.document.attr 'image-loading') | ||
| if loading_attr_value && loading_attr_value != 'eager' && loading_attr_value != 'lazy' | ||
| logger.warn 'valid values for attribute "loading" are "eager" and "lazy". found: ' + loading_attr_value | ||
| end | ||
| attrs = %(#{attrs} loading="#{loading_attr_value}") if loading_attr_value |
There was a problem hiding this comment.
Pedaço de código que é diferente do código fonte da função convert_inline_image do asciidoctor.
|
Caro @arturo32: muito grato por essas contribuições. Depois que pedi ajuda com essa questão de carregamento "lazy" das imagens, decidi que ter as imagens embutidas no HTML é a melhor solução, para que as pessoas possam baixar somente um arquivo .html com todo o conteúdo do livro. Novamente, agradeço pela sua contribuição! |
|
@ramalho Só deixando claro que essa solução, assim como as outras duas relacionadas a issue #1, não alteram o link de qualquer imagem, ou a presença de qualquer tag no documento. A única alteração que os 3 PRs fazem, em fluxos diferentes, é adicionar o atributo O atributo |
Relacionado a issue #1:
Sobrescreve os conversores
convert_imageeconvert_inline_imagedo asciidoctor com base nesse PR do asciidoctor e nas recomendações de um dos desenvolvedores do asciidoctor nessa discussão .O PR citado adiciona praticamente 5 linhas nos conversores de imagens do asciidoctor, adicionando o atributo
loadingaos macrosimageeinline-imagedoasciidoctore o atributo globalimage-loading. Este último é o usado no arquivolivro.adoc.Copiei o código do PR e coloquei dentro de um conversor customizado do asciidoctor em ruby.
O conversor customizado é adicionado no comando de geração do arquivo HTML em
build.sh.Para que o lazy loading funcione é necessário que as imagens tenham suas origens definidas por links/caminhos. Logo o atributo global
:data:uri:teve que ser removido do arquivolivro.adoc.Vale notar que eu não tive experiência com a linguagem ruby anteriormente. Aprendi o básico da linguagem no rápido tutorial oficial da linguagem e em outras fontes.