Enable dynamic ordering of sections

This commit is contained in:
Yan Lin 2025-07-09 14:10:52 +02:00
parent ddadc8685e
commit 51d12d7ab1
9 changed files with 100 additions and 62 deletions

View file

@ -1,3 +1,10 @@
sections:
- publications
- projects
# - teaching
- presentations
- services
primaryPublications: primaryPublications:
- title: "UVTM: Universal Vehicle Trajectory Modeling with ST Feature Domain Generation" - title: "UVTM: Universal Vehicle Trajectory Modeling with ST Feature Domain Generation"
authors: "<strong>Yan Lin</strong>, Jilin Hu, Shengnan Guo, Bin Yang, Christian S. Jensen, Youfang Lin, Huaiyu Wan" authors: "<strong>Yan Lin</strong>, Jilin Hu, Shengnan Guo, Bin Yang, Christian S. Jensen, Youfang Lin, Huaiyu Wan"

60
dist/index.html vendored
View file

@ -54,36 +54,43 @@
</div> </div>
<nav class="navbar navbar-expand"> <nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5"> <ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#publications"> <a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pubs</span> <span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span> <span class="d-none d-md-inline">Publications</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#projects"> <a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Work</span> <span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span> <span class="d-none d-md-inline">Projects</span>
</a> </a>
</li> </li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#teaching">
<span class="d-inline d-md-none">Teach</span>
<span class="d-none d-md-inline">Teaching</span>
</a>
</li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#presentations"> <a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Talks</span> <span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span> <span class="d-none d-md-inline">Presentations</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#services"> <a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Service</span> <span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span> <span class="d-none d-md-inline">Services</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="https://blog.yanlincs.com"> <a class="link nav-link px-0" href="https://blog.yanlincs.com">
<span class="d-inline d-md-none">Blog</span> <span class="d-inline d-md-none">Blog</span>
@ -123,6 +130,8 @@
</div> </div>
</div> </div>
<article class="section" id="publications"> <article class="section" id="publications">
<div class="d-flex align-items-center mb-1"> <div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0"> <h3 class="section-title d-inline-block mb-0">
@ -453,6 +462,8 @@
</div> </div>
</article> </article>
<article class="section" id="projects"> <article class="section" id="projects">
<div class="d-flex align-items-center mb-1"> <div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0"> <h3 class="section-title d-inline-block mb-0">
@ -548,30 +559,7 @@
</div> </div>
</article> </article>
<article class="section" id="teaching">
<div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0">
<i class="bi bi-mortarboard"></i> Teaching
</h3>
<div class="flex-grow-1 mx-3" style="border-bottom: 1px dashed var(--border-color); height: 1px;"></div>
<a class="mb-0 link link-secondary link-underline-opacity-0 h5" href="/teaching/">
View All
</a>
</div>
<div class="list-group list-group-flush" id="teaching-list">
<div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text">
Fall 2025<span class='text-muted'> | </span>Aalborg University
</p>
<div class="d-flex gap-2">
</div>
</div>
<h5 class="mb-1 paper-title">AI Systems & Infrastructure</h5>
</div>
</div>
</article>
<article class="section" id="presentations"> <article class="section" id="presentations">
<div class="d-flex align-items-center mb-1"> <div class="d-flex align-items-center mb-1">
@ -586,7 +574,7 @@
<div class="list-group list-group-flush" id="presentation-list"> <div class="list-group list-group-flush" id="presentation-list">
<div class="list-group-item px-0"> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Guest lecture<span class='text-muted'> | </span>Aalborg University Guest lecture<span class='text-muted'> | </span>Aalborg University
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -598,7 +586,7 @@
<h5 class="mb-1 paper-title">Self-supervised Learning of Trajectory Data</h5> <h5 class="mb-1 paper-title">Self-supervised Learning of Trajectory Data</h5>
</div> <div class="list-group-item px-0"> </div> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Workshop presentation<span class='text-muted'> | </span>KDD 2024 Workshop presentation<span class='text-muted'> | </span>KDD 2024
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -612,7 +600,7 @@
<h5 class="mb-1 paper-title">PLM4Traj: Leveraging Pre-trained Language Models for Cognizing Movement Patterns and Travel Purposes from Trajectories</h5> <h5 class="mb-1 paper-title">PLM4Traj: Leveraging Pre-trained Language Models for Cognizing Movement Patterns and Travel Purposes from Trajectories</h5>
</div> <div class="list-group-item px-0"> </div> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Paper Oral<span class='text-muted'> | </span>SIGMOD 2024 Paper Oral<span class='text-muted'> | </span>SIGMOD 2024
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -624,7 +612,7 @@
<h5 class="mb-1 paper-title">Origin-Destination Travel Time Oracle for Map-based Services</h5> <h5 class="mb-1 paper-title">Origin-Destination Travel Time Oracle for Map-based Services</h5>
</div> <div class="list-group-item px-0"> </div> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Tutorial<span class='text-muted'> | </span>SpatialDI 2024 Tutorial<span class='text-muted'> | </span>SpatialDI 2024
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -636,7 +624,7 @@
<h5 class="mb-1 paper-title">Self-supervised Learning of Spatial-temporal Trajectories</h5> <h5 class="mb-1 paper-title">Self-supervised Learning of Spatial-temporal Trajectories</h5>
</div> <div class="list-group-item px-0"> </div> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Paper Oral<span class='text-muted'> | </span>AAAI 2021 Paper Oral<span class='text-muted'> | </span>AAAI 2021
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -650,6 +638,8 @@
</div> </div>
</article> </article>
<article <article
id="services" id="services"
class="rounded text-body-emphasis bg-body-secondary flex-md-row my-4 position-relative p-4 transition-shadow" class="rounded text-body-emphasis bg-body-secondary flex-md-row my-4 position-relative p-4 transition-shadow"
@ -674,6 +664,8 @@
</article> </article>
</main> </main>
<footer> <footer>

View file

@ -57,7 +57,7 @@
<div class="list-group-item px-0"> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Guest lecture<span class='text-muted'> | </span>Aalborg University Guest lecture<span class='text-muted'> | </span>Aalborg University
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -71,7 +71,7 @@
<div class="list-group-item px-0"> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Workshop presentation<span class='text-muted'> | </span>KDD 2024 Workshop presentation<span class='text-muted'> | </span>KDD 2024
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -87,7 +87,7 @@
<div class="list-group-item px-0"> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Paper Oral<span class='text-muted'> | </span>SIGMOD 2024 Paper Oral<span class='text-muted'> | </span>SIGMOD 2024
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -101,7 +101,7 @@
<div class="list-group-item px-0"> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Tutorial<span class='text-muted'> | </span>SpatialDI 2024 Tutorial<span class='text-muted'> | </span>SpatialDI 2024
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
@ -115,7 +115,7 @@
<div class="list-group-item px-0"> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
Paper Oral<span class='text-muted'> | </span>AAAI 2021 Paper Oral<span class='text-muted'> | </span>AAAI 2021
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">

View file

@ -50,36 +50,43 @@
<!-- <nav class="navbar navbar-expand"> <!-- <nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5"> <ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#publications"> <a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pubs</span> <span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span> <span class="d-none d-md-inline">Publications</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#projects"> <a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Work</span> <span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span> <span class="d-none d-md-inline">Projects</span>
</a> </a>
</li> </li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#teaching">
<span class="d-inline d-md-none">Teach</span>
<span class="d-none d-md-inline">Teaching</span>
</a>
</li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#presentations"> <a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Talks</span> <span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span> <span class="d-none d-md-inline">Presentations</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#services"> <a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Service</span> <span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span> <span class="d-none d-md-inline">Services</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="https://blog.yanlincs.com"> <a class="link nav-link px-0" href="https://blog.yanlincs.com">
<span class="d-inline d-md-none">Blog</span> <span class="d-inline d-md-none">Blog</span>

View file

@ -50,36 +50,43 @@
<!-- <nav class="navbar navbar-expand"> <!-- <nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5"> <ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#publications"> <a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pubs</span> <span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span> <span class="d-none d-md-inline">Publications</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#projects"> <a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Work</span> <span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span> <span class="d-none d-md-inline">Projects</span>
</a> </a>
</li> </li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#teaching">
<span class="d-inline d-md-none">Teach</span>
<span class="d-none d-md-inline">Teaching</span>
</a>
</li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#presentations"> <a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Talks</span> <span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span> <span class="d-none d-md-inline">Presentations</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#services"> <a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Service</span> <span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span> <span class="d-none d-md-inline">Services</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="https://blog.yanlincs.com"> <a class="link nav-link px-0" href="https://blog.yanlincs.com">
<span class="d-inline d-md-none">Blog</span> <span class="d-inline d-md-none">Blog</span>

View file

@ -26,9 +26,22 @@ if __name__ == '__main__':
print(f'Generated {output_path}') print(f'Generated {output_path}')
# Always generate the main index page
render_template('index.html', 'dist/index.html', data=profile_data, is_home_page=True) render_template('index.html', 'dist/index.html', data=profile_data, is_home_page=True)
render_template('publications.html', 'dist/publications/index.html', data=profile_data, is_home_page=False)
render_template('projects.html', 'dist/projects/index.html', data=profile_data, is_home_page=False) # Generate individual section pages only if they're in the sections list
render_template('presentations.html', 'dist/presentations/index.html', data=profile_data, is_home_page=False) sections = profile_data.get('sections', [])
render_template('teaching.html', 'dist/teaching/index.html', data=profile_data, is_home_page=False)
if 'publications' in sections:
render_template('publications.html', 'dist/publications/index.html', data=profile_data, is_home_page=False)
if 'projects' in sections:
render_template('projects.html', 'dist/projects/index.html', data=profile_data, is_home_page=False)
if 'presentations' in sections:
render_template('presentations.html', 'dist/presentations/index.html', data=profile_data, is_home_page=False)
if 'teaching' in sections:
render_template('teaching.html', 'dist/teaching/index.html', data=profile_data, is_home_page=False)
print('Static site generation complete!') print('Static site generation complete!')

View file

@ -29,6 +29,8 @@ block content %}
</div> </div>
</div> </div>
{% for section in data.sections %}
{% if section == 'publications' %}
<article class="section" id="publications"> <article class="section" id="publications">
<div class="d-flex align-items-center mb-1"> <div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0"> <h3 class="section-title d-inline-block mb-0">
@ -58,7 +60,7 @@ block content %}
> >
</div> </div>
</article> </article>
{% elif section == 'projects' %}
<article class="section" id="projects"> <article class="section" id="projects">
<div class="d-flex align-items-center mb-1"> <div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0"> <h3 class="section-title d-inline-block mb-0">
@ -82,7 +84,7 @@ block content %}
</div> </div>
</div> </div>
</article> </article>
{% elif section == 'teaching' %}
<article class="section" id="teaching"> <article class="section" id="teaching">
<div class="d-flex align-items-center mb-1"> <div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0"> <h3 class="section-title d-inline-block mb-0">
@ -98,7 +100,7 @@ block content %}
'partials/teaching.html' %} {% endfor %} 'partials/teaching.html' %} {% endfor %}
</div> </div>
</article> </article>
{% elif section == 'presentations' %}
<article class="section" id="presentations"> <article class="section" id="presentations">
<div class="d-flex align-items-center mb-1"> <div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0"> <h3 class="section-title d-inline-block mb-0">
@ -114,7 +116,7 @@ block content %}
'partials/presentation.html' %} {% endfor %} 'partials/presentation.html' %} {% endfor %}
</div> </div>
</article> </article>
{% elif section == 'services' %}
<article <article
id="services" id="services"
class="rounded text-body-emphasis bg-body-secondary flex-md-row my-4 position-relative p-4 transition-shadow" class="rounded text-body-emphasis bg-body-secondary flex-md-row my-4 position-relative p-4 transition-shadow"
@ -131,5 +133,7 @@ block content %}
</ul> </ul>
</div> </div>
</article> </article>
{% endif %}
{% endfor %}
{% endblock %} {% block extra_js %} {{ super() }} {% endblock %} {% endblock %} {% block extra_js %} {{ super() }} {% endblock %}

View file

@ -1,35 +1,43 @@
<nav class="navbar navbar-expand"> <nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5"> <ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
{% for section in data.sections %}
{% if section == 'publications' %}
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#publications"> <a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pubs</span> <span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span> <span class="d-none d-md-inline">Publications</span>
</a> </a>
</li> </li>
{% elif section == 'projects' %}
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#projects"> <a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Work</span> <span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span> <span class="d-none d-md-inline">Projects</span>
</a> </a>
</li> </li>
{% elif section == 'teaching' %}
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#teaching"> <a class="link nav-link px-0" href="/#teaching">
<span class="d-inline d-md-none">Teach</span> <span class="d-inline d-md-none">Teach</span>
<span class="d-none d-md-inline">Teaching</span> <span class="d-none d-md-inline">Teaching</span>
</a> </a>
</li> </li>
{% elif section == 'presentations' %}
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#presentations"> <a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Talks</span> <span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span> <span class="d-none d-md-inline">Presentations</span>
</a> </a>
</li> </li>
{% elif section == 'services' %}
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="/#services"> <a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Service</span> <span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span> <span class="d-none d-md-inline">Services</span>
</a> </a>
</li> </li>
{% endif %}
{% endfor %}
<li class="nav-item"> <li class="nav-item">
<a class="link nav-link px-0" href="https://blog.yanlincs.com"> <a class="link nav-link px-0" href="https://blog.yanlincs.com">
<span class="d-inline d-md-none">Blog</span> <span class="d-inline d-md-none">Blog</span>

View file

@ -1,6 +1,6 @@
<div class="list-group-item px-0"> <div class="list-group-item px-0">
<div class="d-flex justify-content-between align-items-center mb-1"> <div class="d-flex justify-content-between align-items-center mb-1">
<p class="d-inline-block mb-0 venue-name primary-text"> <p class="d-inline-block mb-0 venue-name secondary-text">
{{ presentation.tags|join("<span class='text-muted'> | </span>")|safe }} {{ presentation.tags|join("<span class='text-muted'> | </span>")|safe }}
</p> </p>
<div class="d-flex gap-2"> <div class="d-flex gap-2">