fix: logo path url location for homepage

This commit is contained in:
Wayne Sutton
2025-12-20 20:56:07 -08:00
parent 66a2c4f4d2
commit f1f8c2417a
11 changed files with 167 additions and 72 deletions

10
public/images/logo.svg Normal file
View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" role="img" aria-label="m logo">
<rect x="32" y="32" width="448" height="448" rx="96" ry="96" fill="#000000"/>
<text x="256" y="330"
text-anchor="middle"
font-family="ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, 'Apple Color Emoji','Segoe UI Emoji'"
font-size="300"
font-weight="800"
fill="#ffffff"
letter-spacing="-8">m</text>
</svg>

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -1,17 +1,17 @@
# About This Markdown Site
# About This Markdown Framework
> How this open source site works with Convex for real-time sync and Netlify for deployment.
> How this open source framework works with Convex for real-time sync and Netlify for deployment.
---
Type: post
Date: 2025-01-16
Reading time: 4 min read
Tags: convex, netlify, open-source, markdown
Tags: convex, netlify, open-source, markdown, ai, llm
---
# About This Markdown Site
# About This Markdown Framework
An open-source markdown sync site for developers and AI agents. Publish from the terminal with `npm run sync`. Write locally, sync instantly with real-time updates. Powered by Convex and Netlify.
An open-source publishing framework for AI agents and developers. Write markdown, sync from the terminal. Your content is instantly available to browsers, LLMs, and AI agents. Built on Convex and Netlify.
## How It Works

View File

@@ -5,7 +5,7 @@ Type: page
Date: 2025-12-21
---
An open-source markdown sync site for developers and AI agents. Publish from the terminal with `npm run sync`. Write locally, sync instantly with real-time updates. Powered by Convex and Netlify.
An open-source publishing framework for AI agents and developers. Write markdown, sync from the terminal. Your content is instantly available to browsers, LLMs, and AI agents. Built on Convex and Netlify.
## What makes it a dev sync system
@@ -54,6 +54,7 @@ It's a hybrid: developer workflow for publishing + real-time delivery like a dyn
- Full text search with Command+K shortcut
- Featured section with list/card view toggle and excerpts
- Logo gallery with clickable links and marquee scroll
- GitHub contributions graph with year navigation
- Dedicated blog page with configurable navigation order
- Real-time analytics at `/stats`
- RSS feeds and sitemap for SEO

View File

@@ -7,6 +7,29 @@ Date: 2025-12-21
All notable changes to this project.
## v1.17.0
Released December 20, 2025
**GitHub contributions graph**
- GitHub activity graph on homepage with theme-aware colors
- Year navigation with Phosphor CaretLeft/CaretRight icons
- Click graph to visit GitHub profile
- Configurable via `siteConfig.gitHubContributions`
- Uses public API (no GitHub token required)
Theme-specific contribution colors:
- Dark theme: GitHub green on dark background
- Light theme: Standard GitHub green
- Tan theme: Warm brown tones
- Cloud theme: Gray-blue tones
New component: `src/components/GitHubContributions.tsx`
Set `enabled: false` in siteConfig to disable.
## v1.15.2
Released December 20, 2025
@@ -356,7 +379,7 @@ Released December 14, 2025
**Initial release**
- Markdown blog posts with frontmatter parsing
- Markdown posts with frontmatter parsing
- Static pages support (About, Projects, Contact)
- Four theme options: Dark, Light, Tan (default), Cloud
- Syntax highlighting for code blocks

View File

@@ -5,7 +5,7 @@ Type: page
Date: 2025-12-21
---
Reference documentation for setting up, customizing, and deploying this markdown site.
Reference documentation for setting up, customizing, and deploying this markdown framework.
**How publishing works:** Write posts in markdown, run `npm run sync` for development or `npm run sync:prod` for production, and they appear on your live site immediately. No rebuild or redeploy needed. Convex handles real-time data sync, so connected browsers update automatically.
@@ -155,14 +155,15 @@ When you fork this project, update these files with your site information:
| File | What to update |
|------|----------------|
| `src/config/siteConfig.ts` | Site name, title, intro, bio, blog page, logo gallery |
| `convex/http.ts` | `SITE_URL`, `SITE_NAME` (API responses, sitemap) |
| `src/config/siteConfig.ts` | Site name, title, intro, bio, blog page, logo gallery, GitHub contributions |
| `src/pages/Home.tsx` | Intro paragraph text (hardcoded JSX) |
| `convex/http.ts` | `SITE_URL`, `SITE_NAME`, description strings (3 locations) |
| `convex/rss.ts` | `SITE_URL`, `SITE_TITLE`, `SITE_DESCRIPTION` (RSS feeds) |
| `src/pages/Post.tsx` | `SITE_URL`, `SITE_NAME`, `DEFAULT_OG_IMAGE` (OG tags) |
| `index.html` | Title, meta description, OG tags, JSON-LD |
| `public/llms.txt` | Site name, URL, description |
| `public/robots.txt` | Sitemap URL |
| `public/openapi.yaml` | Server URL, site name in examples |
| `public/llms.txt` | Site name, URL, description, topics |
| `public/robots.txt` | Sitemap URL and header comment |
| `public/openapi.yaml` | API title, server URL, site name in examples |
| `public/.well-known/ai-plugin.json` | Site name, descriptions |
### Site title and description metadata
@@ -173,13 +174,16 @@ These files contain the main site description text. Update them with your own ta
|------|----------------|
| `index.html` | meta description, og:description, twitter:description, JSON-LD |
| `README.md` | Main description at top of file |
| `src/pages/Home.tsx` | intro and bio text in siteConfig |
| `convex/http.ts` | description field in API responses (2 locations) |
| `convex/rss.ts` | SITE_DESCRIPTION constant |
| `public/llms.txt` | Header quote and Description field |
| `src/config/siteConfig.ts` | name, title, and bio fields |
| `src/pages/Home.tsx` | Intro paragraph (hardcoded JSX with links) |
| `convex/http.ts` | SITE_NAME constant and description strings (3 locations) |
| `convex/rss.ts` | SITE_TITLE and SITE_DESCRIPTION constants |
| `public/llms.txt` | Header quote, Name, and Description fields |
| `public/openapi.yaml` | API title and example site name |
| `AGENTS.md` | Project overview section |
| `content/blog/about-this-blog.md` | Opening paragraph |
| `content/blog/about-this-blog.md` | Title, description, excerpt, and opening paragraph |
| `content/pages/about.md` | excerpt field and opening paragraph |
| `content/pages/docs.md` | Opening description paragraph |
**Backend constants** (`convex/http.ts` and `convex/rss.ts`):
@@ -286,6 +290,30 @@ const siteConfig = {
};
```
### GitHub contributions graph
Display your GitHub contribution activity on the homepage. Configure in `siteConfig`:
```typescript
gitHubContributions: {
enabled: true, // Set to false to hide
username: "yourusername", // Your GitHub username
showYearNavigation: true, // Show arrows to navigate between years
linkToProfile: true, // Click graph to open GitHub profile
title: "GitHub Activity", // Optional title above the graph
},
```
| Option | Description |
| ------ | ----------- |
| `enabled` | `true` to show, `false` to hide |
| `username` | Your GitHub username |
| `showYearNavigation` | Show prev/next year navigation |
| `linkToProfile` | Click graph to visit GitHub profile |
| `title` | Text above graph (`undefined` to hide) |
Theme-aware colors match each site theme. Uses public API (no GitHub token required).
### Logo gallery
The homepage includes a logo gallery that can scroll infinitely or display as a static grid. Each logo can link to a URL.

View File

@@ -1,6 +1,6 @@
# How to Publish a Blog Post
> A quick guide to writing and publishing markdown blog posts using Cursor after your blog is set up.
> A quick guide to writing and publishing markdown posts using Cursor after your framework is set up.
---
Type: post

View File

@@ -1,6 +1,6 @@
# New features: search, featured section, and logo gallery
> Three updates that make your markdown site more useful: Command+K search, frontmatter-controlled featured items, and a scrolling logo gallery.
> Three updates that make your markdown framework more useful: Command+K search, frontmatter-controlled featured items, and a scrolling logo gallery.
---
Type: post

View File

@@ -5,7 +5,7 @@ Type: page
Date: 2025-12-21
---
This markdown site is open source and built to be extended. Here is what ships out of the box.
This markdown framework is open source and built to be extended. Here is what ships out of the box.
## Core Features

View File

@@ -1,6 +1,6 @@
# Setup Guide - Fork and Deploy Your Own Markdown Site
# Setup Guide - Fork and Deploy Your Own Markdown Framework
> Step-by-step guide to fork this markdown sync site, set up Convex backend, and deploy to Netlify in under 10 minutes.
> Step-by-step guide to fork this markdown sync framework, set up Convex backend, and deploy to Netlify in under 10 minutes.
---
Type: post
@@ -9,15 +9,15 @@ Reading time: 8 min read
Tags: convex, netlify, tutorial, deployment
---
# Fork and Deploy Your Own Markdown Blog
# Fork and Deploy Your Own Markdown Framework
This guide walks you through forking [this markdown site](https://github.com/waynesutton/markdown-site), setting up your Convex backend, and deploying to Netlify. The entire process takes about 10 minutes.
This guide walks you through forking [this markdown framework](https://github.com/waynesutton/markdown-site), setting up your Convex backend, and deploying to Netlify. The entire process takes about 10 minutes.
**How publishing works:** Once deployed, you write posts in markdown, run `npm run sync` for development or `npm run sync:prod` for production, and they appear on your live site immediately. No rebuild or redeploy needed. Convex handles real-time data sync, so all connected browsers update automatically.
## Table of Contents
- [Fork and Deploy Your Own Markdown Blog](#fork-and-deploy-your-own-markdown-blog)
- [Fork and Deploy Your Own Markdown Framework](#fork-and-deploy-your-own-markdown-framework)
- [Table of Contents](#table-of-contents)
- [Prerequisites](#prerequisites)
- [Step 1: Fork the Repository](#step-1-fork-the-repository)
@@ -39,18 +39,22 @@ This guide walks you through forking [this markdown site](https://github.com/way
- [Sync After Adding Posts](#sync-after-adding-posts)
- [Environment Files](#environment-files)
- [When to Sync vs Deploy](#when-to-sync-vs-deploy)
- [Customizing Your Blog](#customizing-your-blog)
- [Customizing Your Framework](#customizing-your-framework)
- [Files to Update When Forking](#files-to-update-when-forking)
- [Site title and description metadata](#site-title-and-description-metadata)
- [Update Backend Configuration](#update-backend-configuration)
- [Change the Favicon](#change-the-favicon)
- [Change the Site Logo](#change-the-site-logo)
- [Change the Default Open Graph Image](#change-the-default-open-graph-image)
- [Update Site Configuration](#update-site-configuration)
- [Featured Section](#featured-section)
- [GitHub Contributions Graph](#github-contributions-graph)
- [Logo Gallery](#logo-gallery)
- [Blog page](#blog-page)
- [Scroll-to-top button](#scroll-to-top-button)
- [Change the Default Theme](#change-the-default-theme)
- [Change the Font](#change-the-font)
- [Change Font Sizes](#change-font-sizes)
- [Add Static Pages (Optional)](#add-static-pages-optional)
- [Update SEO Meta Tags](#update-seo-meta-tags)
- [Update llms.txt and robots.txt](#update-llmstxt-and-robotstxt)
@@ -67,6 +71,7 @@ This guide walks you through forking [this markdown site](https://github.com/way
- [RSS/Sitemap not working](#rsssitemap-not-working)
- [Build failures on Netlify](#build-failures-on-netlify)
- [Project Structure](#project-structure)
- [Write Page](#write-page)
- [Next Steps](#next-steps)
## Prerequisites
@@ -398,23 +403,24 @@ Both files are gitignored. Each developer creates their own local environment fi
**Featured items** can now be controlled via markdown frontmatter. Add `featured: true` and `featuredOrder: 1` to any post or page, then run `npm run sync`.
## Customizing Your Blog
## Customizing Your Framework
### Files to Update When Forking
When you fork this project, update these files with your site information:
| File | What to update |
| ----------------------------------- | ----------------------------------------------------------- |
| `src/config/siteConfig.ts` | Site name, title, intro, bio, blog page, logo gallery |
| `convex/http.ts` | `SITE_URL`, `SITE_NAME` (API responses, sitemap) |
| `convex/rss.ts` | `SITE_URL`, `SITE_TITLE`, `SITE_DESCRIPTION` (RSS feeds) |
| `src/pages/Post.tsx` | `SITE_URL`, `SITE_NAME`, `DEFAULT_OG_IMAGE` (OG tags) |
| `index.html` | Title, meta description, OG tags, JSON-LD |
| `public/llms.txt` | Site name, URL, description |
| `public/robots.txt` | Sitemap URL |
| `public/openapi.yaml` | Server URL, site name in examples |
| `public/.well-known/ai-plugin.json` | Site name, descriptions |
| File | What to update |
| ----------------------------------- | --------------------------------------------------------------------------- |
| `src/config/siteConfig.ts` | Site name, title, intro, bio, blog page, logo gallery, GitHub contributions |
| `src/pages/Home.tsx` | Intro paragraph text (hardcoded JSX) |
| `convex/http.ts` | `SITE_URL`, `SITE_NAME`, description strings (3 locations) |
| `convex/rss.ts` | `SITE_URL`, `SITE_TITLE`, `SITE_DESCRIPTION` (RSS feeds) |
| `src/pages/Post.tsx` | `SITE_URL`, `SITE_NAME`, `DEFAULT_OG_IMAGE` (OG tags) |
| `index.html` | Title, meta description, OG tags, JSON-LD |
| `public/llms.txt` | Site name, URL, description, topics |
| `public/robots.txt` | Sitemap URL and header comment |
| `public/openapi.yaml` | API title, server URL, site name in examples |
| `public/.well-known/ai-plugin.json` | Site name, descriptions |
### Site title and description metadata
@@ -424,13 +430,16 @@ These files contain the main site description text. Update them with your own ta
| --------------------------------- | -------------------------------------------------------------- |
| `index.html` | meta description, og:description, twitter:description, JSON-LD |
| `README.md` | Main description at top of file |
| `src/pages/Home.tsx` | intro and bio text in siteConfig |
| `convex/http.ts` | description field in API responses (2 locations) |
| `convex/rss.ts` | SITE_DESCRIPTION constant |
| `public/llms.txt` | Header quote and Description field |
| `src/config/siteConfig.ts` | name, title, and bio fields |
| `src/pages/Home.tsx` | Intro paragraph (hardcoded JSX with links) |
| `convex/http.ts` | SITE_NAME constant and description strings (3 locations) |
| `convex/rss.ts` | SITE_TITLE and SITE_DESCRIPTION constants |
| `public/llms.txt` | Header quote, Name, and Description fields |
| `public/openapi.yaml` | API title and example site name |
| `AGENTS.md` | Project overview section |
| `content/blog/about-this-blog.md` | Opening paragraph |
| `content/blog/about-this-blog.md` | Title, description, excerpt, and opening paragraph |
| `content/pages/about.md` | excerpt field and opening paragraph |
| `content/pages/docs.md` | Opening description paragraph |
### Update Backend Configuration
@@ -510,10 +519,10 @@ export default {
// Blog page configuration
blogPage: {
enabled: true, // Enable /blog route
showInNav: true, // Show in navigation
title: "Blog", // Nav link and page title
order: 0, // Nav order (lower = first)
enabled: true, // Enable /blog route
showInNav: true, // Show in navigation
title: "Blog", // Nav link and page title
order: 0, // Nav order (lower = first)
},
displayOnHomepage: true, // Show posts on homepage
@@ -581,6 +590,30 @@ Use `featuredOrder` to control display order. Lower numbers appear first. Posts
Users can toggle between list and card views using the icon button next to "Get started:". To change the default view, set `featuredViewMode: "cards"` in siteConfig.
### GitHub Contributions Graph
Display your GitHub contribution activity on the homepage. Configure in `siteConfig`:
```typescript
gitHubContributions: {
enabled: true, // Set to false to hide
username: "yourusername", // Your GitHub username
showYearNavigation: true, // Show arrows to navigate between years
linkToProfile: true, // Click graph to open GitHub profile
title: "GitHub Activity", // Optional title above the graph
},
```
| Option | Description |
| -------------------- | --------------------------------------------- |
| `enabled` | `true` to show, `false` to hide |
| `username` | Your GitHub username |
| `showYearNavigation` | Show prev/next year buttons |
| `linkToProfile` | Click graph to visit GitHub profile |
| `title` | Text above graph (set to `undefined` to hide) |
The graph displays with theme-aware colors that match each site theme (dark, light, tan, cloud). Uses the public `github-contributions-api.jogruber.de` API (no GitHub token required).
### Logo Gallery
The homepage includes a logo gallery that can scroll infinitely or display as a static grid. Customize or disable it in siteConfig:
@@ -625,14 +658,14 @@ Delete the sample files from `public/images/logos/` and clear the images array,
**Configuration options:**
| Option | Description |
| ----------- | ---------------------------------------------------- |
| `enabled` | `true` to show, `false` to hide |
| `images` | Array of logo objects with `src` and optional `href` |
| `position` | `'above-footer'` or `'below-featured'` |
| `speed` | Seconds for one scroll cycle (lower = faster) |
| `title` | Text above gallery (set to `undefined` to hide) |
| `scrolling` | `true` for infinite scroll, `false` for static grid |
| Option | Description |
| ----------- | ---------------------------------------------------------- |
| `enabled` | `true` to show, `false` to hide |
| `images` | Array of logo objects with `src` and optional `href` |
| `position` | `'above-footer'` or `'below-featured'` |
| `speed` | Seconds for one scroll cycle (lower = faster) |
| `title` | Text above gallery (set to `undefined` to hide) |
| `scrolling` | `true` for infinite scroll, `false` for static grid |
| `maxItems` | Max logos to show when `scrolling` is `false` (default: 4) |
**Display modes:**
@@ -656,13 +689,13 @@ blogPage: {
displayOnHomepage: true, // Show posts on homepage
```
| Option | Description |
| ------ | ----------- |
| `enabled` | Enable the `/blog` route |
| `showInNav` | Show Blog link in navigation |
| `title` | Text for nav link and page heading |
| `order` | Position in navigation (lower = first) |
| `displayOnHomepage` | Show post list on homepage |
| Option | Description |
| ------------------- | -------------------------------------- |
| `enabled` | Enable the `/blog` route |
| `showInNav` | Show Blog link in navigation |
| `title` | Text for nav link and page heading |
| `order` | Position in navigation (lower = first) |
| `displayOnHomepage` | Show post list on homepage |
**Display options:**
@@ -954,7 +987,7 @@ See [netlify-deploy-fix.md](https://github.com/waynesutton/markdown-site/blob/ma
```
markdown-site/
├── content/
│ ├── blog/ # Markdown blog posts
│ ├── blog/ # Markdown posts
│ └── pages/ # Static pages (About, Docs, etc.)
├── convex/ # Convex backend functions
│ ├── http.ts # HTTP endpoints

View File

@@ -1,6 +1,6 @@
# Using Images in Blog Posts
> Learn how to add header images, inline images, and Open Graph images to your markdown blog posts.
> Learn how to add header images, inline images, and Open Graph images to your markdown posts.
---
Type: post

View File

@@ -89,23 +89,23 @@ export const siteConfig: SiteConfig = {
images: [
{
src: "/images/logos/convex-wordmark-black.svg",
href: "https://markdowncms.netlify.app/",
},
{
src: "/images/logos/netlify.svg",
href: "/about#the-real-time-twist",
},
{
src: "/images/logos/netlify.svg",
href: "https://www.netlify.com/",
},
{
src: "/images/logos/markdown.svg",
href: "https://markdowncms.netlify.app/",
href: "https://markdowncms.netlify.app/docs",
},
{
src: "/images/logos/react.svg",
href: "https://markdowncms.netlify.app/",
href: "https://markdowncms.netlify.app/setup-guide",
},
{
src: "/images/logos/sample-logo-5.svg",
href: "https://markdowncms.netlify.app/",
href: "https://markdowncms.netlify.app/setup-guide",
},
],
position: "above-footer",