Skip to content

Commit

Permalink
v1.2.2 (#257)
Browse files Browse the repository at this point in the history
Closes #250 
Closes #256 
Closes #260 
Closes #258

- adds `affiliation` to member portrait component
- simplify portrait component code/css
- make tag de-dupe behavior the same as search de-dupe. normalize to
lower-kebab-case.
- expand list of manubot-supported id types for falling back to orcid
api details
- change order and type of preferred ids from orcid

---------

Co-authored-by: Faisal Alquaddoomi <[email protected]>
Co-authored-by: vincerubinetti <[email protected]>
  • Loading branch information
3 people authored Jun 5, 2024
1 parent fcfb29f commit 5afb459
Show file tree
Hide file tree
Showing 11 changed files with 90 additions and 62 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

Reference: common-changelog.org

## 1.2.2 - 2024-06-05

### Added

- Add `affiliation` member portrait field.

### Changed

- Change order and type of preferred ids from ORCID API.
- Expand list of supported Manubot identifiers and thus keep ORCID API details less often.
- Simplify portrait component under-the-hood.
- Make tag component de-duplication consistent with search plugin de-duplication.

## 1.2.1 - 2024-04-01

### Changed
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# citation metadata for the template itself

title: "Lab Website Template"
version: 1.2.1
date-released: 2024-04-01
version: 1.2.2
date-released: 2024-06-05
url: "https://github.com/greenelab/lab-website-template"
authors:
- family-names: "Rubinetti"
Expand Down
Binary file modified _cite/.cache/cache.db
Binary file not shown.
30 changes: 15 additions & 15 deletions _cite/plugins/orcid.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import json
from urllib.request import Request, urlopen
from util import *
from manubot.cite.handlers import prefix_to_handler as manubot_prefixes


def main(entry):
Expand Down Expand Up @@ -35,37 +36,36 @@ def query(_id):
# go through response structure and pull out ids e.g. doi:1234/56789
for work in response:
# get list of ids
ids = get_safe(work, "external-ids.external-id", [])
ids = []
for summary in get_safe(work, "work-summary", []):
ids = ids + get_safe(summary, "external-ids.external-id", [])

# prefer doi id type, or fallback to first id
# find first id of particular "relationship" type
_id = next(
(id for id in ids if get_safe(id, "external-id-type", "") == "doi"),
ids[0] if len(ids) > 0 else {},
(
id
for id in ids
if get_safe(id, "external-id-relationship", "")
in ["self", "version-of", "part-of"]
),
ids[0] if len(ids) > 0 else None,
)

if _id == None:
continue

# get id and id-type from response
id_type = get_safe(_id, "external-id-type", "")
id_value = get_safe(_id, "external-id-value", "")

# create source
source = {"id": f"{id_type}:{id_value}"}

# if not a doi, Manubot likely can't cite, so keep citation details
if id_type != "doi":
# if not an id type that Manubot can cite, keep citation details
if id_type not in manubot_prefixes:
# get summaries
summaries = get_safe(work, "work-summary", [])

# sort summary entries by most recent
summaries = sorted(
summaries,
key=lambda summary: (get_safe(summary, "last-modified-date.value", 0))
or get_safe(summary, "created-date.value", 0)
or 0,
reverse=True,
)

# get first summary with defined sub-value
def first(get_func):
return next(
Expand Down
4 changes: 2 additions & 2 deletions _data/citations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,11 +141,11 @@
- Jacob D Krol
- Joseph T Burke
- Samuel Z Chen
- Lo Sosinski
- Lo M Sosinski
- Faisal S Alquaddoomi
- Evan P Brenner
- Ethan P Wolfe
- Vince P Rubinetti
- Vincent P Rubinetti
- Shaddai Amolitos
- Kellen M Reason
- John B Johnston
Expand Down
1 change: 1 addition & 0 deletions _includes/list.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

{%
include {{ include.component | append: ".html" }}
affiliation=d.affiliation
author=d.author
authors=d.authors
buttons=d.buttons
Expand Down
34 changes: 20 additions & 14 deletions _includes/portrait.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
{% assign member = include %}
{% endif %}

{% assign type = site.data.types[member.role] %}

<div class="portrait-wrapper">
<a
{% if page.slug != member.slug %}
Expand All @@ -16,6 +18,10 @@
data-style="{{ include.style }}"
aria-label="{{ member.name | default: "member link" }}"
>
{% if type %}
{% include icon.html icon=type.icon %}
{% endif %}

<img
src="{{ member.image | relative_url }}"
class="portrait-image"
Expand All @@ -24,21 +30,21 @@
{% include fallback.html %}
>

{% if member.name or member.role or member.description %}
<span class="portrait-text">
{% if member.name %}
<span class="portrait-name">
{{ member.name }}
</span>
{% endif %}
{% if member.name %}
<span class="portrait-name">
{{ member.name }}
</span>
{% endif %}

{% if member.description or type %}
<span class="portrait-description">
{{ member.description | default: type.description }}
</span>
{% endif %}

{% if member.role or member.description %}
<span class="portrait-role">
{% assign type = site.data.types[member.role] %}
{% include icon.html icon=type.icon %}
<span>{{ member.description | default: type.description }}</span>
</span>
{% endif %}
{% if member.affiliation %}
<span class="portrait-affiliation">
{{ member.affiliation }}
</span>
{% endif %}
</a>
Expand Down
4 changes: 4 additions & 0 deletions _includes/tags.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
{% assign tags = include.tags
| object_items
| join: ","
| downcase
| split: ","
| array_filter
| join: ","
| regex_replace: "\s+", "-"
| split: ","
| uniq
%}
{% assign link = include.link | default: page.dir | absolute_url %}
Expand Down
1 change: 1 addition & 0 deletions _members/jane-smith.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
name: Jane Smith
image: images/photo.jpg
role: pi
affiliation: University of Colorado
aliases:
- J. Smith
- J Smith
Expand Down
2 changes: 1 addition & 1 deletion _scripts/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@

// normalize tag string for comparison
window.normalizeTag = (tag) =>
tag.trim().toLowerCase().replaceAll(/-|\s+/g, " ");
tag.trim().toLowerCase().replaceAll(/\s+/g, "-");

// get data attribute contents of element and children
const getAttr = (element, attr) =>
Expand Down
59 changes: 31 additions & 28 deletions _styles/portrait.scss
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
justify-content: center;
align-items: center;
flex-direction: column;
gap: 20px;
margin: 20px;
width: 175px;
max-width: calc(100% - 20px - 20px);
Expand All @@ -29,48 +28,52 @@
text-align: left;
}

.portrait-image {
width: 100%;
.portrait .icon {
position: absolute;
left: 0;
top: 0;
display: flex;
justify-content: center;
align-items: center;
width: calc(20px + 10%);
aspect-ratio: 1 / 1;
border-radius: 999px;
object-fit: cover;
background: var(--background);
box-shadow: var(--shadow);
transform: translate(14%, 14%);
}

.portrait[data-style="tiny"] .portrait-image {
width: 50px;
.portrait[data-style="small"] .icon {
left: -2px;
top: -2px;
}

.portrait[data-style="tiny"] .portrait-role {
.portrait[data-style="tiny"] .icon {
display: none;
}

.portrait-text {
display: flex;
flex-direction: column;
.portrait-image {
width: 100%;
margin-bottom: 20px;
aspect-ratio: 1 / 1;
border-radius: 999px;
object-fit: cover;
box-shadow: var(--shadow);
}

.portrait[data-style="tiny"] .portrait-image {
width: 50px;
margin: 0;
}

.portrait-name {
font-family: var(--heading);
font-weight: var(--semi-bold);
}

.portrait-role .icon {
position: absolute;
left: 0;
top: 0;
display: flex;
justify-content: center;
align-items: center;
width: calc(20px + 10%);
aspect-ratio: 1 / 1;
border-radius: 999px;
background: var(--background);
box-shadow: var(--shadow);
transform: translate(14%, 14%);
}

.portrait[data-style="small"] .portrait-role .icon {
left: -2px;
top: -2px;
.portrait[data-style="tiny"] {
.portrait-description,
.portrait-affiliation {
display: none;
}
}

0 comments on commit 5afb459

Please sign in to comment.