fix: standardize URLs to www.markdown.fast to resolve RSS feed validation errors

This commit is contained in:
Wayne Sutton
2025-12-24 23:45:58 -08:00
parent 03ff3eb844
commit 27847327fd
16 changed files with 102 additions and 36 deletions

View File

@@ -19,10 +19,10 @@ Your content is instantly available to browsers, LLMs, and AI agents.. Write mar
- **Site Name**: markdown
- **Site Title**: markdown sync framework
- **Site URL**: https://markdown.fast
- **Total Posts**: 11
- **Total Posts**: 12
- **Total Pages**: 4
- **Latest Post**: 2025-12-21
- **Last Updated**: 2025-12-25T06:55:43.145Z
- **Latest Post**: 2025-12-25
- **Last Updated**: 2025-12-25T07:17:44.742Z
## Tech stack

View File

@@ -8,10 +8,15 @@
## Current Status
v1.28.0 ready. Added discovery files sync automation with new sync commands.
v1.28.1 ready. Fixed RSS feed validation errors by standardizing all URLs to www.markdown.fast.
## Completed
- [x] RSS feed validation errors fixed by standardizing URLs to www.markdown.fast
- [x] Updated index.html meta tags (og:url, og:image, twitter:domain, twitter:url, twitter:image, JSON-LD)
- [x] Updated convex/rss.ts and convex/http.ts SITE_URL constants
- [x] Updated public/robots.txt, public/openapi.yaml, and public/llms.txt with www URLs
- [x] RSS exclusions confirmed in netlify.toml for botMeta edge function
- [x] Discovery files sync script (sync-discovery-files.ts)
- [x] Automated updates for AGENTS.md and llms.txt with current app data
- [x] New npm scripts: sync:discovery, sync:discovery:prod, sync:all, sync:all:prod

View File

@@ -4,6 +4,24 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [1.28.1] - 2025-12-25
### Fixed
- RSS feed validation errors resolved
- Standardized all URLs to `www.markdown.fast` across the application
- Fixed `atom:link rel="self"` attribute mismatch that caused RSS validation failures
- Updated `index.html` meta tags (og:url, og:image, twitter:domain, twitter:url, twitter:image, JSON-LD)
- Updated `convex/rss.ts` and `convex/http.ts` SITE_URL constants to use www.markdown.fast
- Updated `public/robots.txt`, `public/openapi.yaml`, and `public/llms.txt` with www URLs
- RSS exclusions already present in `netlify.toml` for botMeta edge function
### Technical
- All URL references now consistently use `https://www.markdown.fast`
- RSS feed `rel="self"` attribute now matches actual feed URL
- Build passes successfully with URL standardization
## [1.28.0] - 2025-12-25
### Added

View File

@@ -8,7 +8,7 @@ tags: ["configuration", "setup", "fork", "tutorial"]
readTime: "4 min read"
featured: true
layout: "sidebar"
featuredOrder: 0
featuredOrder: 3
authorName: "Markdown"
authorImage: "/images/authors/markdown.png"
image: "/images/forkconfig.png"

View File

@@ -8,6 +8,7 @@ tags: ["updates", "community", "ai"]
readTime: "2 min read"
featured: true
featuredOrder: 0
image: /images/1225-changelog.png
excerpt: "Thank you for the stars, forks, and feedback. More AI-first publishing features are coming."
authorName: "Wayne Sutton"
authorImage: "/images/authors/markdown.png"
@@ -29,6 +30,4 @@ Recent additions include tag pages, related posts, and improved AI service integ
## Keep building
Write markdown. Sync from the terminal. Your content appears instantly. That's the goal.
Happy holidays.

View File

@@ -6,7 +6,7 @@ slug: "how-to-publish"
published: true
tags: ["tutorial", "markdown", "cursor", "IDE", "publishing"]
readTime: "3 min read"
featured: true
featured: false
featuredOrder: 3
authorName: "Markdown"
authorImage: "/images/authors/markdown.png"

View File

@@ -8,6 +8,21 @@ layout: "sidebar"
All notable changes to this project.
## v1.28.1
Released December 25, 2025
**RSS feed validation fixes**
- Standardized all URLs to `www.markdown.fast` across the application
- Fixed `atom:link rel="self"` attribute mismatch that caused RSS validation failures
- Updated `index.html` meta tags (og:url, og:image, twitter:domain, twitter:url, twitter:image, JSON-LD)
- Updated `convex/rss.ts` and `convex/http.ts` SITE_URL constants to use www.markdown.fast
- Updated `public/robots.txt`, `public/openapi.yaml`, and `public/llms.txt` with www URLs
- RSS exclusions already present in `netlify.toml` for botMeta edge function
All URL references now consistently use `https://www.markdown.fast`. RSS feed `rel="self"` attribute now matches actual feed URL. Build passes successfully.
## v1.28.0
Released December 25, 2025

View File

@@ -6,7 +6,7 @@ import { rssFeed, rssFullFeed } from "./rss";
const http = httpRouter();
// Site configuration
const SITE_URL = process.env.SITE_URL || "https://markdown.fast";
const SITE_URL = process.env.SITE_URL || "https://www.markdown.fast";
const SITE_NAME = "markdown sync framework";
// RSS feed endpoint (descriptions only)

View File

@@ -2,7 +2,7 @@ import { httpAction } from "./_generated/server";
import { api } from "./_generated/api";
// Site configuration for RSS feed
const SITE_URL = process.env.SITE_URL || "https://markdown.fast";
const SITE_URL = process.env.SITE_URL || "https://www.markdown.fast";
const SITE_TITLE = "markdown sync framework";
const SITE_DESCRIPTION =
"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.";

View File

@@ -99,8 +99,8 @@ A brief description of each file in the codebase.
| `search.ts` | Full text search queries across posts and pages |
| `stats.ts` | Real-time stats with aggregate component for O(log n) counts, page view recording, session heartbeat |
| `crons.ts` | Cron job for stale session cleanup |
| `http.ts` | HTTP endpoints: sitemap, API (update SITE_URL/SITE_NAME when forking) |
| `rss.ts` | RSS feed generation (update SITE_URL/SITE_TITLE when forking) |
| `http.ts` | HTTP endpoints: sitemap, API (update SITE_URL/SITE_NAME when forking, uses www.markdown.fast) |
| `rss.ts` | RSS feed generation (update SITE_URL/SITE_TITLE when forking, uses www.markdown.fast) |
| `convex.config.ts` | Convex app configuration with aggregate component registrations (pageViewsByPath, totalPageViews, uniqueVisitors) |
| `tsconfig.json` | Convex TypeScript configuration |
@@ -211,9 +211,9 @@ Frontmatter is the YAML metadata at the top of each markdown file. Here is how i
| -------------- | ---------------------------------------------- |
| `favicon.svg` | Site favicon |
| `_redirects` | SPA redirect rules for static files |
| `robots.txt` | Crawler rules for search engines and AI bots (update sitemap URL when forking) |
| `llms.txt` | AI agent discovery file (update site name/URL when forking) |
| `openapi.yaml` | OpenAPI 3.0 specification (update API title when forking) |
| `robots.txt` | Crawler rules for search engines and AI bots (update sitemap URL when forking, uses www.markdown.fast) |
| `llms.txt` | AI agent discovery file (update site name/URL when forking, uses www.markdown.fast) |
| `openapi.yaml` | OpenAPI 3.0 specification (update API title when forking, uses www.markdown.fast) |
### Raw Markdown Files (`public/raw/`)

View File

@@ -72,6 +72,8 @@
"/favicon.svg",
"/robots.txt",
"/sitemap.xml",
"/rss.xml",
"/rss-full.xml",
"/llms.txt",
"/openapi.yaml"
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

View File

@@ -1,16 +1,16 @@
# llms.txt - Information for AI assistants and LLMs
# Learn more: https://llmstxt.org/
# Last updated: 2025-12-25T06:55:43.147Z
# Last updated: 2025-12-25T07:17:44.744Z
> Your content is instantly available to browsers, LLMs, and AI agents.
# Site Information
- Name: markdown
- URL: https://markdown.fast
- URL: https://www.markdown.fast
- Description: Your content is instantly available to browsers, LLMs, and AI agents. Write markdown, sync from the terminal. Your content is instantly available to browsers, LLMs, and AI agents. Built on Convex and Netlify.
- Topics: Markdown, Convex, React, TypeScript, Netlify, Open Source, AI, LLM, AEO, GEO
- Total Posts: 11
- Latest Post: 2025-12-21
- Total Posts: 12
- Latest Post: 2025-12-25
- GitHub: https://github.com/waynesutton/markdown-site
# API Endpoints

View File

@@ -7,6 +7,30 @@ Date: 2025-12-25
All notable changes to this project.
## v1.28.0
Released December 25, 2025
**Discovery files sync automation**
- New discovery files sync script
- Automatically updates AGENTS.md and llms.txt with current app data
- Reads from siteConfig.ts and queries Convex for post/page counts
- Preserves existing AGENTS.md instructional content
- Regenerates llms.txt with current site information
- New npm sync commands
- `npm run sync:discovery` - Update discovery files (development)
- `npm run sync:discovery:prod` - Update discovery files (production)
- `npm run sync:all` - Sync content + discovery files together (development)
- `npm run sync:all:prod` - Sync content + discovery files together (production)
- Fork configuration support for gitHubRepo
- Added gitHubRepoConfig to fork-config.json.example
- Updated configure-fork.ts with backward compatibility for legacy fields
Updated files: `scripts/sync-discovery-files.ts`, `package.json`, `fork-config.json.example`, `scripts/configure-fork.ts`, `FORK_CONFIG.md`, `files.md`
Documentation updated: `README.md`, `docs.md`, `setup-guide.md`, `about.md`, `about-this-blog.md`
## v1.27.0
Released December 24, 2025

View File

@@ -12,11 +12,13 @@ Reference documentation for setting up, customizing, and deploying this markdown
**Sync commands:**
**Development:**
- `npm run sync` - Sync markdown content
- `npm run sync:discovery` - Update discovery files (AGENTS.md, llms.txt)
- `npm run sync:all` - Sync content + discovery files together
**Production:**
- `npm run sync:prod` - Sync markdown content
- `npm run sync:discovery:prod` - Update discovery files
- `npm run sync:all:prod` - Sync content + discovery files together
@@ -226,6 +228,7 @@ To add a custom frontmatter field, update these files:
### Syncing content
**Development:**
```bash
npm run sync # Sync markdown content
npm run sync:discovery # Update discovery files (AGENTS.md, llms.txt)
@@ -233,6 +236,7 @@ npm run sync:all # Sync content + discovery files together
```
**Production:**
```bash
npm run sync:prod # Sync markdown content
npm run sync:discovery:prod # Update discovery files
@@ -240,6 +244,7 @@ npm run sync:all:prod # Sync content + discovery files together
```
**Sync everything together:**
```bash
npm run sync:all # Development: content + discovery
npm run sync:all:prod # Production: content + discovery
@@ -247,17 +252,17 @@ npm run sync:all:prod # Production: content + discovery
### When to sync vs deploy
| What you're changing | Command | Timing |
| -------------------------------- | -------------------------- | -------------------- |
| Blog posts in `content/blog/` | `npm run sync` | Instant (no rebuild) |
| Pages in `content/pages/` | `npm run sync` | Instant (no rebuild) |
| Featured items (via frontmatter) | `npm run sync` | Instant (no rebuild) |
| What you're changing | Command | Timing |
| -------------------------------- | -------------------------- | ----------------------- |
| Blog posts in `content/blog/` | `npm run sync` | Instant (no rebuild) |
| Pages in `content/pages/` | `npm run sync` | Instant (no rebuild) |
| Featured items (via frontmatter) | `npm run sync` | Instant (no rebuild) |
| Site config changes | `npm run sync:discovery` | Updates discovery files |
| Import external URL | `npm run import` then sync | Instant (no rebuild) |
| Images in `public/images/` | Git commit + push | Requires rebuild |
| `siteConfig` in `Home.tsx` | Redeploy | Requires rebuild |
| Logo gallery config | Redeploy | Requires rebuild |
| React components/styles | Redeploy | Requires rebuild |
| Import external URL | `npm run import` then sync | Instant (no rebuild) |
| Images in `public/images/` | Git commit + push | Requires rebuild |
| `siteConfig` in `Home.tsx` | Redeploy | Requires rebuild |
| Logo gallery config | Redeploy | Requires rebuild |
| React components/styles | Redeploy | Requires rebuild |
**Markdown content** syncs instantly to Convex. **Images and source code** require pushing to GitHub for Netlify to rebuild.
@@ -713,12 +718,12 @@ Each post and page includes a share dropdown with options:
**Git push required for AI links:** The "Open in ChatGPT," "Open in Claude," and "Open in Perplexity" options use GitHub raw URLs. For these to work, you must push your content to GitHub with `git push`. The `npm run sync` command syncs content to Convex for your live site, but AI services fetch directly from GitHub.
| What you want | Command needed |
| ------------------------------------ | ------------------------------ |
| Content visible on your site | `npm run sync` or `sync:prod` |
| What you want | Command needed |
| ------------------------------------ | ------------------------------------------------- |
| Content visible on your site | `npm run sync` or `sync:prod` |
| Discovery files updated | `npm run sync:discovery` or `sync:discovery:prod` |
| AI links (ChatGPT/Claude/Perplexity) | `git push` to GitHub |
| Both content and discovery | `npm run sync:all` or `sync:all:prod` |
| AI links (ChatGPT/Claude/Perplexity) | `git push` to GitHub |
| Both content and discovery | `npm run sync:all` or `sync:all:prod` |
**Download as SKILL.md:** Downloads the content formatted as an Anthropic Agent Skills file with metadata, triggers, and instructions sections.

View File

@@ -25,6 +25,4 @@ Recent additions include tag pages, related posts, and improved AI service integ
## Keep building
Write markdown. Sync from the terminal. Your content appears instantly. That's the goal.
Happy holidays.