Site implementation documentation
Technical documentation for Ed Marsh’s static site implementation
Overview
This documentation describes the implementation of edmarsh.com, a static site built with Eleventy (11ty). The site serves as a portfolio showcasing technical writing, content strategy, and podcasting work.
Technology stack
- Static site generator: Eleventy (11ty)
- Template language: Nunjucks
- CSS framework: Tailwind CSS
- Content format: Markdown with YAML frontmatter
- Build tools: Node.js
Content architecture
Content types
The site implements three main content types:
-
Homepage (
layouts/index.njk
)- Introduction section
- Featured skills gallery
- Recent blog posts
- Recent podcast episodes
-
Grid pages (
layouts/grid.njk
)- Display collections of related content
- Used for skills, blog posts, and podcast episodes
- Implement card-based layouts for content previews
-
Details pages (
layouts/details.njk
)- Individual content pages
- Used for blog posts, podcast episodes, and skill descriptions
- Support related content sections
Content collections
Content is organized into primary collections:
skills
— Professional capabilities and servicesblog
— Posts about static site transformationpodcasts
— Content Content podcast episodes
Frontmatter metadata
Content files use YAML frontmatter for metadata:
---
title: "Page title"
description: "Page description"
FontAwesomeIcon: "solid fa-book"
featured: true
featuredOrder: 1
categories: ["category1", "category2"]
---
Field | Purpose |
---|---|
title |
Page title that displays on cards and pages |
description |
Short summary used in cards and metadata |
FontAwesomeIcon |
Icon displayed on cards and breadcrumbs |
featured |
Controls homepage display |
featuredOrder |
Sets display order for featured content |
categories |
Tags for filtering related content |
Implementation details
Project structure
.
├── _includes/
│ ├── css/
│ │ ├── base.css
│ │ └── tw.css
│ └── layouts/
│ ├── partials/
│ │ ├── card.njk
│ │ ├── footer.njk
│ │ ├── header.njk
│ │ └── macros.njk
│ ├── details.njk
│ ├── grid.njk
│ └── index.njk
├── content/
│ ├── skills/
│ ├── podcasts/
│ └── static-site-transformation/
└── eleventy.config.js
Build process
- Start the Tailwind CSS processor:
npx tailwindcss --watch -o _includes/css/tw.css
- Run Eleventy development server:
npx @11ty/eleventy --serve
The site will be available at localhost:8080
.
Key features
-
Featured content system
- Controls homepage displays through frontmatter
- Allows manual ordering of featured items
- Filters by collection type
-
Related content
- Automatically displays related presentations and tools
- Uses category matching for associations
- Implemented through collection filters
-
Responsive design
- Mobile-first approach
- Grid-based layouts
- Accessible navigation