Spaces:
Running
Running
hf.co to huggingface.co
Browse files- MCP-SERVER.md +13 -13
- app/api/ask/route.ts +1 -1
- app/api/auth/login-url/route.ts +1 -1
- app/api/mcp/route.ts +2 -2
- app/api/me/projects/route.ts +1 -1
- app/layout.tsx +3 -3
- app/sitemap.ts +1 -1
- components/iframe-detector/index.tsx +1 -1
- components/iframe-detector/modal.tsx +2 -2
- lib/inject-badge.ts +1 -1
- lib/seo.ts +5 -5
- lib/utils.ts +0 -4
- middleware.ts +1 -1
- public/deepsite-badge.js +2 -2
- public/robots.txt +1 -1
MCP-SERVER.md
CHANGED
|
@@ -32,7 +32,7 @@ Add to your Claude Desktop configuration file:
|
|
| 32 |
{
|
| 33 |
"mcpServers": {
|
| 34 |
"deepsite": {
|
| 35 |
-
"url": "https://
|
| 36 |
"transport": {
|
| 37 |
"type": "sse"
|
| 38 |
},
|
|
@@ -92,7 +92,7 @@ npm run build
|
|
| 92 |
"args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
|
| 93 |
"env": {
|
| 94 |
"HF_TOKEN": "hf_your_token_here",
|
| 95 |
-
"DEEPSITE_API_URL": "https://
|
| 96 |
}
|
| 97 |
}
|
| 98 |
}
|
|
@@ -109,7 +109,7 @@ npm run build
|
|
| 109 |
"args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
|
| 110 |
"env": {
|
| 111 |
"DEEPSITE_AUTH_COOKIE": "your-session-cookie",
|
| 112 |
-
"DEEPSITE_API_URL": "https://
|
| 113 |
}
|
| 114 |
}
|
| 115 |
}
|
|
@@ -118,7 +118,7 @@ npm run build
|
|
| 118 |
|
| 119 |
**Getting Your Session Cookie (Method B only):**
|
| 120 |
|
| 121 |
-
1. Log in to https://
|
| 122 |
2. Open Developer Tools (F12)
|
| 123 |
3. Go to Application → Cookies
|
| 124 |
4. Copy the session cookie value
|
|
@@ -154,7 +154,7 @@ Creates a new DeepSite project with HTML/CSS/JS files.
|
|
| 154 |
{
|
| 155 |
"success": true,
|
| 156 |
"message": "Project created successfully!",
|
| 157 |
-
"projectUrl": "https://
|
| 158 |
"spaceUrl": "https://huggingface.co/spaces/username/project-name",
|
| 159 |
"liveUrl": "https://username-project-name.hf.space",
|
| 160 |
"spaceId": "username/project-name",
|
|
@@ -204,7 +204,7 @@ You can also call the HTTP endpoint directly:
|
|
| 204 |
### Using Authorization Header (Recommended)
|
| 205 |
|
| 206 |
```bash
|
| 207 |
-
curl -X POST https://
|
| 208 |
-H "Content-Type: application/json" \
|
| 209 |
-H "Authorization: Bearer hf_your_token_here" \
|
| 210 |
-d '{
|
|
@@ -229,7 +229,7 @@ curl -X POST https://hf.co/deepsite/api/mcp \
|
|
| 229 |
### Using Token Parameter (Fallback)
|
| 230 |
|
| 231 |
```bash
|
| 232 |
-
curl -X POST https://
|
| 233 |
-H "Content-Type: application/json" \
|
| 234 |
-d '{
|
| 235 |
"jsonrpc": "2.0",
|
|
@@ -254,7 +254,7 @@ curl -X POST https://hf.co/deepsite/api/mcp \
|
|
| 254 |
### List Available Tools
|
| 255 |
|
| 256 |
```bash
|
| 257 |
-
curl -X POST https://
|
| 258 |
-H "Content-Type: application/json" \
|
| 259 |
-d '{
|
| 260 |
"jsonrpc": "2.0",
|
|
@@ -278,7 +278,7 @@ cd mcp-server
|
|
| 278 |
### Test HTTP Server
|
| 279 |
|
| 280 |
```bash
|
| 281 |
-
curl -X POST https://
|
| 282 |
-H "Content-Type: application/json" \
|
| 283 |
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
|
| 284 |
```
|
|
@@ -297,7 +297,7 @@ Edit your Claude Desktop config file and add the `headers` section:
|
|
| 297 |
{
|
| 298 |
"mcpServers": {
|
| 299 |
"deepsite": {
|
| 300 |
-
"url": "https://
|
| 301 |
"transport": {
|
| 302 |
"type": "sse"
|
| 303 |
},
|
|
@@ -377,7 +377,7 @@ Claude Desktop
|
|
| 377 |
↓
|
| 378 |
(HTTP Request)
|
| 379 |
↓
|
| 380 |
-
|
| 381 |
↓
|
| 382 |
Hugging Face API (with user's token)
|
| 383 |
↓
|
|
@@ -396,7 +396,7 @@ Local MCP Server
|
|
| 396 |
↓
|
| 397 |
(HTTP to DeepSite API)
|
| 398 |
↓
|
| 399 |
-
|
| 400 |
↓
|
| 401 |
New Space Created
|
| 402 |
```
|
|
@@ -422,7 +422,7 @@ MIT
|
|
| 422 |
## Resources
|
| 423 |
|
| 424 |
- [Model Context Protocol Spec](https://modelcontextprotocol.io/)
|
| 425 |
-
- [DeepSite Documentation](https://
|
| 426 |
- [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces)
|
| 427 |
- [Claude Desktop](https://claude.ai/desktop)
|
| 428 |
|
|
|
|
| 32 |
{
|
| 33 |
"mcpServers": {
|
| 34 |
"deepsite": {
|
| 35 |
+
"url": "https://huggingface.co/deepsite/api/mcp",
|
| 36 |
"transport": {
|
| 37 |
"type": "sse"
|
| 38 |
},
|
|
|
|
| 92 |
"args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
|
| 93 |
"env": {
|
| 94 |
"HF_TOKEN": "hf_your_token_here",
|
| 95 |
+
"DEEPSITE_API_URL": "https://huggingface.co/deepsite"
|
| 96 |
}
|
| 97 |
}
|
| 98 |
}
|
|
|
|
| 109 |
"args": ["/absolute/path/to/deepsite-v3/mcp-server/dist/index.js"],
|
| 110 |
"env": {
|
| 111 |
"DEEPSITE_AUTH_COOKIE": "your-session-cookie",
|
| 112 |
+
"DEEPSITE_API_URL": "https://huggingface.co/deepsite"
|
| 113 |
}
|
| 114 |
}
|
| 115 |
}
|
|
|
|
| 118 |
|
| 119 |
**Getting Your Session Cookie (Method B only):**
|
| 120 |
|
| 121 |
+
1. Log in to https://huggingface.co/deepsite
|
| 122 |
2. Open Developer Tools (F12)
|
| 123 |
3. Go to Application → Cookies
|
| 124 |
4. Copy the session cookie value
|
|
|
|
| 154 |
{
|
| 155 |
"success": true,
|
| 156 |
"message": "Project created successfully!",
|
| 157 |
+
"projectUrl": "https://huggingface.co/deepsite/username/project-name",
|
| 158 |
"spaceUrl": "https://huggingface.co/spaces/username/project-name",
|
| 159 |
"liveUrl": "https://username-project-name.hf.space",
|
| 160 |
"spaceId": "username/project-name",
|
|
|
|
| 204 |
### Using Authorization Header (Recommended)
|
| 205 |
|
| 206 |
```bash
|
| 207 |
+
curl -X POST https://huggingface.co/deepsite/api/mcp \
|
| 208 |
-H "Content-Type: application/json" \
|
| 209 |
-H "Authorization: Bearer hf_your_token_here" \
|
| 210 |
-d '{
|
|
|
|
| 229 |
### Using Token Parameter (Fallback)
|
| 230 |
|
| 231 |
```bash
|
| 232 |
+
curl -X POST https://huggingface.co/deepsite/api/mcp \
|
| 233 |
-H "Content-Type: application/json" \
|
| 234 |
-d '{
|
| 235 |
"jsonrpc": "2.0",
|
|
|
|
| 254 |
### List Available Tools
|
| 255 |
|
| 256 |
```bash
|
| 257 |
+
curl -X POST https://huggingface.co/deepsite/api/mcp \
|
| 258 |
-H "Content-Type: application/json" \
|
| 259 |
-d '{
|
| 260 |
"jsonrpc": "2.0",
|
|
|
|
| 278 |
### Test HTTP Server
|
| 279 |
|
| 280 |
```bash
|
| 281 |
+
curl -X POST https://huggingface.co/deepsite/api/mcp \
|
| 282 |
-H "Content-Type: application/json" \
|
| 283 |
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
|
| 284 |
```
|
|
|
|
| 297 |
{
|
| 298 |
"mcpServers": {
|
| 299 |
"deepsite": {
|
| 300 |
+
"url": "https://huggingface.co/deepsite/api/mcp",
|
| 301 |
"transport": {
|
| 302 |
"type": "sse"
|
| 303 |
},
|
|
|
|
| 377 |
↓
|
| 378 |
(HTTP Request)
|
| 379 |
↓
|
| 380 |
+
huggingface.co/deepsite/api/mcp
|
| 381 |
↓
|
| 382 |
Hugging Face API (with user's token)
|
| 383 |
↓
|
|
|
|
| 396 |
↓
|
| 397 |
(HTTP to DeepSite API)
|
| 398 |
↓
|
| 399 |
+
huggingface.co/deepsite/api/me/projects
|
| 400 |
↓
|
| 401 |
New Space Created
|
| 402 |
```
|
|
|
|
| 422 |
## Resources
|
| 423 |
|
| 424 |
- [Model Context Protocol Spec](https://modelcontextprotocol.io/)
|
| 425 |
+
- [DeepSite Documentation](https://huggingface.co/deepsite)
|
| 426 |
- [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces)
|
| 427 |
- [Claude Desktop](https://claude.ai/desktop)
|
| 428 |
|
app/api/ask/route.ts
CHANGED
|
@@ -584,7 +584,7 @@ tags:
|
|
| 584 |
---
|
| 585 |
|
| 586 |
# Welcome to your new DeepSite project!
|
| 587 |
-
This project was created with [DeepSite](https://
|
| 588 |
`;
|
| 589 |
files.push(new File([README], "README.md", { type: "text/markdown" }));
|
| 590 |
}
|
|
|
|
| 584 |
---
|
| 585 |
|
| 586 |
# Welcome to your new DeepSite project!
|
| 587 |
+
This project was created with [DeepSite](https://huggingface.co/deepsite).
|
| 588 |
`;
|
| 589 |
files.push(new File([README], "README.md", { type: "text/markdown" }));
|
| 590 |
}
|
app/api/auth/login-url/route.ts
CHANGED
|
@@ -9,7 +9,7 @@ export async function GET(req: NextRequest) {
|
|
| 9 |
} else if (host.includes("hf.space") || host.includes("/spaces/enzostvs")) {
|
| 10 |
url = "enzostvs-deepsite.hf.space";
|
| 11 |
} else {
|
| 12 |
-
url = "
|
| 13 |
}
|
| 14 |
|
| 15 |
const redirect_uri =
|
|
|
|
| 9 |
} else if (host.includes("hf.space") || host.includes("/spaces/enzostvs")) {
|
| 10 |
url = "enzostvs-deepsite.hf.space";
|
| 11 |
} else {
|
| 12 |
+
url = "huggingface.co/deepsite";
|
| 13 |
}
|
| 14 |
|
| 15 |
const redirect_uri =
|
app/api/mcp/route.ts
CHANGED
|
@@ -273,7 +273,7 @@ tags:
|
|
| 273 |
---
|
| 274 |
|
| 275 |
# Welcome to your new DeepSite project!
|
| 276 |
-
This project was created with [DeepSite](https://
|
| 277 |
`;
|
| 278 |
|
| 279 |
const files: File[] = [];
|
|
@@ -333,7 +333,7 @@ This project was created with [DeepSite](https://hf.co/deepsite).
|
|
| 333 |
accessToken: hf_token,
|
| 334 |
});
|
| 335 |
|
| 336 |
-
const projectUrl = `https://
|
| 337 |
const spaceUrl = `https://huggingface.co/spaces/${path}`;
|
| 338 |
const liveUrl = `https://${username}-${formattedTitle}.hf.space`;
|
| 339 |
|
|
|
|
| 273 |
---
|
| 274 |
|
| 275 |
# Welcome to your new DeepSite project!
|
| 276 |
+
This project was created with [DeepSite](https://huggingface.co/deepsite).
|
| 277 |
`;
|
| 278 |
|
| 279 |
const files: File[] = [];
|
|
|
|
| 333 |
accessToken: hf_token,
|
| 334 |
});
|
| 335 |
|
| 336 |
+
const projectUrl = `https://huggingface.co/deepsite/${path}`;
|
| 337 |
const spaceUrl = `https://huggingface.co/spaces/${path}`;
|
| 338 |
const liveUrl = `https://${username}-${formattedTitle}.hf.space`;
|
| 339 |
|
app/api/me/projects/route.ts
CHANGED
|
@@ -44,7 +44,7 @@ tags:
|
|
| 44 |
---
|
| 45 |
|
| 46 |
# Welcome to your new DeepSite project!
|
| 47 |
-
This project was created with [DeepSite](https://
|
| 48 |
`;
|
| 49 |
|
| 50 |
const files: File[] = [];
|
|
|
|
| 44 |
---
|
| 45 |
|
| 46 |
# Welcome to your new DeepSite project!
|
| 47 |
+
This project was created with [DeepSite](https://huggingface.co/deepsite).
|
| 48 |
`;
|
| 49 |
|
| 50 |
const files: File[] = [];
|
app/layout.tsx
CHANGED
|
@@ -81,12 +81,12 @@ export default async function RootLayout({
|
|
| 81 |
const structuredData = generateStructuredData("WebApplication", {
|
| 82 |
name: "DeepSite",
|
| 83 |
description: "Build websites with AI, no code required",
|
| 84 |
-
url: "https://
|
| 85 |
});
|
| 86 |
|
| 87 |
const organizationData = generateStructuredData("Organization", {
|
| 88 |
name: "DeepSite",
|
| 89 |
-
url: "https://
|
| 90 |
});
|
| 91 |
|
| 92 |
return (
|
|
@@ -107,7 +107,7 @@ export default async function RootLayout({
|
|
| 107 |
</head>
|
| 108 |
<Script
|
| 109 |
defer
|
| 110 |
-
data-domain="
|
| 111 |
src="https://plausible.io/js/script.js"
|
| 112 |
></Script>
|
| 113 |
<body
|
|
|
|
| 81 |
const structuredData = generateStructuredData("WebApplication", {
|
| 82 |
name: "DeepSite",
|
| 83 |
description: "Build websites with AI, no code required",
|
| 84 |
+
url: "https://huggingface.co/deepsite",
|
| 85 |
});
|
| 86 |
|
| 87 |
const organizationData = generateStructuredData("Organization", {
|
| 88 |
name: "DeepSite",
|
| 89 |
+
url: "https://huggingface.co/deepsite",
|
| 90 |
});
|
| 91 |
|
| 92 |
return (
|
|
|
|
| 107 |
</head>
|
| 108 |
<Script
|
| 109 |
defer
|
| 110 |
+
data-domain="huggingface.co/deepsite"
|
| 111 |
src="https://plausible.io/js/script.js"
|
| 112 |
></Script>
|
| 113 |
<body
|
app/sitemap.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
import { MetadataRoute } from 'next';
|
| 2 |
|
| 3 |
export default function sitemap(): MetadataRoute.Sitemap {
|
| 4 |
-
const baseUrl = 'https://
|
| 5 |
|
| 6 |
return [
|
| 7 |
{
|
|
|
|
| 1 |
import { MetadataRoute } from 'next';
|
| 2 |
|
| 3 |
export default function sitemap(): MetadataRoute.Sitemap {
|
| 4 |
+
const baseUrl = 'https://huggingface.co/deepsite';
|
| 5 |
|
| 6 |
return [
|
| 7 |
{
|
components/iframe-detector/index.tsx
CHANGED
|
@@ -16,7 +16,7 @@ export default function IframeDetector() {
|
|
| 16 |
host === "huggingface.co" ||
|
| 17 |
host === "hf.co" ||
|
| 18 |
host === "enzostvs-deepsite.hf.space" ||
|
| 19 |
-
host === "
|
| 20 |
);
|
| 21 |
};
|
| 22 |
|
|
|
|
| 16 |
host === "huggingface.co" ||
|
| 17 |
host === "hf.co" ||
|
| 18 |
host === "enzostvs-deepsite.hf.space" ||
|
| 19 |
+
host === "huggingface.co/deepsite"
|
| 20 |
);
|
| 21 |
};
|
| 22 |
|
components/iframe-detector/modal.tsx
CHANGED
|
@@ -21,7 +21,7 @@ export default function IframeWarningModal({
|
|
| 21 |
}: // onOpenChange,
|
| 22 |
IframeWarningModalProps) {
|
| 23 |
const handleVisitSite = () => {
|
| 24 |
-
window.open("https://
|
| 25 |
};
|
| 26 |
|
| 27 |
return (
|
|
@@ -52,7 +52,7 @@ IframeWarningModalProps) {
|
|
| 52 |
<DialogFooter className="flex-col sm:flex-row gap-2">
|
| 53 |
<Button onClick={handleVisitSite} className="w-full sm:w-auto">
|
| 54 |
<ExternalLink className="mr-2 h-4 w-4" />
|
| 55 |
-
Visit
|
| 56 |
</Button>
|
| 57 |
</DialogFooter>
|
| 58 |
</DialogContent>
|
|
|
|
| 21 |
}: // onOpenChange,
|
| 22 |
IframeWarningModalProps) {
|
| 23 |
const handleVisitSite = () => {
|
| 24 |
+
window.open("https://huggingface.co/deepsite", "_blank");
|
| 25 |
};
|
| 26 |
|
| 27 |
return (
|
|
|
|
| 52 |
<DialogFooter className="flex-col sm:flex-row gap-2">
|
| 53 |
<Button onClick={handleVisitSite} className="w-full sm:w-auto">
|
| 54 |
<ExternalLink className="mr-2 h-4 w-4" />
|
| 55 |
+
Visit huggingface.co/deepsite
|
| 56 |
</Button>
|
| 57 |
</DialogFooter>
|
| 58 |
</DialogContent>
|
lib/inject-badge.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
* @returns The HTML content with the badge script injected
|
| 7 |
*/
|
| 8 |
export function injectDeepSiteBadge(html: string): string {
|
| 9 |
-
const badgeScript = '<script src="https://
|
| 10 |
|
| 11 |
// Remove any existing badge script to avoid duplicates
|
| 12 |
const cleanedHtml = html.replace(
|
|
|
|
| 6 |
* @returns The HTML content with the badge script injected
|
| 7 |
*/
|
| 8 |
export function injectDeepSiteBadge(html: string): string {
|
| 9 |
+
const badgeScript = '<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>';
|
| 10 |
|
| 11 |
// Remove any existing badge script to avoid duplicates
|
| 12 |
const cleanedHtml = html.replace(
|
lib/seo.ts
CHANGED
|
@@ -17,7 +17,7 @@ export function generateSEO({
|
|
| 17 |
noIndex = false,
|
| 18 |
canonical,
|
| 19 |
}: SEOParams = {}): Metadata {
|
| 20 |
-
const baseUrl = "https://
|
| 21 |
const fullUrl = `${baseUrl}${path}`;
|
| 22 |
const canonicalUrl = canonical || fullUrl;
|
| 23 |
|
|
@@ -96,7 +96,7 @@ export function generateStructuredData(type: 'WebApplication' | 'Organization' |
|
|
| 96 |
...baseStructuredData,
|
| 97 |
name: 'DeepSite',
|
| 98 |
description: 'Build websites with AI, no code required',
|
| 99 |
-
url: 'https://
|
| 100 |
applicationCategory: 'DeveloperApplication',
|
| 101 |
operatingSystem: 'Web',
|
| 102 |
offers: {
|
|
@@ -107,7 +107,7 @@ export function generateStructuredData(type: 'WebApplication' | 'Organization' |
|
|
| 107 |
creator: {
|
| 108 |
'@type': 'Organization',
|
| 109 |
name: 'DeepSite',
|
| 110 |
-
url: 'https://
|
| 111 |
},
|
| 112 |
...data,
|
| 113 |
};
|
|
@@ -116,8 +116,8 @@ export function generateStructuredData(type: 'WebApplication' | 'Organization' |
|
|
| 116 |
return {
|
| 117 |
...baseStructuredData,
|
| 118 |
name: 'DeepSite',
|
| 119 |
-
url: 'https://
|
| 120 |
-
logo: 'https://
|
| 121 |
description: 'AI-powered web development platform',
|
| 122 |
sameAs: [
|
| 123 |
// Add social media links here if available
|
|
|
|
| 17 |
noIndex = false,
|
| 18 |
canonical,
|
| 19 |
}: SEOParams = {}): Metadata {
|
| 20 |
+
const baseUrl = "https://huggingface.co/deepsite";
|
| 21 |
const fullUrl = `${baseUrl}${path}`;
|
| 22 |
const canonicalUrl = canonical || fullUrl;
|
| 23 |
|
|
|
|
| 96 |
...baseStructuredData,
|
| 97 |
name: 'DeepSite',
|
| 98 |
description: 'Build websites with AI, no code required',
|
| 99 |
+
url: 'https://huggingface.co/deepsite',
|
| 100 |
applicationCategory: 'DeveloperApplication',
|
| 101 |
operatingSystem: 'Web',
|
| 102 |
offers: {
|
|
|
|
| 107 |
creator: {
|
| 108 |
'@type': 'Organization',
|
| 109 |
name: 'DeepSite',
|
| 110 |
+
url: 'https://huggingface.co/deepsite',
|
| 111 |
},
|
| 112 |
...data,
|
| 113 |
};
|
|
|
|
| 116 |
return {
|
| 117 |
...baseStructuredData,
|
| 118 |
name: 'DeepSite',
|
| 119 |
+
url: 'https://huggingface.co/deepsite',
|
| 120 |
+
logo: 'https://huggingface.co/deepsite/logo.svg',
|
| 121 |
description: 'AI-powered web development platform',
|
| 122 |
sameAs: [
|
| 123 |
// Add social media links here if available
|
lib/utils.ts
CHANGED
|
@@ -15,8 +15,4 @@ export const COLORS = [
|
|
| 15 |
"gray",
|
| 16 |
];
|
| 17 |
|
| 18 |
-
export const getPTag = (repoId: string) => {
|
| 19 |
-
return `<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=${repoId}" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p>`;
|
| 20 |
-
};
|
| 21 |
-
|
| 22 |
export const MAX_FREE_PROJECTS = 3;
|
|
|
|
| 15 |
"gray",
|
| 16 |
];
|
| 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
export const MAX_FREE_PROJECTS = 3;
|
middleware.ts
CHANGED
|
@@ -10,7 +10,7 @@ export function middleware(request: NextRequest) {
|
|
| 10 |
if (request.nextUrl.pathname.startsWith('/_next/static')) {
|
| 11 |
response.headers.set('Cache-Control', 'public, max-age=31536000, immutable');
|
| 12 |
}
|
| 13 |
-
response.headers.set('X-Canonical-URL', `https://
|
| 14 |
|
| 15 |
return response;
|
| 16 |
}
|
|
|
|
| 10 |
if (request.nextUrl.pathname.startsWith('/_next/static')) {
|
| 11 |
response.headers.set('Cache-Control', 'public, max-age=31536000, immutable');
|
| 12 |
}
|
| 13 |
+
response.headers.set('X-Canonical-URL', `https://huggingface.co/deepsite${request.nextUrl.pathname}`);
|
| 14 |
|
| 15 |
return response;
|
| 16 |
}
|
public/deepsite-badge.js
CHANGED
|
@@ -73,13 +73,13 @@
|
|
| 73 |
|
| 74 |
// Create link
|
| 75 |
const link = document.createElement('a');
|
| 76 |
-
link.href = 'https://
|
| 77 |
link.target = '_blank';
|
| 78 |
link.rel = 'noopener noreferrer';
|
| 79 |
|
| 80 |
// Create icon placeholder
|
| 81 |
const icon = document.createElement('img');
|
| 82 |
-
icon.src = 'https://
|
| 83 |
icon.alt = 'DeepSite';
|
| 84 |
icon.style.marginRight = '6px';
|
| 85 |
icon.style.width = '16px';
|
|
|
|
| 73 |
|
| 74 |
// Create link
|
| 75 |
const link = document.createElement('a');
|
| 76 |
+
link.href = 'https://huggingface.co/deepsite';
|
| 77 |
link.target = '_blank';
|
| 78 |
link.rel = 'noopener noreferrer';
|
| 79 |
|
| 80 |
// Create icon placeholder
|
| 81 |
const icon = document.createElement('img');
|
| 82 |
+
icon.src = 'https://huggingface.co/deepsite/logo.svg';
|
| 83 |
icon.alt = 'DeepSite';
|
| 84 |
icon.style.marginRight = '6px';
|
| 85 |
icon.style.width = '16px';
|
public/robots.txt
CHANGED
|
@@ -11,7 +11,7 @@ Disallow: /assets/
|
|
| 11 |
Allow: /api/public/
|
| 12 |
|
| 13 |
# Sitemap location
|
| 14 |
-
Sitemap: https://
|
| 15 |
|
| 16 |
# Crawl-delay for respectful crawling
|
| 17 |
Crawl-delay: 1
|
|
|
|
| 11 |
Allow: /api/public/
|
| 12 |
|
| 13 |
# Sitemap location
|
| 14 |
+
Sitemap: https://huggingface.co/deepsite/sitemap.xml
|
| 15 |
|
| 16 |
# Crawl-delay for respectful crawling
|
| 17 |
Crawl-delay: 1
|