A modern, community-driven website for PowerShell enthusiasts built with Hugo and Tailwind CSS. Features podcasts, summits, learning resources, and community engagement tools.
- Home - Hero section with community stats and latest content
- Podcast - Episode listings with RSS feed and subscription options
- Summit - Event information and registration
- Community - Real-time forum activity from Discourse
- Learning - Articles with advanced search and filtering
- Authors - Author profiles and article discovery
- Keyword Search - Full-text search across articles
- Author Filtering - Browse articles by author
- Category Filtering - Filter by topic/category
- Author Profiles - Dedicated pages for each author showcasing their articles
- RSS feeds for all sections
- Open Graph metadata for social sharing
- Mobile-responsive design
- Real-time community statistics from Discourse API
- Client-side filtering (instant search results)
- Hugo v0.128+
- Node.js (for npm scripts)
npm install
npm run devThis starts a local server at http://localhost:1313 with hot-reload enabled and draft posts visible.
npm run buildGenerates optimized site in public/ and docs/ directories with minified CSS/JS and garbage collection.
npm run preview├── content/
│ ├── articles/ # Learning articles with author/category metadata
│ ├── authors/ # Authors directory and taxonomy
│ ├── community/ # Community section
│ ├── learning/ # Learning resources section
│ ├── podcast/ # Podcast episodes
│ ├── summit/ # Summit information
│ └── _index.md # Home page
├── data/
│ └── community_stats.json # Real-time forum statistics
├── themes/powershell-community/
│ ├── layouts/
│ │ ├── index.html # Home page layout
│ │ ├── list.html # Podcast/section layouts
│ │ ├── _default/
│ │ │ ├── baseof.html # Base HTML template
│ │ │ ├── authors.html # Authors directory layout
│ │ │ ├── learning.html # Learning section with search
│ │ │ └── single.html # Single article layout
│ │ ├── taxonomy/
│ │ │ └── author.html # Individual author page layout
│ │ └── partials/
│ │ ├── header.html # Navigation header
│ │ └── footer.html # Site footer
│ └── static/ # Favicons and assets
├── hugo.yaml # Hugo configuration
└── package.json # npm scripts
Create a new file in content/articles/:
---
title: "Article Title"
description: "Short summary for SEO"
author: "Author Name"
date: 2025-01-14T10:00:00Z
categories: ["Category1", "Category2"]
tags: ["tag1", "tag2"]
draft: false
---
Your article content in Markdown...Author Field - The author name automatically creates a taxonomy entry. Visit /authors/author-name/ to see all articles by that author.
Create a file in content/podcast/:
---
title: "Episode Title"
description: "Episode description"
date: 2025-01-14T10:00:00Z
duration: "45:30"
podcast_url: "https://podbean-url.mp3"
---
Episode show notes...Edit hugo.yaml to update:
- Site title and description
- Navigation menu items
- Podcast settings (title, feed URL)
- Summit details (dates, location, registration URL)
- Social media links
No rebuild needed—config changes apply immediately.
The author taxonomy automatically:
- Creates author profile pages at
/authors/author-name/ - Groups articles by author
- Provides author directory at
/authors/ - Enables author filtering on Learning page
To add a new author: Simply include author: "Name" in article front matter.
- Search bar - Searches article titles and content
- Author dropdown - Filter to articles by specific author
- Category dropdown - Filter by topic
- Combined filters work together (AND logic)
- Search bar - Filter authors by name
- Click author cards to view their profile
- Lists all articles by that author
- Pagination support for large author catalogs
- Primary - Blue (
#0078D4,#00BCF2) - Podcast - Purple (
#667eea,#764ba2) - Learning - Green
- Summit - Purple gradient
Edit baseof.html CSS to customize.
All styling uses Tailwind CSS utility classes. Update baseof.html or create component-specific classes.
- Modify layouts in
themes/powershell-community/layouts/ - Hot-reload works in development mode
- Use Hugo template functions:
.Title,.Content,range .Pages,.Permalink
data/community_stats.json contains:
- Recent forum activities
- Total topics/posts/users
- Weekly activity metrics
- Last updated timestamp
Access in templates: {{ .Site.Data.community_stats.stats.total_topics }}
Site builds to both public/ and docs/ directories for GitHub Pages compatibility.
Automatically generated for:
- Home page:
/index.xml - Sections:
/[section]/index.xml - Taxonomies:
/authors/index.xml,/categories/index.xml,/tags/index.xml
Configure in hugo.yaml outputs section.
To contribute articles or improvements:
- Fork the repository
- Create a feature branch
- Add your content to
content/articles/with proper front matter - Test locally with
npm run dev - Submit a pull request
Use the -D flag: npm run dev (already configured)
This site uses Hugo v0.128+ pagination v2 syntax. Don't use {{ .Paginate }} without assignment.
Use Hugo functions instead of hardcoding:
.Permalink- Current page URL.RelRef "path/to/page"- Relative URL.Site.BaseURL- Site base URL
Check data/community_stats.json format and last_updated timestamp.
- Hugo: v0.128+ with Goldmark renderer
- Node.js: For npm scripts
- Tailwind CSS: v2.2.19 (via CDN)
- FontAwesome: v6.0.0 (via CDN)
- Alpine.js: v3.10.2 (via CDN)
[Specify your license here]
For issues or questions, visit:
- Forums: https://forums.powershell.org
- GitHub Issues: [Add your issues URL]
- Slack: https://aka.ms/psdiscord