Configuration
WingTip uses a config.json file in your project root to control metadata, theming, GitHub integration, and social card generation.
This file is required if you use:
- A custom favicon
- Social card generation (
--regen-card) - SEO-friendly
base_url,og_image, ortwitter_handle - GitHub “Edit this page” links
Example config.json
{
"base_url": "https://yourusername.github.io/yourrepo",
"project_name": "WingTip",
"version": "0.1.0",
"description": "SEO-friendly Markdown-to-HTML static site generator for GitHub Pages",
"author": "Your Name",
"repo_url": "https://github.com/yourusername/yourrepo/",
"og_image": "social-card.png",
"favicon": "https://yourcdn.com/favicon.png",
"twitter_handle": "@yourhandle",
"github": {
"repo": "yourusername/yourrepo",
"branch": "main"
},
"social_card": {
"title": "WingTip",
"tagline": "Make your docs fly.",
"theme": "light",
"font": "Poppins",
"image": "social-card.png"
}
}
Top-Level Fields
| Key | Required | Description |
|---|---|---|
base_url |
✔︎ | Your GitHub Pages URL (used in canonical links, sitemap, etc) |
project_name |
✔︎ | Name of your project (shown in nav and footer) |
version |
✱ | Optional version string shown in footer |
description |
✔︎ | Used in meta tags, Open Graph, Twitter |
author |
✱ | Used in meta tags |
repo_url |
✱ | Used in footer GitHub link |
og_image |
✱ | Open Graph image (used unless generated) |
favicon |
✱ | PNG favicon shown in nav |
twitter_handle |
✱ | Shown in meta tags |
GitHub Integration
| Key | Required | Description |
|---|---|---|
github.repo |
✔︎ | e.g. username/repo |
github.branch |
✱ | Defaults to main |
Used to generate “Edit this page on GitHub” links.
Social Card Settings
| Key | Required | Description |
|---|---|---|
social_card.title |
✔︎ | Large text on card |
social_card.tagline |
✔︎ | Subtitle text |
social_card.theme |
✱ | "light" or "dark" |
social_card.font |
✱ | Any Google Font |
social_card.image |
✱ | Path to output PNG |
To generate the card, run:
python wingtip/main.py --regen-card
If no og_image is set, the PNG is also copied to ./social-card.png.
Font Notes
- WingTip uses the Google Fonts API to fetch and cache fonts
- If unavailable, it will fall back to
Arialor a system font - Fonts are stored in
wingtip/fonts/if downloaded
Fallback Behavior
| Scenario | Behavior |
|---|---|
config.json missing |
Falls back to hardcoded defaults (but no favicon/social card support) |
og_image unset |
Falls back to generated docs/site/social-card.png and copies to project root |
favicon unset |
Default browser icon will be used |
Theming Your Site
WingTip offers ways to customize the visual appearance of your documentation.
Basic Theme Overrides (theme.json)
You can easily customize global fonts and key colors for both light and dark modes by creating a theme.json file in your project’s root directory. This allows for quick branding changes without needing to write custom CSS.
For detailed instructions on how to structure theme.json, available customization options (fonts, colors for light/dark modes), and examples, please see the comprehensive Theming Guide.
Advanced CSS Customization
For more fine-grained control or styles not covered by theme.json, you can incorporate your own custom CSS. Refer to the Advanced CSS Customization section in the Theming Guide for details.