Today I Learned & Then I Learned Implementation
Today I Learned & Then I Learned Features
Your digital garden now has two new ways to view and track your learning journey!
🎯 Quick Overview
| Feature | URL | Purpose |
|---|---|---|
| Today I Learned | /til |
List all changelog entries from today |
| Then I Learned | /til-archive |
Calendar view of all changelog entries with modal for busy days |
📅 Today I Learned (/til)
Shows what you learned and changed today in an easy-to-scan list format.
Display Format
Changes made on December 2, 2025:
- Note Title - Changelog Entry Title
- Another Note - Another Entry Title
How It Works
- The plugin scans all changelog files for entries with
date_updatedmatching today’s date - Entries are displayed in the order they appear in the changelog files
- Perfect for daily reflection on what you’ve been working on
📊 Then I Learned (/til-archive) - Calendar View
A beautiful calendar showing your learning history across time.
Key Features
1. Calendar Display
- Current month calendar with entries for each day
- Dates with entries highlighted in light purple (#efefff)
- Dates without entries shown in light gray (#fafafa)
2. Entry Previews
- Up to 3 entries shown per day
- Format:
Note Title - Entry Title - Small font to fit multiple entries in the calendar cell
3. View More Modal
- When a day has 4 or more entries, a “View More…” button appears
- Shows count: “View More… (2 more)” when 2 additional entries exist
- Opens a modal when clicked displaying all entries for that day
4. Modal Interactions
Users can close the modal by:
- ✕ Clicking the X button in the top right corner
- Clicking outside the modal (semi-transparent background)
- Pressing the Escape key
- All interactions are intuitive and user-friendly
🔧 How to Use
Step 1: Create a Changelog File
Create a file in _changelogs/your-note-slug.md:
---
layout: changelog
title: Changelog - Your Note Title
note_title: Your Note Title
note_url: /your-note-slug/
permalink: /changelogs/your-note-slug/
---
<div class="changelog-entry" style="margin: 2em 0; padding: 1.5em; background: #f9f9f9; border-left: 4px solid #8b88e6; border-radius: 4px;">
<h3 style="margin-top: 0;">First Change</h3>
<p style="color: #666; font-size: 0.9em; margin: 0.5em 0;">
Created: December 1, 2025
| Updated: December 2, 2025
</p>
<div style="margin-top: 1em;">
<div style="margin: 0.8em 0; padding: 0.8em; background: white; border-radius: 3px;">
<strong style="color: #8b88e6;">:</strong>
</div>
</div>
</div>
Step 2: Add Changelog Link to Note
Update your note’s front matter:
---
title: Your Note Title
changelog_url: /changelogs/your-note-slug/
---
Step 3: Add Changelog Entries
Use the changelog_entry include for each change:
<div class="changelog-entry" style="margin: 2em 0; padding: 1.5em; background: #f9f9f9; border-left: 4px solid #8b88e6; border-radius: 4px;">
<h3 style="margin-top: 0;">What you changed</h3>
<p style="color: #666; font-size: 0.9em; margin: 0.5em 0;">
Created: December 1, 2025
| Updated: December 2, 2025
</p>
<div style="margin-top: 1em;">
<div style="margin: 0.8em 0; padding: 0.8em; background: white; border-radius: 3px;">
<strong style="color: #8b88e6;">:</strong>
</div>
</div>
</div>
Important: Date Format
All dates must be in ISO 8601 format: YYYY-MM-DD
- ✓ Correct:
2025-12-02 - ✗ Wrong:
12-02-2025orDecember 2, 2025
📊 Behind the Scenes
Plugin: changelog_entries_extractor.rb
This Jekyll plugin automatically:
-
Scans all files in
_changelogs/directory - Extracts changelog entry data from Liquid templates
- Parses dates from each entry
-
Groups entries by date (using
date_updated) -
Stores data in
site.datafor layouts to use
Data Available
-
site.data.changelog_entries- All entries sorted by date (newest first) -
site.data.changelog_entries_by_date- Entries grouped by date -
site.data.today_changelog_entries- Only today’s entries
🎨 Styling
Colors
- Purple accent:
#8b88e6 - Light purple background:
#efefff - Light gray background:
#fafafa
Responsive Design
- Calendar is responsive and works on mobile
- Modal adjusts to screen size
- Touch-friendly on mobile devices
📝 Example
See these examples in your garden:
- Example Note with Changelog - Shows changelog linking
- Your first seed - Updated with changelog link
- Your first note changelog - Live changelog example
These already have entries dated today (2025-12-02) so you can see them in action on the Today I Learned page!
🧪 Testing
Test Today I Learned
- Add a changelog entry with today’s date
- Visit
/til - You should see your new entry listed
Test Then I Learned
- Visit
/til-archive - Look for the current month calendar
- Click any “View More…” button to test the modal
- Press Escape to close the modal
❓ FAQ
Q: How often does the data update? A: Every time you rebuild your Jekyll site. When developing locally, the plugin runs on each file save (with watch mode).
Q: Can I view past months? A: Currently shows the current month. Future enhancement could add month navigation.
Q: What happens if I have duplicate entries? A: Each unique entry in the changelog files is processed separately. Duplicates in source files will appear as duplicates.
Q: Can entries span multiple dates?
A: Entries are grouped by date_updated only. Each entry appears once on its update date.
Q: How do I export/backup changelog data?
A: All data is stored in your markdown files in _changelogs/. Regular git backups will preserve everything.
🚀 Advanced Tips
-
Sort by Creation vs Update: Currently sorts by
date_updated. To sort bydate_published, modify the plugin. -
Custom Date Ranges: The plugin stores all dates; you could create additional layouts showing specific date ranges.
-
Export to JSON: The plugin could be extended to generate a JSON export of all entries.
-
Weekly Digest: Could create a layout showing entries from the past week.
📚 Related Docs
- Changelog System Guide - Detailed changelog setup
- Today I Learned & Then I Learned Guide - Complete feature documentation
This line appears after every note.