This guide covers managing images, PDFs, and other media files.
assets/
├── cv-hwschuur.pdf # Resume PDF
├── favicon/ # Favicon files
│ ├── apple-touch-icon.png
│ ├── favicon.ico
│ ├── favicon.svg
│ ├── favicon-96x96.png
│ ├── web-app-manifest-192x192.png
│ ├── web-app-manifest-512x512.png
│ └── site.webmanifest
└── images/
├── bio-photo.png # Main author avatar
├── bio-photo-small.png # Small avatar for pages
└── posts/ # Post-specific images
Store images in assets/images/:
assets/images/bio-photo.pngassets/images/posts/assets/images/
<figure class="">
<img src="/assets/images/posts/my-image.png"
alt="Description of image"><figcaption>
Optional caption text
</figcaption></figure>
Parameters:
| Parameter | Required | Description |
|———–|———-|————-|
| image_path | Yes | Path to image |
| alt | Yes | Alt text for accessibility |
| caption | No | Caption below image |
| class | No | CSS class for styling |
<figure class="full">
<img src="/assets/images/wide-image.png"
alt="Wide image"></figure>
Before uploading images:
| Use Case | Dimensions | Format |
|---|---|---|
| Author avatar | 200x200 | PNG |
| Post image (inline) | 800px wide | JPEG/PNG |
| Hero/header | 1200x400 | JPEG |
| Thumbnail | 300x200 | JPEG |
Store documents in assets/:
assets/
├── cv-hwschuur.pdf
└── papers/
└── research-paper.pdf
Download my [resume](/assets/cv-hwschuur.pdf).
Read the [full paper](/assets/papers/research-paper.pdf).
The site uses multiple favicon formats for cross-browser/device support:
assets/favicon/
├── apple-touch-icon.png # iOS home screen
├── favicon.ico # Classic browsers
├── favicon.svg # Modern browsers
├── favicon-96x96.png # Android/Chrome
├── web-app-manifest-192x192.png # PWA small
├── web-app-manifest-512x512.png # PWA large
└── site.webmanifest # PWA manifest
{
"name": "Henk van der Schuur",
"short_name": "hwschuur",
"icons": [
{
"src": "/assets/favicon/web-app-manifest-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/assets/favicon/web-app-manifest-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
Use a favicon generator like RealFaviconGenerator:
assets/favicon/For large files or many images, consider external hosting:
content.hwschuur.nl) or cloud storage
YouTube:
<!-- Courtesy of embedresponsively.com -->
<div class="responsive-video-container">
<iframe src="https://www.youtube-nocookie.com/embed/VIDEO_ID" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>
</div>
Vimeo:
<!-- Courtesy of embedresponsively.com -->
<div class="responsive-video-container">
<iframe src="https://player.vimeo.com/video/VIDEO_ID?dnt=true" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>
</div>
Use absolute paths from the site root:
<!-- Correct: Absolute from root -->

<!-- Avoid: Relative paths -->

---
header:
image: /assets/images/header.jpg
author:
avatar: /assets/images/bio-photo.png
---
my-image-name.png2025-conference-presentation.pdfcv-2025-01.pdfassets/images/
├── posts/
│ ├── 2025/
│ │ ├── january/
│ │ └── february/
│ └── 2024/
├── pages/
│ ├── about/
│ └── work/
├── headers/
└── icons/
The following are typically ignored:
*.psd
*.ai
*.sketch
For repositories with many large files:
# Install Git LFS
git lfs install
# Track large file types
git lfs track "*.pdf"
git lfs track "*.psd"
# Commit .gitattributes
git add .gitattributes
git commit -m "Configure Git LFS"
Every image should have meaningful alt text:
<!-- Good: Descriptive -->

<!-- Poor: Non-descriptive -->

<!-- Decorative images: Empty alt -->

Use captions for context:
<figure class="">
<img src="/assets/images/chart.png"
alt="Bar chart showing growth from 2020 to 2025"><figcaption>
Figure 1: Annual growth metrics
</figcaption></figure>
| See also: Writing Posts | Managing Pages |