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:


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


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.