Skip to content

Commit e12a633

Browse files
committed
Site Optimisation
1 parent 78ca238 commit e12a633

64 files changed

Lines changed: 1955 additions & 273 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎AGENTS.md‎

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# AGENTS.md
2+
3+
This file provides guidance to Codex (Codex.ai/code) when working with code in this repository.
4+
5+
## About This Site
6+
7+
Jekyll site for [example42.com](https://example42.com) — home of Example42's Puppet/DevOps consulting services and the **Abnormal DevOps Iterations (ADI)** podcast. Deployed via GitHub Pages.
8+
9+
Media production assets (audio, video, transcripts, cover images) live in the sibling OneDrive workspace: `~/Library/CloudStorage/OneDrive-Personal/ADI/`
10+
11+
## Local Development
12+
13+
```bash
14+
# Via Docker (recommended — no local Ruby/Jekyll install needed)
15+
bash bin/docker_jekyll.sh
16+
# Serves at http://127.0.0.1:4001 with live reload
17+
18+
# Or with local Ruby/Bundler
19+
bundle exec jekyll serve --config _config.yml,_config_dev.yml
20+
# Serves at http://127.0.0.1:4000
21+
```
22+
23+
## Site Architecture
24+
25+
| Path | Purpose |
26+
|------|---------|
27+
| `_episodes/` | ADI podcast episode pages (001.md, 002.md…) |
28+
| `_posts/` | Blog posts |
29+
| `_presentations/` | Tutorial/presentation pages |
30+
| `_layouts/` | Page layouts (Jekyll) |
31+
| `_includes/` | Reusable HTML partials |
32+
| `_config.yml` | Production config |
33+
| `_config_dev.yml` | Dev override — sets `url: http://127.0.0.1:4000` |
34+
| `AbnormalDevOpsIterations/img/` | Resized episode cover images |
35+
36+
## Episode Pages (`_episodes/NNN.md`)
37+
38+
Files are zero-padded: `001.md`, `022.md`. The layout `adi_humanintelligence` renders via `_layouts/adi_humanintelligence.html` → `_includes/adi_detail.html`.
39+
40+
### Required Frontmatter
41+
42+
```yaml
43+
---
44+
number: '22' # string, matches the episode number
45+
layout: 'adi_humanintelligence' # always this value
46+
title: 'Episode title'
47+
date: 'YYYYMMDD' # e.g. 20250305
48+
host: Alessandro Franceschi
49+
youtube: 'YouTubeVideoID'
50+
guest: # list (or bare string for single guest)
51+
- Guest Name
52+
tags:
53+
- Tag1
54+
- Tag2
55+
summary: "One-sentence summary, ~200 chars max, no names"
56+
quotes:
57+
- "Quote 1, ≤140 chars"
58+
- "Quote 2"
59+
- "Quote 3"
60+
- "Quote 4"
61+
---
62+
Episode body text here.
63+
```
64+
65+
`guest` can be a bare string (`guest: Name`) or a YAML list. The template iterates over it with ` for g in page.guest `.
66+
67+
### Adding a New Episode
68+
69+
1. Create `_episodes/NNN.md` with full frontmatter above
70+
2. Add cover image: run `bin/resize_pics.sh` to copy + resize from `ADI/Covers/ADI N.png` → `AbnormalDevOpsIterations/img/N.png`
71+
3. The episode URL will be `/AbnormalDevOpsIterations/NNN/`
72+
73+
## Tooling Scripts
74+
75+
| Script | What it does |
76+
|--------|-------------|
77+
| `bin/docker_jekyll.sh` | Serve site locally via Docker on port 4001 |
78+
| `bin/resize_pics.sh` | Resize ADI cover images and copy to site img dir |
79+
| `bin/get_quotes.py` | Generate `summary` + `quotes` frontmatter from a transcript file using OpenAI |
80+
81+
### `get_quotes.py` usage
82+
```bash
83+
export OPENAI_API_KEY=...
84+
python3 bin/get_quotes.py /path/to/transcript.txt
85+
# Outputs YAML — paste into episode frontmatter
86+
```
87+
88+
## Imported Claude Cowork project instructions
89+
90+
This is example42 website, about its OSS product, Puppet and DevOps consulting
88.3 KB
Loading
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
---
22
layout: adi
33
title: 'Abnormal DevOps Iterations'
4+
description: 'Abnormal DevOps Iterations interviews the people behind DevOps, Puppet, open source, infrastructure operations, automation, and AI.'
5+
image: /img/background-podcast.jpg
46
subTitle: A podcast about DevOps, Puppet, and automation with a focus on the people that make it all work.
57
---

‎_config.yml‎

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,18 @@
55
url: https://example42.com
66
title: Puppet Training, Consulting and Development. IT Automation and DevOps.
77
email: info@example42.com
8-
author: Example42
9-
description: "Example42 delivers Puppet training, consulting and development services. It provides consulting on automation and DevOps practices"
8+
author: Alessandro Franceschi
9+
description: "Puppet consulting, training, support, and development from Alessandro Franceschi, a Puppet expert working with production infrastructure since 2007."
10+
11+
organization:
12+
name: example42
13+
legal_name: Lab42 Srl
14+
logo: /img/logo.png
15+
16+
founder:
17+
name: Alessandro Franceschi
18+
url: /wwwww/
19+
job_title: Puppet and DevOps Consultant
1020

1121
# ----------------------- #
1222
# Jekyll & Plugins #
@@ -40,4 +50,3 @@ collections:
4050
presentations:
4151
output: true
4252
permalink: /Tutorials/:title/
43-

‎_episodes/018.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ tags:
1515
- Open Source
1616
- Infrastructure as Code
1717
- AI
18+
summary: "James Shubin, Kris Buytaert, and Adam Jacob discuss configuration management, infrastructure automation, open source, DevOps, and AI at CfgMgmtCamp 2025."
1819
---
1920
A live discussion and round table at CFGMGMTCamp 2025 about the past promises and the present and future challenges of Configuration Management and Infrastructures Automation, with some of the people who are working on the field and making impossible things possible.

‎_episodes/019.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ tags:
1212
- DevOps
1313
- Puppet
1414
- Infrastructure as Code
15+
summary: "Alessandro Franceschi examines Puppet's present and future after the fork, covering the challenges, priorities, and opportunities ahead for the ecosystem."
1516
---
1617
Alessandro Franceschi's presentation about Puppet's present and future at CFGMGMTCAMP 2025 in Ghent.
1718
An overview of the challenges in front of Puppet, after the fork, and some suggestions on what to keep on doing, what to improve and what to implement in the future.

‎_includes/adi_detail.html‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@
66
<a href="{{ site.url }}/AbnormalDevOpsIterations/"><img class="img-responsive" src="{{ site.url }}/img/pic-adi.png" alt="Abnormal DevOps Iterations"></a>
77
</div>
88
<div class="col-lg-2">
9-
<h1>ADI</br>{{ page.number }}</h1>
9+
<p class="episode-number">ADI<br>{{ page.number }}</p>
1010
</div>
1111
<div class="col-lg-8">
12-
<h1>{% for g in page.guest %}{{ g }} {% endfor %} - {{ page.title }}</h2>
12+
<h1>{% for g in page.guest %}{{ g }} {% endfor %} - {{ page.title }}</h1>
1313
</div>
1414
</div>
1515
<div class="row">
1616
<div class="col-lg-5">
1717
<img class="img-responsive float-image" src="{{ site.url }}/AbnormalDevOpsIterations/img/{{ page.number }}.png" alt="ADI {{ page.number }} - {{ page.guest }}: {{ page.title }}">
1818
{{ content }}
19+
<p class="post-meta">Hosted by <a href="{{ site.url }}{{ site.founder.url }}">{{ page.host }}</a></p>
1920
<div class="tags">{% for tag in page.tags %}#{{ tag }} {% endfor %}</div>
2021
</div>
2122
<div class="col-lg-7">
@@ -26,5 +27,5 @@ <h1>{% for g in page.guest %}{{ g }} {% endfor %} - {{ page.title }}</h2>
2627
</div>
2728
</div>
2829
</div>
29-
</div>
30+
</div>
3031
</section>

‎_includes/adi_list.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<div class="content-section-a">
33
<div class="container">
44
<div class="row">
5-
<h1>Human Intelligence</h1>
6-
<h1>Interviews with outstanding DevOps and IT personalities</h1>
5+
<h2 class="section-page-title">Human Intelligence</h2>
6+
<p class="section-page-summary">Interviews with outstanding DevOps and IT personalities</p>
77

88
{% assign sorted_posts = site.episodes | sort: "path" | reverse %}
99
{% for post in sorted_posts %}

‎_includes/adi_splash.html‎

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
11
<section id="splash">
2-
<div class="adi-header">
2+
<div class="adi-header page-hero">
33
<div class="container">
44
<div class="row">
55
<div class="col-lg-4">
6-
<a href="{{ site.url }}/AbnormalDevOpsIterations/"><img class="img-responsive" src="{{ site.url }}/img/adi-white-nowords.png" alt="Abnormal DevOps Iterations"></a>
6+
<a href="{{ site.url }}/AbnormalDevOpsIterations/"><img class="img-responsive page-hero-art podcast-art" src="{{ site.url }}/img/adi-white-nowords.png" alt="Abnormal DevOps Iterations"></a>
77
</div>
8-
<div class="col-lg-4">
8+
<div class="col-lg-5">
99
<div class="intro-message">
10+
<p class="eyebrow">The people behind the systems</p>
1011
<h1>Abnormal DevOps Iterations</h1>
11-
<h2>a podcast about Puppet, DevOps, IT operations, AI and everything</h2>
12+
<h2>A podcast about Puppet, DevOps, IT operations, AI, and everything around them.</h2>
1213
</div>
1314
</div>
14-
<div class="col-lg-4">
15-
<div class="intro-message">
16-
<h3>Video:</h3>
17-
<a href="https://youtube.com/@AbnormalDevOpsIterations" class="btn btn-default btn-lg" target="_blank"><i class="fa fa-youtube fa-fw"></i> <span class="network-name">YouTube</span></a>
18-
<h3>Audio:</h3>
19-
<a href="https://open.spotify.com/show/4viAGMM539m0A230xqKhqD?si=bd0d41f805054313" class="btn btn-default btn-lg" target="_blank"><i class="fa fa-spotify fa-fw"></i> <span class="network-name">Spotify</span></a></br></br>
20-
<a href="https://music.amazon.com/podcasts/fbb3a98e-1877-4e66-8b65-23388d0e867e/abnormal-devops-iterations" class="btn btn-default btn-lg" target="_blank"><i class="fa fa-music fa-fw"></i> <span class="network-name">Amazon Music</span></a>
15+
<div class="col-lg-3">
16+
<div class="podcast-links">
17+
<a href="https://youtube.com/@AbnormalDevOpsIterations" class="btn btn-default" target="_blank" rel="noopener"><i class="fa fa-youtube fa-fw"></i> <span class="network-name">YouTube</span></a>
18+
<a href="https://open.spotify.com/show/4viAGMM539m0A230xqKhqD?si=bd0d41f805054313" class="btn btn-default" target="_blank" rel="noopener"><i class="fa fa-spotify fa-fw"></i> <span class="network-name">Spotify</span></a>
19+
<a href="https://music.amazon.com/podcasts/fbb3a98e-1877-4e66-8b65-23388d0e867e/abnormal-devops-iterations" class="btn btn-default" target="_blank" rel="noopener"><i class="fa fa-music fa-fw"></i> <span class="network-name">Amazon Music</span></a>
2120
</div>
2221
</div>
2322
</div>
2423
</div>
2524
</div>
2625
</section>
27-

‎_includes/blog_detail.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</div>
99
<div class="col-lg-2">
1010
<h2><a href="{{ site.url }}/blog/">Blog</a></h2>
11-
Posted: {{ page.date | date: "%Y-%m-%d" }}
11+
<div class="post-meta">By <a href="{{ site.url }}{{ site.founder.url }}">{{ site.founder.name }}</a><br>{{ page.date | date: "%Y-%m-%d" }}</div>
1212
</div>
1313
<div class="col-lg-8">
1414
<h1>{{ page.title }}</h1>

0 commit comments

Comments
 (0)