Source code for my personal website. This is primarily a static website built using HTML, CSS, and JavaScript.
Python is used for dynamically populating specific pages (Blog index, Publications, Talks) from content files and templates.
- About: Personal introduction.
- Thoughts: Blog section with posts generated from HTML files.
- Publications: Dynamically generated list from a YAML file.
- Talks: Dynamically generated list from a YAML file.
- Vitae: Displays the CV.
.
├── css/ # CSS stylesheets
│ └── style.css
├── js/ # JavaScript files
│ ├── blog-filter.js
│ ├── blog-metadata.js
│ ├── footer.js
│ ├── nav-dropdown.js
│ └── tooltip.js
├── python/ # Python scripts
│ ├── blog.py
│ └── build_content.py
├── templates/ # HTML templates used by Python scripts
│ ├── blog_post_template.html
│ ├── blog_template.html
│ ├── publications_template.html
│ └── talks_template.html
├── posts/ # Individual blog post HTML files
│ ├── YYYYMMDD_post-title-1.html
│ └── ...
├── content/ # Data files for dynamic content
│ ├── publications.yaml
│ └── talks.yaml
├── files/ # Static files like CV
│ └── ...
├── static/
│ ├── fonts/
│ └── icons/
├── index.html # Main landing page
├── blog.html # Blog index page
├── publications.html # Publications page
├── talks.html # Talks page
└── vitae.html # Vitae page
- Publications: Edit
content/publications.yaml
. Runpython python/build_content.py
afterwards. - Talks: Edit
content/talks.yaml
. Runpython python/build_content.py
afterwards. This script will automatically split the talks between upcoming and past depending on the date, so it might be useful to run it periodically. - Blog Posts:
- Create a new HTML file in the
posts/
directory (e.g.,YYYYMMDD_post-title.html
). - Use
templates/blog_post_template.html
as a starting point. Fill in the required metadata in the<head>
section (title
,date
,tags
,description
, Open Graph tags). - Write the post content within the
<article>
tags. - Run
python python/blog.py
to updateblog.html
.
- Create a new HTML file in the
- Other Pages: Directly edit the corresponding HTML files (e.g.,
index.html
,vitae.html
).