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.pyafterwards. - Talks: Edit
content/talks.yaml. Runpython python/build_content.pyafterwards. 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.htmlas 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.pyto updateblog.html.
- Create a new HTML file in the
- Other Pages: Directly edit the corresponding HTML files (e.g.,
index.html,vitae.html).