From dd0041d4f90e9d02b1b47ecf7f891c933d827d26 Mon Sep 17 00:00:00 2001
From: Olivia Simonet <91660674+Olivia206@users.noreply.github.com>
Date: Thu, 5 Sep 2024 10:14:33 +0200
Subject: [PATCH] Ajustement des backlinks d'une personne et des publications
 (#522)

---
 assets/sass/_theme/sections/persons.sass      |  8 +++
 assets/sass/_theme/sections/posts.sass        |  5 +-
 assets/sass/_theme/sections/publications.sass | 53 +++++++++----------
 .../blocks/templates/publications.html        | 33 ++----------
 layouts/partials/persons/publications.html    | 20 ++++---
 .../partials/publications/publication.html    | 49 +++++++++++------
 .../partials/publications/publications.html   |  4 +-
 7 files changed, 89 insertions(+), 83 deletions(-)

diff --git a/assets/sass/_theme/sections/persons.sass b/assets/sass/_theme/sections/persons.sass
index afe142c9..4b0bca9e 100644
--- a/assets/sass/_theme/sections/persons.sass
+++ b/assets/sass/_theme/sections/persons.sass
@@ -170,9 +170,17 @@ ol.persons--list
                 transition: transform .3s ease
             &:hover::after
                 transform: translateX($spacing-2)
+    .person-publications
+        .publications
+            margin-top: $spacing-2
     .person-posts
+        .posts
+            margin-top: $spacing-3
         article.post:last-child
             margin-bottom: 0
+        @include media-breakpoint-up(desktop)
+            .posts
+                margin-top: $spacing-4
     section
         padding-bottom: $spacing-5
     ol.programs
diff --git a/assets/sass/_theme/sections/posts.sass b/assets/sass/_theme/sections/posts.sass
index 814cf23c..90665a31 100644
--- a/assets/sass/_theme/sections/posts.sass
+++ b/assets/sass/_theme/sections/posts.sass
@@ -23,11 +23,11 @@
             display: flex
             margin-bottom: $spacing-3
             padding-bottom: $spacing-3
-            flex-direction: row
             .post-title + p
                 margin-top: $spacing-2
             @include media-breakpoint-up(desktop)
                 @include grid
+                flex-direction: row
                 margin-bottom: $spacing-5
                 padding-bottom: $spacing-5
             .post-content
@@ -36,6 +36,9 @@
                     > *
                         display: block
                 @include media-breakpoint-down(desktop)
+                    p:not(.title)
+                        display: none
+                @include media-breakpoint-up(desktop)
                     flex: 1
                     margin-left: $spacing-2
                     p[itemprop="articleBody"]
diff --git a/assets/sass/_theme/sections/publications.sass b/assets/sass/_theme/sections/publications.sass
index 680827bb..b1c2ba13 100644
--- a/assets/sass/_theme/sections/publications.sass
+++ b/assets/sass/_theme/sections/publications.sass
@@ -17,12 +17,13 @@
     padding-bottom: $spacing-2
     padding-top: $spacing-2
     position: relative
-    @include icon-block(arrow-right-line, before)
-        position: absolute
-        right: 0px
-        @include media-breakpoint-up(desktop)
-            top: 50%
-            transform: translateY(-50%)
+    @include media-breakpoint-up(desktop)
+        align-items: center
+        display: flex
+        gap: $spacing-3
+        justify-content: space-between
+        @include icon(arrow-right-line, after)
+            font-size: pxToRem(40)
     a
         text-decoration: none
     .publication-content
@@ -35,7 +36,7 @@
             a
                 @include stretched-link(after)
         .publication-meta
-            @include small
+            @include meta
             color: var(--color-text-alt)
             margin-top: $spacing-1
             a
@@ -46,8 +47,6 @@
     @include media-breakpoint-down(desktop)
         .publication-meta
             padding-right: $spacing-4
-        &::before
-            bottom: 0
 
 .publications
     margin-top: $spacing-5
@@ -57,24 +56,24 @@
 
 .publications__section
     .publication
-        padding-bottom: $spacing-4
-        padding-top: $spacing-4
-        position: relative
-        p
-            padding-right: $spacing-4
-        @include media-breakpoint-down(desktop)
-            padding-right: $spacing-4
-            a + p
-                margin-top: $spacing-3
-            a::before
-                margin-top: pxToRem(-6)
-        .publication-title
-            @include h4
-        .publication-authors
-            &::before
-                content: " • "
-        .publication-date
-            display: none
+        @include media-breakpoint-up(desktop)
+            align-items: baseline
+            &::after
+                font-size: inherit
+            .publication-content
+                align-items: baseline
+                column-gap: var(--grid-gutter)
+                flex-direction: row
+                flex-wrap: wrap
+                .publication-title
+                    order: -1
+                .publication-title,
+                .publication-meta
+                    width: columns(8)
+                .publication-authors
+                    @include meta
+                    margin-bottom: 0
+                    flex: 1
 
 .publications__page
     .hero
diff --git a/layouts/partials/blocks/templates/publications.html b/layouts/partials/blocks/templates/publications.html
index c9381558..67eeff73 100644
--- a/layouts/partials/blocks/templates/publications.html
+++ b/layouts/partials/blocks/templates/publications.html
@@ -1,14 +1,8 @@
-{{ $heading_level := .heading_level | default 3 }}
-{{ $heading := printf "h%d" $heading_level }}
-{{ $heading_tag := (dict 
-  "open" ((printf "<%s class='publication-title' itemprop='headline'>" $heading) | safeHTML)
-  "close" ((printf "</%s>" $heading) | safeHTML)
-  ) }}
-  
 {{- $block := .block -}}
 {{- $template := .block.template -}}
 {{- $position := .block.position -}}
 {{- $title := .block.title -}}
+{{ $heading_level := $block.ranks.children }}
 
 {{- with .block.data -}}
 
@@ -24,27 +18,10 @@
         <div class="publications">
           {{ range $publication := .publications -}}
             {{ with site.GetPage (printf "/publications/%s" $publication) }}
-              <article class="publication" itemscope itemtype="http://schema.org/ScholarlyArticle">
-                <div class="publication-content">
-                  {{- $title := partial "PrepareHTML" .Title -}}
-
-                  {{ $heading_tag.open }}
-                    <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">{{ $title }}</a>
-                  {{ $heading_tag.close }}
-
-                  {{ with .Params.authors_list }}
-                    <div class="publication-authors">
-                      <span itemprop="author">{{ . }}</span>
-                    </div>
-                  {{ end }}
-
-                  {{ with .Params.ref }}
-                    <div class="publication-meta" itemprop="isPartOf" itemscope itemtype="http://schema.org/PublicationIssue">
-                      <span itemprop="name">{{ . }}</span>
-                    </div>
-                  {{ end }}
-                </div>
-              </article>  
+              {{ partial "publications/publication.html" (dict 
+                "publication" . 
+                "heading_level" $heading_level
+              )}}
             {{ end}}
           {{ end}}
         </div>
diff --git a/layouts/partials/persons/publications.html b/layouts/partials/persons/publications.html
index e5e5cb06..d734d20c 100644
--- a/layouts/partials/persons/publications.html
+++ b/layouts/partials/persons/publications.html
@@ -1,12 +1,16 @@
+{{ $researcher := .researcher }}
+{{ $publications := .publications }}
+
 <section class="person-publications">
   <div class="top">
-    <h2 class="h5"><a href="{{ .researcher.Permalink }}">{{ i18n "persons.publications" }}</a></h2>
+    <h2 class="h5"><a href="{{ $researcher.Permalink }}">{{ i18n "persons.publications" }}</a></h2>
   </div>
-  <ul class="publications-list">
-    {{ range first 3 .publications }}
-      <li>
-        {{ partial "publications/publication.html" . }}
-      </li>
+  <div class="publications">
+    {{ range first 3 $publications }}
+      {{ partial "publications/publication.html" (dict 
+        "publication" .
+        "researcher" $researcher
+      )}}
     {{ end }}
-  </ul>
-</section>
+  </div>
+</section>
\ No newline at end of file
diff --git a/layouts/partials/publications/publication.html b/layouts/partials/publications/publication.html
index ef896eab..b2afcd9b 100644
--- a/layouts/partials/publications/publication.html
+++ b/layouts/partials/publications/publication.html
@@ -1,17 +1,32 @@
-<article class="publication">
-  <p class="publication-title">
-    {{ $title := .Title }}
-    <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">
-      {{ partial "PrepareHTML" $title }}
-    </a>
-  </p>
-  <p class="publication-meta">
-    {{ with .Params.ref }}
-      <span>{{ partial "PrepareHTML" . }}</span>
-    {{ end }}
-    <span class="publication-date">{{ .Date.Format "2006" }}</span>
-    {{ with .Params.authors_list }}
-      <span class="publication-authors">{{ . }}</span>
-    {{ end }}
-  </p>
-</article>
+{{ $publication := .publication }}
+{{ $researcher := .researcher }}
+{{ $heading_level := .heading_level | default 3 }}
+{{ $heading := printf "h%d" $heading_level }}
+{{ $heading_tag := (dict 
+  "open" ((printf "<%s class='publication-title' itemprop='headline'>" $heading) | safeHTML)
+  "close" ((printf "</%s>" $heading) | safeHTML)
+) }}
+
+{{ with $publication }}
+  <article class="publication" itemscope itemtype="http://schema.org/ScholarlyArticle">
+    <div class="publication-content">
+      {{- $title := partial "PrepareHTML" .Title -}}
+
+      {{ $heading_tag.open }}
+        <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">{{ $title }}</a>
+      {{ $heading_tag.close }}
+
+      {{ with .Params.authors_list }}
+        <div class="publication-authors">
+          <span itemprop="author">{{ . }}</span>
+        </div>
+      {{ end }}
+
+      {{ with .Params.ref }}
+        <div class="publication-meta" itemprop="isPartOf" itemscope itemtype="http://schema.org/PublicationIssue">
+          <span itemprop="name">{{ . }}</span>
+        </div>
+      {{ end }}
+    </div>
+  </article>  
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/publications/publications.html b/layouts/partials/publications/publications.html
index 37ba5e87..df149d40 100644
--- a/layouts/partials/publications/publications.html
+++ b/layouts/partials/publications/publications.html
@@ -1,5 +1,5 @@
 <div class="publications">
   {{ range .Paginator.Pages }}
-    {{ partial "publications/publication.html" . }}
+    {{ partial "publications/publication.html" (dict "publication" . ) }}
   {{ end }}
-</div>
+</div>
\ No newline at end of file
-- 
GitLab