diff --git a/assets/js/theme/design-system/clickToCopy.js b/assets/js/theme/design-system/clickToCopy.js
new file mode 100644
index 0000000000000000000000000000000000000000..e98a0f0287516a999632f0026da941532bbfb881
--- /dev/null
+++ b/assets/js/theme/design-system/clickToCopy.js
@@ -0,0 +1,36 @@
+class ClickToCopy {
+    constructor (button) {
+        this.button = button;
+        this.text = this.button.getAttribute('data-click-to-copy');
+        this.timeout = null;
+        this.listen();
+    }
+
+    listen () {
+        this.button.addEventListener('click', this.copy.bind(this));
+
+        this.button.addEventListener('keydown', (event) => {
+            if (event.key === 'Enter') {
+                this.copy();
+            }
+        });
+    }
+
+    copy () {
+        navigator.clipboard.writeText(this.text).then(() => {
+            this.button.classList.add('is-copied');
+            clearTimeout(this.timeout);
+            setTimeout(() => {
+                this.button.classList.remove('is-copied');
+            }, 3000);
+        });
+    }
+}
+
+// Selectors
+(function () {
+    const clickToCopy = document.querySelectorAll("[data-click-to-copy]");
+    clickToCopy.forEach(button => {
+        new ClickToCopy(button);
+    })
+})();
\ No newline at end of file
diff --git a/assets/js/theme/index.js b/assets/js/theme/index.js
index 503c2883743ed8c1f52024d8e5c562abab05d520..572d13b89efc1450aa199473882d27f4bc26eaae 100644
--- a/assets/js/theme/index.js
+++ b/assets/js/theme/index.js
@@ -1,4 +1,5 @@
 import './body.js';
+import './design-system/clickToCopy';
 import './design-system/dropdowns';
 import './design-system/font';
 import './design-system/mainMenu';
diff --git a/assets/sass/_theme/_configuration.sass b/assets/sass/_theme/_configuration.sass
index ebb3f2bc6795836de9bdcfa9d1ab68e933a7811b..9a21fa83a4f4dc975995452474bc905627914c3d 100644
--- a/assets/sass/_theme/_configuration.sass
+++ b/assets/sass/_theme/_configuration.sass
@@ -144,6 +144,8 @@ $btn-padding-y-desktop: px2rem(15) !default
 $btn-padding-x: $spacing1 !default
 $btn-padding-y: $spacing0 !default
 $btn-border-radius: px2rem(4) !default
+$btn-border: 1px solid $color-text !default
+$btn-hover-background: $color-background-alt !default
 
 // Form
 $form-btn-color: $color-background !default
@@ -221,13 +223,18 @@ $icons: map-merge($icons, ("caret-top": "\e914"))
 $icons: map-merge($icons, ("caret-right": "\e913"))
 $icons: map-merge($icons, ("caret-left": "\e912"))
 $icons: map-merge($icons, ("caret-bottom": "\e911"))
+$icons: map-merge($icons, ("check": "\ff06"))
+$icons: map-merge($icons, ("check-inline": "\ff07"))
 $icons: map-merge($icons, ("close": "\e90e"))
+$icons: map-merge($icons, ("copy": "\ff03"))
+$icons: map-merge($icons, ("copy-inline": "\ff04"))
 $icons: map-merge($icons, ("download": "\e900"))
 $icons: map-merge($icons, ("eye": "\e901"))
 $icons: map-merge($icons, ("facebook": "\e90b"))
 $icons: map-merge($icons, ("globe": "\ff10"))
 $icons: map-merge($icons, ("instagram": "\e90a"))
 $icons: map-merge($icons, ("link-blank": "\e903"))
+$icons: map-merge($icons, ("link-blank-block": "\ff05"))
 $icons: map-merge($icons, ("linkedin": "\e90c"))
 $icons: map-merge($icons, ("list-hyphen": "\e917"))
 $icons: map-merge($icons, ("pause": "\e90f"))
diff --git a/assets/sass/_theme/design-system/pagination.sass b/assets/sass/_theme/design-system/pagination.sass
index 799cd099db19f092823fc586d19506e42305b874..1c00405cb47904fdf4987318c33ba690e2fcda45 100644
--- a/assets/sass/_theme/design-system/pagination.sass
+++ b/assets/sass/_theme/design-system/pagination.sass
@@ -44,7 +44,7 @@
                 padding-left: 0
                 padding-right: 0
 
-.posts-navigation
+.posts-navigation, .siblings-navigation
     border-top: 1px solid $color-border
     ul
         @include list-reset
diff --git a/assets/sass/_theme/design-system/typography.sass b/assets/sass/_theme/design-system/typography.sass
index dbf7c6c69319963aeaf7601a77b6e0410258fe5a..593d2941f7872f0aa01607de888076d1f847421f 100644
--- a/assets/sass/_theme/design-system/typography.sass
+++ b/assets/sass/_theme/design-system/typography.sass
@@ -173,7 +173,7 @@ small, .small
 @mixin rich-text
     word-break: break-word
     h1, h2, h3, h4, h5, h6, p, ul
-        margin-top: 2em
+        margin-top: $spacing1
         &:first-child, meta + &
             margin-top: 0
 
@@ -253,6 +253,19 @@ a,
 .btn
     @include btn
 
+.link-btn
+    @include btn
+    border: $btn-border
+    @include media-breakpoint-up(desktop)
+        padding: $spacing0
+    &[target="_blank"]:not(.icon)
+        display: flex
+        justify-content: space-between
+        align-items: center
+        @include icon-block(link-blank-block, after)
+    &:hover
+        background: $btn-hover-background
+    
 .link-more
     @include link
     @include icon(arrow, before)
@@ -278,6 +291,15 @@ sup
     font-size: 60%
     margin-left: px2rem(2)
 
+[data-click-to-copy]
+    cursor: pointer
+    text-decoration: none
+    @include icon(copy-inline, after)
+        margin-left: $spacing0
+        vertical-align: text-top
+    &.is-copied
+        @include icon(check-inline, after)
+
 *:focus-visible
     outline-color: inherit
     outline-offset: 5px
diff --git a/assets/sass/_theme/sections/papers.sass b/assets/sass/_theme/sections/papers.sass
index 961afc26435fadba62a3307463860b29f454d71c..723b0b4f2fe717afae4814a9db963730382922a1 100644
--- a/assets/sass/_theme/sections/papers.sass
+++ b/assets/sass/_theme/sections/papers.sass
@@ -135,3 +135,18 @@
                         flex-direction: column
                         span
                             order: 3
+.citations
+    &:not(:first-child)
+        margin-top: $spacing3
+    > div
+        margin-top: $spacing1
+        @include grid(1)
+        @include grid(2, md, $spacing1)
+        @include media-breakpoint-down(md)
+            row-gap: $spacing1
+    .citation
+        a
+            display: block
+        p
+            @include meta
+            margin-top: $spacing0
\ No newline at end of file
diff --git a/assets/sass/_theme/sections/persons.sass b/assets/sass/_theme/sections/persons.sass
index f09104b5888ea4a2e1b87c3be04ed1501fc00bfb..0e271cecf27cbe87d184b0fba13839231f537555 100644
--- a/assets/sass/_theme/sections/persons.sass
+++ b/assets/sass/_theme/sections/persons.sass
@@ -44,6 +44,7 @@
         flex-shrink: 0
         order: -1
         margin-bottom: $spacing1
+        min-width: $spacing3
     .name
         @include h4
         a
@@ -201,12 +202,15 @@ ol.persons--list
     .person-objects,
     .person-publications
         margin-top: $spacing4
+        ul
+            @include list-reset
         .publication
             border-bottom: 1px solid $color-border
             padding-bottom: $spacing1
             padding-top: $spacing0
-            .title
+            a
                 margin-bottom: calc(#{$spacing0}/2)
+                text-decoration: none
             .ref
                 color: $color-text-alt
                 margin-top: 0
diff --git a/assets/sass/_theme/sections/publications.sass b/assets/sass/_theme/sections/publications.sass
index 261a15e88a290add33fe64e10dc674699b992c62..9d20fb5310b8e11528831180941f285193076261 100644
--- a/assets/sass/_theme/sections/publications.sass
+++ b/assets/sass/_theme/sections/publications.sass
@@ -1,46 +1,97 @@
+.publications-statistics
+    ol
+        @include list-reset
+        @include grid(2)
+        @include grid(3, md)
+        @include grid(4, desktop)
+        @include grid(6, xxl)
+        b
+            @include lead
+        span
+            @include meta
+        b, span
+            display: block
 
-// STYLE PUBLICATIONS
+.publications
+    margin-top: $spacing3
+    article
+        padding-bottom: $spacing2
+        padding-top: $spacing2
+        border-bottom: 1px solid $color-border
+        position: relative
+        @include media-breakpoint-down(desktop)
+            padding-right: $spacing2
+            a + .meta
+                margin-top: $spacing1
+            a::before
+                margin-top: px2rem(-6)
+        @include media-breakpoint-up(desktop)
+            @include grid(3)
+            align-items: baseline
+        a
+            @include h3
+            grid-column: 1 / 3
+            display: block
+            text-decoration: none
+            @include stretched-link(after)
+            &:hover
+                color: $color-accent
+            @include icon-block(arrow-right, before)
+                position: absolute
+                right: 0px
+        .meta
+            padding-right: $spacing2
 
-// .persons__page,
-// .researchers__term
-//     .paper
-//         border-bottom: 1px solid $color-border
-//         padding: $spacing0 0
-//         h2
-//             a
-//                 @include stretched-link(before)
-//         &:hover
-//             h2 a,
-//             &::after
-//                 color: $color-accent
+.publications__page
+    .hero
+        h1, hgroup
+            width: 100%
 
-// .persons__page
-//     .papers
-//         h2
-//             @include inherit-text
-//             a
-//                 @include stretched-link(before)
-//                 display: flex
-//                 @include media-breakpoint-up(desktop)
-//                     @include icon(arrow-right, after)
-//                         transition: color 0.3s ease
-//                 &::after
-//                     margin-left: auto
-//         p
-//             @include small
+    .document-content > .container
+        @include media-breakpoint-up(desktop)
+            @include grid
+        .content
+            @include media-breakpoint-up(desktop)
+            grid-column: 1 / 9
+        .document-sidebar
+            margin-bottom: $spacing3
+            @include media-breakpoint-up(desktop)
+                grid-column: 9 / 13
+                order: 2
+            [itemprop="author"] 
+                + *
+                    margin-top: $spacing1
+                .person
+                    flex-direction: row
+                    align-items: center
+                    display: flex
+                    gap: $spacing1
+                    .name
+                        @include signature
+                    .avatar
+                        margin-bottom: 0
+            > * + *
+                margin-top: $spacing3
+    .downloads
+        &:not(:first-child)
+            margin-top: $spacing3
+        nav
+            margin-top: $spacing1
+            @include grid(2, desktop)
+            @include grid(4, xxl)
+            @include media-breakpoint-up(xxl)
+                grid-gap: $spacing0 $grid-gutter
+            @include media-breakpoint-down(xxl)
+                grid-gap: $spacing0
+            > a
+                width: 100%
+                display: block
+                @include media-breakpoint-down(desktop)
+                    margin-bottom: $spacing1
 
-// .researchers__term
-//     .papers
-//         @include grid(2, desktop)
-//         @include media-breakpoint-up(desktop)
-//             grid-row-gap: 0
-//         .paper
-//             @include media-breakpoint-up(desktop)
-//                 @include icon(arrow-right, after)
-//                     bottom: 0
-//                     position: absolute
-//                     right: 0
-//                     transition: color 0.3s ease
-//             p
-//                 @include meta
-                
\ No newline at end of file
+    .block-siblings-navigation
+        .block-content
+            padding-left: 0 !important
+        .container
+            padding-left: 0
+            padding-right: 0
\ No newline at end of file
diff --git a/config.yaml b/config.yaml
index 67afdb886ad428d3b19d50d12d08e310123e1e10..26de63560792c819c6cfa7375ddaf43ff142b2e5 100644
--- a/config.yaml
+++ b/config.yaml
@@ -170,6 +170,11 @@ params:
           mobile:   350
           tablet:   450
           desktop:  900
+      publications:
+        hero:
+          mobile:   400
+          tablet:   800
+          desktop:  900
       programs:
         hero:
           mobile:   400
diff --git a/i18n/en.yml b/i18n/en.yml
index 2355faa2b6087717199b4a70cb196e644c31c974..eebde23c40614fcb25f3e32c002603e040fb1cb3 100644
--- a/i18n/en.yml
+++ b/i18n/en.yml
@@ -29,6 +29,8 @@ blocks:
     title: Posts
   programs:
     title: Programs
+  publications:
+    title: Publications
   sound:
     title: Audio
   testimonials:
@@ -64,6 +66,9 @@ commons:
     play: Play
     prev: Slide précedent
     slideX: Go to slide %s
+  click_to_copy:
+    aria_label: Click to copy {{ .description }}
+    button_title: Click to copy
   close: Close
   contact:
     address: Address
@@ -155,6 +160,7 @@ pages:
   posts: News
 papers:
   abstract: Abstract
+  citations: Citations
   dates:
     published: Published
     accepted: Accepted
@@ -223,6 +229,13 @@ programs:
     apprenticeship: Apprenticeship
     initial: Initial program
     continuing: Continuing program
+publications:
+  downloads: Downloads
+  next: Next publication
+  previous: Previous publication
+  citations: Citations
+  stats:
+    label: publications
 volumes:
   abstract: Abstract
   paper:
diff --git a/i18n/fr.yml b/i18n/fr.yml
index a01d699370da236aa05c581b5ede83b418e944bd..40028ad48c30aad8795858d1db944fe63c487d6f 100644
--- a/i18n/fr.yml
+++ b/i18n/fr.yml
@@ -29,6 +29,8 @@ blocks:
     title: Actualités
   programs: 
     title: Formations
+  publications:
+    title: Publications
   sound:
     title: Son
   testimonials: 
@@ -64,6 +66,9 @@ commons:
     play: Démarrer le carousel
     prev: Aller à l'élément précédent
     slideX: Aller au slide %s
+  click_to_copy:
+    aria_label: Cliquez pour copier {{ .description }}
+    button_title: Cliquez pour copier
   close: Fermer
   contact:
     address: Adresse
@@ -155,6 +160,7 @@ pages:
   posts: Actualités
 papers:
   abstract: Abstract
+  citations: Citations
   dates:
     published: Date de publication
     accepted: Date d'acceptation
@@ -224,6 +230,13 @@ programs:
     apprenticeship: Apprentissage
     initial: Formation initiale
     continuing: Formation continue
+publications:
+  downloads: Téléchargements
+  next: Publication suivante
+  previous: Publication précédente
+  citations: Citations
+  stats:
+    label: publications
 volumes:
   abstract: Résumé
   paper:
diff --git a/layouts/papers/single.html b/layouts/papers/single.html
index 8b296fe016e155197cba2c5bc17ad6e240701349..8b93a245fb9bbcdb89387e42eae1c78a9d080c37 100644
--- a/layouts/papers/single.html
+++ b/layouts/papers/single.html
@@ -10,6 +10,7 @@
       {{ partial "papers/summary.html" . }}
       {{ partial "papers/abstract.html" . }}
       {{ partial "papers/authors.html" . }}
+      {{ partial "papers/citations.html" . }}
       {{ partial "papers/body.html" . }}
       {{ partial "papers/references.html" . }}
     </div>
diff --git a/layouts/partials/GetBodyclass b/layouts/partials/GetBodyclass
index a200ed2c1f0a4683fc0345b9fde0d22656e7329b..5956a4efe438cd7fe8ea17adf58675465009c213 100644
--- a/layouts/partials/GetBodyclass
+++ b/layouts/partials/GetBodyclass
@@ -10,4 +10,8 @@
   {{ $bodyclass = printf "%s offcanvas-toc" $bodyclass }}
 {{ end }}
 
+{{ range .Params.categories }}
+  {{ $bodyclass = printf "%s category--%s" $bodyclass . }}
+{{ end }}
+
 {{ return $bodyclass }}
\ No newline at end of file
diff --git a/layouts/partials/commons/siblings-navigation.html b/layouts/partials/commons/siblings-navigation.html
new file mode 100644
index 0000000000000000000000000000000000000000..c444c7c0ec0b5ce07a0da7dd2f3d61bdb52a9423
--- /dev/null
+++ b/layouts/partials/commons/siblings-navigation.html
@@ -0,0 +1,40 @@
+{{/*  TODO: Create a generic previous / next section for single section  */}}
+{{ $previous_label := .previous_label | default (i18n "posts.previous") }}
+{{ $next_label := .next_label | default (i18n "posts.next") }}
+
+{{ with .context }}
+  {{- if or .PrevInSection .NextInSection -}}
+  <div class="block block-siblings-navigation">
+    <div class="container">
+      <div class="block-content">
+        <nav class="siblings-navigation" aria-label="{{ i18n "commons.pagination.between.posts" }}">
+          <ul>
+            {{ with .PrevInSection }}
+              <li class="previous">
+                {{ $title := partial "PrepareHTML" .Title -}}
+                <a href="{{.RelPermalink}}" title="{{ safeHTML (i18n "posts.previous_aria" (dict "Title" $title)) }}">
+                  <span>
+                    {{- $previous_label -}}
+                  </span>
+                  {{- $title -}}
+                </a>
+              </li>
+            {{ end }}
+            {{ with .NextInSection }}
+              <li class="next">
+                {{ $title := partial "PrepareHTML" .Title -}}
+                <a href="{{.RelPermalink}}" title="{{ safeHTML (i18n "posts.next_aria" (dict "Title" $title)) }}">
+                  <span>
+                    {{- $next_label -}}
+                  </span>
+                  {{- $title -}}
+                </a>
+              </li>
+            {{ end }}
+          </ul>
+        </nav>
+      </div>
+    </div>
+  </div>
+  {{- end -}}
+{{- end -}}
diff --git a/layouts/partials/papers/citations.html b/layouts/partials/papers/citations.html
new file mode 100644
index 0000000000000000000000000000000000000000..508515cfeabf76dc7fa9712ebb1aa3a0a874050d
--- /dev/null
+++ b/layouts/partials/papers/citations.html
@@ -0,0 +1,13 @@
+{{ if gt .Params.citations 0 }}
+<div class="citations">
+  <h2 class="h5">{{ i18n "papers.citations" }}</h2>
+  <div>
+    {{ range .Params.citations }}
+      <div class="citation">
+        <a data-click-to-copy="{{- partial "PrepareText" .content -}}" role="button" title="{{ i18n "commons.click_to_copy.button_title" }}" aria-label="{{ i18n "commons.click_to_copy.aria_label" (dict "description" .label )}}" tabindex="0">{{ .label }}</a>
+        <p>{{ partial "PrepareHTML" .content }}</p>
+      </div>
+    {{ end }}
+  </div>
+</div>
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/persons/posts.html b/layouts/partials/persons/posts.html
index d31f1bf3966e345ed754aae10f168c40e0aaafa4..654de7da322569e0c240568ff172776c3c10c962 100644
--- a/layouts/partials/persons/posts.html
+++ b/layouts/partials/persons/posts.html
@@ -3,7 +3,7 @@
     <h2 class="h5"><a href="{{ .Permalink }}">{{ i18n "persons.posts" }}</a></h2>
   </div>
   <div class="posts posts--{{- site.Params.posts.index.layout -}}">
-    {{ range first 3 .Pages }}
+    {{ range first 3 .posts }}
       {{ partial "posts/post.html" (dict "post" . ) }}
     {{ end }}
   </div>
diff --git a/layouts/partials/persons/publications.html b/layouts/partials/persons/publications.html
index 1d6bda5fc96420180680e0d9ccce0f8383d32bb5..5bee29c16f1949ea03e448905c5112bcc3cfb487 100644
--- a/layouts/partials/persons/publications.html
+++ b/layouts/partials/persons/publications.html
@@ -2,9 +2,17 @@
   <div class="top">
     <h2 class="h5">{{ i18n "persons.publications" }}</h2>
   </div>
-  <div class="publications">
-    {{ range . }}
-      {{ partial "publications/publication.html" . }}
+  <ul>
+    {{ range .publications }}
+      <li>
+        <article class="publication">
+          {{ $title := .Title }}
+          <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">{{ partial "PrepareHTML" $title }}</a>
+          <p class="meta">
+            {{ partial "PrepareHTML" .Params.ref }}
+          </p>
+        </article>
+      </li>
     {{ end }}
-  </div>
+  </ul>
 </section>
diff --git a/layouts/partials/publications/citations.html b/layouts/partials/publications/citations.html
new file mode 100644
index 0000000000000000000000000000000000000000..559b6d8e941d3d99c9b294718e2ee4b67b9b7099
--- /dev/null
+++ b/layouts/partials/publications/citations.html
@@ -0,0 +1,13 @@
+{{ if gt .Params.citations 0 }}
+<div class="citations">
+  <h2 class="h5">{{ i18n "publications.citations" }}</h2>
+  <div>
+    {{ range .Params.citations }}
+      <div class="citation">
+        <a data-click-to-copy="{{- partial "PrepareText" .content -}}" role="button" title="{{ i18n "commons.click_to_copy.button_title" }}" aria-label="{{ i18n "commons.click_to_copy.aria_label" (dict "description" .label )}}" tabindex="0">{{ .label }}</a>
+        <p>{{ partial "PrepareHTML" .content }}</p>
+      </div>
+    {{ end }}
+  </div>
+</div>
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/publications/downloads.html b/layouts/partials/publications/downloads.html
new file mode 100644
index 0000000000000000000000000000000000000000..29e17952553361b86a2d5cbafa3be56115631564
--- /dev/null
+++ b/layouts/partials/publications/downloads.html
@@ -0,0 +1,10 @@
+{{ if gt .Params.links 0 }}
+<div class="downloads">
+  <h2 class="h5">{{ i18n "publications.downloads" }}</h2>
+  <nav>
+    {{ range .Params.links }}
+      <a href="{{ .url }}" target="_blank" rel="noopener" class="link-btn">{{ .label }}</a>
+    {{ end }}
+  </nav>
+</div>
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/publications/hero-list.html b/layouts/partials/publications/hero-list.html
new file mode 100644
index 0000000000000000000000000000000000000000..d05b18894cfcc65c52f42ddca2b804ea65586005
--- /dev/null
+++ b/layouts/partials/publications/hero-list.html
@@ -0,0 +1,7 @@
+{{- partial "header/hero.html"
+      (dict
+        "title" .Title
+        "image" .Params.image
+        "sizes" site.Params.image_sizes.sections.publications.hero
+        "context" .
+      ) -}}
diff --git a/layouts/partials/publications/hero-single.html b/layouts/partials/publications/hero-single.html
new file mode 100644
index 0000000000000000000000000000000000000000..aeac43fd5f0c2bee7b26f5a64d07719c76309c2b
--- /dev/null
+++ b/layouts/partials/publications/hero-single.html
@@ -0,0 +1,6 @@
+{{- partial "header/hero.html"
+      (dict
+        "title" .Title
+        "subtitle" .Params.authors
+        "context" .
+      ) -}}
diff --git a/layouts/partials/publications/publication.html b/layouts/partials/publications/publication.html
index f2dc59dab000f61e7192656c5d6cb835f5bd83db..545b9e2976f1a7111a807fe7dbbff881ee35e1b2 100644
--- a/layouts/partials/publications/publication.html
+++ b/layouts/partials/publications/publication.html
@@ -1,8 +1,7 @@
 <article class="publication">
-  <p class="title">
-    {{ partial "PrepareHTML" .title }}
-  </p>
-  <p class="ref">
-    {{ partial "PrepareHTML" .ref }}
+  {{ $title := .Title }}
+  <a href="{{ .Permalink }}" title="{{ safeHTML (i18n "commons.more_aria" (dict "Title" $title)) }}">{{ partial "PrepareHTML" $title }}</a>
+  <p class="meta">
+    {{ .Date.Format "2006" -}}{{- if .Params.authors -}},{{- end }} {{ .Params.authors }}
   </p>
 </article>
diff --git a/layouts/partials/publications/publications.html b/layouts/partials/publications/publications.html
new file mode 100644
index 0000000000000000000000000000000000000000..37ba5e8739b116c5aed515f609c2bbef3c22c9ee
--- /dev/null
+++ b/layouts/partials/publications/publications.html
@@ -0,0 +1,5 @@
+<div class="publications">
+  {{ range .Paginator.Pages }}
+    {{ partial "publications/publication.html" . }}
+  {{ end }}
+</div>
diff --git a/layouts/partials/publications/researchers.html b/layouts/partials/publications/researchers.html
new file mode 100644
index 0000000000000000000000000000000000000000..9ffa2238f54bb37223369c725f0e17fe312a8c51
--- /dev/null
+++ b/layouts/partials/publications/researchers.html
@@ -0,0 +1,34 @@
+{{ if .Params.Researchers }}
+  <div class="publication-researchers" id="researchers">
+    <div class="researchers">
+      {{ range .Params.Researchers }}
+        {{ with site.GetPage (printf "/persons/%s" .) }}
+          <div itemprop="author" itemscope itemtype="https://schema.org/Person">
+            <meta itemprop="name" content="{{ trim .Title "\n" }}">
+            <meta itemprop="url" content="{{ .Permalink }}">
+            <meta itemprop="description" content="{{ trim .Content "\n" | safeHTML }}">
+            {{ if .Params.image }}
+              <meta itemprop="image" content="{{ .Params.image }}">
+            {{ end }}
+            <article class="person">
+              <div class="description">
+                {{- $title := partial "PrepareHTML" .Title }}
+                <p class="name"><a href="{{ .Permalink }}">{{- $title -}}</a></p>
+              </div>
+              <div class="avatar">
+                {{- if .Params.image }}
+                  {{ partial "commons/image.html"
+                    (dict
+                      "alt"      .Title
+                      "image"    .Params.image
+                      "sizes"    site.Params.image_sizes.sections.persons.item
+                    )}}
+                {{ end -}}
+              </div>
+            </article>
+          </div>
+        {{ end }}
+      {{ end }}
+    </div>
+  </div>
+{{ end }}
diff --git a/layouts/partials/publications/statistics.html b/layouts/partials/publications/statistics.html
new file mode 100644
index 0000000000000000000000000000000000000000..9e06d6fd3163d4ceac05a6db25281daa1bff6ea2
--- /dev/null
+++ b/layouts/partials/publications/statistics.html
@@ -0,0 +1,15 @@
+<div class="publications-statistics">
+  <ol>
+    {{ range first 6 (.Pages.GroupByDate "2006") }}
+      <li>
+        <p>
+          <b>{{ len .Pages }}</b>
+          <span>{{ i18n "publications.stats.label"}}</span>
+          <span>{{ .Key }}</span>
+        </p>
+      </li>
+    {{ end }}  
+  </ol>
+
+   
+</div>
\ No newline at end of file
diff --git a/layouts/persons/single.html b/layouts/persons/single.html
index 785033855c570eb800002beb9a0a6f9fa34fe7a3..047a1ac5c99c3f01ac1323f46936bf891c863e43 100644
--- a/layouts/persons/single.html
+++ b/layouts/persons/single.html
@@ -8,12 +8,12 @@
   {{ if isset site.Taxonomies "administrators" -}}
     {{ $programsForAdministrator = index site.Taxonomies.administrators $slug}}
   {{- end }}
-  {{- $papersForResearcher := slice -}}
-  {{- if isset site.Taxonomies "researchers" -}}
-    {{ $papersForResearcher = index site.Taxonomies.researchers $slug}}
-  {{ end }}
+
   {{ $author := site.GetPage (printf "/authors/%s" $slug) }}
-  {{ $publications := .Params.publications }}
+
+  {{ $posts := where $author.Pages "Section" "posts" }}
+  {{ $publications := where $author.Pages "Section" "publications" }}
+  {{ $papers := where $author.Pages "Section" "papers" }}
 
   {{ partial "persons/hero-single.html" . }}
 
@@ -71,18 +71,19 @@
       {{ if $programsForTeacher }}
         {{ partial "persons/programs.html" (dict "programs" $programsForTeacher "slug" $slug) }}
       {{ end }}
-  
-      {{ if $author.Pages }}
-        {{ partial "persons/posts.html" $author }}
+
+      {{ if $publications }}
+        {{ partial "persons/publications.html" (dict "publications" $publications) }}
       {{ end }}
-  
-      {{ if $papersForResearcher }}
-        {{ partial "persons/papers.html" (dict "papers" $papersForResearcher "slug" $slug) }}
+
+      {{ if $posts }}
+        {{ partial "persons/posts.html" (dict "posts" $posts) }}
       {{ end }}
-  
-      {{ if $publications }}
-        {{ partial "persons/publications.html" $publications }}
+
+      {{ if $papers }}
+        {{ partial "persons/papers.html" (dict "papers" $papers "slug" $slug) }}
       {{ end }}
+
     </div>
   </div>
 {{ end }}
diff --git a/layouts/publications/list.html b/layouts/publications/list.html
new file mode 100644
index 0000000000000000000000000000000000000000..9b98bdcb4b353738b1053617320cdc8058eaa417
--- /dev/null
+++ b/layouts/publications/list.html
@@ -0,0 +1,14 @@
+{{ define "main" }}
+  {{ partial "publications/hero-list.html" . }}
+  <div class="document-content">
+    {{ partial "commons/list-content.html" . }}
+    {{ partial "blocks/list.html" . }}
+  
+    <div class="container">
+      {{ partial "publications/statistics.html" . }}
+      {{ partial "publications/publications.html" . }}
+      {{ partial "commons/pagination.html" . }}
+    </div>
+  </div>
+
+{{ end }}
diff --git a/layouts/publications/single.html b/layouts/publications/single.html
new file mode 100644
index 0000000000000000000000000000000000000000..8f6b7a39138d2eeb9f52e736eb99986a7075b0aa
--- /dev/null
+++ b/layouts/publications/single.html
@@ -0,0 +1,34 @@
+{{ define "main" }}
+{{ partial "publications/hero-single.html" . }}
+
+<div class="document-content" itemscope itemtype="https://schema.org/ScholarlyArticle">
+  <meta itemprop="name" content="{{ partial "PrepareHTML" .Title }}">
+  
+  <div class="container">
+    <div class="document-sidebar">
+      {{ partial "publications/researchers.html" . }}
+      <div class="paper-ref">
+        <p>{{ partial "PrepareHTML" .Params.ref }}</p>
+      </div>
+    </div>
+    <div class="content">
+      <div class="rich-text">
+        {{ with .Params.abstract }}
+          <p>{{ partial "PrepareHTML" . }}</p>
+        {{ end }}
+        {{ with .Params.citation_full }}
+          <p>{{ partial "PrepareHTML" . }}</p>
+        {{ end }}
+        {{ partial "publications/citations.html" . }}
+        {{ partial "publications/downloads.html" . }}
+      </div>
+      {{ partial "commons/siblings-navigation.html" (dict
+        "context" .
+        "previous_label" (i18n "publications.previous")
+        "next_label" (i18n "publications.next")
+        ) }}
+    </div>
+  </div>
+</div>
+
+{{ end }}
diff --git a/static/assets/fonts/fonticons/IconFont.ttf b/static/assets/fonts/fonticons/IconFont.ttf
index b00fdb965dd1845bd1abc0eace76541268e4699c..5689dcea75d8f2745842cfd83af54cccea4dcbbc 100644
Binary files a/static/assets/fonts/fonticons/IconFont.ttf and b/static/assets/fonts/fonticons/IconFont.ttf differ
diff --git a/static/assets/fonts/fonticons/IconFont.woff b/static/assets/fonts/fonticons/IconFont.woff
index a405c7bde027ec8facdca7fa573cd94603636cc8..18a9005ff69c058fcda526e53794b6708dfcff29 100644
Binary files a/static/assets/fonts/fonticons/IconFont.woff and b/static/assets/fonts/fonticons/IconFont.woff differ
diff --git a/static/assets/fonts/fonticons/IconFont.woff2 b/static/assets/fonts/fonticons/IconFont.woff2
index 166546dd58ce27c9c779be61149b8d0fad933d03..39e4fc09e6a2f05a300095d2fab136e1e0325248 100644
Binary files a/static/assets/fonts/fonticons/IconFont.woff2 and b/static/assets/fonts/fonticons/IconFont.woff2 differ
diff --git a/static/osuny-theme-version b/static/osuny-theme-version
index 85937e4d984db06caef7b9af6e1746bfd9f9de0c..752d86b63cd55da1a250ef7785f7844480f0ecaa 100644
--- a/static/osuny-theme-version
+++ b/static/osuny-theme-version
@@ -1 +1 @@
-v4.0.1
\ No newline at end of file
+v4.0.2
\ No newline at end of file