Skip to content

Commit d0cc896

Browse files
committed
Deploy preview for PR 7 🛫
1 parent 5a76b07 commit d0cc896

File tree

163 files changed

+19864
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+19864
-0
lines changed

‎preview/pr-7/2023/07/20/Github-launch.html‎

Lines changed: 653 additions & 0 deletions
Large diffs are not rendered by default.

‎preview/pr-7/2024/09/06/Congrats-to-Juan.html‎

Lines changed: 651 additions & 0 deletions
Large diffs are not rendered by default.

‎preview/pr-7/2025/05/25/UBA-Engineering-Students.html‎

Lines changed: 655 additions & 0 deletions
Large diffs are not rendered by default.

‎preview/pr-7/2025/09/02/juan-first-paper.html‎

Lines changed: 650 additions & 0 deletions
Large diffs are not rendered by default.

‎preview/pr-7/404.html‎

Lines changed: 549 additions & 0 deletions
Large diffs are not rendered by default.

‎preview/pr-7/CHANGELOG.md‎

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
# Changelog
2+
3+
Reference: common-changelog.org
4+
5+
## 1.3.5 - 2025-05-12
6+
7+
###
8+
9+
- Fix workflow bug where PR previews on GitHub Actions have broken styles/links/etc.
10+
- Fix tags component relative link bug
11+
- Make Actions workflows a bit more robust
12+
13+
## 1.3.4 - 2025-02-03
14+
15+
### Changed
16+
17+
- Fix section component parsing bug.
18+
19+
## 1.3.3 - 2025-01-25
20+
21+
### Changed
22+
23+
- Citation process logging enhancements.
24+
25+
### Added
26+
27+
- Add support for multiple authors in blog posts.
28+
- Add GitHub Actions workflow status badges to readme.
29+
30+
## 1.3.2 - 2025-01-06
31+
32+
### Changed
33+
34+
- Misc enhancements and bug fixes.
35+
36+
## 1.3.1 - 2024-11-11
37+
38+
### Changed
39+
40+
- Update and improve workflows for building site and citations.
41+
- Escape user inputs better in rare edge cases.
42+
43+
## 1.3.0 - 2024-08-16
44+
45+
### Changed
46+
47+
- List component `filters` parameter changed to `filter` and now takes any Ruby expression instead of the existing custom syntax.
48+
Example: `filters="publisher: bioRxiv, date: ^2020"` becomes `filter="publisher == 'bioRxiv' and date =~ /^2020/"`.
49+
See docs for more info.
50+
- Fix rare bug where data (e.g. a paper title) containing certain characters (e.g. a double quote) can mess up HTML rendering.
51+
- Fix "first time setup" workflow bug.
52+
- Tweak GitHub Actions debugging/logging.
53+
54+
### Added
55+
56+
- Styling for `<details>` HTML element.
57+
58+
## 1.2.2 - 2024-06-05
59+
60+
### Added
61+
62+
- Add `affiliation` member portrait field.
63+
64+
### Changed
65+
66+
- Change order and type of preferred ids from ORCID API.
67+
- Expand list of supported Manubot identifiers and thus keep ORCID API details less often.
68+
- Simplify portrait component under-the-hood.
69+
- Make tag component de-duplication consistent with search plugin de-duplication.
70+
71+
## 1.2.1 - 2024-04-01
72+
73+
### Changed
74+
75+
- Minor bug fixes in cite process and sitemap generation.
76+
77+
## 1.2.0 - 2024-03-08
78+
79+
### Changed
80+
81+
- Update all GitHub Actions to fix "Node v16 deprecated" warnings.
82+
- Sources that Manubot doesn't know how to cite (e.g. wosuid:12345) are now ignored by default if they're from metasources.
83+
- Fix bug where passing tags to tags component manually doesn't work.
84+
- Fix bug in citation (and other) components when `lookup` is blank.
85+
- Fix nested tables bug.
86+
- Dark mode tweaks.
87+
- Various CSS tweaks and fixes.
88+
89+
### Added
90+
91+
- Add `image` param to support blog post thumbnails.
92+
- Add `html-proofer` plugin that checks for broken images/links/etc.
93+
- Add `remove` flag to remove a source from a metasource.
94+
95+
## 1.1.6 - 2023-10-06
96+
97+
### Changed
98+
99+
- Use latest minor versions of Python packages in auto-cite script.
100+
101+
## 1.1.5 - 2023-05-19
102+
103+
### Changed
104+
105+
- Fix ORCID plugin bug and other cite process tweaks.
106+
107+
## 1.1.4 - 2023-04-28
108+
109+
### Changed
110+
111+
- Fix ORCID plugin and other cite process bugs.
112+
113+
## 1.1.3 - 2023-04-20
114+
115+
### Changed
116+
117+
- Fix first-time-setup mv bug.
118+
- Fix citation, float, and portrait component CSS.
119+
- Filter and trim citation info fields.
120+
121+
## 1.1.2 - 2023-04-11
122+
123+
### Changed
124+
125+
- Fix first-time-setup rm bug.
126+
127+
## 1.1.1 - 2023-04-06
128+
129+
### Changed
130+
131+
- Change member profile page from col layout to float.
132+
- Fix first time setup. Preserve config formatting and comments.
133+
- Improve Docker cite process behavior.
134+
- Fix post excerpt component start/end markers and special search attr chars.
135+
- Fix misc CSS.
136+
137+
### Added
138+
139+
- Add show-title and show-subtitle site config options.
140+
- Include site subtitle in description meta tag.
141+
- Add user pull request template.
142+
- Add title and link fallbacks to citation component.
143+
144+
## 1.1.0 - 2023-03-17
145+
146+
Add alert component, Docker support, accessibility fixes.
147+
148+
### Changed
149+
150+
- Fix Lighthouse accessibility issues.
151+
- De-href components when link isn't provided (no hand cursor icon on hover or nav on click).
152+
- In search script, limit highlights by total count instead of char length.
153+
- Grid and link style tweaks.
154+
- Take ORCID icon from Font Awesome.
155+
- Misc bug fixes in tags script, float component.
156+
157+
### Added
158+
159+
- Add Docker configuration and scripts for local previewing.
160+
- Add alert component and types.
161+
- Role icon in portrait component hoisted to top left.
162+
163+
## 1.0.0 - 2023-02-28
164+
165+
First official release.
166+
167+
High-level comparison with pre-releases:
168+
169+
- Simpler configuration.
170+
- More automation, less setup.
171+
- More customization and flexibility.
172+
- Redesigned components.
173+
- New docs.
174+
- Complete rewrite.
175+
- Culmination of years of feedback.
176+
177+
### Changed
178+
179+
- Template is no longer limited to GitHub Pages white-listed Jekyll plugins. Any plugins possible.
180+
- Pull request previews happen right within GitHub instead of needing Netlify.
181+
- Better versioning. `CITATION.cff` file now source of truth for version, and tags/releases enforced.
182+
- Citation-related files in `/_data` must now be named prefixed with the cite plugin they are to be run with, e.g. `sources-2020.yaml` or `orcid-students.yaml`.
183+
- Folder renames for clarity and for better separation of template and user content: `/auto-cite` → `/_cite`, `/css` → `/_styles`, `/js` → `/_scripts`.
184+
- Rename "Tools" page to "Projects" to be more clear and general purpose.
185+
- Rename `extra-links` to `buttons` in `sources.yaml` files.
186+
- Rename `theme.scss` to `-theme.scss`.
187+
- Rename/repurpose components: link → button, two-col → cols, gallery → grid.
188+
- Combine "link" and "role" data lists into single `types.yaml` map.
189+
- Redesign components, change parameters and behavior.
190+
- Update Font Awesome icon names from v5 to v6.
191+
- Change placeholder text, images, and other images.
192+
- Use CSS variables instead of Sass variables.
193+
- Simplify caching method in cite process.
194+
- Simplify Liquid code by including custom Ruby plugins.
195+
- Simplify styles and scripts.
196+
197+
### Added
198+
199+
- New docs at greene-lab.gitbook.io/lab-website-template-docs.
200+
- Add automations for first time setup and URL change.
201+
- Write PubMed and Google Scholar automatic citation plugins.
202+
- Automatic citations through GitHub Actions should now work from (most) forks.
203+
- Add optional description and type params for citations.
204+
- Add periodic cite process run that opens a pull request.
205+
- List component filters can now accept arbitrary regex.
206+
- Add light/dark mode toggle.
207+
- Pre-install selection of useful Jekyll plugins, namely Jekyll Spaceship.
208+
- Add author portrait and updated date for blog posts.
209+
- Add richer metadata for SEO.
210+
- Google Fonts link determined automatically from theme file.
211+
212+
### Removed
213+
214+
- Remove options from `_config.yaml` to simplify configuration: `baseurl`, `auto-cite`, `logo`.
215+
- Remove `/favicons` folder, hardcode files for logo, icon, and share in `/images`.
216+
- Remove `palettes.scss` and `mixins.scss`.
217+
- Remove banner component (same thing can be achieved with full width section and figure components).
218+
- Remove role component. Combine with portrait component.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
creates link next to each heading that links to that section.
3+
*/
4+
5+
{
6+
const onLoad = () => {
7+
// for each heading
8+
const headings = document.querySelectorAll(
9+
"h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]"
10+
);
11+
for (const heading of headings) {
12+
// create anchor link
13+
const link = document.createElement("a");
14+
link.classList.add("icon", "fa-solid", "fa-link", "anchor");
15+
link.href = "#" + heading.id;
16+
link.setAttribute("aria-label", "link to this section");
17+
heading.append(link);
18+
19+
// if first heading in the section, move id to parent section
20+
if (heading.matches("section > :first-child")) {
21+
heading.parentElement.id = heading.id;
22+
heading.removeAttribute("id");
23+
}
24+
}
25+
};
26+
27+
// scroll to target of url hash
28+
const scrollToTarget = () => {
29+
const id = window.location.hash.replace("#", "");
30+
const target = document.getElementById(id);
31+
32+
if (!target) return;
33+
const offset = document.querySelector("header").clientHeight || 0;
34+
window.scrollTo({
35+
top: target.getBoundingClientRect().top + window.scrollY - offset,
36+
behavior: "smooth",
37+
});
38+
};
39+
40+
// after page loads
41+
window.addEventListener("load", onLoad);
42+
window.addEventListener("load", scrollToTarget);
43+
window.addEventListener("tagsfetched", scrollToTarget);
44+
45+
// when hash nav happens
46+
window.addEventListener("hashchange", scrollToTarget);
47+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
manages light/dark mode.
3+
*/
4+
5+
{
6+
// immediately load saved (or default) mode before page renders
7+
document.documentElement.dataset.dark =
8+
window.localStorage.getItem("dark-mode") ?? "false";
9+
10+
const onLoad = () => {
11+
// update toggle button to match loaded mode
12+
document.querySelector(".dark-toggle").checked =
13+
document.documentElement.dataset.dark === "true";
14+
};
15+
16+
// after page loads
17+
window.addEventListener("load", onLoad);
18+
19+
// when user toggles mode button
20+
window.onDarkToggleChange = (event) => {
21+
const value = event.target.checked;
22+
document.documentElement.dataset.dark = value;
23+
window.localStorage.setItem("dark-mode", value);
24+
};
25+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
fetches tags (aka "topics") from a given GitHub repo and adds them to row of
3+
tag buttons. specify repo in data-repo attribute on row.
4+
*/
5+
6+
{
7+
const onLoad = async () => {
8+
// get tag rows with specified repos
9+
const rows = document.querySelectorAll("[data-repo]");
10+
11+
// for each repo
12+
for (const row of rows) {
13+
// get props from tag row
14+
const repo = row.dataset.repo.trim();
15+
const link = row.dataset.link.trim();
16+
17+
// get tags from github
18+
if (!repo) continue;
19+
let tags = await fetchTags(repo);
20+
21+
// filter out tags already present in row
22+
let existing = [...row.querySelectorAll(".tag")].map((tag) =>
23+
window.normalizeTag(tag.innerText)
24+
);
25+
tags = tags.filter((tag) => !existing.includes(normalizeTag(tag)));
26+
27+
// add tags to row
28+
for (const tag of tags) {
29+
const a = document.createElement("a");
30+
a.classList.add("tag");
31+
a.innerHTML = tag;
32+
a.href = `${link}?search="tag: ${tag}"`;
33+
a.dataset.tooltip = `Show items with the tag "${tag}"`;
34+
row.append(a);
35+
}
36+
37+
// delete tags container if empty
38+
if (!row.innerText.trim()) row.remove();
39+
}
40+
41+
// emit "tags done" event for other scripts to listen for
42+
window.dispatchEvent(new Event("tagsfetched"));
43+
};
44+
45+
// after page loads
46+
window.addEventListener("load", onLoad);
47+
48+
// GitHub topics endpoint
49+
const api = "https://api.github.com/repos/REPO/topics";
50+
const headers = new Headers();
51+
headers.set("Accept", "application/vnd.github+json");
52+
53+
// get tags from GitHub based on repo name
54+
const fetchTags = async (repo) => {
55+
const url = api.replace("REPO", repo);
56+
try {
57+
const response = await (await fetch(url)).json();
58+
if (response.names) return response.names;
59+
else throw new Error(JSON.stringify(response));
60+
} catch (error) {
61+
console.groupCollapsed("GitHub fetch tags error");
62+
console.log(error);
63+
console.groupEnd();
64+
return [];
65+
}
66+
};
67+
}

0 commit comments

Comments
 (0)