create
Create Authors
Author Management Guide for Snowlake Jekyll Theme
Overview
The Snowlake Jekyll Theme supports a robust author management system using Jekyll’s collections feature. This guide will walk you through creating, configuring, and displaying author profiles.
1. Author Collection Configuration
Configuration in _config.yml
collections:
authors:
output: true
Key Points:
output: true
generates individual pages for each author- Enables dynamic author profile generation
2. Creating Author Files
File Location
Create author files in the _authors
directory with the following naming convention:
- Filename:
firstname-lastname.md
- Example:
john-doe.md
Author File Structure
---
# Mandatory Fields
name: "John Doe"
email: "[email protected]"
avatar: "/assets/images/authors/john-doe.jpg"
# Optional Fields
bio: "Software engineer and tech enthusiast"
website: "https://johndoe.com"
twitter: "@johndoe"
linkedin: "johndoe"
github: "johndoe"
# Social Media Links (Optional)
social:
- platform: "twitter"
url: "https://twitter.com/johndoe"
- platform: "linkedin"
url: "https://linkedin.com/in/johndoe"
# Expertise Tags
tags:
- "web development"
- "javascript"
- "design"
# Publication Details
publications:
- title: "Advanced Web Design"
year: 2022
publisher: "Tech Books Inc."
# Speaking Engagements
speaking:
- event: "Web Summit"
year: 2021
location: "Lisbon, Portugal"
---
## About Me
Write a detailed markdown biography here. You can use **rich text formatting**, include *italics*, and even add code snippets.
3. Author Page Template
Create a layout for author pages in _layouts/author.html
:
---
layout: default
---
<div class="author-profile">
<img src="{{ page.avatar }}" alt="{{ page.name }}" class="author-avatar">
<h1>{{ page.name }}</h1>
<div class="author-bio">
{{ page.bio }}
</div>
<div class="author-social-links">
{% for social in page.social %}
<a href="{{ social.url }}" target="_blank">
{{ social.platform }}
</a>
{% endfor %}
</div>
<div class="author-content">
{{ content }}
</div>
{% if page.publications %}
<h2>Publications</h2>
<ul>
{% for pub in page.publications %}
<li>{{ pub.title }} ({{ pub.year }}) - {{ pub.publisher }}</li>
{% endfor %}
</ul>
{% endif %}
{% if page.speaking %}
<h2>Speaking Engagements</h2>
<ul>
{% for talk in page.speaking %}
<li>{{ talk.event }} ({{ talk.year }}) - {{ talk.location }}</li>
{% endfor %}
</ul>
{% endif %}
</div>
4. Displaying Authors in Posts
In Post Front Matter
---
title: "My Awesome Blog Post"
author: john-doe
---
Author Display Snippet
{% assign author = site.authors | where: "name", page.author | first %}
{% if author %}
<div class="post-author">
<img src="{{ author.avatar }}" alt="{{ author.name }}">
<p>{{ author.bio }}</p>
<a href="{{ author.url }}">More by {{ author.name }}</a>
</div>
{% endif %}
5. Author Listing Page
Create authors.html
in the root directory:
---
layout: default
title: Our Authors
permalink: /authors/
---
<div class="authors-grid">
{% for author in site.authors %}
<div class="author-card">
<img src="{{ author.avatar }}" alt="{{ author.name }}">
<h3>{{ author.name }}</h3>
<p>{{ author.bio }}</p>
<a href="{{ author.url }}">View Profile</a>
</div>
{% endfor %}
</div>
Best Practices
- Use consistent avatar image sizes
- Write concise, engaging author bios
- Include professional social media links
- Keep author files well-organized
- Use meaningful tags and categories
Performance Considerations
- Optimize avatar images
- Limit the number of author details
- Use lazy loading for images
- Cache author pages
Troubleshooting
- Ensure unique author filenames
- Validate front matter syntax
- Check avatar image paths
- Verify collection configuration
Related Documentation
Version Compatibility
Tested with:
- Jekyll 4.x
- Liquid 4.x