Skip to content

Commit

Permalink
Apresenta resumos do tipo key-points associados ao idioma do texto (#464
Browse files Browse the repository at this point in the history
)

* Corrige ausência de "contrib-type"

* Remove a apresentação de key-points do início e coloca após os resumos e somente apresenta o bloco key-points correspondente ao idioma do texto

* Remove o choose por ser desnecessário

* Cria o template standard-abstract para apresentar os resumos do tipo padrão e remove os templates desncessários

* Apresenta todos os resumos padrão
priorizando o resumo no idioma selecionado

* Adiciona os resumos gráficos

* Corrige o filtro para obter resumos do tipo padrão

* Refatora a apresentação dos resumos visuais

* Elimina código em comum das duas versões ao apresentar o resumo

* Remove o menu lateral na página do resumo para a versão 3.0 pois o menu estava sobrepondo o resumo

* Atualiza os HTML gerados após mudar a ordem dos resumos (primeiro resumo deve ser o do idioma do texto selecionado)

* Corrige a seleção de aff e de sub-article que pode acontecer em article-meta ou em article-meta/contrib-group

* Corrige a seleção do resumo gráfico

* Adiciona fixtures de HTML / XML para resumos key-points
  • Loading branch information
robertatakenaka authored Aug 25, 2023
1 parent 0a0ec56 commit 6ab2f78
Show file tree
Hide file tree
Showing 30 changed files with 6,113 additions and 285 deletions.
140 changes: 96 additions & 44 deletions packtools/catalogs/htmlgenerator/v2.0/article-meta-abstract.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -6,61 +6,95 @@
<!-- apresenta todos os resumos que existir -->
<xsl:variable name="q" select="count(.//abstract[.//text()])+count(.//trans-abstract[.//text()])"/>
<xsl:if test="$q &gt; 0">
<!-- apresenta a âncora e o título, ou seja, Abstract, Resumo, ou Resumen -->
<xsl:apply-templates select="." mode="create-anchor-and-title-for-abstracts-without-title"/>

<xsl:choose>
<xsl:when test=".//abstract//list">
<!-- é highlights mas não está usando o atributo abstract-type -->
<!-- apresenta os resumos do tipo key-points (highlights) -->
<xsl:apply-templates select="." mode="abstract-highlights"/>

<!-- apresenta a âncora e o título, ou seja, Abstract, Resumo, ou Resumen -->
<xsl:apply-templates select="." mode="create-anchor-and-title-for-abstracts-without-title"/>
<!-- apresenta os resumos diferentes de key-points -->
<xsl:apply-templates select="." mode="standard-abstract"/>
</xsl:if>

<!-- apresenta os resumos diferentes de key-points -->
<xsl:apply-templates select="." mode="abstract-not-highlights"/>
</xsl:when>
<xsl:otherwise>
<!-- apresenta os resumos do tipo key-points (highlights) -->
<xsl:apply-templates select="." mode="abstract-key-points"/>
<!-- graphical -->
<xsl:choose>
<xsl:when
test="sub-article//abstract[@abstract-type='graphical']">
<xsl:apply-templates
select="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]" mode="graphical-abstract"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="front/article-meta" mode="graphical-abstract"/>
</xsl:otherwise>
</xsl:choose>

<!-- apresenta a âncora e o título, ou seja, Abstract, Resumo, ou Resumen -->
<xsl:apply-templates select="." mode="create-anchor-and-title-for-abstracts-without-title"/>
<!-- key-points -->
<xsl:choose>
<xsl:when
test="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]">
<xsl:apply-templates
select="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]" mode="key-points-block"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="front/article-meta" mode="key-points-block"/>
</xsl:otherwise>
</xsl:choose>

</xsl:template>

<!-- apresenta os resumos diferentes de key-points -->
<xsl:apply-templates select="." mode="abstract-not-key-points"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:template match="article | sub-article" mode="key-points-block">
<xsl:apply-templates select="front/article-meta | front-stub" mode="key-points-block"/>
</xsl:template>

<xsl:template match="article" mode="abstract-key-points">
<xsl:template match="front/article-meta | front-stub" mode="key-points-block">
<!-- apresenta os resumos do tipo key-points (highlights) -->
<xsl:apply-templates select=".//abstract[@abstract-type='key-points']" mode="layout"/>
<xsl:apply-templates select=".//trans-abstract[@abstract-type='key-points']" mode="layout"/>
<!-- apresenta os resumos do tipo highlights (highlights) -->
<xsl:apply-templates select=".//abstract[.//list]" mode="layout"/>
<xsl:apply-templates select=".//trans-abstract[.//list]" mode="layout"/>
</xsl:template>

<xsl:template match="article" mode="abstract-not-key-points">
<!-- apresenta os resumos diferentes de key-points -->
<xsl:apply-templates select=".//abstract[not(@abstract-type) or @abstract-type!='key-points']|.//trans-abstract[not(@abstract-type) or @abstract-type!='key-points']" mode="layout"/>
<xsl:template match="article | sub-article" mode="standard-abstract">
<!--
apresenta todos os resumos padrão
priorizando o resumo no idioma selecionado
-->
<xsl:choose>
<xsl:when
test="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]">
<xsl:apply-templates
select="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]/front-stub" mode="standard-abstract"/>
<xsl:apply-templates
select="$article/front/article-meta" mode="standard-abstract"/>
<xsl:apply-templates
select="$article/sub-article[@article-type='translation' and @xml:lang!=$TEXT_LANG]/front-stub" mode="standard-abstract"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="front-stub | front/article-meta" mode="standard-abstract"/>
<xsl:apply-templates
select="sub-article[@article-type='translation']/front-stub" mode="standard-abstract"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<xsl:template match="article" mode="abstract-highlights">
<!-- apresenta os resumos do tipo highlights (highlights) -->
<xsl:apply-templates select=".//abstract[.//list]" mode="layout"/>
<xsl:apply-templates select=".//trans-abstract[.//list]" mode="layout"/>
<xsl:template match="front-stub | front/article-meta" mode="standard-abstract">
<!-- apresenta os resumos padrão -->
<xsl:apply-templates select=".//abstract[not(@abstract-type) and not(.//list)]" mode="layout"/>
<xsl:apply-templates select=".//trans-abstract[not(@abstract-type) and not(.//list)]" mode="layout"/>
</xsl:template>

<xsl:template match="article" mode="abstract-not-highlights">
<!-- apresenta os resumos diferentes de highlights -->
<xsl:apply-templates select=".//abstract[not(.//list)]|.//trans-abstract[not(.//list)]" mode="layout"/>
<xsl:template match="article | sub-article" mode="graphical-abstract">
<xsl:apply-templates select="front/article-meta | front-stub" mode="graphical-abstract"/>
</xsl:template>

<xsl:template match="front/article-meta | front-stub" mode="graphical-abstract">
<xsl:apply-templates select=".//abstract[@abstract-type='graphical']" mode="layout"/>
</xsl:template>

<xsl:template match="article" mode="article-meta-no-abstract-keywords">
<!-- Apresenta keywords para artigos sem resumo -->
<xsl:if test="not(.//abstract)">
<xsl:choose>
<xsl:when test=".//sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]//kwd-group">
<xsl:apply-templates select=".//sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]//kwd-group" mode="keywords"/>
<xsl:when test="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]//kwd-group">
<xsl:apply-templates select="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]//kwd-group" mode="keywords"/>
</xsl:when>
<xsl:when test="front/article-meta//kwd-group">
<xsl:apply-templates select="front/article-meta//kwd-group" mode="keywords"/>
Expand All @@ -87,12 +121,19 @@
</xsl:variable>

<!-- insere a âncora e o título -->
<div class="articleSection" data-anchor="{$title}">
<h1 class="articleSectionTitle"><xsl:value-of select="$title"/></h1>
</div>
<xsl:apply-templates select="." mode="create-anchor-and-title-for-abstracts-without-title-div-h-number">
<xsl:with-param name="title"><xsl:value-of select="$title"/></xsl:with-param>
</xsl:apply-templates>
</xsl:if>
</xsl:template>

<xsl:template match="article" mode="create-anchor-and-title-for-abstracts-without-title-div-h-number">
<xsl:param name="title"/>
<div class="articleSection" data-anchor="{$title}">
<h1 class="articleSectionTitle"><xsl:value-of select="$title"/></h1>
</div>
</xsl:template>

<xsl:template match="*[contains(name(),'abstract')]" mode="index">
<xsl:param name="lang"/>
<xsl:if test="normalize-space(@xml:lang)=normalize-space($lang)"><xsl:value-of select="position()"/></xsl:if>
Expand All @@ -112,11 +153,12 @@
Apresenta as palavras-chave no idioma correspondente, se aplicável
-->
<xsl:choose>
<xsl:when test="@abstract-type='key-points' or .//list">
<!-- para HIGHLIGHTS não apresentar keywords -->
<xsl:when test="not(@abstract-type) and not(.//list)">
<!-- apresenta palavras chave com o resumo padrão -->
<xsl:apply-templates select="." mode="keywords"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="keywords"/>
<!-- do nothing -->
</xsl:otherwise>
</xsl:choose>
</div>
Expand Down Expand Up @@ -186,15 +228,25 @@
<!-- PÁGINA DO RESUMO -->
<!-- APRESENTA O RESUMO NO IDIOMA CORRESPONDENTE -->
<xsl:choose>
<xsl:when test="@xml:lang=$gs_abstract_lang">
<!-- idioma selecionado é o mesmo que o do texto completo -->
<xsl:apply-templates select=".//article-meta/abstract[(not(@abstract-type) or @abstract-type!='key-points') and not(.//list)]" mode="layout"/>
<xsl:when
test="@xml:lang=$gs_abstract_lang">
<xsl:apply-templates
select="front/article-meta/abstract" mode="layout"/>
</xsl:when>
<xsl:when
test="sub-article[@article-type='translation' and @xml:lang=$gs_abstract_lang]">
<xsl:apply-templates
select="sub-article[@article-type='translation' and @xml:lang=$gs_abstract_lang]/front-stub/abstract" mode="layout"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select=".//trans-abstract[@xml:lang=$gs_abstract_lang]" mode="layout"/>
<xsl:apply-templates select=".//sub-article[@xml:lang=$gs_abstract_lang]//abstract[(not(@abstract-type) or @abstract-type!='key-points') and not(.//list)]" mode="layout"/>
</xsl:otherwise>
</xsl:choose>

<xsl:if test="sub-article and count(.//abstract[@abstract-type='graphical'])=1">
<!-- um resumo gráfico para todas as versões -->
<xsl:apply-templates select=".//abstract[@abstract-type='graphical']" mode="layout"/>
</xsl:if>
</xsl:template>

</xsl:stylesheet>
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<xsl:apply-templates select="." mode="contrib-group">
<xsl:with-param name="id"><xsl:value-of select="../../../@id"/></xsl:with-param>
</xsl:apply-templates>
<xsl:if test="../aff">
<xsl:if test="..//aff">
<xsl:apply-templates select=".." mode="scimago-button">
<xsl:with-param name="id"><xsl:value-of select="../../../@id"/></xsl:with-param>
</xsl:apply-templates>
Expand All @@ -16,7 +16,7 @@
<xsl:apply-templates select="." mode="contrib-group">
<xsl:with-param name="id"><xsl:value-of select="../../@id"/></xsl:with-param>
</xsl:apply-templates>
<xsl:if test="../aff">
<xsl:if test="..//aff">
<xsl:apply-templates select=".." mode="scimago-button">
<xsl:with-param name="id"><xsl:value-of select="../../@id"/></xsl:with-param>
</xsl:apply-templates>
Expand All @@ -26,9 +26,9 @@
<xsl:template match="article" mode="article-meta-contrib">
<xsl:choose>
<xsl:when
test=".//sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]">
test="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]">
<xsl:apply-templates
select=".//sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]" mode="contrib-group"/>
select="sub-article[@article-type='translation' and @xml:lang=$TEXT_LANG]" mode="contrib-group"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="contrib-group"/>
Expand All @@ -53,6 +53,7 @@
</xsl:apply-templates>

<xsl:if test="not(.//contrib-group) and ../@article-type='translation'">
<!-- obtém o front ou front-stub do parent de sub-article -->
<xsl:apply-templates select="../../front" mode="contrib-group"/>
<xsl:apply-templates select="../../front-stub" mode="contrib-group"/>
</xsl:if>
Expand Down
39 changes: 12 additions & 27 deletions packtools/catalogs/htmlgenerator/v3.0/article-meta-abstract.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,11 @@

<xsl:include href="../v2.0/article-meta-abstract.xsl"/>

<xsl:template match="article" mode="create-anchor-and-title-for-abstracts-without-title">
<xsl:variable name="q_titles" select="count(.//abstract[title])+count(.//trans-abstract[title])"/>
<xsl:if test="$q_titles = 0">
<xsl:variable name="q_abstracts" select="count(.//abstract[.//text()])+count(.//trans-abstract[.//text()])"/>

<!-- obtém o título traduzido para Abstracts ou Abstract -->
<xsl:variable name="title">
<xsl:apply-templates select="." mode="text-labels">
<xsl:with-param name="text">
<xsl:choose>
<xsl:when test="$q_abstracts=1">Abstract</xsl:when>
<xsl:otherwise>Abstracts</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:variable>

<!-- insere a âncora e o título -->
<div class="articleSection" data-anchor="{$title}">
<h3 class="articleSectionTitle"><xsl:value-of select="$title"/></h3>
</div>
</xsl:if>
<xsl:template match="article" mode="create-anchor-and-title-for-abstracts-without-title-div-h-number">
<xsl:param name="title"/>
<div class="articleSection" data-anchor="{$title}">
<h3 class="articleSectionTitle"><xsl:value-of select="$title"/></h3>
</div>
</xsl:template>

<xsl:template match="abstract/sec/title | trans-abstract/sec/title">
Expand All @@ -36,11 +19,13 @@
<xsl:template match="abstract[title] | trans-abstract[title]" mode="anchor-and-title">
<!-- Apresenta a âncora e o título, ou seja, Abstract, Resumo, ou Resumen -->

<!-- âncora -->
<xsl:attribute name="class">articleSection</xsl:attribute>
<xsl:attribute name="data-anchor"><xsl:apply-templates select="." mode="title"/></xsl:attribute>
<xsl:if test="@xml:lang='ar'">
<xsl:attribute name="dir">rtl</xsl:attribute>
<xsl:if test="not($gs_abstract_lang)">
<!-- âncora -->
<xsl:attribute name="class">articleSection</xsl:attribute>
<xsl:attribute name="data-anchor"><xsl:apply-templates select="." mode="title"/></xsl:attribute>
<xsl:if test="@xml:lang='ar'">
<xsl:attribute name="dir">rtl</xsl:attribute>
</xsl:if>
</xsl:if>

<!-- título -->
Expand Down
Loading

0 comments on commit 6ab2f78

Please sign in to comment.