mirror of
https://github.com/waynesutton/markdown-site.git
synced 2026-01-12 04:09:14 +00:00
updates: site url to markdown.fast, png og image and site name
This commit is contained in:
@@ -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>`;
|
||||
|
||||
@@ -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.";
|
||||
|
||||
27
index.html
27
index.html
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
BIN
public/images/og-default.png
Normal file
BIN
public/images/og-default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user