Markdown Converter
Agent skill for markdown-converter
This is a Gatsby theme monorepo that powers www.chrisvogt.me - a personal website and blog with a social dashboard home page. The project uses Yarn workspaces to separate the theme code from the content.
Sign in to like and favorite skills
This is a Gatsby theme monorepo that powers www.chrisvogt.me - a personal website and blog with a social dashboard home page. The project uses Yarn workspaces to separate the theme code from the content.
Current Goal: Decouple all personal information and www.chrisvogt.me content from the
/theme directory to make the theme more generic and reusable.
theme/: The Gatsby theme package (gatsby-theme-chronogrove)www.chrisvogt.me/: The actual website content and configurationmetrics.chrisvogt.me/: Backend API for widgets, uses Firebase, Firestore and scheduled Firebase Functions to sync and cache third-party data.node_version and .nvmrc)packageManager in package.json)develop:https script)yarn workspace [package] [command] for package-specific operationsyarn develop - Start development server with HTTPSyarn test - Run all testsyarn test:watch - Run tests in watch modeyarn test:coverage - Run tests with coverage reportyarn format - Format code with Prettieryarn lint - Lint code with ESLintThe theme includes a sophisticated widget system for the home page dashboard:
metrics.chrisvogt.me (backed by chrisvogt/metrics GitHub repo)fetchDataSource.js handles API calls with deduplicationThe following environment variables may be required for full functionality:
GATSBY_METRICS_API_URL - Metrics API endpoint (defaults to metrics.chrisvogt.me)GATSBY_GITHUB_TOKEN - GitHub API token for enhanced rate limitsGATSBY_SPOTIFY_CLIENT_ID - Spotify API client IDGATSBY_INSTAGRAM_ACCESS_TOKEN - Instagram API access tokenGATSBY_GOODREADS_API_KEY - Goodreads API keyGATSBY_STEAM_API_KEY - Steam API keyThe following files contain hardcoded personal information that needs to be made configurable:
theme/src/components/h-card.js - Personal details, email, locationtheme/src/components/home-header-content.js - Name, personal descriptiontheme/src/data/social-profiles.json - Social media links and usernamestheme/gatsby-config.js - Default site metadata with personal infotheme/src/templates/home.js - SEO metadata with personal detailstheme/src/components/footer/footer.js - GitHub source linkscripts/postinstall-banner.js - Personal branding (root level)index.js - Personal branding (root level)www.chrisvogt.me/ directory - All content should remain as-is__mocks__/ directorystatic/ directoryWhen adding new widgets:
src/components/widgets/[name]/When decoupling personal information:
The theme should support configuration through: