postfolio 1.0.0 → 1.0.2
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/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/client.d.ts +4 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +35 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/main.d.ts +3 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +14 -3
- package/dist/src/main.js.map +1 -1
- package/package.json +9 -9
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Slugs, Post, allPosts, MDXPost, generateSlug, generateTOC, } from "./src/main.
|
|
2
|
-
export type { BlogFrontmatter, BlogPostSource } from "./src/main.
|
|
1
|
+
export { Slugs, Post, allPosts, MDXPost, generateSlug, generateTOC, setContentDirectory, } from "./src/main.js";
|
|
2
|
+
export type { BlogFrontmatter, BlogPostSource } from "./src/main.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,EACX,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,EACX,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAYzE;AAGD,wBAAgB,gBAAgB,WAmC/B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
export function generateSlug(text) {
|
|
4
|
+
if (text === undefined) {
|
|
5
|
+
return "";
|
|
6
|
+
}
|
|
7
|
+
const textString = typeof text === "string"
|
|
8
|
+
? text
|
|
9
|
+
: String(text);
|
|
10
|
+
return textString
|
|
11
|
+
.toLowerCase()
|
|
12
|
+
.replace(/[^\w\s-]/g, "")
|
|
13
|
+
.replace(/\s+/g, "-");
|
|
14
|
+
}
|
|
15
|
+
export function useActiveHeading() {
|
|
16
|
+
const [activeId, setActiveId] = useState("");
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const headings = document.querySelectorAll("h1[id], h2[id], h3[id], h4[id]");
|
|
19
|
+
const observer = new IntersectionObserver((entries) => {
|
|
20
|
+
const visible = entries
|
|
21
|
+
.filter((entry) => entry.isIntersecting)
|
|
22
|
+
.sort((a, b) => a.boundingClientRect.top - b.boundingClientRect.top);
|
|
23
|
+
if (visible.length > 0) {
|
|
24
|
+
setActiveId(visible[0].target.getAttribute("id") || "");
|
|
25
|
+
}
|
|
26
|
+
}, {
|
|
27
|
+
rootMargin: "0px 0px -70% 0px",
|
|
28
|
+
threshold: 0,
|
|
29
|
+
});
|
|
30
|
+
headings.forEach((heading) => observer.observe(heading));
|
|
31
|
+
return () => observer.disconnect();
|
|
32
|
+
}, []);
|
|
33
|
+
return activeId;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,UAAU,YAAY,CAAC,IAAoC;IAC/D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ;QACzC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEjB,OAAO,UAAU;SACd,WAAW,EAAE;SACb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAGD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CACxC,gCAAgC,CACjC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,OAAO,GAAG,OAAO;iBACpB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;iBACvC,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,CAAC,kBAAkB,CAAC,GAAG,CACtD,CAAC;YAEJ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,WAAW,CACT,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAC3C,CAAC;YACJ,CAAC;QACH,CAAC,EACD;YACE,UAAU,EAAE,kBAAkB;YAC9B,SAAS,EAAE,CAAC;SACb,CACF,CAAC;QAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAEzD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/src/main.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function setContentDirectory(newPath: string): void;
|
|
1
2
|
export type BlogFrontmatter = {
|
|
2
3
|
title?: string;
|
|
3
4
|
description?: string;
|
|
@@ -12,6 +13,7 @@ export type BlogPostSource = {
|
|
|
12
13
|
filename: string;
|
|
13
14
|
filePath: string;
|
|
14
15
|
mdx: string;
|
|
16
|
+
frontmatter?: any;
|
|
15
17
|
};
|
|
16
18
|
type TOCItem = {
|
|
17
19
|
level: number;
|
|
@@ -22,7 +24,7 @@ export declare function generateSlug(text: string): string;
|
|
|
22
24
|
export declare function generateTOC(content: string): TOCItem[];
|
|
23
25
|
export declare function Slugs(): string[];
|
|
24
26
|
export declare function Post(slug: string): BlogPostSource | undefined;
|
|
25
|
-
export declare function allPosts(): BlogPostSource[]
|
|
27
|
+
export declare function allPosts(): Promise<BlogPostSource[]>;
|
|
26
28
|
export declare function MDXPost(slug: string): Promise<{
|
|
27
29
|
slug: string;
|
|
28
30
|
code: string;
|
package/dist/src/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAOA,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,QAElD;AAMD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB,CAAC;AAgDF,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAGF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAKxC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAgBtD;AAED,wBAAgB,KAAK,IAAI,MAAM,EAAE,CAEhC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE7D;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAgB1D;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM;;;;;eAoBzC"}
|
package/dist/src/main.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { bundleMDX } from "mdx-bundler";
|
|
4
|
-
|
|
4
|
+
let BLOG_DIR_PATH = path.join(process.cwd(), "content", "blogs");
|
|
5
|
+
export function setContentDirectory(newPath) {
|
|
6
|
+
BLOG_DIR_PATH = newPath;
|
|
7
|
+
}
|
|
5
8
|
const ESBUILD_BINARY_PATH = process.platform === "win32"
|
|
6
9
|
? path.join(process.cwd(), "node_modules", "esbuild", "esbuild.exe")
|
|
7
10
|
: path.join(process.cwd(), "node_modules", "esbuild", "bin", "esbuild");
|
|
@@ -68,10 +71,18 @@ export function Slugs() {
|
|
|
68
71
|
export function Post(slug) {
|
|
69
72
|
return getPostSourceBySlug(slug);
|
|
70
73
|
}
|
|
71
|
-
export function allPosts() {
|
|
72
|
-
|
|
74
|
+
export async function allPosts() {
|
|
75
|
+
ensureEsbuildBinaryPath();
|
|
76
|
+
const posts = Slugs()
|
|
73
77
|
.map(getPostSourceBySlug)
|
|
74
78
|
.filter((post) => Boolean(post));
|
|
79
|
+
return Promise.all(posts.map(async (post) => {
|
|
80
|
+
const { frontmatter } = await bundleMDX({
|
|
81
|
+
file: post.filePath,
|
|
82
|
+
cwd: BLOG_DIR_PATH,
|
|
83
|
+
});
|
|
84
|
+
return { ...post, frontmatter };
|
|
85
|
+
}));
|
|
75
86
|
}
|
|
76
87
|
export async function MDXPost(slug) {
|
|
77
88
|
const post = Post(slug);
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postfolio",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"main": "./index.
|
|
6
|
-
"types": "./index.ts",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
|
-
"types": "./index.ts",
|
|
10
|
-
"import": "./index.
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
11
|
},
|
|
12
12
|
"./renderer": {
|
|
13
|
-
"types": "./src/renderer.
|
|
14
|
-
"import": "./src/renderer.
|
|
13
|
+
"types": "./dist/src/renderer.d.ts",
|
|
14
|
+
"import": "./dist/src/renderer.js"
|
|
15
15
|
},
|
|
16
16
|
"./client": {
|
|
17
|
-
"types": "./src/client.ts",
|
|
18
|
-
"import": "./src/client.
|
|
17
|
+
"types": "./dist/src/client.d.ts",
|
|
18
|
+
"import": "./dist/src/client.js"
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"files": [
|