mirror of
https://github.com/waynesutton/markdown-site.git
synced 2026-01-12 04:09:14 +00:00
fix: standardize URLs to www.markdown.fast to resolve RSS feed validation errors
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
7
TASK.md
7
TASK.md
@@ -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
|
||||
|
||||
18
changelog.md
18
changelog.md
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.";
|
||||
|
||||
10
files.md
10
files.md
@@ -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/`)
|
||||
|
||||
|
||||
@@ -72,6 +72,8 @@
|
||||
"/favicon.svg",
|
||||
"/robots.txt",
|
||||
"/sitemap.xml",
|
||||
"/rss.xml",
|
||||
"/rss-full.xml",
|
||||
"/llms.txt",
|
||||
"/openapi.yaml"
|
||||
]
|
||||
|
||||
BIN
public/images/1225-changelog.png
Normal file
BIN
public/images/1225-changelog.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 367 KiB |
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user