diff --git a/_config.yml b/_config.yml index 78c02ae4f0e8..d79ada450acd 100644 --- a/_config.yml +++ b/_config.yml @@ -237,8 +237,10 @@ scholar: # Filter out certain bibtex entry keywords used internally from the bib output filtered_bibtex_keywords: [abbr, abstract, arxiv, bibtex_show, html, pdf, selected, supp, blog, code, poster, slides, website, preview] -# Maximum number of authors to be shown, other authors will be visible on hover, leave blank to show all authors -max_author_limit: 3 +# Maximum number of authors to be shown for each publication (more authors are visible on click) +max_author_limit: 3 # leave blank to always show all authors +more_authors_animation_delay: 10 # more authors are revealed on click using animation; smaller delay means faster animation + # ----------------------------------------------------------------------------- # Responsive WebP Images diff --git a/_layouts/bib.html b/_layouts/bib.html index 5ce2f1edd38e..cfc3b6c0492b 100644 --- a/_layouts/bib.html +++ b/_layouts/bib.html @@ -29,22 +29,22 @@
{% assign author_array_size = entry.author_array | size %} + {% assign author_array_limit = author_array_size %} {%- if site.max_author_limit and author_array_size > site.max_author_limit %} {% assign author_array_limit = site.max_author_limit %} - {% else %} - {% assign author_array_limit = author_array_size %} {% endif %} {%- for author in entry.author_array limit: author_array_limit -%} {%- assign author_is_self = false -%} - {%- if author.last == site.scholar.last_name %} + {%- assign author_last_name = author.last | remove: "¶" | remove: "&" | remove: "*" | remove: "†" | remove: "^" -%} + {%- if author_last_name == site.scholar.last_name -%} {%- if site.scholar.first_name contains author.first -%} {%- assign author_is_self = true -%} {%- endif -%} {%- endif -%} {%- assign coauthor_url = nil -%} - {%- if site.data.coauthors[author.last] -%} - {%- for coauthor in site.data.coauthors[author.last] -%} + {%- if site.data.coauthors[author_last_name] -%} + {%- for coauthor in site.data.coauthors[author_last_name] -%} {%- if coauthor.firstname contains author.first -%} {%- assign coauthor_url = coauthor.url -%} {%- break -%} @@ -52,53 +52,35 @@ {%- endfor -%} {%- endif -%} - {%- if forloop.length == 1 -%} - {%- if author_is_self %} - {{author.last}}, {{author.first}} - {%- else -%} - {{author.last}}, {{author.first}} - {%- endif -%} + {%- if forloop.length > 1 -%} + {%- if forloop.first == false -%}, {%- endif -%} + {%- if forloop.last and author_array_limit == author_array_size -%}and {%- endif -%} + {%- endif -%} + {%- if author_is_self -%} + {{author.first}} {{author.last}} {%- else -%} - {%- unless forloop.last -%} - {% if author_is_self %} - {{author.last}}, {{author.first}},  - {%- else -%} - {% if coauthor_url -%} - {{author.last}}, {{author.first}},  - {%- else -%} - {{author.last}}, {{author.first}},  - {%- endif -%} - {%- endif -%} + {%- if coauthor_url -%} + {{author.first}} {{author.last}} {%- else -%} - {%- if author_array_limit == author_array_size %} and {% endif %} - {% if author_is_self -%} - {{author.last}}, {{author.first}} - {% else -%} - {%- if coauthor_url -%} - {{author.last}}, {{author.first}} - {% else -%} - {{author.last}}, {{author.first}} - {%- endif -%} - {%- endif -%} - {%- endunless -%} + {{author.first}} {{author.last}} + {%- endif -%} {%- endif -%} - {%- endfor %} - - {% assign more_authors = author_array_size | minus: author_array_limit %} - - {%- if more_authors > 0 %} - {% assign more_authors_hide = more_authors | append: " more author" %} - {% if more_authors > 1 %} - {% assign more_authors_hide = more_authors_hide | append: "s" %} - {% endif %} - {% assign more_authors_show = '' %} + {%- endfor -%} + {%- assign more_authors = author_array_size | minus: author_array_limit -%} + + {%- assign more_authors_hide = more_authors | append: " more author" -%} + {%- if more_authors > 0 -%} + {%- if more_authors > 1 -%} + {%- assign more_authors_hide = more_authors_hide | append: "s" -%} + {%- endif -%} + {%- assign more_authors_show = '' -%} {%- for author in entry.author_array offset: author_array_limit -%} - {% assign more_authors_show = more_authors_show | append: author.last | append: ", " | append: author.first %} - {% unless forloop.last %} - {% assign more_authors_show = more_authors_show | append: ", " %} - {% endunless %} + {%- assign more_authors_show = more_authors_show | append: author.first | append: " " | append: author.last -%} + {%- unless forloop.last -%} + {%- assign more_authors_show = more_authors_show | append: ", " -%} + {%- endunless -%} {%- endfor -%} - and + , and {{more_authors_hide}} - {% endif %} + {%- endif -%}