CompactAI commited on
Commit
1641eca
·
verified ·
1 Parent(s): 91a0086

Delete blog-post.html

Browse files
Files changed (1) hide show
  1. blog-post.html +0 -129
blog-post.html DELETED
@@ -1,129 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Blog Post | FMN-GPT - CompactAI</title>
7
- <link rel="stylesheet" href="styles.css">
8
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
9
- </head>
10
- <body>
11
- <nav class="main-nav">
12
- <div class="container">
13
- <a href="index.html" class="nav-brand">FMN-GPT</a>
14
- <div class="nav-links">
15
- <a href="blog.html">Blog</a>
16
- <a href="status.html">Model Status</a>
17
- <a href="https://huggingface.co/CompactAI" target="_blank">HuggingFace</a>
18
- </div>
19
- </div>
20
- </nav>
21
-
22
- <main>
23
- <article class="blog-post-section" id="blog-post">
24
- <div class="container">
25
- <div class="blog-post-content" id="blog-post-content">
26
- <p class="blog-loading">Loading...</p>
27
- </div>
28
- </div>
29
- </article>
30
- </main>
31
-
32
- <footer class="footer">
33
- <div class="container">
34
- <div class="footer-content">
35
- <p class="footer-text">Built with curiosity over compute.</p>
36
- <p class="footer-subtext">FMN-GPT by <a href="https://huggingface.co/CompactAI" target="_blank">CompactAI</a> - 2026</p>
37
- </div>
38
- </div>
39
- </footer>
40
-
41
- <script>
42
- function parseMarkdown(text) {
43
- let html = text;
44
-
45
- html = html.replace(/^### (.+)$/gm, '<h3>$1</h3>');
46
- html = html.replace(/^## (.+)$/gm, '<h2>$1</h2>');
47
- html = html.replace(/^# (.+)$/gm, '<h1>$1</h1>');
48
-
49
- html = html.replace(/\*\*\*(.+?)\*\*\*/g, '<strong><em>$1</em></strong>');
50
- html = html.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>');
51
- html = html.replace(/\*(.+?)\*/g, '<em>$1</em>');
52
-
53
- html = html.replace(/`([^`]+)`/g, '<code>$1</code>');
54
- html = html.replace(/```(\w*)\n([\s\S]*?)```/g, '<pre><code class="language-$1">$2</code></pre>');
55
-
56
- html = html.replace(/^> (.+)$/gm, '<blockquote>$1</blockquote>');
57
-
58
- html = html.replace(/^- (.+)$/gm, '<li>$1</li>');
59
- html = html.replace(/(<li>.*<\/li>\n?)+/g, '<ul>$&</ul>');
60
-
61
- html = html.replace(/^\d+\. (.+)$/gm, '<li>$1</li>');
62
-
63
- html = html.replace(/^---$/gm, '<hr>');
64
-
65
- html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank">$1</a>');
66
-
67
- html = html.replace(/\n\n/g, '</p><p>');
68
- html = '<p>' + html + '</p>';
69
-
70
- html = html.replace(/<p><\/p>/g, '');
71
- html = html.replace(/<p>(<h[1-6]>)/g, '$1');
72
- html = html.replace(/(<\/h[1-6]>)<\/p>/g, '$1');
73
- html = html.replace(/<p>(<blockquote>)/g, '$1');
74
- html = html.replace(/(<\/blockquote>)<\/p>/g, '$1');
75
- html = html.replace(/<p>(<pre>)/g, '$1');
76
- html = html.replace(/(<\/pre>)<\/p>/g, '$1');
77
- html = html.replace(/<p>(<ul>)/g, '$1');
78
- html = html.replace(/(<\/ul>)<\/p>/g, '$1');
79
- html = html.replace(/<p>(<hr>)<\/p>/g, '$1');
80
-
81
- return html;
82
- }
83
-
84
- async function loadBlogPost() {
85
- const container = document.getElementById('blog-post-content');
86
- const params = new URLSearchParams(window.location.search);
87
- const slug = params.get('slug');
88
-
89
- if (!slug) {
90
- window.location.href = 'blog.html';
91
- return;
92
- }
93
-
94
- try {
95
- const response = await fetch('blog-posts.json');
96
- const posts = await response.json();
97
- const post = posts.find(p => p.slug === slug);
98
-
99
- if (!post) {
100
- container.innerHTML = '<div class="blog-empty"><p>Post not found. <a href="blog.html">Return to blog</a></p></div>';
101
- return;
102
- }
103
-
104
- document.title = `${post.title} | FMN-GPT - CompactAI`;
105
-
106
- const contentHtml = parseMarkdown(post.content);
107
-
108
- container.innerHTML = `
109
- <a href="blog.html" class="blog-back">← Back to Blog</a>
110
- <header class="blog-post-header">
111
- <div class="blog-meta">
112
- <span class="blog-date">${post.date}</span>
113
- <span class="blog-tag">${post.tag}</span>
114
- </div>
115
- <h1>${post.title}</h1>
116
- </header>
117
- <div class="blog-post-body">
118
- ${contentHtml}
119
- </div>
120
- `;
121
- } catch (e) {
122
- container.innerHTML = '<div class="blog-empty"><p>Error loading post. <a href="blog.html">Return to blog</a></p></div>';
123
- }
124
- }
125
-
126
- loadBlogPost();
127
- </script>
128
- </body>
129
- </html>