Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Torna carregamento de imagens "lazy" por padrão (conversor customizado asciidoctor) #28

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

arturo32
Copy link
Contributor

@arturo32 arturo32 commented Apr 22, 2023

Relacionado a issue #1:
Sobrescreve os conversores convert_image e convert_inline_image do 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 loading aos macros image e inline-image do asciidoctor e o atributo global image-loading. Este último é o usado no arquivo livro.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 arquivo livro.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.

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.
Comment on lines +9 to +14
# 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}") : ''
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pedaço de código que é diferente do código fonte da função convert_image do asciidoctor.

Comment on lines +71 to +76
# 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
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pedaço de código que é diferente do código fonte da função convert_inline_image do asciidoctor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant