From 19a816669ec4915ef6c96c5c6a2bf4439c3d9fac Mon Sep 17 00:00:00 2001 From: Spencer Bryngelson Date: Sat, 5 Sep 2026 23:04:39 -0500 Subject: [PATCH] Move talks, teaching and software to data files; richer publication links Publications - Every link is a BibTeX field: file (PDF), doi, arxiv, url, code, slides, video, poster, data. An arXiv id in the doi field of an @unpublished entry still works. Template-only fields are dropped from the copyable BibTeX via bibtex_skip_fields. - BIB button on every entry type (previously only five types). - Year badge is rendered from entry.year in the template instead of a regex over the citation text in JavaScript. - selected = {true} lists an entry under "Selected publications" on the home page (the block hides itself when nothing is selected). - citesty.csl no longer prints URLs inside the reference text; links are buttons. Its DOI branch had already been removed for the same reason. Data-driven pages - _data/talks.yml (title, event, year; optional location, date, type, url, slides, video) replaces the @incollection[keywords ^= invited] BibTeX hack. Invited and contributed talks render in the order listed. - _data/teaching.yml and _data/software.yml drive the Teaching and Software pages, which previously held hand-written HTML. - _data/people.yml and the About page's "Students and Mentoring" list are removed; they duplicated alumni.yml. The unused alumni photo field is dropped from the demo data. - Each data-driven page shows a short hint when its list is empty. Setup and configuration - setup.sh --clean removes the demo content (data entries, ref.bib, posts, papers, demo images, Feynman prose) leaving commented skeletons and a placeholder avatar, then runs the usual prompts. The prompts now also set description and derive scholar.last_name / first_name. - Analytics: Plausible, Umami and GoatCounter alongside GA4, each a one-line setting in _config.yml. - nav_pages entries accept an optional label so navbar text can differ from the URL. README and UPGRADING document the new fields and files. --- README.md | 34 +++++-- UPGRADING.md | 4 + _config.yml | 12 ++- _data/alumni.yml | 6 +- _data/people.yml | 31 ------ _data/software.yml | 21 +++++ _data/talks.yml | 59 ++++++++++++ _data/teaching.yml | 21 +++++ _includes/analytics.html | 12 +++ _includes/header.html | 2 +- _includes/talk.html | 14 +++ _layouts/bibtemplate.html | 57 ++++++------ _pages/404.md | 2 +- _pages/about.md | 11 --- _pages/home.md | 10 ++ _pages/software.md | 29 +++--- _pages/talks.md | 23 +++-- _pages/teaching.md | 18 ++-- _sass/components/_buttons.scss | 9 +- _sass/components/_publication.scss | 7 ++ assets/js/site.js | 16 +--- assets/ref.bib | 81 ++-------------- citesty.csl | 19 +--- images/placeholder.svg | 1 + setup.sh | 145 +++++++++++++++++++++++++---- 25 files changed, 406 insertions(+), 238 deletions(-) delete mode 100644 _data/people.yml create mode 100644 _data/software.yml create mode 100644 _data/talks.yml create mode 100644 _data/teaching.yml create mode 100644 _includes/talk.html create mode 100644 images/placeholder.svg diff --git a/README.md b/README.md index 5a1616bba..23862714b 100644 --- a/README.md +++ b/README.md @@ -256,12 +256,15 @@ __Using this template? Share your site and I'll add it here!__ - **Auto-generated from BibTeX** via Jekyll Scholar — just edit `assets/ref.bib` - **Search bar** — filter publications by title, author, or year - **Year badges** — small accent-colored pills for quick scanning -- **Pill buttons** — PDF, DOI, arXiv, BIB, Abstract +- **Pill buttons** — PDF, DOI, arXiv, Link, Code, Slides, Video, Poster, Data, BIB, Abstract, all driven by BibTeX fields +- **Selected publications** on the home page — add `selected={true}` to an entry ### For New Users -- **Interactive setup script** — run `./setup.sh` to fill in your name, title, and institution +- **Interactive setup script** — `./setup.sh` fills in your name, title, and institution; `./setup.sh --clean` also strips the demo content +- **Talks, teaching, and software as data** — edit a YAML list, not HTML - **5-step `_config.yml`** — numbered sections with inline comments guide you through setup - **Well-commented data files** — every field in `_data/*.yml` is explained with examples +- **Analytics, your choice** — Google Analytics, Plausible, Umami, or GoatCounter, each a one-line setting - **Smart link handling** — empty links in config are automatically hidden (no broken icons) ### Technical @@ -291,7 +294,8 @@ __Using this template? Share your site and I'll add it here!__ 2. **Install** [Jekyll](https://jekyllrb.com/docs/installation/) and run `bundle install` 3. **Configure** your site: ```bash - ./setup.sh # interactive setup, or + ./setup.sh --clean # remove the demo content and fill in your details, or + ./setup.sh # keep the demo content as examples, or vim _config.yml # edit Steps 1-5 directly ``` 4. **Add your publications** to `assets/ref.bib` @@ -373,11 +377,24 @@ Edit `assets/ref.bib` with your BibTeX entries. The publications page is auto-ge volume = {42}, pages = {1--10}, doi = {10.1234/example}, + arxiv = {2401.01234}, + code = {https://github.com/jsmith/novel-approach}, file = {smith2024.pdf}, % place PDF in papers/ + selected = {true}, % also show on the home page abstract = {We present...} } ``` +Every link is a BibTeX field; use the ones you have: + +| Field | Button | +|-------|--------| +| `file` | PDF (file in `papers/`) | +| `doi`, `arxiv`, `url` | DOI, arXiv, Link | +| `code`, `slides`, `video`, `poster`, `data` | Code, Slides, Video, Poster, Data | +| `abstract` | Abstract (expandable) | +| `selected = {true}` | Listed under "Selected publications" on the home page | + Your name is bolded automatically in the publication list. Set it in `_config.yml` exactly as it appears in the rendered list (`Last, F. M.`), longest form first: ```yaml @@ -417,8 +434,8 @@ Each page in `_pages/` is a Markdown file. Edit the content directly: - `home.md` — your welcome text and bio - `research.md` — describe your research areas -- `software.md` — list your software projects -- `teaching.md` — list your courses + +Talks, teaching, and software are lists in `_data/` (see below); their pages need no editing. To remove a page from the navbar, comment it out in `_config.yml`: @@ -426,6 +443,7 @@ To remove a page from the navbar, comment it out in `_config.yml`: nav_pages: - name: about - name: publications + label: Papers # optional: navbar text (URL stays /publications) # - name: talks # hidden from navbar - name: research ``` @@ -461,7 +479,7 @@ The config file is organized into 5 numbered steps: |------|---------|-----------------| | 1 | **Your Identity** | Name, title, institution, email, photo | | 2 | **Your Links** | Google Scholar, GitHub, ORCID, Twitter, LinkedIn, CV | -| 3 | **Site Settings** | Accent color, dark mode toggle, analytics | +| 3 | **Site Settings** | Accent color, dark mode, math, analytics (GA4, Plausible, Umami, GoatCounter) | | 4 | **Your Pages** | Comment out any pages you don't need | | 5 | **Publications** | Your name (for bolding) and Jekyll Scholar options | @@ -475,7 +493,9 @@ The config file is organized into 5 numbered steps: | `_data/awards.yml` | Awards and honors | | `_data/grants.yml` | Grants and funding | | `_data/funders.yml` | Funder logos | -| `_data/people.yml` | Students and mentees | +| `_data/talks.yml` | Invited and contributed talks | +| `_data/teaching.yml` | Courses | +| `_data/software.yml` | Software projects | | `_data/pi.yml` | Optional: detailed education for About page | Each file has inline comments explaining every field. Entries marked `# EXAMPLE` should be replaced or deleted. diff --git a/UPGRADING.md b/UPGRADING.md index d988231b4..703814256 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -91,4 +91,8 @@ If you copied the template before September 2026, note these changes: - MathJax loads only on pages with `math: true` in their front matter (or `math: true` in `_config.yml`). - Bootstrap's JavaScript is no longer shipped; the mobile menu is handled in `assets/js/site.js`. Bootstrap's `buttons`, `card`, `dropdown` and `close` SCSS modules are no longer imported. - Page titles are `# Title` (h1) instead of `## Title`; section headings remain `##`. +- Talks moved from `@incollection` BibTeX entries to `_data/talks.yml`; teaching and software pages are generated from `_data/teaching.yml` and `_data/software.yml`. +- `_data/people.yml` and the About page's "Students and Mentoring" list were removed (they duplicated `alumni.yml`). +- Publication links come from BibTeX fields (`arxiv`, `url`, `code`, `slides`, `video`, `poster`, `data`); an arXiv id in the `doi` field of an `@unpublished` entry still works. The year badge is taken from the `year` field. `selected = {true}` lists an entry on the home page. +- URLs are no longer printed inside the reference text (`citesty.csl`); they appear as buttons. - `favicon.ico` was removed from the repository; the deploy workflow now rasterizes it (and `apple-touch-icon.png`) from the generated `favicon.svg`. diff --git a/_config.yml b/_config.yml index 566d4294d..d63842fda 100644 --- a/_config.yml +++ b/_config.yml @@ -33,13 +33,19 @@ description: "Academic webpage of Dr. Richard Feynman" url: "" baseurl: "" -# Google Analytics -- paste your GA4 measurement ID, or leave blank +# Analytics -- fill in whichever service you use; leave the rest blank. analytics: - google_id: "" + google_id: "" # Google Analytics 4 measurement ID, e.g. G-XXXXXXXXXX + plausible_domain: "" # Plausible: your site's domain, e.g. jsmith.github.io + umami_website_id: "" # Umami: website ID (and umami_src if self-hosted) + umami_src: "" # default https://cloud.umami.is/script.js + goatcounter: "" # GoatCounter: your code, e.g. jsmith (for jsmith.goatcounter.com) # ============================================================ # STEP 4: Choose Your Pages (comment out any you don't need) # ============================================================ +# Each name is a page in _pages/. Add `label: Papers` to change the +# navbar text without changing the URL. nav_pages: - name: about - name: publications @@ -70,6 +76,8 @@ scholar: query: "@*" bibliography_list_attributes: reversed: "reversed" + # Template-only fields, kept out of the copyable BibTeX + bibtex_skip_fields: [abstract, month_numeric, file, selected, code, slides, video, poster, data] # ============================================================ # Advanced Settings (you probably don't need to change these) diff --git a/_data/alumni.yml b/_data/alumni.yml index a533f2b9e..321254c8d 100644 --- a/_data/alumni.yml +++ b/_data/alumni.yml @@ -1,18 +1,14 @@ -# Former lab members. +# Former lab members, shown in a table on the Team page. # Each entry needs: name, duration, info -# Optional: photo, email - name: Albert Hibbs - photo: team/albert-hibbs.svg duration: 1951-55 info: Now at Jet Propulsion Laboratory - name: William Frazer - photo: team/william-frazer.svg duration: 1954-58 info: Now Professor at UC San Diego - name: Robert Hellwarth - photo: team/robert-hellwarth.svg duration: 1952-56 info: Now Professor at USC diff --git a/_data/people.yml b/_data/people.yml deleted file mode 100644 index c4e639308..000000000 --- a/_data/people.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Students and mentees, shown on the About page. -# Each entry needs: name, location, degree, year -- name: Albert Hibbs - location: Caltech - degree: Ph.D. - year: 1955 - -- name: George Zweig - location: Caltech - degree: Ph.D. - year: 1964 - -- name: Giovanni Rossi Lomanitz - location: Cornell - degree: Ph.D. - year: 1951 - -- name: Thomas Curtright - location: Caltech - degree: Ph.D. - year: 1977 - -- name: William Frazer - location: Caltech - degree: Ph.D. - year: 1958 - -- name: Robert Hellwarth - location: Caltech - degree: Ph.D. - year: 1956 diff --git a/_data/software.yml b/_data/software.yml new file mode 100644 index 000000000..ea8891da1 --- /dev/null +++ b/_data/software.yml @@ -0,0 +1,21 @@ +# Software projects, shown on the Software page in the order listed. +# Each entry needs: name, description +# Optional: authors, website, repo, docs, paper + +- name: Path Integral Monte Carlo + authors: R. P. Feynman, A. Hibbs + website: https://example.com + repo: https://github.com + description: >- + A Monte Carlo simulation code for computing quantum mechanical path integrals + in many-body systems. Used to study the lambda transition in liquid helium + and other quantum statistical mechanics problems. + +- name: QED Diagram Calculator + authors: R. P. Feynman + website: https://example.com + docs: https://example.com/docs + description: >- + A tool for systematically enumerating and evaluating Feynman diagrams in + quantum electrodynamics calculations, automating the computation of + scattering amplitudes to arbitrary order in perturbation theory. diff --git a/_data/talks.yml b/_data/talks.yml new file mode 100644 index 000000000..28faf68e5 --- /dev/null +++ b/_data/talks.yml @@ -0,0 +1,59 @@ +# Talks, shown on the Talks page in the order listed (newest first is conventional). +# Each entry needs: title, event, year +# Optional: location, date (free text, e.g. "11 December"), type (invited or contributed; +# anything other than invited is listed as contributed), url, slides, video + +- title: Personal observations on the reliability of the Shuttle + event: Rogers Commission + location: Washington, D.C. + year: 1986 + type: invited + +- title: Simulating physics with computers + event: MIT Conference on Physics and Computation + year: 1981 + type: invited + slides: https://example.com/slides + +- title: Difficulties in applying the variational principle to quantum field theories + event: Workshop on Variational Calculations in Quantum Field Theory + location: Wangerooge + year: 1987 + +- title: Los Alamos from below + event: APS Annual Meeting + location: Santa Barbara + year: 1975 + video: https://example.com/video + +- title: The parton model + event: Third International Conference on High Energy Collisions + location: Stony Brook + year: 1970 + +- title: The development of the space-time view of quantum electrodynamics + event: Nobel Lecture + location: Stockholm + year: 1965 + date: 11 December + type: invited + url: https://www.nobelprize.org/prizes/physics/1965/feynman/lecture/ + +- title: The relation of mathematics to physics + event: Cornell Messenger Lectures + year: 1964 + +- title: There's plenty of room at the bottom + event: Annual Meeting of the American Physical Society + location: Caltech + year: 1959 + type: invited + +- title: The universal Fermi interaction + event: Rochester Conference on High Energy Physics + year: 1957 + +- title: Atomic theory of liquid helium + event: International Conference on Theoretical Physics + location: Tokyo + year: 1953 diff --git a/_data/teaching.yml b/_data/teaching.yml new file mode 100644 index 000000000..0e6d59466 --- /dev/null +++ b/_data/teaching.yml @@ -0,0 +1,21 @@ +# Courses, shown on the Teaching page in the order listed. +# Each entry needs: course, title +# Optional: term, role, url, description + +- course: Physics 1, 2, 3 + title: The Feynman Lectures on Physics + term: 1961-63 + url: https://www.feynmanlectures.caltech.edu/ + +- course: Physics 219 + title: Quantum Computing + term: 1986 + +- course: Graduate Seminar + title: Quantum Electrodynamics + term: 1953-88 + +- course: Physics X + title: Informal undergraduate Q&A sessions + term: 1961-78 + description: Weekly sessions where undergraduates could ask about anything in physics. diff --git a/_includes/analytics.html b/_includes/analytics.html index b80879198..d4e0ece8e 100644 --- a/_includes/analytics.html +++ b/_includes/analytics.html @@ -8,3 +8,15 @@ gtag('config', '{{ site.analytics.google_id }}'); {% endif %} +{% if site.analytics.plausible_domain and site.analytics.plausible_domain != "" %} + + +{% endif %} +{% if site.analytics.umami_website_id and site.analytics.umami_website_id != "" %} + + +{% endif %} +{% if site.analytics.goatcounter and site.analytics.goatcounter != "" %} + + +{% endif %} diff --git a/_includes/header.html b/_includes/header.html index 5a0b4b6bf..d0fcabf33 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -15,7 +15,7 @@ {% for nav in site.nav_pages %} {% endfor %} diff --git a/_includes/talk.html b/_includes/talk.html new file mode 100644 index 000000000..6e5dd3648 --- /dev/null +++ b/_includes/talk.html @@ -0,0 +1,14 @@ +{% assign talk = include.talk %} +
+ {% if talk.year %}{{ talk.year }}{% endif %} + {% capture line %}{{ talk.title }}{% if talk.event %}. {{ talk.event }}{% endif %}{% if talk.location %}, {{ talk.location }}{% endif %}{% if talk.date %}, {{ talk.date }}{% endif %}{% endcapture %} + {% assign last_char = line | slice: -1 %} +
{{ line }}{% unless last_char == "." %}.{% endunless %}
+ {% if talk.url or talk.slides or talk.video %} +
+ {% if talk.url %}Link{% endif %} + {% if talk.slides %}Slides{% endif %} + {% if talk.video %}Video{% endif %} +
+ {% endif %} +
diff --git a/_layouts/bibtemplate.html b/_layouts/bibtemplate.html index 13c5c37f8..9e261d3fa 100644 --- a/_layouts/bibtemplate.html +++ b/_layouts/bibtemplate.html @@ -20,39 +20,40 @@ {% endfor %} {% endif %} +{% comment %} + Links come from BibTeX fields: + file PDF in papers/ arxiv arXiv identifier + doi DOI url any web page + code, slides, video, poster, data URLs + For backwards compatibility an arXiv id in the doi field of an + @unpublished entry is still treated as an arXiv link. +{% endcomment %} +{% assign has_pdf = false %} +{% if entry.file %} + {% assign pdf_path = "/papers/" | append: entry.file %} + {% for file in site.static_files %}{% if file.path contains pdf_path %}{% assign has_pdf = true %}{% endif %}{% endfor %} +{% endif %} +{% assign arxiv_id = entry.arxiv %} +{% if arxiv_id == nil or arxiv_id == "" %} + {% if entry.type == 'unpublished' and entry.doi %}{% assign arxiv_id = entry.doi %}{% endif %} +{% endif %} +
+ {% if entry.year %}{{ entry.year }}{% endif %}
{{ ref }}
- {% assign bibtest = false %} - {% if entry.file %} - {% assign bibfile = "/papers/" | append: entry.file %} - {% for file in site.static_files %} - {% if file.path contains bibfile %} - {% assign bibtest = true %} - {% endif %} - {% endfor %} - {% endif %} -
- {% if bibtest %} - PDF - {% endif %} - - {% if entry.doi %} - {% if entry.type == 'unpublished' %} - arXiv - {% else %} - DOI - {% endif %} - {% endif %} - - {% if entry.type == 'unpublished' or entry.type == 'article' or entry.type == 'thesis' or entry.type == 'inproceedings' or entry.type == 'report' %} + {% if has_pdf %}PDF{% endif %} + {% if arxiv_id and arxiv_id != "" %}arXiv{% endif %} + {% if entry.doi and entry.doi != arxiv_id %}DOI{% endif %} + {% if entry.url %}Link{% endif %} + {% if entry.code %}Code{% endif %} + {% if entry.slides %}Slides{% endif %} + {% if entry.video %}Video{% endif %} + {% if entry.poster %}Poster{% endif %} + {% if entry.data %}Data{% endif %} - {% endif %} - - {% if entry.abstract %} - - {% endif %} + {% if entry.abstract %}{% endif %}
diff --git a/_pages/404.md b/_pages/404.md index a653d97ae..8f80e7f4b 100644 --- a/_pages/404.md +++ b/_pages/404.md @@ -15,7 +15,7 @@ permalink: /404.html

Try these pages

{% for nav in site.nav_pages %} -{{ nav.name | capitalize }} +{% if nav.label %}{{ nav.label }}{% else %}{{ nav.name | capitalize }}{% endif %} {% endfor %}
diff --git a/_pages/about.md b/_pages/about.md index 93fac77da..2caa1fc9e 100644 --- a/_pages/about.md +++ b/_pages/about.md @@ -52,17 +52,6 @@ permalink: /about/
{% endif %} -{% if site.data.people %} -
-

Students and Mentoring

- -
-{% endif %} - {% if site.data.funders %}

Sponsors

diff --git a/_pages/home.md b/_pages/home.md index 91f08ac39..60b456ee5 100644 --- a/_pages/home.md +++ b/_pages/home.md @@ -30,6 +30,16 @@ Research in theoretical physics helps us to make predictions about how the unive
+{% capture selected %}{% bibliography --query @*[selected=true] %}{% endcapture %} +{% if selected contains "pub-entry" %} +## Selected publications + +
+{{ selected }} +

All publications →

+
+{% endif %} + ## About me I am a physicist working in the field of quantum mechanics and quantum electrodynamics. diff --git a/_pages/software.md b/_pages/software.md index a9ca27ed0..7f2de71a6 100644 --- a/_pages/software.md +++ b/_pages/software.md @@ -6,21 +6,22 @@ permalink: /software/ # Software -
-

Path Integral Monte Carlo

+{% for project in site.data.software %} +
+

{{ project.name }}

+{% if project.website or project.repo or project.docs or project.paper %}
-Website -Git +{% if project.website %}Website{% endif %} +{% if project.repo %}Code{% endif %} +{% if project.docs %}Docs{% endif %} +{% if project.paper %}Paper{% endif %}
-

Authors: R. P. Feynman, A. Hibbs

-

A Monte Carlo simulation code for computing quantum mechanical path integrals in many-body systems. Used to study the lambda transition in liquid helium and other quantum statistical mechanics problems.

+{% endif %} +{% if project.authors %}

Authors: {{ project.authors }}

{% endif %} +

{{ project.description }}

+{% endfor %} -
-

QED Diagram Calculator

- -

Authors: R. P. Feynman

-

A tool for systematically enumerating and evaluating Feynman diagrams in quantum electrodynamics calculations, automating the computation of scattering amplitudes to arbitrary order in perturbation theory.

-
+{% unless site.data.software.size > 0 %} +

No software listed yet. Add entries to _data/software.yml.

+{% endunless %} diff --git a/_pages/talks.md b/_pages/talks.md index 04aaa18dd..73d956cfb 100644 --- a/_pages/talks.md +++ b/_pages/talks.md @@ -6,12 +6,23 @@ permalink: /talks/ # Talks -
-

Invited Talks

- -{% bibliography --query @incollection[keywords ^= invited] %} +{% assign invited = site.data.talks | where: "type", "invited" %} +{% assign contributed = site.data.talks | where_exp: "t", "t.type != 'invited'" %} -

Regular Talks

+{% if invited.size > 0 %} +
+

Invited Talks

+{% for talk in invited %}{% include talk.html talk=talk %}{% endfor %} +
+{% endif %} -{% bibliography --query @incollection[keywords != invited] %} +{% if contributed.size > 0 %} +
+

Contributed Talks

+{% for talk in contributed %}{% include talk.html talk=talk %}{% endfor %}
+{% endif %} + +{% unless site.data.talks.size > 0 %} +

No talks listed yet. Add entries to _data/talks.yml.

+{% endunless %} diff --git a/_pages/teaching.md b/_pages/teaching.md index 0ce4e5729..81b1b290c 100644 --- a/_pages/teaching.md +++ b/_pages/teaching.md @@ -6,11 +6,17 @@ permalink: /teaching/ # Teaching -
-
    -
  • Physics 1, 2, 3: The Feynman Lectures on Physics (1961–63) Textbook here!
  • -
  • Physics 219: Quantum Computing (1986)
  • -
  • Graduate QED Seminar (1953–88)
  • -
  • Physics X: Informal undergraduate Q&A sessions (1961–78)
  • +{% if site.data.teaching.size > 0 %} +
    +
      +{% for course in site.data.teaching %} +
    • +{{ course.course }}{% if course.title %}: {{ course.title }}{% endif %}{% if course.term %} ({{ course.term }}){% endif %}{% if course.role %}, {{ course.role }}{% endif %}{% if course.url %} · Link{% endif %} +{% if course.description %}
      {{ course.description }}{% endif %} +
    • +{% endfor %}
    +{% else %} +

    No courses listed yet. Add entries to _data/teaching.yml.

    +{% endif %} diff --git a/_sass/components/_buttons.scss b/_sass/components/_buttons.scss index 91d14bc00..8d154c09e 100644 --- a/_sass/components/_buttons.scss +++ b/_sass/components/_buttons.scss @@ -34,8 +34,15 @@ &:hover { background-color: #8c1515; color: #fff; } } + // Outlined: BibTeX/abstract toggles and secondary links &.btn-bib, - &.btn-abstract { + &.btn-abstract, + &.btn-link, + &.btn-code, + &.btn-slides, + &.btn-video, + &.btn-poster, + &.btn-data { background-color: transparent; color: var(--text-secondary); border-color: var(--border-color); diff --git a/_sass/components/_publication.scss b/_sass/components/_publication.scss index a90dfaf57..c2791fab2 100644 --- a/_sass/components/_publication.scss +++ b/_sass/components/_publication.scss @@ -52,6 +52,13 @@ margin-top: var(--space-1); } +// Selected publications on the home page: no list numbering +.selected-pubs ol.bibliography { + list-style: none; + padding-left: 0; + margin-bottom: 0; +} + // Collapsible bibtex/abstract .pub-collapse { max-height: 0; diff --git a/assets/js/site.js b/assets/js/site.js index 880a7acc1..2fd4e5747 100644 --- a/assets/js/site.js +++ b/assets/js/site.js @@ -1,6 +1,6 @@ // ============================================================= // site.js — Mobile nav, dark mode, publication filter, toggles, -// scroll effects, copy bibtex, back-to-top, year badges +// scroll effects, copy bibtex, back-to-top // ============================================================= (function () { @@ -124,20 +124,6 @@ wrapper.appendChild(btn); }); - // ----- Publication Year Badges ----- - - document.querySelectorAll('.pub-entry').forEach(function (entry) { - var text = entry.textContent; - // Match a 4-digit year in parentheses, common in citation format - var match = text.match(/\((\d{4})\)/); - if (match) { - var badge = document.createElement('span'); - badge.className = 'year-badge'; - badge.textContent = match[1]; - entry.insertBefore(badge, entry.firstChild); - } - }); - // ----- Back to Top Button ----- var topBtn = document.createElement('button'); diff --git a/assets/ref.bib b/assets/ref.bib index b35cd4569..2583bb811 100644 --- a/assets/ref.bib +++ b/assets/ref.bib @@ -2,7 +2,7 @@ @unpublished{feynman06 Author = {R. P. Feynman and J. M. Cline}, Title = {Feynman lectures on the strong interactions}, Note = {arXiv:2006.08594}, - doi = {2006.08594}, + arxiv = {2006.08594}, file = {feynman06.pdf}, abstract = {These twenty-two lectures, with exercises, comprise the extent of what was meant to be a full-year graduate-level course on the strong interactions and QCD, given at Caltech in 1987-88. The course was cut short by the illness that led to Feynman's death. Several of the lectures were finalized in collaboration with Feynman for an anticipated monograph based on the course. The others, while retaining Feynman's idiosyncrasies, are revised similarly to those he was able to check.}, } @@ -33,6 +33,7 @@ @article{feynman1949space } @article{feynman1949spacetime, + selected={true}, title={Space-time approach to quantum electrodynamics}, author={R. P. Feynman}, journal={Physical Review}, @@ -116,6 +117,7 @@ @article{feynman1963theory } @article{feynman1969partons, + selected={true}, title={Very high-energy collisions of hadrons}, author={R. P. Feynman}, journal={Physical Review Letters}, @@ -128,6 +130,7 @@ @article{feynman1969partons } @article{feynman1982simulating, + selected={true}, title={Simulating physics with computers}, author={R. P. Feynman}, journal={International Journal of Theoretical Physics}, @@ -136,6 +139,8 @@ @article{feynman1982simulating pages={467--488}, year={1982}, doi={10.1007/BF02650179}, + code={https://example.com/code}, + slides={https://example.com/slides}, abstract={A digital computer is generally believed to be an efficient universal computing device; that is, it is believed to be able to simulate any physical computing device with an increase in computation time by at most a polynomial factor. This may not be true when quantum mechanics is taken into consideration.}, } @@ -157,77 +162,3 @@ @inproceedings{feynman1985quantum year={1985}, abstract={The theory of quantum mechanical computers is discussed, examining how the uncertainty principle limits computers and examining the simplest quantum mechanical computing device.}, } - -@incollection{feynman1987qcd, - author = {R. P. Feynman}, - title = {Difficulties in applying the variational principle to quantum field theories}, - note = {Workshop on Variational Calculations in Quantum Field Theory, Wangerooge}, - year = {1987}, -} - -@incollection{feynman1975los, - author = {R. P. Feynman}, - title = {Los Alamos from below}, - note = {APS Annual Meeting, Santa Barbara}, - year = {1975}, -} - -@incollection{feynman1970partons, - author = {R. P. Feynman}, - title = {The parton model}, - note = {Third International Conference on High Energy Collisions, Stony Brook}, - year = {1970}, -} - -@incollection{feynman1961lectures, - author = {R. P. Feynman}, - title = {The relation of mathematics to physics}, - note = {Cornell Messenger Lectures}, - year = {1964}, -} - -@incollection{feynman1957weak, - author = {R. P. Feynman}, - title = {The universal Fermi interaction}, - note = {Rochester Conference on High Energy Physics}, - year = {1957}, -} - -@incollection{feynman1953helium, - author = {R. P. Feynman}, - title = {Atomic theory of liquid helium}, - note = {International Conference on Theoretical Physics, Tokyo}, - year = {1953}, -} - -@incollection{feynman1965nobel, - author = {R. P. Feynman}, - title = {The development of the space-time view of quantum electrodynamics}, - note = {Nobel Lecture, Stockholm}, - year = {1965}, - keywords = "invited", -} - -@incollection{feynman1959plenty, - author = {R. P. Feynman}, - title = {There's plenty of room at the bottom}, - note = {Annual Meeting of the American Physical Society, Caltech}, - year = {1959}, - keywords = "invited", -} - -@incollection{feynman1981computing, - author = {R. P. Feynman}, - title = {Simulating physics with computers}, - note = {MIT Conference on Physics and Computation}, - year = {1981}, - keywords = "invited", -} - -@incollection{feynman1986challenger, - author = {R. P. Feynman}, - title = {Personal observations on the reliability of the Shuttle}, - note = {Rogers Commission, Washington, D.C.}, - year = {1986}, - keywords = "invited", -} diff --git a/citesty.csl b/citesty.csl index 4431e3698..2d75e82d2 100644 --- a/citesty.csl +++ b/citesty.csl @@ -1576,23 +1576,8 @@ - - - - - - - - - - - - - - - - - + + diff --git a/images/placeholder.svg b/images/placeholder.svg new file mode 100644 index 000000000..00dbb0627 --- /dev/null +++ b/images/placeholder.svg @@ -0,0 +1 @@ + diff --git a/setup.sh b/setup.sh index ddc48b174..1a71b423f 100755 --- a/setup.sh +++ b/setup.sh @@ -1,38 +1,145 @@ #!/usr/bin/env bash -set -e - # ============================================================= # Academic Website Template — Quick Setup +# +# ./setup.sh fill in your name, title, institution and email +# ./setup.sh --clean also remove the Feynman demo content first # ============================================================= +set -euo pipefail +cd "$(dirname "$0")" -echo "" -echo "=============================================" -echo " Academic Website Template — Quick Setup" -echo "=============================================" -echo "" +CLEAN=false +for arg in "$@"; do + case "$arg" in + --clean) CLEAN=true ;; + -h|--help) sed -n '2,7p' "$0" | sed 's/^# \{0,1\}//'; exit 0 ;; + *) echo "Unknown option: $arg"; exit 1 ;; + esac +done # Check for old-style config (migration detection) if grep -q "^affiliation:" _config.yml 2>/dev/null; then echo "It looks like you have an old-style _config.yml." echo "See UPGRADING.md for migration instructions." - echo "" exit 1 fi -# Gather info +# ------------------------------------------------------------- +# Remove the demo content, leaving commented skeleton files +# ------------------------------------------------------------- +clean_demo() { + echo "This removes the demo content (Feynman data, posts, papers, demo images)." + read -rp "Continue? [y/N] " yn + case "$yn" in y|Y|yes|YES) ;; *) echo "Aborted."; exit 1 ;; esac + + # Data files: keep the field documentation, drop the entries + for f in _data/*.yml; do + { echo "# See README.md (Data Files) for the fields used in this file."; grep '^#' "$f"; } > "$f.tmp" + mv "$f.tmp" "$f" + done + rm -f _data/great_mathematicians_and_physicists.csv + + # Publications + printf '@comment{Add your BibTeX entries here. See README.md for the supported fields.}\n' > assets/ref.bib + rm -f papers/*.pdf; touch papers/.gitkeep + + # Blog posts and demo images + rm -f _posts/*.md; touch _posts/.gitkeep + rm -f images/team/*.svg images/research/*.svg images/banner.webp images/headshot.jpg images/rock.jpg + + # Pages with demo prose + cat > _pages/home.md <<'PAGE' +--- +title: "Home" +layout: homelay +permalink: / +--- + +

    {{ site.name }}

    +

    {{ site.title }}, {{ site.institution }}

    + +Introduce your research in a few sentences. This first paragraph is set slightly larger than the rest. + +{% capture selected %}{% bibliography --query @*[selected=true] %}{% endcapture %} +{% if selected contains "pub-entry" %} +## Selected publications + +
    +{{ selected }} +

    All publications →

    +
    +{% endif %} + +## About me + +Your biography goes here. The README shows how to add research-area chips, callout boxes, and a banner image. +PAGE + + cat > _pages/research.md <<'PAGE' +--- +title: "Research" +layout: page +permalink: /research/ +--- + +# Research + +Describe your research areas here. Each card below is a research area; copy the block to add more. + +
    + +
    + +
    +

    Research area

    +

    One or two sentences about this line of work.

    +
    +
    + +
    +PAGE + + # Team page: drop the demo call-outs + sed -i.bak -e '/^\*\*We are looking for new team members!\*\*$/d' \ + -e '/^## Administrative Support$/,$d' _pages/team.md + rm -f _pages/team.md.bak + + # Config: placeholder photo, no demo links + sed -i.bak -e 's/^photo: .*/photo: placeholder.svg # place your photo in images\/ and update this/' \ + -e 's|^ google_scholar: .*| google_scholar: ""|' \ + -e 's|^ github: .*| github: ""|' \ + -e 's|^ researchgate: .*| researchgate: ""|' _config.yml + rm -f _config.yml.bak + echo "Demo content removed." + echo "" +} + +echo "" +echo "=============================================" +echo " Academic Website Template — Quick Setup" +echo "=============================================" +echo "" + +if $CLEAN; then clean_demo; fi + read -rp "Your full name: " NAME read -rp "Your title (e.g., Professor of Physics): " TITLE read -rp "Your institution: " INSTITUTION read -rp "Your email: " EMAIL +# Derive the name forms used to bold you in the publication list +LAST="${NAME##* }" +INITIAL="${NAME:0:1}." + echo "" echo "Updating _config.yml..." - -# Use sed to replace placeholder values -sed -i.bak "s/^name: .*/name: \"$NAME\"/" _config.yml -sed -i.bak "s/^title: .*/title: \"$TITLE\"/" _config.yml -sed -i.bak "s/^institution: .*/institution: \"$INSTITUTION\"/" _config.yml -sed -i.bak "s/^email: .*/email: $EMAIL/" _config.yml +sed -i.bak -e "s/^name: .*/name: \"$NAME\"/" \ + -e "s/^title: .*/title: \"$TITLE\"/" \ + -e "s/^institution: .*/institution: \"$INSTITUTION\"/" \ + -e "s/^email: .*/email: $EMAIL/" \ + -e "s/^description: .*/description: \"Academic webpage of $NAME\"/" \ + -e "s/^ last_name: .*/ last_name: $LAST/" \ + -e "s/^ first_name: .*/ first_name: [\"$INITIAL\"]/" _config.yml rm -f _config.yml.bak echo "Done!" @@ -46,10 +153,12 @@ echo " (update 'photo' in _config.yml to match)" echo "" echo " 2. Add your links in _config.yml (Step 2)" echo "" -echo " 3. Edit your publications in assets/ref.bib" +echo " 3. Add your publications to assets/ref.bib" +echo " (check scholar.first_name in _config.yml matches how" +echo " your initials appear in the rendered list, e.g. \"J. A.\")" echo "" -echo " 4. Customize data files in _data/" -echo " (team_members.yml, news.yml, etc.)" +echo " 4. Fill in the data files in _data/" +echo " (team_members.yml, news.yml, talks.yml, ...)" echo "" echo " 5. Preview your site:" echo " bundle exec jekyll serve"