Skip to content

Conversation

@Grufoony
Copy link
Collaborator

This website is based on the Lab Website Template.
See its documentation for working with this site:

https://greene-lab.gitbook.io/lab-website-template-docs

vincerubinetti and others added 22 commits February 27, 2023 18:04
See changelog for high level, user-facing changes.

- docker python install changes. pin watchdog version, turn off unneeded
caching.
- docker entrypoint changes. run cite process immediately, ensure no
simultaneous runs.
- first time setup fixes. don't parse config.yaml as yaml, instead
customize with string replacement to preserve key order and comments.
- add title and link fallbacks to citation component
- fix start/end markers for blog post excerpts, and remove special
characters from hidden search attribute
- change member page from col layout to float
- add multi-line option to regex_scan liquid plugin (to support
start/end marker bug above)
- add new regex_strip liquid plugin to strip all special characters from
string
- card, code, portrait, post excerpt css fixes
- fix testbed image links
- (re)include user pr template
- fix versioning workflow to correctly parse and split changelog
- add show-title and show-subtitle site config options
- include site subtitle in description meta tag
See greenelab/lab-website-template#177 .
v1.1.1 introduced a regression in `first-time-setup.yaml` when clearing
the `gh-pages` branch. I wanted to make the command simpler -- to simply
delete everything in the folder -- but I didn't think it through enough.
[There is a safeguard to prevent the command from
working](https://unix.stackexchange.com/questions/369530/rm-refusing-to-remove-or-directory-skipping),
and also even if it did work it would delete the `.git` folder which
would break things. Thus, this version reverts the command to how it was
before, manually specifying each `.` folder.
Closes #181 and #180 
Closes #179 

- fix typo in first-time-setup.yaml
- fix versioning workflow tag/release
- tweak some cite.py and _plugins comments
- add commented out `continue` for if user wants to discard sources that
have ids that can't be cited by Manubot, per #186 discussion
- clean Manubot title/authors/publisher/etc output. trim whitespace and
filter.
- fix citation, portrait, and float css

The tagging/releasing step is now reverted to [how I had it in
v1.1.0](https://github.com/greenelab/lab-website-template/pull/166/files#diff-67cc7f4d3d06063e6239e59de699c4a2c768ba544777ded6aa22ab45aa0ad24a),
just using `ncipollo/release-action` for both the tag and the release,
and removing `mathieudutour/github-tag-action`. Idk why I keep going
back and forth. I guess the last time I tried using just `ncipollo` it
didn't work? But it seems to be working now (links ephemeral):

https://github.com/vincerubinetti/lwt-test/pull/2
https://github.com/vincerubinetti/lwt-test/releases/tag/v1.1.4

---------

Co-authored-by: vincerubinetti <vincerubinetti@users.noreply.github.com>
- explicitly list cite process cache files in gitignore
- add default values for all `.get()` calls for extra safety and also to
indicate expected type
- change `id` to `_id` in plugins. this was done in the main `cite.py`
script in v1.1.1 but i missed it in the plugins.
- fix dangerous memoize/cache bug where cache key doesn't include the id
of the metasource currently being cited, which affects the output
- orcid plugin: update api to v3
- orcid plugin: fix bug where all ids for single source were being
included. instead, find most recent doi, and fallback to other id type
if not available.
- orcid plugin: keep a few details from api for ids that aren't citable
by manubot
- allow `format_date` util func to accept numeric timestamp (returned
from orcid api)
- tweak member bio page
- various cite process tweaks
- add traceback logging of running plugins
- change variable names for clarity and consistency
- add generic "safe get" function as suggested by Faisal last pr
- use generic safe get in place all of all gets. helps fix bug due to
orcid api sometimes returning none types for certain fields, and other future bugs.
Unpins all cite process python packages from their exact versions, pins
them to **major versions**. This ensures users will be on the latest
versions of packages, without breaking changes (assuming the packages
follow semver properly), and without having to constantly update their
template version (which can be a pain).

Closes #210 
Addresses #211 

FOR THE TEMPLATE MAINTAINER(S)

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.

---------

Co-authored-by: vincerubinetti <vincerubinetti@users.noreply.github.com>
- add discussion templates. be more aggressive requiring fields.
- update to latest version of all github actions (checking for breaking
changes)
- add debug step to each workflow to allow ssh access in
- fix site.location vs page.url bug (see issue)
- add html-proofer plugin to check for broken images and links, disabled
by default because it adds a lot of time to hot-reload, but set
explicitly as false in config so users can easily flip it on
- update bundler version and re-bundle gems
- add "remove" option for cite-process that allows a user to remove a
source from a metasource. e.g., an ORCID returns a source that the user
doesn't want on their site, so in their sources.yaml they put the id and
remove: true.
- by default, ignore sources that manubot can't cite if they're from
metasources (see changelog)
- add markdownify to more component params
- fix bug in citation (and other) components where when lookup is blank,
first entry in list is always chosen
- make use of newly widely available CSS container queries
- remove compilation-time wrapping of tables because it breaks nested
tables, and is not (practically) possible to support them in the same
way. replace with run-time js plugin for wrapping.
- upgrade font awesome and improve loading mechanism
- fix header title/subtitle CSS bug reported by @Maruuka 
- add "image" param to post excerpt component, so blog posts can have
thumbnails
- fix bug that prevents manual passing of tags to tag component
- add heading 5/6 styles/support
- tweak dark mode plugin
- various style tweaks

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
- [x] I have tested changed workflows on a freshly generated and forked
repo.
- fix bug where literal yaml date object doesn't get parsed correctly
- fixes addition of site.url by gh-actions workflow

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
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 <falquaddoomi@gmail.com>
Co-authored-by: vincerubinetti <vincerubinetti@users.noreply.github.com>
Closes #272 
Closes #269 
Closes #191  (hopefully)

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate. Pending
change request:
https://greene-lab.gitbook.io/lab-website-template-docs/~/changes/a57wjuxagDtJUR241kyt/basics/components/list
- [x] I have checked the testbed as appropriate.

---

- use `name` field for all debug/logging steps in workflows
- use `jwalton/gh-find-current-pr` to get PR number to be more reliable
(in rare cases, `github.event.number` can be empty)
- fix bug in "first time setup" workflow where `description` gets
appended to `user` due to missing `\n` in printf
- rename workflows from `.yml` to `.yaml` for consistency
- remove useless "build preview" workflow run in "on schedule" †
- dont run "update citations" workflow on PR close, which should
hopefully avoid issues discussed in #191. in my testing on a fork
(vincerubinetti/lab-website-template), it does. need to use step-level
`if` skipping instead of job-level or workflow-level because of [this
issue](actions/runner#491 (comment)).
- when "on schedule" workflow opens a PR, add hint in body of the PR on
how to trigger the live preview workflow
- use the `xml_escape` liquid filter wherever a user/third-party
provided field is used in an HTML attribute to prevent special
characters breaking HTML rendering. example: `aria-label="{{
citation.title }}"` and `citation.title` is `"Lorem Ipsum" dataset`,
causing attribute to prematurely close.
- change `data_filter` to accept Ruby expressions instead of custom
syntax. use Ruby `eval` and define each field in the item as a local
variable, e.g. `{"animal": "cat"}` lets you use `filter="animal ==
'cat'"`.
- fix heading anchor styles
- add styles for `<details>` element
- fix logo shrinking/growing css bugs

† due to a [github
limitation](https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs),
it wouldn't not run anyway on the auto-created PR. the user must
close/reopen the PR, then the regular "on pr" workflow (which includes
running "build preview") will run. i've already [updated the docs to
talk about
this](https://greene-lab.gitbook.io/lab-website-template-docs/basics/citations#periodic-updates).
from now on, let's treat auto-opening PR as the only supported way.
previously i considered that the user could change `open-pr` to `false`
to have "on schedule" commit updated citations directly to `main`, but
let's nix that to maintain simplicity. it's probably better that we
force the user to review the changes before pushing them to their live
site anyway. if we did want to support that in the future, the "build
preview" run i removed would have to be changed to a "build site", since
we'd want to be re-building the `main` branch version of the site, not a
preview for a PR.

---------

Co-authored-by: Faisal Alquaddoomi <falquaddoomi@gmail.com>
Closes #288
Closes #287 
Closes #285

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.

---

- use latest major version of setup-ruby gh-action
- run "commit cache" step if citations step fails so that progress
(successful citations) will be saved
- replace xml_escape filter with appropriate escapes for each situation,
and slightly modify regex_strip filter to allow some basic punctuation
Closes #293 
Addresses #294
Closes #295 
Addresses #296

- "pi" -> "principal-investigator" to encourage more specific names
- add bluesky icon by default
- fix header/footer/section background image regressions from v1.3.0
- upgrade font awesome version
- do full audit of changes from v1.3.0 and v1.3.1, and all `_escape`
filters applied. make fixes/simplifications where applicable.

FOR THE TEMPLATE MAINTAINER(S)

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
Closes #298 
Closes #301 
Closes #302 

- adds support for multiple blog post authors
- improves citation error logging
- adds status badges to first time setup workflow to add it to user
readmes

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
Closes #305

This explanation is a bit hand-wavy, because I still can't follow the
logic exactly. I find it hard to debug the flow of things in Jekyll
because, while there's a `--trace` flag, the trace seems to be just the
under-the-hood Ruby code, and not e.g. "you used this `_include` in this
markdown file on this line, which then used this other `_include`, which
then ran this Ruby filter, etc.".

But in general: 

Certain nested content (I think within the `post-excerpt` hidden
`data-search` attribute) ended up making its way to `relative_url` in
`content.html` (which should just be a url), but only in certain rare
cases where the peculiarity of the regex matching in the `section`
component didn't prevent it.

- change regex matching of `section` params in `content.html` to
non-greedy, as they should've always been
- change string pattern of passing `section` params to `content.html`
from `param: value;` to `<param>value</param>`. this should reduce the
chances of incorrect parsing, because one of the params is a URL, which
can have `;` characters in them, which would confuse the old format.
- fix unrelated bug where home page tab title looks like `| Lab Website
Template` when it should just be `Lab Website Template` because the page
title is `""`
- strip all html from `post-excerpt` `data-search` attribute, as it
always should've been. is part of the main bug fix of this PR, but also
will reduce false-positive search matches, because without it,
`data-search` contains e.g. single `p` characters leftover from `<p>`
tags. now `data-search` should truly only be the content of the post.

While not fully understanding the full flow of the root issue here, I
think I've added enough safety mechanisms in enough spots to prevent
similar issues from occurring in the future.

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
Closes #321 
Closes #320 
Closes #322
Supersedes #323  

Co-authored by @d33bs 

FOR THE TEMPLATE MAINTAINER(S)

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
Updates the behavior of the `orcid.py` script again to address #327. See
[this comment
specifically](greenelab/lab-website-template#327 (comment))
for tests of the new behavior on various real ORCIDs.

The behavior before this PR:

- only use `work-summary` field and not the top level `external-ids`
field
- find first ID of certain relationship type
- if none found, ignore work completely
- if ID found, and ID can't be cited by Manubot, keep citation details
from ORCID

Behavior after this PR (more general/flexible):

- only use `work-summary` field and not the top level `external-ids`
field. this still appears to be the correct choice, because after
testing with various ORCIDs, the former seems to reflect the
author-selected "preferred source" whereas the latter doesn't.
- filter possible IDs by filter function (hard reject/accept)
  - is ID of certain relationship type?
  - is ID of certain type (e.g. `doi`)? (commented out by default)
  - is ID citable by Manubot?
- sort possible IDs by sort function (soft prefer/deprioritize)
  - prefer particular ID types (e.g. `doi`) before others
- pick first ID available after filtering and sorting
- if picked ID is citable with Manubot, do that, otherwise keep citation
details from ORCID

I think this code offers easier flexibility. For example, a user could
make "citable by Manubot" a soft requirement (maybe they want to always
prefer some obscure ID type when it exists, even if it means using the
citation data from ORCID instead of Manubot) very easily by moving it
from the filter function to the sort function.

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.

---------

Co-authored-by: vincerubinetti <8326331+vincerubinetti@users.noreply.github.com>
Re-closes #191, specifically [this
comment](greenelab/lab-website-template#191 (comment)).
Tested on a personal fork.

When a user has the "automatically delete branch on merge" setting
enabled, by the time the `build-preview.yaml` workflow runs on pull
request close, the branch is already gone and `actions/checkout` fails.

There are a few ways to solve this:

1. In the `actions/checkout` step, check out the `main` branch if the
event is a PR close (regardless of the "auto-delete" option), or check
out the PR branch otherwise.
2. Always try to check out the PR branch, and if it errors (user has the
"auto-delete" option on), then try to check out `main`.
3. Only run first half of workflow if PR event != close. Then, always
(on any PR activity) run the second half which gets all closed PR
numbers and deletes their associated preview folders.

1 or 2 would work going forward, but I opted for the 3rd option because
it will retroactively fix user's repos that have been affected by this
shortcoming so far, like Casey's:
<img height="200" alt="Screenshot 2025-07-29 at 5 50 36 PM"
src="https://github.com/user-attachments/assets/51649a7b-3b42-4768-a0dd-6b3d568aa841"
/>

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
Closes #340 
Supercedes #332 Thank you to @GuillaumeBroggi for the additional ORCID
plugin feature

New template version checklist:

- [x] I have updated CITATION and CHANGELOG as appropriate.
- [x] I have updated lab-website-template-docs as appropriate.
- [x] I have checked the testbed as appropriate.
@github-actions
Copy link
Contributor

github-actions bot commented Nov 18, 2025

PR Preview Action v1.4.7
🚀 Deployed preview to https://physycom.github.io/preview/pr-27/
on branch gh-pages at 2025-11-18 08:28 UTC

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request updates the Lab Website Template from version 1.3.7 to 1.3.8, incorporating minor enhancements and example content for demonstration purposes.

Key changes:

  • Updated version metadata and added DOI identifier to citation file
  • Added commented-out code in ORCID plugin for optional source filtering
  • Included example team member profiles with placeholder content

Reviewed Changes

Copilot reviewed 5 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
CITATION.cff Updated version to 1.3.8, release date to 2025-11-17, and added DOI identifier
CHANGELOG.md Documented version 1.3.8 changes including GitHub Actions workflow improvements and ORCID plugin updates
_cite/plugins/orcid.py Added commented-out code to skip sources without available IDs, as documented in changelog
_styles/background.scss Added missing newline at end of file for consistency
_members/sarah-johnson.md Added example team member profile with placeholder data
_members/john-doe.md Added example alumni profile with placeholder data
_members/jane-smith.md Added example principal investigator profile with placeholder data
_data/sources.yaml Removed extraneous blank lines for cleaner formatting
README.md Removed unnecessary indentation from markdown content
images/photo.jpg Added placeholder photo for example member profiles
images/logo.svg Added new animated SVG logo with floating bubble effects
images/fallback.svg Reformatted SVG file across multiple lines for readability

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +88 to +90
# if not id_type or not id_value:
# continue

Copy link

Copilot AI Nov 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment appears to contain commented-out code.

Suggested change
# if not id_type or not id_value:
# continue

Copilot uses AI. Check for mistakes.
@Grufoony Grufoony merged commit 2c8f7b7 into main Nov 18, 2025
4 checks passed
@Grufoony Grufoony deleted the update branch November 18, 2025 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants