Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions _includes/winter-school-icon.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{%- assign icon_class = '' -%}
{%- case include.name -%}
{%- when 'dates' -%}{%- assign icon_class = 'fa-calendar-alt' -%}
{%- when 'location' -%}{%- assign icon_class = 'fa-map-marker-alt' -%}
{%- when 'registration' -%}{%- assign icon_class = 'fa-users' -%}
{%- when 'travel-support' -%}{%- assign icon_class = 'fa-plane' -%}
{%- when 'hotel' -%}{%- assign icon_class = 'fa-bed' -%}
{%- when 'agenda' -%}{%- assign icon_class = 'fa-file-alt' -%}
{%- when 'zoom' -%}{%- assign icon_class = 'fa-video' -%}
{%- when 'transportation' -%}{%- assign icon_class = 'fa-bus' -%}
{%- when 'python-resources' -%}{%- assign icon_class = 'fa-book-open' -%}
{%- when 'winter-school-materials' -%}{%- assign icon_class = 'fa-folder-open' -%}
{%- when 'winter-school-code-of-conduct' -%}{%- assign icon_class = 'fa-shield-alt' -%}
{%- endcase -%}
{%- if icon_class != empty -%}
<i class="ws-icon ws-icon-fa fas {{ icon_class }}" aria-hidden="true"></i>
{%- endif -%}
125 changes: 125 additions & 0 deletions _layouts/winter-school.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ page.summary | escape }}">
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#142431" media="(prefers-color-scheme: dark)">
<title>{{ page.title | escape }} | PyHC</title>
<link rel="icon" href="{{ '/img/favicon.png' | relative_url }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Orbitron:wght@700&display=swap">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
<link rel="stylesheet" href="{{ '/css/winter-school.css' | relative_url }}">
{% seo %}
</head>
<body class="winter-school">
<a class="skip-link" href="#main">Skip to content</a>
<header class="site-header">
<div class="site-header-inner">
<a class="brand" href="{{ '/' | relative_url }}" aria-label="PyHC home">
<img src="{{ '/img/PyHC header logo 500x500.png' | relative_url }}" width="52" height="52" alt="">
<span>PyHC<small>Python in Heliophysics Community</small></span>
</a>
<nav class="site-nav" aria-label="Main navigation">
<a href="https://heliopython.org/gallery/generated/gallery/index.html">Examples</a>
<a href="{{ '/blog' | relative_url }}">Blog</a>
{% assign navigation_pages = site.pages | sort: 'order' %}
{% for p in navigation_pages %}{% unless p.exclude %}{% if p.title and p.permalink %}
<a href="{{ p.permalink | relative_url }}">{{ p.title }}</a>
{% endif %}{% endunless %}{% endfor %}
</nav>
</div>
</header>
<main id="main" class="wrap">
<div class="event-topline">
<div><a href="{{ '/meetings/summer_schools' | relative_url }}">PyHC schools</a> &nbsp; / &nbsp; Winter 2027</div>
<span class="registration-status"><i class="status-dot" aria-hidden="true"></i> <span class="registration-status-label">Registration is open</span></span>
</div>
{% comment %}
Wrap the rendered Markdown sections for presentation and add decorative icons.
Remove only the old spacing-only paragraphs; the Markdown owns the content.
{% endcomment %}
{% assign school_sections = content | replace: '<p><br /></p>', '' | split: '<h3' %}
{% assign banner = school_sections.first | split: '</p>' | first | append: '</p>' %}
<div class="hero">{{ banner }}</div>
<div class="event-bar" aria-label="Winter School at a glance">
<div class="event-fact">
{% include winter-school-icon.html name='dates' %}
<div><small>When</small><strong>January 5–8, 2027</strong><span>Tuesday through Friday</span></div>
</div>
<div class="event-fact">
{% include winter-school-icon.html name='location' %}
<div><small>Where</small><strong>University of Arizona</strong><span>Tucson, AZ · and online</span></div>
</div>
<div class="event-fact">
{% include winter-school-icon.html name='registration' %}
<div><small>Registration</small><strong>Free for everyone</strong><span>In person &amp; virtual</span></div>
</div>
<div class="register-cta">
<a class="button register-button" href="https://forms.gle/co64H4iEN4KFazQt9">Register now <span class="external-arrow" aria-hidden="true"></span></a>
<small>Register by December 18, 2026</small>
</div>
</div>
<script>
// Registration closes at 11:59 PM MT (MST, UTC-7) on December 18, 2026.
if (Date.now() > Date.parse('2026-12-18T23:59:59-07:00')) {
document.querySelector('.registration-status').classList.add('is-closed');
document.querySelector('.registration-status-label').textContent = 'Registration is closed';
const registerButton = document.querySelector('.register-button');
registerButton.removeAttribute('href');
registerButton.classList.add('is-closed');
registerButton.textContent = 'Registration closed';
}
</script>
<nav class="section-nav" aria-label="On this page">
<a href="#overview">Overview</a>
<a href="#registration">Registration</a>
<a href="#travel-support">Travel Support</a>
<a href="#hotel">Hotel</a>
<a href="#location">Location</a>
<a href="#agenda">Agenda</a>
<a href="#python-resources">Resources</a>
</nav>
<article class="original-content">
<div class="intro" id="overview">
<div class="intro-copy">
<h1>{{ page.title }}</h1>
{{ school_sections.first | remove_first: banner }}
</div>
<figure class="poster">
<a href="{{ '/img/page_images/winter-school-poster.png' | relative_url }}" aria-label="View the Winter School poster">
<img src="{{ '/img/page_images/winter-school-poster.png' | relative_url }}" width="1280" height="1920" alt="Winter School 2027 poster, January 5–8 at the University of Arizona" loading="lazy">
</a>
<figcaption><a href="{{ '/img/page_images/winter-school-poster.png' | relative_url }}">View &amp; share the event poster <span class="external-arrow" aria-hidden="true"></span></a></figcaption>
</figure>
</div>
<div class="sections-grid">
{% for section in school_sections offset: 1 %}
{% assign heading_attributes = section | split: '>' | first %}
{% assign section_id = heading_attributes | split: 'id="' | last | split: '"' | first %}
{% assign heading_html = section | split: '</h3>' | first | prepend: '<h3' | append: '</h3>' %}
{% assign section_body = section | prepend: '<h3' | remove_first: heading_html %}
{% capture zoom_heading %}<h4 id="zoom-meeting-information">{% include winter-school-icon.html name='zoom' %}{% endcapture %}
{% capture transportation_heading %}<h4 id="transportation">{% include winter-school-icon.html name='transportation' %}{% endcapture %}
{% assign section_body = section_body | replace: '<h4 id="zoom-meeting-information">', zoom_heading | replace: '<h4 id="transportation">', transportation_heading %}
<section class="content-section section-{{ section_id }}" aria-labelledby="{{ section_id }}">
<h3 id="{{ section_id }}">{% include winter-school-icon.html name=section_id %}{{ heading_html | strip_html }}</h3>
{% if section_id == 'location' %}
{{ section_body | replace: '<iframe ', '<iframe title="Map of the Student Union Memorial Center" ' }}
{% elsif section_id == 'agenda' %}
{{ section_body | replace: '<iframe ', '<iframe title="PyHC 2027 Winter School agenda" ' }}
{% else %}
{{ section_body }}
{% endif %}
</section>
{% endfor %}
</div>
</article>
</main>
<footer class="site-footer wrap">
<a class="footer-brand" href="{{ '/' | relative_url }}">PyHC <span>Python in Heliophysics Community</span></a>
<p>Built with <a href="https://jekyllrb.com/">Jekyll</a> / Edit this page on <a href="https://github.com/heliophysicsPy/heliophysicsPy.github.io">Github.</a></p>
</footer>
</body>
</html>
29 changes: 11 additions & 18 deletions _pages/meetings/winter_schools/winter_school.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
layout: page
layout: winter-school
title: Python in Heliophysics Winter School 2027
summary: The web page for the 2027 PyHC Winter School
permalink: /winter-school
Expand All @@ -11,12 +11,7 @@ The Python in Heliophysics Community (PyHC) is excited to announce its 2027 Wint

This Winter School builds on the success of PyHC's [2022]({{ site.baseurl }}/summer-school) and [2024]({{ site.baseurl }}/summer-school-24) Summer Schools, offering another deep dive into the rich ecosystem of Heliophysics Python packages, just in the winter this time! Open to undergraduate and graduate students, early career scientists, and anyone eager to deepen their understanding of Python in the Heliophysics and Space Weather disciplines, this program promises a mix of in-depth tutorials, engaging demos, and hands-on sessions, delivered by some of the field's leading experts.

Remote options will be available for those unable to make the trip to Tucson, and the presentations will be recorded and streamed to [PyHC's YouTube channel](https://www.youtube.com/@pythoninheliophysicscommun3732). Further, in keeping with PyHC's commitment to knowledge-sharing, **this event is FREE for all attendees**.

<br>

### Dates
5 January 2027 – 8 January 2027
Remote options will be available for those unable to make the trip to Tucson, and the presentations will be recorded and streamed to [PyHC's YouTube channel](https://www.youtube.com/@pythoninheliophysicscommun3732). Further, in keeping with PyHC's commitment to knowledge sharing, **this event is FREE for all attendees**.

<br>
### Registration
Expand All @@ -31,21 +26,23 @@ Travel support applications will be vetted and approved by members of the Winter
**[Apply for the travel stipend here](https://forms.gle/1tQ62tNjAw6JPNzb9) by Wednesday, November 11th at 11:59 PM MT.**

<br>
#### Hotel
### Hotel
The official recommended hotel is the **Graduate by Hilton Tucson**, located at **930 E 2nd St, Tucson, AZ 85719** — less than a 10-minute walk (about 0.4 miles) from the Student Union Memorial Center, where the Winter School will be held. We have reserved a block of rooms for Winter School attendees at the government per diem rate. **The room block booking link expires on December 7th, 2026.** After that date, guestrooms will be released back into the general inventory and will be sold at the prevailing rates.

To book your room for the Winter School, [click here](https://book.passkey.com/event/51272286/owner/50247507/home). Please note that parking is valet-only, with a fee of $39 plus tax for overnight. Other parking options include metered street parking in the area or the paid public garage located across the street from the hotel.
**[Click here to book your room for the Winter School](https://book.passkey.com/event/51272286/owner/50247507/home)**. Please note that parking is valet-only, with a fee of $39 plus tax for overnight. Other parking options include metered street parking in the area or the paid public garage located across the street from the hotel.

<br>
### Location
The Winter School will be held in-person at the [University of Arizona](https://www.arizona.edu/) campus in Tucson, Arizona at the [**Student Union Memorial Center**](https://union.arizona.edu/) in Ventana Room 442 (on 4th floor of SUMC), as well as virtually over Zoom.

Student Union Memorial Center<br>
[Student Union Memorial Center](https://union.arizona.edu/)<br>
**Ventana Room 442** · 4th floor<br>
University of Arizona<br>
1303 E University Blvd<br>
Tucson, AZ 85719<br>
USA<br>

#### Zoom Meeting Information
We will use Zoom for remote participation. **Connection details will be sent via email to registered attendees.**

<iframe src="https://www.google.com/maps?q=Student+Union+Memorial+Center,+1303+E+University+Blvd,+Tucson,+AZ+85719&amp;output=embed" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>

<br>
Expand All @@ -58,10 +55,6 @@ The agenda for the PyHC 2027 Winter School is a living document, and is subject
the "public" tab. Note this is presentational only, not an access control. -->
<iframe src="https://docs.google.com/spreadsheets/d/183CeXpKmOx3RfEEk46jB8E-ndZ19sIVM8gGD2_-XQQw/htmlembed/sheet?gid=1085256662" width="100%" height="500" style="border:0;"></iframe>

<br>
#### Zoom Meeting Information
We will use Zoom for remote participation. **Connection details will be sent via email to registered attendees.**

<br>
#### Transportation
<!-- TODO: Confirm and expand with campus parking info, shuttle options, and airport transit details. -->
Expand All @@ -84,7 +77,7 @@ Looking for notebooks or slides presented at the Winter School? They will be sto

<br>
### Winter School Code of Conduct
We will follow the PyHC Code of Conduct for the PyHC 2027 Winter School ([see here](https://heliopython.org/docs/code_of_conduct/)). Those who violate the code of conduct are subject to removal from the remainder of Winter School activities.
We will follow the [PyHC Code of Conduct](https://heliopython.org/docs/code_of_conduct/) for the PyHC 2027 Winter School. Those who violate the code of conduct are subject to removal from the remainder of Winter School activities.

<br>
### Additional Info
Expand All @@ -97,4 +90,4 @@ Please email: <a href="mailto:pyhc-confidential@lasp.colorado.edu">pyhc-confiden
<img class="rounded-circle" src="../../img/project_logos/NASA.jpeg" alt="NASA's Goddard Space Flight Center logo" width="200px" height="200px"/>
</a>
</p>
This summer school is funded by NASA award numbers 80NSSC22K0326 and 80NSSC26K1134
This Winter School is funded by NASA award numbers 80NSSC22K0326 and 80NSSC26K1134
Loading
Loading