updates: site url to markdown.fast, png og image and site name

This commit is contained in:
Wayne Sutton
2025-12-21 22:24:12 -08:00
parent 5a7824b2b8
commit d623aed598
9 changed files with 46 additions and 33 deletions

View File

@@ -6,7 +6,7 @@ import { rssFeed, rssFullFeed } from "./rss";
const http = httpRouter();
// Site configuration
const SITE_URL = process.env.SITE_URL || "https://markdowncms.netlify.app";
const SITE_URL = process.env.SITE_URL || "https://markdown.fast";
const SITE_NAME = "markdown sync framework";
// RSS feed endpoint (descriptions only)
@@ -72,7 +72,8 @@ http.route({
const response = {
site: SITE_NAME,
url: SITE_URL,
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.",
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.",
posts: posts.map((post) => ({
title: post.title,
slug: post.slug,
@@ -194,7 +195,8 @@ http.route({
const response = {
site: SITE_NAME,
url: SITE_URL,
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.",
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.",
exportedAt: new Date().toISOString(),
totalPosts: fullPosts.length,
posts: fullPosts,
@@ -230,7 +232,7 @@ function generateMetaHtml(content: {
image?: string;
type?: "post" | "page";
}): string {
const siteUrl = process.env.SITE_URL || "https://markdowncms.netlify.app";
const siteUrl = process.env.SITE_URL || "https://markdown.fast";
const siteName = "markdown sync framework";
const defaultImage = `${siteUrl}/images/og-default.svg`;
const canonicalUrl = `${siteUrl}/${content.slug}`;
@@ -266,8 +268,12 @@ function generateMetaHtml(content: {
<meta property="og:image" content="${ogImage}">
<meta property="og:url" content="${canonicalUrl}">
<meta property="og:type" content="${ogType}">
<meta property="og:site_name" content="${siteName}">${content.date ? `
<meta property="article:published_time" content="${content.date}">` : ""}
<meta property="og:site_name" content="${siteName}">${
content.date
? `
<meta property="article:published_time" content="${content.date}">`
: ""
}
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
@@ -284,8 +290,12 @@ function generateMetaHtml(content: {
</head>
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width: 680px; margin: 50px auto; padding: 20px; color: #111;">
<h1 style="font-size: 32px; margin-bottom: 16px;">${safeTitle}</h1>
<p style="color: #666; margin-bottom: 24px;">${safeDescription}</p>${content.date ? `
<p style="font-size: 14px; color: #999;">${content.date}${content.readTime ? ` · ${content.readTime}` : ""}</p>` : ""}
<p style="color: #666; margin-bottom: 24px;">${safeDescription}</p>${
content.date
? `
<p style="font-size: 14px; color: #999;">${content.date}${content.readTime ? ` · ${content.readTime}` : ""}</p>`
: ""
}
<p style="margin-top: 24px;"><small>Redirecting to full ${contentType}...</small></p>
</body>
</html>`;

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://markdowncms.netlify.app";
const SITE_URL = process.env.SITE_URL || "https://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

@@ -10,7 +10,7 @@
name="description"
content="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."
/>
<meta name="author" content="markdown sync framework" />
<meta name="author" content="markdown sync publishing framework" />
<meta
name="keywords"
content="markdown site, Convex, Netlify, React, TypeScript, open source, real-time, sync"
@@ -21,31 +21,34 @@
<meta name="theme-color" content="#faf8f5" />
<!-- Open Graph -->
<meta property="og:title" content="markdown sync framework" />
<meta property="og:title" content="markdown sync publishing framework" />
<meta
property="og:description"
content="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."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://markdowncms.netlify.app/" />
<meta property="og:site_name" content="markdown sync framework" />
<meta property="og:url" content="https://www.markdown.fast/" />
<meta
property="og:site_name"
content="markdown sync publishing framework"
/>
<meta
property="og:image"
content="https://markdowncms.netlify.app/images/og-default.svg"
content="https://www.markdown.fast/images/og-default.png"
/>
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta property="twitter:domain" content="markdowncms.netlify.app" />
<meta property="twitter:url" content="https://markdowncms.netlify.app/" />
<meta name="twitter:title" content="markdown sync framework" />
<meta property="twitter:domain" content="www.markdown.fast" />
<meta property="twitter:url" content="https://www.markdown.fast/" />
<meta name="twitter:title" content="markdown sync publishing framework" />
<meta
name="twitter:description"
content="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."
/>
<meta
name="twitter:image"
content="https://markdowncms.netlify.app/images/og-default.svg"
content="https://www.markdown.fast/images/og-default.png"
/>
<!-- RSS Feeds -->
@@ -71,16 +74,16 @@
"@context": "https://schema.org",
"@type": "WebSite",
"name": "markdown sync framework",
"url": "https://markdowncms.netlify.app",
"url": "https://www.markdown.fast",
"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.",
"author": {
"@type": "Organization",
"name": "markdown sync framework",
"url": "https://markdowncms.netlify.app"
"url": "https://www.markdown.fast"
},
"potentialAction": {
"@type": "SearchAction",
"target": "https://markdowncms.netlify.app/?q={search_term_string}",
"target": "https://www.markdown.fast/?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -5,7 +5,7 @@
# Site Information
- Name: markdown sync framework
- URL: https://markdowncms.netlify.app
- URL: https://markdown.fast
- 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.
- Topics: Markdown, Convex, React, TypeScript, Netlify, Open Source, AI, LLM, AEO, GEO

View File

@@ -9,7 +9,7 @@ info:
url: https://github.com/waynesutton/markdown-site
servers:
- url: https://markdowncms.netlify.app
- url: https://markdown.fast
description: Production server
paths:
@@ -31,7 +31,7 @@ paths:
example: markdown sync framework
url:
type: string
example: https://markdowncms.netlify.app
example: https://markdown.fast
posts:
type: array
items:
@@ -164,10 +164,10 @@ components:
example: [tutorial, markdown]
url:
type: string
example: https://markdowncms.netlify.app/how-to-build-blog
example: https://markdown.fast/how-to-build-blog
markdownUrl:
type: string
example: https://markdowncms.netlify.app/api/post?slug=how-to-build-blog
example: https://markdown.fast/api/post?slug=how-to-build-blog
Post:
type: object

View File

@@ -5,7 +5,7 @@ User-agent: *
Allow: /
# Sitemaps
Sitemap: https://markdowncms.netlify.app/sitemap.xml
Sitemap: https://markdown.fast/sitemap.xml
# AI and LLM crawlers
User-agent: GPTBot

View File

@@ -107,15 +107,15 @@ export const siteConfig: SiteConfig = {
},
{
src: "/images/logos/markdown.svg",
href: "https://markdowncms.netlify.app/docs",
href: "https://markdown.fast/docs",
},
{
src: "/images/logos/react.svg",
href: "https://markdowncms.netlify.app/setup-guide",
href: "https://markdown.fast/setup-guide",
},
{
src: "/images/logos/sample-logo-5.svg",
href: "https://markdowncms.netlify.app/setup-guide",
href: "https://markdown.fast/setup-guide",
},
],
position: "above-footer",

View File

@@ -8,7 +8,7 @@ import { ArrowLeft, Link as LinkIcon, Twitter, Rss } from "lucide-react";
import { useState, useEffect } from "react";
// Site configuration
const SITE_URL = "https://markdowncms.netlify.app";
const SITE_URL = "https://markdown.fast";
const SITE_NAME = "markdown sync framework";
const DEFAULT_OG_IMAGE = "/images/og-default.svg";
@@ -25,7 +25,7 @@ export default function Post() {
useEffect(() => {
if (!location.hash) return;
if (page === undefined && post === undefined) return;
// Small delay to ensure content is rendered
const timer = setTimeout(() => {
const id = location.hash.slice(1);
@@ -34,7 +34,7 @@ export default function Post() {
element.scrollIntoView({ behavior: "smooth" });
}
}, 100);
return () => clearTimeout(timer);
}, [location.hash, page, post]);