Add teaching section

This commit is contained in:
Yan Lin 2025-07-09 13:58:12 +02:00
parent e7d814051b
commit ddadc8685e
12 changed files with 244 additions and 23 deletions

View file

@ -9,11 +9,10 @@ services:
- proxy-network
labels:
- "traefik.enable=true"
- "traefik.http.routers.homepage.rule=Host(`www.yanlincs.com`) || Host(`www.ylresearch.com`)"
- "traefik.http.routers.homepage.rule=Host(`www.yanlincs.com`)"
- "traefik.http.routers.homepage.tls=true"
- "traefik.http.routers.homepage.tls.certresolver=cloudflare"
- "traefik.http.routers.homepage.tls.domains[0].main=*.yanlincs.com"
- "traefik.http.routers.homepage.tls.domains[1].main=*.ylresearch.com"
- "traefik.http.services.homepage.loadbalancer.server.port=80"

View file

@ -224,6 +224,13 @@ secondaryProjects:
desc: "This project explores how to generate high-quality spatial-temporal trajectory data and corresponding representations to address sparsity-related issues, thereby supporting a variety of downstream tasks."
links: {}
teaching:
- title: "AI Systems & Infrastructure"
tags:
- "Fall 2025"
- "Aalborg University"
links: {}
presentations:
- title: "Self-supervised Learning of Trajectory Data"
tags:

41
dist/index.html vendored
View file

@ -53,28 +53,34 @@
</div>
</div>
<nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-4 gap-sm-5">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
<li class="nav-item">
<a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pub</span>
<span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Proj</span>
<span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span>
</a>
</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">
<a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Present</span>
<span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Serve</span>
<span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span>
</a>
</li>
@ -542,6 +548,31 @@
</div>
</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">
<div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0">

View file

@ -49,28 +49,34 @@
</div>
<!-- <nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-4 gap-sm-5">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
<li class="nav-item">
<a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pub</span>
<span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Proj</span>
<span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span>
</a>
</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">
<a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Present</span>
<span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Serve</span>
<span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span>
</a>
</li>

View file

@ -49,28 +49,34 @@
</div>
<!-- <nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-4 gap-sm-5">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
<li class="nav-item">
<a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pub</span>
<span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Proj</span>
<span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span>
</a>
</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">
<a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Present</span>
<span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Serve</span>
<span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span>
</a>
</li>

117
dist/teaching/index.html vendored Normal file
View file

@ -0,0 +1,117 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yan Lin's Teaching</title>
<meta name="description" content="Yan Lin - Computer science researcher interested in data mining, representation learning, and AI for science">
<script defer src="https://tracker.yanlincs.com/script.js" data-website-id="39b2ce27-b581-4c54-8f2d-ff7dbaeb70cc"></script>
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<meta name="apple-mobile-web-app-title" content="YL Homepage" />
<link rel="manifest" href="/site.webmanifest" />
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="/css/index.css">
</head>
<body>
<main class="container">
<header class="border-bottom lh-1 py-3 border-secondary">
<div class="row flex-nowrap justify-content-between align-items-center">
<div class="col-2">
<a class="link-secondary header-icon mx-2 py-0 my-0 h4 d-flex align-items-center" href="/" aria-label="Go to homepage">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-house-fill" viewBox="0 0 16 16" aria-hidden="true">
<path d="M8.707 1.5a1 1 0 0 0-1.414 0L.646 8.146a.5.5 0 0 0 .708.708L8 2.207l6.646 6.647a.5.5 0 0 0 .708-.708L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293z"/>
<path d="m8 3.293 6 6V13.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 13.5V9.293z"/>
</svg>
</a>
</div>
<div class="col-8 text-center">
<div class="page-header-logo h2 m-0" style="font-family: Impact, 'Arial Black', 'Franklin Gothic Bold', sans-serif;">Yan Lin's Teaching</div>
</div>
<div class="col-2 d-flex justify-content-end">
</div>
</div>
</header>
<article class="section mt-4">
<div class="list-group list-group-flush">
<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>
</main>
<footer>
<div class="container">
<p class="text-center text-secondary footer-text">
© 2025 - Designed and implemented by Yan Lin.
</p>
</div>
</footer>
<button id="back-to-top" class="btn btn-light rounded-circle d-none align-items-center justify-content-center" style="position: fixed; bottom: 20px; right: 20px; display: none; z-index: 1000; width: 40px; height: 40px; padding: 0;">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-chevron-up" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z"/>
</svg>
</button>
<script>
// Show or hide the back-to-top button
window.addEventListener('scroll', function() {
var backToTopButton = document.getElementById('back-to-top');
if (window.scrollY > 100) {
backToTopButton.classList.remove('d-none');
backToTopButton.classList.add('d-flex');
} else {
backToTopButton.classList.add('d-none');
backToTopButton.classList.remove('d-flex');
}
});
// Scroll to top when the button is clicked
document.getElementById('back-to-top').addEventListener('click', function(e) {
e.preventDefault();
window.scrollTo({
top: 0,
behavior: 'smooth'
});
window.location.href = '#';
return false;
});
</script>
</body>
</html>

View file

@ -15,6 +15,7 @@ if __name__ == '__main__':
os.makedirs('dist/publications', exist_ok=True)
os.makedirs('dist/projects', exist_ok=True)
os.makedirs('dist/presentations', exist_ok=True)
os.makedirs('dist/teaching', exist_ok=True)
def render_template(template_name, output_path, **kwargs):
template = env.get_template(template_name)
@ -29,4 +30,5 @@ if __name__ == '__main__':
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)
render_template('presentations.html', 'dist/presentations/index.html', data=profile_data, is_home_page=False)
render_template('teaching.html', 'dist/teaching/index.html', data=profile_data, is_home_page=False)
print('Static site generation complete!')

View file

@ -8,7 +8,7 @@ pkgs.mkShell {
];
shellHook = let
venvPath = "$HOME/venv/homepage";
venvPath = "$HOME/.venv/homepage";
remoteHost = "personal-vps";
in ''
export PIP_REQUIRE_VIRTUALENV=1

View file

@ -83,6 +83,22 @@ block content %}
</div>
</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">
{% for teaching in data.teaching[:5] %} {% include
'partials/teaching.html' %} {% endfor %}
</div>
</article>
<article class="section" id="presentations">
<div class="d-flex align-items-center mb-1">
<h3 class="section-title d-inline-block mb-0">

View file

@ -1,26 +1,32 @@
<nav class="navbar navbar-expand">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-4 gap-sm-5">
<ul class="navbar-nav d-flex justify-content-evenly mx-auto gap-3 gap-sm-5">
<li class="nav-item">
<a class="link nav-link px-0" href="/#publications">
<span class="d-inline d-md-none">Pub</span>
<span class="d-inline d-md-none">Pubs</span>
<span class="d-none d-md-inline">Publications</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#projects">
<span class="d-inline d-md-none">Proj</span>
<span class="d-inline d-md-none">Work</span>
<span class="d-none d-md-inline">Projects</span>
</a>
</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">
<a class="link nav-link px-0" href="/#presentations">
<span class="d-inline d-md-none">Present</span>
<span class="d-inline d-md-none">Talks</span>
<span class="d-none d-md-inline">Presentations</span>
</a>
</li>
<li class="nav-item">
<a class="link nav-link px-0" href="/#services">
<span class="d-inline d-md-none">Serve</span>
<span class="d-inline d-md-none">Service</span>
<span class="d-none d-md-inline">Services</span>
</a>
</li>

View file

@ -0,0 +1,13 @@
<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">
{{ teaching.tags|join("<span class='text-muted'> | </span>")|safe }}
</p>
<div class="d-flex gap-2">
{% for name, url in teaching.links.items() %}
<a class="link icon-link icon-link-hover paper-link link-secondary" href="{{ url }}" target="_blank" rel="noopener noreferrer">{{ name }}</a>
{% endfor %}
</div>
</div>
<h5 class="mb-1 paper-title">{{ teaching.title|safe }}</h5>
</div>

18
templates/teaching.html Normal file
View file

@ -0,0 +1,18 @@
{% extends 'base.html' %}
{% block title %}Yan Lin's Teaching{% endblock %}
{% block header_title %}Yan Lin's Teaching{% endblock %}
{% block navigation %}
{% endblock %}
{% block content %}
<article class="section mt-4">
<div class="list-group list-group-flush">
{% for teaching in data.teaching %}
{% include 'partials/teaching.html' %}
{% endfor %}
</div>
</article>
{% endblock %}