nextblogkit 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +951 -0
- package/dist/admin/index.cjs +2465 -0
- package/dist/admin/index.cjs.map +1 -0
- package/dist/admin/index.d.cts +44 -0
- package/dist/admin/index.d.ts +44 -0
- package/dist/admin/index.js +2438 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/api/categories.cjs +82 -0
- package/dist/api/categories.cjs.map +1 -0
- package/dist/api/categories.d.cts +27 -0
- package/dist/api/categories.d.ts +27 -0
- package/dist/api/categories.js +77 -0
- package/dist/api/categories.js.map +1 -0
- package/dist/api/media.cjs +113 -0
- package/dist/api/media.cjs.map +1 -0
- package/dist/api/media.d.cts +22 -0
- package/dist/api/media.d.ts +22 -0
- package/dist/api/media.js +109 -0
- package/dist/api/media.js.map +1 -0
- package/dist/api/posts.cjs +103 -0
- package/dist/api/posts.cjs.map +1 -0
- package/dist/api/posts.d.cts +27 -0
- package/dist/api/posts.d.ts +27 -0
- package/dist/api/posts.js +98 -0
- package/dist/api/posts.js.map +1 -0
- package/dist/api/rss.cjs +25 -0
- package/dist/api/rss.cjs.map +1 -0
- package/dist/api/rss.d.cts +5 -0
- package/dist/api/rss.d.ts +5 -0
- package/dist/api/rss.js +23 -0
- package/dist/api/rss.js.map +1 -0
- package/dist/api/settings.cjs +40 -0
- package/dist/api/settings.cjs.map +1 -0
- package/dist/api/settings.d.cts +17 -0
- package/dist/api/settings.d.ts +17 -0
- package/dist/api/settings.js +37 -0
- package/dist/api/settings.js.map +1 -0
- package/dist/api/sitemap.cjs +25 -0
- package/dist/api/sitemap.cjs.map +1 -0
- package/dist/api/sitemap.d.cts +5 -0
- package/dist/api/sitemap.d.ts +5 -0
- package/dist/api/sitemap.js +23 -0
- package/dist/api/sitemap.js.map +1 -0
- package/dist/chunk-4NKOJYWJ.js +68 -0
- package/dist/chunk-4NKOJYWJ.js.map +1 -0
- package/dist/chunk-4PY224XM.js +103 -0
- package/dist/chunk-4PY224XM.js.map +1 -0
- package/dist/chunk-64HUVJOZ.js +446 -0
- package/dist/chunk-64HUVJOZ.js.map +1 -0
- package/dist/chunk-6HKMZOI4.cjs +48 -0
- package/dist/chunk-6HKMZOI4.cjs.map +1 -0
- package/dist/chunk-A2S32RZN.js +138 -0
- package/dist/chunk-A2S32RZN.js.map +1 -0
- package/dist/chunk-E2QLTHKN.cjs +70 -0
- package/dist/chunk-E2QLTHKN.cjs.map +1 -0
- package/dist/chunk-JLPJKNRZ.js +37 -0
- package/dist/chunk-JLPJKNRZ.js.map +1 -0
- package/dist/chunk-JM7QRXXK.js +330 -0
- package/dist/chunk-JM7QRXXK.js.map +1 -0
- package/dist/chunk-KDZER3PU.cjs +43 -0
- package/dist/chunk-KDZER3PU.cjs.map +1 -0
- package/dist/chunk-N5MKAD7J.cjs +109 -0
- package/dist/chunk-N5MKAD7J.cjs.map +1 -0
- package/dist/chunk-QE4VLQYN.cjs +337 -0
- package/dist/chunk-QE4VLQYN.cjs.map +1 -0
- package/dist/chunk-R6MO3QIP.js +46 -0
- package/dist/chunk-R6MO3QIP.js.map +1 -0
- package/dist/chunk-U2ROR6AY.cjs +476 -0
- package/dist/chunk-U2ROR6AY.cjs.map +1 -0
- package/dist/chunk-ZP5XRVVH.cjs +141 -0
- package/dist/chunk-ZP5XRVVH.cjs.map +1 -0
- package/dist/cli/index.cjs +1308 -0
- package/dist/components/index.cjs +541 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +165 -0
- package/dist/components/index.d.ts +165 -0
- package/dist/components/index.js +527 -0
- package/dist/components/index.js.map +1 -0
- package/dist/editor/index.cjs +1083 -0
- package/dist/editor/index.cjs.map +1 -0
- package/dist/editor/index.d.cts +133 -0
- package/dist/editor/index.d.ts +133 -0
- package/dist/editor/index.js +1051 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/index-Cgzphklp.d.ts +266 -0
- package/dist/index-vjlZDWNr.d.cts +266 -0
- package/dist/index.cjs +368 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +27 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +208 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/index.cjs +120 -0
- package/dist/lib/index.cjs.map +1 -0
- package/dist/lib/index.d.cts +4 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.js +7 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/styles/admin.css +657 -0
- package/dist/styles/blog.css +851 -0
- package/dist/styles/editor.css +452 -0
- package/dist/styles/globals.css +270 -0
- package/dist/styles/prose.css +299 -0
- package/dist/types-CBEEBR4A.d.cts +732 -0
- package/dist/types-CBEEBR4A.d.ts +732 -0
- package/package.json +134 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, d as createCategory, e as createMedia, f as createPost, g as defineConfig, h as deleteCategory, i as deleteMedia, j as deletePost, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, p as generateFAQStructuredData, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, D as getSettings, E as listCategories, F as listMedia, G as listPosts, H as processImage, I as searchPosts, J as updateCategory, K as updatePost, L as updateSettings } from './index-vjlZDWNr.cjs';
|
|
2
|
+
import { B as BlockContent } from './types-CBEEBR4A.cjs';
|
|
3
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, d as BlockType, e as BlogPost, f as BlogSettings, C as Category, g as CreateCategoryInput, h as CreatePostInput, M as Media, i as MediaListQuery, j as MediaReference, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, l as PostStatus, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, p as UpdatePostInput } from './types-CBEEBR4A.cjs';
|
|
4
|
+
import 'zod';
|
|
5
|
+
import 'mongodb';
|
|
6
|
+
|
|
7
|
+
declare function renderBlocksToHTML(doc: {
|
|
8
|
+
type: string;
|
|
9
|
+
content?: BlockContent[];
|
|
10
|
+
}): string;
|
|
11
|
+
declare function extractHeadings(doc: {
|
|
12
|
+
type: string;
|
|
13
|
+
content?: BlockContent[];
|
|
14
|
+
}): {
|
|
15
|
+
id: string;
|
|
16
|
+
text: string;
|
|
17
|
+
level: number;
|
|
18
|
+
}[];
|
|
19
|
+
declare function extractFAQItems(doc: {
|
|
20
|
+
type: string;
|
|
21
|
+
content?: BlockContent[];
|
|
22
|
+
}): {
|
|
23
|
+
question: string;
|
|
24
|
+
answer: string;
|
|
25
|
+
}[];
|
|
26
|
+
|
|
27
|
+
export { BlockContent, extractFAQItems, extractHeadings, renderBlocksToHTML };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, d as createCategory, e as createMedia, f as createPost, g as defineConfig, h as deleteCategory, i as deleteMedia, j as deletePost, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, p as generateFAQStructuredData, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, D as getSettings, E as listCategories, F as listMedia, G as listPosts, H as processImage, I as searchPosts, J as updateCategory, K as updatePost, L as updateSettings } from './index-Cgzphklp.js';
|
|
2
|
+
import { B as BlockContent } from './types-CBEEBR4A.js';
|
|
3
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, d as BlockType, e as BlogPost, f as BlogSettings, C as Category, g as CreateCategoryInput, h as CreatePostInput, M as Media, i as MediaListQuery, j as MediaReference, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, l as PostStatus, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, p as UpdatePostInput } from './types-CBEEBR4A.js';
|
|
4
|
+
import 'zod';
|
|
5
|
+
import 'mongodb';
|
|
6
|
+
|
|
7
|
+
declare function renderBlocksToHTML(doc: {
|
|
8
|
+
type: string;
|
|
9
|
+
content?: BlockContent[];
|
|
10
|
+
}): string;
|
|
11
|
+
declare function extractHeadings(doc: {
|
|
12
|
+
type: string;
|
|
13
|
+
content?: BlockContent[];
|
|
14
|
+
}): {
|
|
15
|
+
id: string;
|
|
16
|
+
text: string;
|
|
17
|
+
level: number;
|
|
18
|
+
}[];
|
|
19
|
+
declare function extractFAQItems(doc: {
|
|
20
|
+
type: string;
|
|
21
|
+
content?: BlockContent[];
|
|
22
|
+
}): {
|
|
23
|
+
question: string;
|
|
24
|
+
answer: string;
|
|
25
|
+
}[];
|
|
26
|
+
|
|
27
|
+
export { BlockContent, extractFAQItems, extractHeadings, renderBlocksToHTML };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
export { calculateSEOScore, generateBreadcrumbs, generateFAQStructuredData, generateMetaTags, generateStructuredData, searchPosts } from './chunk-JM7QRXXK.js';
|
|
2
|
+
export { R2StorageProvider, processImage } from './chunk-A2S32RZN.js';
|
|
3
|
+
export { generateSitemap } from './chunk-4NKOJYWJ.js';
|
|
4
|
+
export { generateRSSFeed } from './chunk-R6MO3QIP.js';
|
|
5
|
+
export { calculateReadingTime, countWords, createCategory, createMedia, createPost, defineConfig, deleteCategory, deleteMedia, deletePost, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, getSettings, listCategories, listMedia, listPosts, updateCategory, updatePost, updateSettings } from './chunk-64HUVJOZ.js';
|
|
6
|
+
|
|
7
|
+
// src/editor/renderer.ts
|
|
8
|
+
function renderBlocksToHTML(doc) {
|
|
9
|
+
if (!doc.content) return "";
|
|
10
|
+
return doc.content.map(renderNode).join("");
|
|
11
|
+
}
|
|
12
|
+
function renderNode(node) {
|
|
13
|
+
switch (node.type) {
|
|
14
|
+
case "paragraph":
|
|
15
|
+
return `<p>${renderInline(node)}</p>`;
|
|
16
|
+
case "heading": {
|
|
17
|
+
const level = node.attrs?.level || 2;
|
|
18
|
+
const text = renderInline(node);
|
|
19
|
+
const id = slugify(stripTags(text));
|
|
20
|
+
return `<h${level} id="${id}">${text}</h${level}>`;
|
|
21
|
+
}
|
|
22
|
+
case "bulletList":
|
|
23
|
+
return `<ul>${renderChildren(node)}</ul>`;
|
|
24
|
+
case "orderedList":
|
|
25
|
+
return `<ol>${renderChildren(node)}</ol>`;
|
|
26
|
+
case "listItem":
|
|
27
|
+
return `<li>${renderChildren(node)}</li>`;
|
|
28
|
+
case "taskList":
|
|
29
|
+
return `<ul class="nbk-task-list">${renderChildren(node)}</ul>`;
|
|
30
|
+
case "taskItem": {
|
|
31
|
+
const checked = node.attrs?.checked ? "checked" : "";
|
|
32
|
+
return `<li class="nbk-task-item" data-checked="${checked}"><input type="checkbox" ${checked} disabled />${renderChildren(node)}</li>`;
|
|
33
|
+
}
|
|
34
|
+
case "blockquote":
|
|
35
|
+
return `<blockquote>${renderChildren(node)}</blockquote>`;
|
|
36
|
+
case "codeBlock": {
|
|
37
|
+
const lang = node.attrs?.language || "plaintext";
|
|
38
|
+
const filename = node.attrs?.filename;
|
|
39
|
+
const code = escapeHtml(getTextContent(node));
|
|
40
|
+
const header = filename ? `<div class="nbk-code-header">${escapeHtml(filename)}</div>` : "";
|
|
41
|
+
return `${header}<pre><code class="language-${lang}">${code}</code></pre>`;
|
|
42
|
+
}
|
|
43
|
+
case "image": {
|
|
44
|
+
const src = node.attrs?.src || "";
|
|
45
|
+
const alt = node.attrs?.alt || "";
|
|
46
|
+
const caption = node.attrs?.caption;
|
|
47
|
+
const width = node.attrs?.width;
|
|
48
|
+
const height = node.attrs?.height;
|
|
49
|
+
let img = `<img src="${escapeAttr(src)}" alt="${escapeAttr(alt)}"`;
|
|
50
|
+
if (width) img += ` width="${width}"`;
|
|
51
|
+
if (height) img += ` height="${height}"`;
|
|
52
|
+
img += ' loading="lazy" />';
|
|
53
|
+
if (caption) {
|
|
54
|
+
return `<figure>${img}<figcaption>${escapeHtml(caption)}</figcaption></figure>`;
|
|
55
|
+
}
|
|
56
|
+
return img;
|
|
57
|
+
}
|
|
58
|
+
case "horizontalRule":
|
|
59
|
+
return "<hr />";
|
|
60
|
+
case "table":
|
|
61
|
+
return `<table>${renderChildren(node)}</table>`;
|
|
62
|
+
case "tableRow":
|
|
63
|
+
return `<tr>${renderChildren(node)}</tr>`;
|
|
64
|
+
case "tableHeader":
|
|
65
|
+
return `<th>${renderInline(node)}</th>`;
|
|
66
|
+
case "tableCell":
|
|
67
|
+
return `<td>${renderInline(node)}</td>`;
|
|
68
|
+
case "callout": {
|
|
69
|
+
const calloutType = node.attrs?.type || "info";
|
|
70
|
+
const icons = {
|
|
71
|
+
info: "\u2139\uFE0F",
|
|
72
|
+
warning: "\u26A0\uFE0F",
|
|
73
|
+
tip: "\u{1F4A1}",
|
|
74
|
+
danger: "\u{1F6A8}"
|
|
75
|
+
};
|
|
76
|
+
return `<div class="nbk-callout nbk-callout-${calloutType}"><span class="nbk-callout-icon">${icons[calloutType] || ""}</span><div class="nbk-callout-content">${renderChildren(node)}</div></div>`;
|
|
77
|
+
}
|
|
78
|
+
case "faq":
|
|
79
|
+
return `<div class="nbk-faq" itemscope itemtype="https://schema.org/FAQPage">${renderChildren(node)}</div>`;
|
|
80
|
+
case "faqItem":
|
|
81
|
+
return `<div class="nbk-faq-item" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">${renderChildren(node)}</div>`;
|
|
82
|
+
case "faqQuestion":
|
|
83
|
+
return `<h3 itemprop="name">${renderInline(node)}</h3>`;
|
|
84
|
+
case "faqAnswer":
|
|
85
|
+
return `<div itemprop="acceptedAnswer" itemscope itemtype="https://schema.org/Answer"><div itemprop="text">${renderChildren(node)}</div></div>`;
|
|
86
|
+
case "tableOfContents":
|
|
87
|
+
return '<div data-toc="true" class="nbk-toc"></div>';
|
|
88
|
+
case "html":
|
|
89
|
+
return getTextContent(node);
|
|
90
|
+
case "embed": {
|
|
91
|
+
const embedUrl = node.attrs?.src || "";
|
|
92
|
+
return `<div class="nbk-embed"><iframe src="${escapeAttr(embedUrl)}" frameborder="0" allowfullscreen loading="lazy"></iframe></div>`;
|
|
93
|
+
}
|
|
94
|
+
case "text":
|
|
95
|
+
return renderTextNode(node);
|
|
96
|
+
case "hardBreak":
|
|
97
|
+
return "<br />";
|
|
98
|
+
default:
|
|
99
|
+
if (node.content) return renderChildren(node);
|
|
100
|
+
if (node.text) return escapeHtml(node.text);
|
|
101
|
+
return "";
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function renderChildren(node) {
|
|
105
|
+
if (!node.content) return "";
|
|
106
|
+
return node.content.map(renderNode).join("");
|
|
107
|
+
}
|
|
108
|
+
function renderInline(node) {
|
|
109
|
+
if (!node.content) return "";
|
|
110
|
+
return node.content.map(renderNode).join("");
|
|
111
|
+
}
|
|
112
|
+
function renderTextNode(node) {
|
|
113
|
+
let text = escapeHtml(node.text || "");
|
|
114
|
+
if (node.marks) {
|
|
115
|
+
for (const mark of node.marks) {
|
|
116
|
+
switch (mark.type) {
|
|
117
|
+
case "bold":
|
|
118
|
+
text = `<strong>${text}</strong>`;
|
|
119
|
+
break;
|
|
120
|
+
case "italic":
|
|
121
|
+
text = `<em>${text}</em>`;
|
|
122
|
+
break;
|
|
123
|
+
case "strike":
|
|
124
|
+
text = `<s>${text}</s>`;
|
|
125
|
+
break;
|
|
126
|
+
case "code":
|
|
127
|
+
text = `<code>${text}</code>`;
|
|
128
|
+
break;
|
|
129
|
+
case "underline":
|
|
130
|
+
text = `<u>${text}</u>`;
|
|
131
|
+
break;
|
|
132
|
+
case "highlight":
|
|
133
|
+
text = `<mark>${text}</mark>`;
|
|
134
|
+
break;
|
|
135
|
+
case "link": {
|
|
136
|
+
const href = mark.attrs?.href || "";
|
|
137
|
+
const target = href.startsWith("http") ? ' target="_blank" rel="noopener noreferrer"' : "";
|
|
138
|
+
text = `<a href="${escapeAttr(href)}"${target}>${text}</a>`;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return text;
|
|
145
|
+
}
|
|
146
|
+
function getTextContent(node) {
|
|
147
|
+
if (node.text) return node.text;
|
|
148
|
+
if (!node.content) return "";
|
|
149
|
+
return node.content.map(getTextContent).join("");
|
|
150
|
+
}
|
|
151
|
+
function escapeHtml(str) {
|
|
152
|
+
return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
153
|
+
}
|
|
154
|
+
function escapeAttr(str) {
|
|
155
|
+
return str.replace(/"/g, """).replace(/&/g, "&");
|
|
156
|
+
}
|
|
157
|
+
function stripTags(html) {
|
|
158
|
+
return html.replace(/<[^>]+>/g, "");
|
|
159
|
+
}
|
|
160
|
+
function slugify(text) {
|
|
161
|
+
return text.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_]+/g, "-").replace(/-+/g, "-");
|
|
162
|
+
}
|
|
163
|
+
function extractHeadings(doc) {
|
|
164
|
+
const headings = [];
|
|
165
|
+
function walk(node) {
|
|
166
|
+
if (node.type === "heading") {
|
|
167
|
+
const text = getTextContent(node);
|
|
168
|
+
headings.push({
|
|
169
|
+
id: slugify(text),
|
|
170
|
+
text,
|
|
171
|
+
level: node.attrs?.level || 2
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
if (node.content) {
|
|
175
|
+
node.content.forEach(walk);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (doc.content) {
|
|
179
|
+
doc.content.forEach(walk);
|
|
180
|
+
}
|
|
181
|
+
return headings;
|
|
182
|
+
}
|
|
183
|
+
function extractFAQItems(doc) {
|
|
184
|
+
const items = [];
|
|
185
|
+
function walk(node) {
|
|
186
|
+
if (node.type === "faqItem" && node.content) {
|
|
187
|
+
const question = node.content.find((c) => c.type === "faqQuestion");
|
|
188
|
+
const answer = node.content.find((c) => c.type === "faqAnswer");
|
|
189
|
+
if (question && answer) {
|
|
190
|
+
items.push({
|
|
191
|
+
question: getTextContent(question),
|
|
192
|
+
answer: renderChildren(answer)
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (node.content) {
|
|
197
|
+
node.content.forEach(walk);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (doc.content) {
|
|
201
|
+
doc.content.forEach(walk);
|
|
202
|
+
}
|
|
203
|
+
return items;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
export { extractFAQItems, extractHeadings, renderBlocksToHTML };
|
|
207
|
+
//# sourceMappingURL=index.js.map
|
|
208
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/editor/renderer.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { BlockContent } from '../lib/types';\n\nexport function renderBlocksToHTML(doc: { type: string; content?: BlockContent[] }): string {\n if (!doc.content) return '';\n return doc.content.map(renderNode).join('');\n}\n\nfunction renderNode(node: BlockContent): string {\n switch (node.type) {\n case 'paragraph':\n return `<p>${renderInline(node)}</p>`;\n\n case 'heading': {\n const level = (node.attrs?.level as number) || 2;\n const text = renderInline(node);\n const id = slugify(stripTags(text));\n return `<h${level} id=\"${id}\">${text}</h${level}>`;\n }\n\n case 'bulletList':\n return `<ul>${renderChildren(node)}</ul>`;\n\n case 'orderedList':\n return `<ol>${renderChildren(node)}</ol>`;\n\n case 'listItem':\n return `<li>${renderChildren(node)}</li>`;\n\n case 'taskList':\n return `<ul class=\"nbk-task-list\">${renderChildren(node)}</ul>`;\n\n case 'taskItem': {\n const checked = node.attrs?.checked ? 'checked' : '';\n return `<li class=\"nbk-task-item\" data-checked=\"${checked}\"><input type=\"checkbox\" ${checked} disabled />${renderChildren(node)}</li>`;\n }\n\n case 'blockquote':\n return `<blockquote>${renderChildren(node)}</blockquote>`;\n\n case 'codeBlock': {\n const lang = (node.attrs?.language as string) || 'plaintext';\n const filename = node.attrs?.filename as string;\n const code = escapeHtml(getTextContent(node));\n const header = filename ? `<div class=\"nbk-code-header\">${escapeHtml(filename)}</div>` : '';\n return `${header}<pre><code class=\"language-${lang}\">${code}</code></pre>`;\n }\n\n case 'image': {\n const src = node.attrs?.src as string || '';\n const alt = node.attrs?.alt as string || '';\n const caption = node.attrs?.caption as string;\n const width = node.attrs?.width;\n const height = node.attrs?.height;\n let img = `<img src=\"${escapeAttr(src)}\" alt=\"${escapeAttr(alt)}\"`;\n if (width) img += ` width=\"${width}\"`;\n if (height) img += ` height=\"${height}\"`;\n img += ' loading=\"lazy\" />';\n if (caption) {\n return `<figure>${img}<figcaption>${escapeHtml(caption)}</figcaption></figure>`;\n }\n return img;\n }\n\n case 'horizontalRule':\n return '<hr />';\n\n case 'table':\n return `<table>${renderChildren(node)}</table>`;\n\n case 'tableRow':\n return `<tr>${renderChildren(node)}</tr>`;\n\n case 'tableHeader':\n return `<th>${renderInline(node)}</th>`;\n\n case 'tableCell':\n return `<td>${renderInline(node)}</td>`;\n\n case 'callout': {\n const calloutType = (node.attrs?.type as string) || 'info';\n const icons: Record<string, string> = {\n info: 'ℹ️',\n warning: '⚠️',\n tip: '💡',\n danger: '🚨',\n };\n return `<div class=\"nbk-callout nbk-callout-${calloutType}\"><span class=\"nbk-callout-icon\">${icons[calloutType] || ''}</span><div class=\"nbk-callout-content\">${renderChildren(node)}</div></div>`;\n }\n\n case 'faq':\n return `<div class=\"nbk-faq\" itemscope itemtype=\"https://schema.org/FAQPage\">${renderChildren(node)}</div>`;\n\n case 'faqItem':\n return `<div class=\"nbk-faq-item\" itemscope itemprop=\"mainEntity\" itemtype=\"https://schema.org/Question\">${renderChildren(node)}</div>`;\n\n case 'faqQuestion':\n return `<h3 itemprop=\"name\">${renderInline(node)}</h3>`;\n\n case 'faqAnswer':\n return `<div itemprop=\"acceptedAnswer\" itemscope itemtype=\"https://schema.org/Answer\"><div itemprop=\"text\">${renderChildren(node)}</div></div>`;\n\n case 'tableOfContents':\n return '<div data-toc=\"true\" class=\"nbk-toc\"></div>';\n\n case 'html':\n return getTextContent(node);\n\n case 'embed': {\n const embedUrl = node.attrs?.src as string || '';\n return `<div class=\"nbk-embed\"><iframe src=\"${escapeAttr(embedUrl)}\" frameborder=\"0\" allowfullscreen loading=\"lazy\"></iframe></div>`;\n }\n\n case 'text':\n return renderTextNode(node);\n\n case 'hardBreak':\n return '<br />';\n\n default:\n if (node.content) return renderChildren(node);\n if (node.text) return escapeHtml(node.text);\n return '';\n }\n}\n\nfunction renderChildren(node: BlockContent): string {\n if (!node.content) return '';\n return node.content.map(renderNode).join('');\n}\n\nfunction renderInline(node: BlockContent): string {\n if (!node.content) return '';\n return node.content.map(renderNode).join('');\n}\n\nfunction renderTextNode(node: BlockContent): string {\n let text = escapeHtml(node.text || '');\n\n if (node.marks) {\n for (const mark of node.marks) {\n switch (mark.type) {\n case 'bold':\n text = `<strong>${text}</strong>`;\n break;\n case 'italic':\n text = `<em>${text}</em>`;\n break;\n case 'strike':\n text = `<s>${text}</s>`;\n break;\n case 'code':\n text = `<code>${text}</code>`;\n break;\n case 'underline':\n text = `<u>${text}</u>`;\n break;\n case 'highlight':\n text = `<mark>${text}</mark>`;\n break;\n case 'link': {\n const href = mark.attrs?.href as string || '';\n const target = href.startsWith('http') ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : '';\n text = `<a href=\"${escapeAttr(href)}\"${target}>${text}</a>`;\n break;\n }\n }\n }\n }\n\n return text;\n}\n\nfunction getTextContent(node: BlockContent): string {\n if (node.text) return node.text;\n if (!node.content) return '';\n return node.content.map(getTextContent).join('');\n}\n\nfunction escapeHtml(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n}\n\nfunction escapeAttr(str: string): string {\n return str.replace(/\"/g, '"').replace(/&/g, '&');\n}\n\nfunction stripTags(html: string): string {\n return html.replace(/<[^>]+>/g, '');\n}\n\nfunction slugify(text: string): string {\n return text\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_]+/g, '-')\n .replace(/-+/g, '-');\n}\n\nexport function extractHeadings(\n doc: { type: string; content?: BlockContent[] }\n): { id: string; text: string; level: number }[] {\n const headings: { id: string; text: string; level: number }[] = [];\n\n function walk(node: BlockContent) {\n if (node.type === 'heading') {\n const text = getTextContent(node);\n headings.push({\n id: slugify(text),\n text,\n level: (node.attrs?.level as number) || 2,\n });\n }\n if (node.content) {\n node.content.forEach(walk);\n }\n }\n\n if (doc.content) {\n doc.content.forEach(walk);\n }\n\n return headings;\n}\n\nexport function extractFAQItems(\n doc: { type: string; content?: BlockContent[] }\n): { question: string; answer: string }[] {\n const items: { question: string; answer: string }[] = [];\n\n function walk(node: BlockContent) {\n if (node.type === 'faqItem' && node.content) {\n const question = node.content.find((c) => c.type === 'faqQuestion');\n const answer = node.content.find((c) => c.type === 'faqAnswer');\n if (question && answer) {\n items.push({\n question: getTextContent(question),\n answer: renderChildren(answer),\n });\n }\n }\n if (node.content) {\n node.content.forEach(walk);\n }\n }\n\n if (doc.content) {\n doc.content.forEach(walk);\n }\n\n return items;\n}\n"]}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkQE4VLQYN_cjs = require('../chunk-QE4VLQYN.cjs');
|
|
4
|
+
var chunkZP5XRVVH_cjs = require('../chunk-ZP5XRVVH.cjs');
|
|
5
|
+
var chunkE2QLTHKN_cjs = require('../chunk-E2QLTHKN.cjs');
|
|
6
|
+
var chunk6HKMZOI4_cjs = require('../chunk-6HKMZOI4.cjs');
|
|
7
|
+
var chunkU2ROR6AY_cjs = require('../chunk-U2ROR6AY.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Object.defineProperty(exports, "calculateSEOScore", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkQE4VLQYN_cjs.calculateSEOScore; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "generateBreadcrumbs", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkQE4VLQYN_cjs.generateBreadcrumbs; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "generateMetaTags", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkQE4VLQYN_cjs.generateMetaTags; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "generateStructuredData", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkQE4VLQYN_cjs.generateStructuredData; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "searchPosts", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunkQE4VLQYN_cjs.searchPosts; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "R2StorageProvider", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return chunkZP5XRVVH_cjs.R2StorageProvider; }
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "processImage", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () { return chunkZP5XRVVH_cjs.processImage; }
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "generateSitemap", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return chunkE2QLTHKN_cjs.generateSitemap; }
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "generateRSSFeed", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () { return chunk6HKMZOI4_cjs.generateRSSFeed; }
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, "calculateReadingTime", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () { return chunkU2ROR6AY_cjs.calculateReadingTime; }
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(exports, "countWords", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function () { return chunkU2ROR6AY_cjs.countWords; }
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "defineConfig", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () { return chunkU2ROR6AY_cjs.defineConfig; }
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(exports, "ensureIndexes", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function () { return chunkU2ROR6AY_cjs.ensureIndexes; }
|
|
62
|
+
});
|
|
63
|
+
Object.defineProperty(exports, "ensureUniqueSlug", {
|
|
64
|
+
enumerable: true,
|
|
65
|
+
get: function () { return chunkU2ROR6AY_cjs.ensureUniqueSlug; }
|
|
66
|
+
});
|
|
67
|
+
Object.defineProperty(exports, "extractTextFromBlocks", {
|
|
68
|
+
enumerable: true,
|
|
69
|
+
get: function () { return chunkU2ROR6AY_cjs.extractTextFromBlocks; }
|
|
70
|
+
});
|
|
71
|
+
Object.defineProperty(exports, "extractTextFromHTML", {
|
|
72
|
+
enumerable: true,
|
|
73
|
+
get: function () { return chunkU2ROR6AY_cjs.extractTextFromHTML; }
|
|
74
|
+
});
|
|
75
|
+
Object.defineProperty(exports, "generateSlug", {
|
|
76
|
+
enumerable: true,
|
|
77
|
+
get: function () { return chunkU2ROR6AY_cjs.generateSlug; }
|
|
78
|
+
});
|
|
79
|
+
Object.defineProperty(exports, "getBlogConfig", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
get: function () { return chunkU2ROR6AY_cjs.getBlogConfig; }
|
|
82
|
+
});
|
|
83
|
+
Object.defineProperty(exports, "getCategoryBySlug", {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
get: function () { return chunkU2ROR6AY_cjs.getCategoryBySlug; }
|
|
86
|
+
});
|
|
87
|
+
Object.defineProperty(exports, "getCollection", {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () { return chunkU2ROR6AY_cjs.getCollection; }
|
|
90
|
+
});
|
|
91
|
+
Object.defineProperty(exports, "getConfig", {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
get: function () { return chunkU2ROR6AY_cjs.getConfig; }
|
|
94
|
+
});
|
|
95
|
+
Object.defineProperty(exports, "getDb", {
|
|
96
|
+
enumerable: true,
|
|
97
|
+
get: function () { return chunkU2ROR6AY_cjs.getDb; }
|
|
98
|
+
});
|
|
99
|
+
Object.defineProperty(exports, "getEnvConfig", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
get: function () { return chunkU2ROR6AY_cjs.getEnvConfig; }
|
|
102
|
+
});
|
|
103
|
+
Object.defineProperty(exports, "getPostById", {
|
|
104
|
+
enumerable: true,
|
|
105
|
+
get: function () { return chunkU2ROR6AY_cjs.getPostById; }
|
|
106
|
+
});
|
|
107
|
+
Object.defineProperty(exports, "getPostBySlug", {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
get: function () { return chunkU2ROR6AY_cjs.getPostBySlug; }
|
|
110
|
+
});
|
|
111
|
+
Object.defineProperty(exports, "listCategories", {
|
|
112
|
+
enumerable: true,
|
|
113
|
+
get: function () { return chunkU2ROR6AY_cjs.listCategories; }
|
|
114
|
+
});
|
|
115
|
+
Object.defineProperty(exports, "listPosts", {
|
|
116
|
+
enumerable: true,
|
|
117
|
+
get: function () { return chunkU2ROR6AY_cjs.listPosts; }
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=index.cjs.map
|
|
120
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, g as defineConfig, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, E as listCategories, G as listPosts, H as processImage, I as searchPosts } from '../index-vjlZDWNr.cjs';
|
|
2
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, q as AuthorSchema, B as BlockContent, d as BlockType, r as BlockTypeSchema, e as BlogPost, f as BlogSettings, s as BlogSettingsSchema, C as Category, g as CreateCategoryInput, t as CreateCategorySchema, h as CreatePostInput, u as CreatePostSchema, M as Media, i as MediaListQuery, j as MediaReference, v as MediaSchema, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, w as PostSEOSchema, l as PostStatus, x as PostStatusSchema, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, y as UpdateCategorySchema, p as UpdatePostInput, z as UpdatePostSchema } from '../types-CBEEBR4A.cjs';
|
|
3
|
+
import 'zod';
|
|
4
|
+
import 'mongodb';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { R as R2StorageProvider, c as calculateReadingTime, a as calculateSEOScore, b as countWords, g as defineConfig, k as ensureIndexes, l as ensureUniqueSlug, m as extractTextFromBlocks, n as extractTextFromHTML, o as generateBreadcrumbs, q as generateMetaTags, r as generateRSSFeed, s as generateSitemap, t as generateSlug, u as generateStructuredData, v as getBlogConfig, w as getCategoryBySlug, x as getCollection, y as getConfig, z as getDb, A as getEnvConfig, B as getPostById, C as getPostBySlug, E as listCategories, G as listPosts, H as processImage, I as searchPosts } from '../index-Cgzphklp.js';
|
|
2
|
+
export { A as ApiErrorResponse, a as ApiResponse, b as ApiSuccessResponse, c as Author, q as AuthorSchema, B as BlockContent, d as BlockType, r as BlockTypeSchema, e as BlogPost, f as BlogSettings, s as BlogSettingsSchema, C as Category, g as CreateCategoryInput, t as CreateCategorySchema, h as CreatePostInput, u as CreatePostSchema, M as Media, i as MediaListQuery, j as MediaReference, v as MediaSchema, N as NextBlogKitConfig, P as PostListQuery, k as PostSEO, w as PostSEOSchema, l as PostStatus, x as PostStatusSchema, R as Revision, S as SEOCheck, m as SEOCheckStatus, n as SEOOverallScore, o as SEOScore, U as UpdateCategoryInput, y as UpdateCategorySchema, p as UpdatePostInput, z as UpdatePostSchema } from '../types-CBEEBR4A.js';
|
|
3
|
+
import 'zod';
|
|
4
|
+
import 'mongodb';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { calculateSEOScore, generateBreadcrumbs, generateMetaTags, generateStructuredData, searchPosts } from '../chunk-JM7QRXXK.js';
|
|
2
|
+
export { R2StorageProvider, processImage } from '../chunk-A2S32RZN.js';
|
|
3
|
+
export { generateSitemap } from '../chunk-4NKOJYWJ.js';
|
|
4
|
+
export { generateRSSFeed } from '../chunk-R6MO3QIP.js';
|
|
5
|
+
export { calculateReadingTime, countWords, defineConfig, ensureIndexes, ensureUniqueSlug, extractTextFromBlocks, extractTextFromHTML, generateSlug, getBlogConfig, getCategoryBySlug, getCollection, getConfig, getDb, getEnvConfig, getPostById, getPostBySlug, listCategories, listPosts } from '../chunk-64HUVJOZ.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|