@opinly/next 0.1.14 → 0.1.16
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/components/author-page/_helpers/json-ld.cjs +2 -0
- package/dist/components/author-page/_helpers/json-ld.js +0 -1
- package/dist/components/author-page/index.cjs +84 -0
- package/dist/components/author-page/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/components/author-page/index.js +23 -57
- package/dist/components/author-page/index.js.map +1 -1
- package/dist/components/authors-page/index.cjs +105 -0
- package/dist/components/authors-page/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/components/authors-page/index.js +29 -63
- package/dist/components/authors-page/index.js.map +1 -1
- package/dist/components/blog-post/_components/content.cjs +160 -0
- package/dist/components/blog-post/_components/{content.mjs.map → content.cjs.map} +1 -1
- package/dist/components/blog-post/_components/content.js +29 -63
- package/dist/components/blog-post/_components/content.js.map +1 -1
- package/dist/components/blog-post/_components/faq.cjs +39 -0
- package/dist/components/blog-post/_components/{faq.mjs.map → faq.cjs.map} +1 -1
- package/dist/components/blog-post/_components/faq.js +8 -32
- package/dist/components/blog-post/_components/faq.js.map +1 -1
- package/dist/components/blog-post/_components/share.cjs +100 -0
- package/dist/components/blog-post/_components/{share.mjs.map → share.cjs.map} +1 -1
- package/dist/components/blog-post/_components/share.js +24 -58
- package/dist/components/blog-post/_components/share.js.map +1 -1
- package/dist/components/blog-post/_components/table-of-contents.cjs +82 -0
- package/dist/components/blog-post/_components/{table-of-contents.mjs.map → table-of-contents.cjs.map} +1 -1
- package/dist/components/blog-post/_components/table-of-contents.js +24 -58
- package/dist/components/blog-post/_components/table-of-contents.js.map +1 -1
- package/dist/components/blog-post/_helpers/calc-reading-time.cjs +2 -0
- package/dist/components/blog-post/_helpers/calc-reading-time.js +0 -1
- package/dist/components/blog-post/_helpers/extract-headings.cjs +44 -0
- package/dist/components/blog-post/_helpers/{extract-headings.mjs.map → extract-headings.cjs.map} +1 -1
- package/dist/components/blog-post/_helpers/extract-headings.js +2 -26
- package/dist/components/blog-post/_helpers/extract-headings.js.map +1 -1
- package/dist/components/blog-post/_helpers/{json-ld.mjs → json-ld.cjs} +39 -12
- package/dist/components/blog-post/_helpers/{json-ld.mjs.map → json-ld.cjs.map} +1 -1
- package/dist/components/blog-post/_helpers/json-ld.js +11 -38
- package/dist/components/blog-post/_helpers/json-ld.js.map +1 -1
- package/dist/components/blog-post/_helpers/reading-time.cjs +50 -0
- package/dist/components/blog-post/_helpers/{reading-time.mjs.map → reading-time.cjs.map} +1 -1
- package/dist/components/blog-post/_helpers/reading-time.js +2 -27
- package/dist/components/blog-post/_helpers/reading-time.js.map +1 -1
- package/dist/components/blog-post/_types/blog-post.cjs +17 -0
- package/dist/components/blog-post/_types/blog-post.cjs.map +1 -0
- package/dist/components/blog-post/_types/blog-post.js +0 -16
- package/dist/components/blog-post/_types/blog-post.js.map +1 -1
- package/dist/components/blog-post/_types/class-names.cjs +17 -0
- package/dist/components/blog-post/_types/class-names.cjs.map +1 -0
- package/dist/components/blog-post/_types/class-names.js +0 -16
- package/dist/components/blog-post/_types/class-names.js.map +1 -1
- package/dist/components/blog-post/index.cjs +148 -0
- package/dist/components/blog-post/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/components/blog-post/index.js +47 -77
- package/dist/components/blog-post/index.js.map +1 -1
- package/dist/components/bread-crumbs.cjs +60 -0
- package/dist/components/{bread-crumbs.mjs.map → bread-crumbs.cjs.map} +1 -1
- package/dist/components/bread-crumbs.js +13 -47
- package/dist/components/bread-crumbs.js.map +1 -1
- package/dist/components/folder-page/index.cjs +61 -0
- package/dist/components/folder-page/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/components/folder-page/index.js +12 -36
- package/dist/components/folder-page/index.js.map +1 -1
- package/dist/components/home-page/folders.cjs +98 -0
- package/dist/components/home-page/{folders.mjs.map → folders.cjs.map} +1 -1
- package/dist/components/home-page/folders.js +29 -64
- package/dist/components/home-page/folders.js.map +1 -1
- package/dist/components/home-page/index.cjs +44 -0
- package/dist/components/home-page/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/components/home-page/index.js +11 -35
- package/dist/components/home-page/index.js.map +1 -1
- package/dist/components/home-page/pagination.cjs +91 -0
- package/dist/components/home-page/{pagination.mjs.map → pagination.cjs.map} +1 -1
- package/dist/components/home-page/pagination.js +9 -43
- package/dist/components/home-page/pagination.js.map +1 -1
- package/dist/components/home-page/top-posts.cjs +52 -0
- package/dist/components/home-page/{top-posts.mjs.map → top-posts.cjs.map} +1 -1
- package/dist/components/home-page/top-posts.js +10 -34
- package/dist/components/home-page/top-posts.js.map +1 -1
- package/dist/components/not-found.cjs +60 -0
- package/dist/components/{not-found.mjs.map → not-found.cjs.map} +1 -1
- package/dist/components/not-found.js +15 -49
- package/dist/components/not-found.js.map +1 -1
- package/dist/components/opinly-blog.cjs +57 -0
- package/dist/components/{opinly-blog.mjs.map → opinly-blog.cjs.map} +1 -1
- package/dist/components/opinly-blog.js +15 -39
- package/dist/components/opinly-blog.js.map +1 -1
- package/dist/components/post-preview.cjs +112 -0
- package/dist/components/{post-preview.mjs.map → post-preview.cjs.map} +1 -1
- package/dist/components/post-preview.js +42 -77
- package/dist/components/post-preview.js.map +1 -1
- package/dist/index.cjs +25 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -22
- package/dist/index.js.map +1 -1
- package/dist/utils/dates.cjs +33 -0
- package/dist/utils/{dates.mjs.map → dates.cjs.map} +1 -1
- package/dist/utils/dates.js +2 -26
- package/dist/utils/dates.js.map +1 -1
- package/dist/utils/generate-metadata.cjs +62 -0
- package/dist/utils/generate-metadata.cjs.map +1 -0
- package/dist/utils/generate-metadata.js +9 -31
- package/dist/utils/generate-metadata.js.map +1 -1
- package/dist/utils/merge.cjs +33 -0
- package/dist/utils/{merge.mjs.map → merge.cjs.map} +1 -1
- package/dist/utils/merge.js +5 -29
- package/dist/utils/merge.js.map +1 -1
- package/dist/utils/sdk-config.cjs +51 -0
- package/dist/utils/sdk-config.cjs.map +1 -0
- package/dist/utils/sdk-config.d.cts +10 -2
- package/dist/utils/sdk-config.d.ts +10 -2
- package/dist/utils/sdk-config.js +3 -34
- package/dist/utils/sdk-config.js.map +1 -1
- package/dist/utils/with-opinly-config.cjs +115 -0
- package/dist/utils/with-opinly-config.cjs.map +1 -0
- package/dist/utils/with-opinly-config.d.cts +39 -0
- package/dist/utils/with-opinly-config.d.ts +39 -0
- package/dist/utils/with-opinly-config.js +91 -0
- package/dist/utils/with-opinly-config.js.map +1 -0
- package/package.json +3 -2
- package/dist/components/author-page/_helpers/json-ld.mjs +0 -1
- package/dist/components/author-page/index.mjs +0 -50
- package/dist/components/authors-page/index.mjs +0 -71
- package/dist/components/blog-post/_components/content.mjs +0 -126
- package/dist/components/blog-post/_components/faq.mjs +0 -15
- package/dist/components/blog-post/_components/share.mjs +0 -66
- package/dist/components/blog-post/_components/table-of-contents.mjs +0 -48
- package/dist/components/blog-post/_helpers/calc-reading-time.mjs +0 -1
- package/dist/components/blog-post/_helpers/extract-headings.mjs +0 -20
- package/dist/components/blog-post/_helpers/reading-time.mjs +0 -25
- package/dist/components/blog-post/_types/blog-post.mjs +0 -1
- package/dist/components/blog-post/_types/blog-post.mjs.map +0 -1
- package/dist/components/blog-post/_types/class-names.mjs +0 -1
- package/dist/components/blog-post/_types/class-names.mjs.map +0 -1
- package/dist/components/blog-post/index.mjs +0 -118
- package/dist/components/bread-crumbs.mjs +0 -26
- package/dist/components/folder-page/index.mjs +0 -37
- package/dist/components/home-page/folders.mjs +0 -63
- package/dist/components/home-page/index.mjs +0 -20
- package/dist/components/home-page/pagination.mjs +0 -57
- package/dist/components/home-page/top-posts.mjs +0 -28
- package/dist/components/not-found.mjs +0 -26
- package/dist/components/opinly-blog.mjs +0 -33
- package/dist/components/post-preview.mjs +0 -77
- package/dist/index.mjs +0 -2
- package/dist/index.mjs.map +0 -1
- package/dist/utils/dates.mjs +0 -9
- package/dist/utils/generate-metadata.mjs +0 -36
- package/dist/utils/generate-metadata.mjs.map +0 -1
- package/dist/utils/merge.mjs +0 -9
- package/dist/utils/sdk-config.mjs +0 -32
- package/dist/utils/sdk-config.mjs.map +0 -1
- /package/dist/components/author-page/_helpers/{json-ld.mjs.map → json-ld.cjs.map} +0 -0
- /package/dist/components/blog-post/_helpers/{calc-reading-time.mjs.map → calc-reading-time.cjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/blog-post/_components/share.tsx"],"sourcesContent":["import { Facebook, Linkedin, Mail, Twitter } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { BlogPostRes } from \"../_types/blog-post\";\n\nexport const Share = ({ post }: { post: BlogPostRes }) => {\n const postUrl = encodeURIComponent(`${opinlyConfig.blogUrl}/${post.slug}`);\n return (\n <div className=\"flex gap-2 mb-6\">\n <Link\n href={`https://linkedin.com/sharing/share-offsite?url=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on LinkedIn</span>\n <Linkedin className=\"w-4 h-4\" />\n </Link>\n <Link\n href={`https://twitter.com/intent/tweet?url=${postUrl}&text=${encodeURIComponent(\n `Check out this article by ${post.author?.name}`\n )}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Twitter</span>\n <Twitter />\n </Link>\n <Link\n href={`https://facebook.com/sharer/sharer.php?u=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Facebook</span>\n <Facebook />\n </Link>\n <Link\n href={`mailto:?body=${encodeURIComponent(`${post.title}\\n${postUrl}`)}`}\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share via Email</span>\n <Mail className=\"w-4 h-4\" />\n </Link>\n </div>\n );\n};\n"],"mappings":"AASM
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/blog-post/_components/share.tsx"],"sourcesContent":["import { Facebook, Linkedin, Mail, Twitter } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { BlogPostRes } from \"../_types/blog-post\";\n\nexport const Share = ({ post }: { post: BlogPostRes }) => {\n const postUrl = encodeURIComponent(`${opinlyConfig.blogUrl}/${post.slug}`);\n return (\n <div className=\"flex gap-2 mb-6\">\n <Link\n href={`https://linkedin.com/sharing/share-offsite?url=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on LinkedIn</span>\n <Linkedin className=\"w-4 h-4\" />\n </Link>\n <Link\n href={`https://twitter.com/intent/tweet?url=${postUrl}&text=${encodeURIComponent(\n `Check out this article by ${post.author?.name}`\n )}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Twitter</span>\n <Twitter />\n </Link>\n <Link\n href={`https://facebook.com/sharer/sharer.php?u=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Facebook</span>\n <Facebook />\n </Link>\n <Link\n href={`mailto:?body=${encodeURIComponent(`${post.title}\\n${postUrl}`)}`}\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share via Email</span>\n <Mail className=\"w-4 h-4\" />\n </Link>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASM;AATN,0BAAkD;AAClD,kBAAiB;AACjB,wBAA6B;AAGtB,MAAM,QAAQ,CAAC,EAAE,KAAK,MAA6B;AACxD,QAAM,UAAU,mBAAmB,GAAG,+BAAa,OAAO,IAAI,KAAK,IAAI,EAAE;AACzE,SACE,6CAAC,SAAI,WAAU,mBACb;AAAA;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM,kDAAkD,OAAO;AAAA,QAC/D,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QAEV;AAAA,sDAAC,UAAK,WAAU,WAAU,+BAAiB;AAAA,UAC3C,4CAAC,gCAAS,WAAU,WAAU;AAAA;AAAA;AAAA,IAChC;AAAA,IACA;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM,wCAAwC,OAAO,SAAS;AAAA,UAC5D,6BAA6B,KAAK,QAAQ,IAAI;AAAA,QAChD,CAAC;AAAA,QACD,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QAEV;AAAA,sDAAC,UAAK,WAAU,WAAU,8BAAgB;AAAA,UAC1C,4CAAC,+BAAQ;AAAA;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM,4CAA4C,OAAO;AAAA,QACzD,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QAEV;AAAA,sDAAC,UAAK,WAAU,WAAU,+BAAiB;AAAA,UAC3C,4CAAC,gCAAS;AAAA;AAAA;AAAA,IACZ;AAAA,IACA;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM,gBAAgB,mBAAmB,GAAG,KAAK,KAAK;AAAA,EAAK,OAAO,EAAE,CAAC;AAAA,QACrE,WAAU;AAAA,QAEV;AAAA,sDAAC,UAAK,WAAU,WAAU,6BAAe;AAAA,UACzC,4CAAC,4BAAK,WAAU,WAAU;AAAA;AAAA;AAAA,IAC5B;AAAA,KACF;AAEJ;","names":["Link"]}
|
|
@@ -1,58 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var share_exports = {};
|
|
30
|
-
__export(share_exports, {
|
|
31
|
-
Share: () => Share
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(share_exports);
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
var import_lucide_react = require("lucide-react");
|
|
36
|
-
var import_link = __toESM(require("next/link"), 1);
|
|
37
|
-
var import_sdk_config = require("../../../utils/sdk-config");
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Facebook, Linkedin, Mail, Twitter } from "lucide-react";
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { opinlyConfig } from "../../../utils/sdk-config";
|
|
38
5
|
const Share = ({ post }) => {
|
|
39
|
-
const postUrl = encodeURIComponent(`${
|
|
40
|
-
return /* @__PURE__ */
|
|
41
|
-
/* @__PURE__ */
|
|
42
|
-
|
|
6
|
+
const postUrl = encodeURIComponent(`${opinlyConfig.blogUrl}/${post.slug}`);
|
|
7
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex gap-2 mb-6", children: [
|
|
8
|
+
/* @__PURE__ */ jsxs(
|
|
9
|
+
Link,
|
|
43
10
|
{
|
|
44
11
|
href: `https://linkedin.com/sharing/share-offsite?url=${postUrl}`,
|
|
45
12
|
target: "_blank",
|
|
46
13
|
rel: "noopener noreferrer",
|
|
47
14
|
className: "border p-1 rounded flex items-center justify-center w-8 h-8",
|
|
48
15
|
children: [
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
-
/* @__PURE__ */
|
|
16
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Share on LinkedIn" }),
|
|
17
|
+
/* @__PURE__ */ jsx(Linkedin, { className: "w-4 h-4" })
|
|
51
18
|
]
|
|
52
19
|
}
|
|
53
20
|
),
|
|
54
|
-
/* @__PURE__ */
|
|
55
|
-
|
|
21
|
+
/* @__PURE__ */ jsxs(
|
|
22
|
+
Link,
|
|
56
23
|
{
|
|
57
24
|
href: `https://twitter.com/intent/tweet?url=${postUrl}&text=${encodeURIComponent(
|
|
58
25
|
`Check out this article by ${post.author?.name}`
|
|
@@ -61,40 +28,39 @@ const Share = ({ post }) => {
|
|
|
61
28
|
rel: "noopener noreferrer",
|
|
62
29
|
className: "border p-1 rounded flex items-center justify-center w-8 h-8",
|
|
63
30
|
children: [
|
|
64
|
-
/* @__PURE__ */
|
|
65
|
-
/* @__PURE__ */
|
|
31
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Share on Twitter" }),
|
|
32
|
+
/* @__PURE__ */ jsx(Twitter, {})
|
|
66
33
|
]
|
|
67
34
|
}
|
|
68
35
|
),
|
|
69
|
-
/* @__PURE__ */
|
|
70
|
-
|
|
36
|
+
/* @__PURE__ */ jsxs(
|
|
37
|
+
Link,
|
|
71
38
|
{
|
|
72
39
|
href: `https://facebook.com/sharer/sharer.php?u=${postUrl}`,
|
|
73
40
|
target: "_blank",
|
|
74
41
|
rel: "noopener noreferrer",
|
|
75
42
|
className: "border p-1 rounded flex items-center justify-center w-8 h-8",
|
|
76
43
|
children: [
|
|
77
|
-
/* @__PURE__ */
|
|
78
|
-
/* @__PURE__ */
|
|
44
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Share on Facebook" }),
|
|
45
|
+
/* @__PURE__ */ jsx(Facebook, {})
|
|
79
46
|
]
|
|
80
47
|
}
|
|
81
48
|
),
|
|
82
|
-
/* @__PURE__ */
|
|
83
|
-
|
|
49
|
+
/* @__PURE__ */ jsxs(
|
|
50
|
+
Link,
|
|
84
51
|
{
|
|
85
52
|
href: `mailto:?body=${encodeURIComponent(`${post.title}
|
|
86
53
|
${postUrl}`)}`,
|
|
87
54
|
className: "border p-1 rounded flex items-center justify-center w-8 h-8",
|
|
88
55
|
children: [
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
/* @__PURE__ */
|
|
56
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Share via Email" }),
|
|
57
|
+
/* @__PURE__ */ jsx(Mail, { className: "w-4 h-4" })
|
|
91
58
|
]
|
|
92
59
|
}
|
|
93
60
|
)
|
|
94
61
|
] });
|
|
95
62
|
};
|
|
96
|
-
|
|
97
|
-
0 && (module.exports = {
|
|
63
|
+
export {
|
|
98
64
|
Share
|
|
99
|
-
}
|
|
65
|
+
};
|
|
100
66
|
//# sourceMappingURL=share.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/blog-post/_components/share.tsx"],"sourcesContent":["import { Facebook, Linkedin, Mail, Twitter } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { BlogPostRes } from \"../_types/blog-post\";\n\nexport const Share = ({ post }: { post: BlogPostRes }) => {\n const postUrl = encodeURIComponent(`${opinlyConfig.blogUrl}/${post.slug}`);\n return (\n <div className=\"flex gap-2 mb-6\">\n <Link\n href={`https://linkedin.com/sharing/share-offsite?url=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on LinkedIn</span>\n <Linkedin className=\"w-4 h-4\" />\n </Link>\n <Link\n href={`https://twitter.com/intent/tweet?url=${postUrl}&text=${encodeURIComponent(\n `Check out this article by ${post.author?.name}`\n )}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Twitter</span>\n <Twitter />\n </Link>\n <Link\n href={`https://facebook.com/sharer/sharer.php?u=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Facebook</span>\n <Facebook />\n </Link>\n <Link\n href={`mailto:?body=${encodeURIComponent(`${post.title}\\n${postUrl}`)}`}\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share via Email</span>\n <Mail className=\"w-4 h-4\" />\n </Link>\n </div>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/blog-post/_components/share.tsx"],"sourcesContent":["import { Facebook, Linkedin, Mail, Twitter } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { BlogPostRes } from \"../_types/blog-post\";\n\nexport const Share = ({ post }: { post: BlogPostRes }) => {\n const postUrl = encodeURIComponent(`${opinlyConfig.blogUrl}/${post.slug}`);\n return (\n <div className=\"flex gap-2 mb-6\">\n <Link\n href={`https://linkedin.com/sharing/share-offsite?url=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on LinkedIn</span>\n <Linkedin className=\"w-4 h-4\" />\n </Link>\n <Link\n href={`https://twitter.com/intent/tweet?url=${postUrl}&text=${encodeURIComponent(\n `Check out this article by ${post.author?.name}`\n )}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Twitter</span>\n <Twitter />\n </Link>\n <Link\n href={`https://facebook.com/sharer/sharer.php?u=${postUrl}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share on Facebook</span>\n <Facebook />\n </Link>\n <Link\n href={`mailto:?body=${encodeURIComponent(`${post.title}\\n${postUrl}`)}`}\n className=\"border p-1 rounded flex items-center justify-center w-8 h-8\"\n >\n <span className=\"sr-only\">Share via Email</span>\n <Mail className=\"w-4 h-4\" />\n </Link>\n </div>\n );\n};\n"],"mappings":"AASM,SAME,KANF;AATN,SAAS,UAAU,UAAU,MAAM,eAAe;AAClD,OAAO,UAAU;AACjB,SAAS,oBAAoB;AAGtB,MAAM,QAAQ,CAAC,EAAE,KAAK,MAA6B;AACxD,QAAM,UAAU,mBAAmB,GAAG,aAAa,OAAO,IAAI,KAAK,IAAI,EAAE;AACzE,SACE,qBAAC,SAAI,WAAU,mBACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,kDAAkD,OAAO;AAAA,QAC/D,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QAEV;AAAA,8BAAC,UAAK,WAAU,WAAU,+BAAiB;AAAA,UAC3C,oBAAC,YAAS,WAAU,WAAU;AAAA;AAAA;AAAA,IAChC;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,wCAAwC,OAAO,SAAS;AAAA,UAC5D,6BAA6B,KAAK,QAAQ,IAAI;AAAA,QAChD,CAAC;AAAA,QACD,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QAEV;AAAA,8BAAC,UAAK,WAAU,WAAU,8BAAgB;AAAA,UAC1C,oBAAC,WAAQ;AAAA;AAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,4CAA4C,OAAO;AAAA,QACzD,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QAEV;AAAA,8BAAC,UAAK,WAAU,WAAU,+BAAiB;AAAA,UAC3C,oBAAC,YAAS;AAAA;AAAA;AAAA,IACZ;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM,gBAAgB,mBAAmB,GAAG,KAAK,KAAK;AAAA,EAAK,OAAO,EAAE,CAAC;AAAA,QACrE,WAAU;AAAA,QAEV;AAAA,8BAAC,UAAK,WAAU,WAAU,6BAAe;AAAA,UACzC,oBAAC,QAAK,WAAU,WAAU;AAAA;AAAA;AAAA,IAC5B;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var table_of_contents_exports = {};
|
|
30
|
+
__export(table_of_contents_exports, {
|
|
31
|
+
TableOfContents: () => TableOfContents
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(table_of_contents_exports);
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
+
var import_merge = require("../../../utils/merge");
|
|
36
|
+
var import_image = __toESM(require("next/image"), 1);
|
|
37
|
+
var import_sdk_config = require("../../../utils/sdk-config");
|
|
38
|
+
var import_extract_headings = require("../_helpers/extract-headings");
|
|
39
|
+
var import_share = require("./share");
|
|
40
|
+
var import_link = __toESM(require("next/link"), 1);
|
|
41
|
+
const TableOfContents = ({
|
|
42
|
+
content,
|
|
43
|
+
author,
|
|
44
|
+
post
|
|
45
|
+
}) => {
|
|
46
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("aside", { className: (0, import_merge.cn)("w-full lg:w-1/3 lg:sticky lg:top-20 lg:self-start"), children: [
|
|
47
|
+
author && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-full mb-6 border p-4 rounded-md text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
48
|
+
author.fileKey && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
49
|
+
import_image.default,
|
|
50
|
+
{
|
|
51
|
+
unoptimized: import_sdk_config.opinlyConfig.unoptimizedImages,
|
|
52
|
+
src: `${import_sdk_config.opinlyConfig.imagesPrefix}/${author.fileKey}`,
|
|
53
|
+
alt: author.name,
|
|
54
|
+
width: 48,
|
|
55
|
+
height: 48,
|
|
56
|
+
className: "rounded-full"
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
60
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
61
|
+
import_link.default,
|
|
62
|
+
{
|
|
63
|
+
href: `${import_sdk_config.opinlyConfig.blogPrefix}/authors/${author.slug}`,
|
|
64
|
+
className: "text-xs uppercase text-muted-foreground font-medium",
|
|
65
|
+
children: author.name
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-muted-foreground text-sm", children: author.bio })
|
|
69
|
+
] })
|
|
70
|
+
] }) }),
|
|
71
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_share.Share, { post }),
|
|
72
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "border-l-4 border-opinlyAccent pl-4 mb-4", children: [
|
|
73
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-lg font-semibold mb-2", children: "TABLE OF CONTENTS" }),
|
|
74
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "text-sm text-gray-700 space-y-1", children: ((0, import_extract_headings.extractHeadings)(content) || []).map((heading) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: `#${heading.slug}`, className: "hover:underline", children: heading.text }) }, heading.slug)) })
|
|
75
|
+
] })
|
|
76
|
+
] });
|
|
77
|
+
};
|
|
78
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
79
|
+
0 && (module.exports = {
|
|
80
|
+
TableOfContents
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=table-of-contents.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/blog-post/_components/table-of-contents.tsx"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\nimport { BlogPostRes } from \"../_types/blog-post\";\nimport { cn } from \"../../../utils/merge\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { extractHeadings } from \"../_helpers/extract-headings\";\nimport { Share } from \"./share\";\nimport Link from \"next/link\";\n\ntype TableOfContentsProps = {\n content: JSONContent;\n author: BlogPostRes[\"author\"] | null;\n post: BlogPostRes;\n};\n\nexport const TableOfContents = ({\n content,\n author,\n post,\n}: TableOfContentsProps) => {\n return (\n <aside className={cn(\"w-full lg:w-1/3 lg:sticky lg:top-20 lg:self-start\")}>\n {author && (\n <div className=\"w-full mb-6 border p-4 rounded-md text-sm\">\n <div className=\"flex items-center gap-3 mb-3\">\n {author.fileKey && (\n <Image\n unoptimized={opinlyConfig.unoptimizedImages}\n src={`${opinlyConfig.imagesPrefix}/${author.fileKey}`}\n alt={author.name}\n width={48}\n height={48}\n className=\"rounded-full\"\n />\n )}\n <div>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${author.slug}`}\n className=\"text-xs uppercase text-muted-foreground font-medium\"\n >\n {author.name}\n </Link>\n <div className=\"text-muted-foreground text-sm\">{author.bio}</div>\n </div>\n </div>\n </div>\n )}\n <Share post={post} />\n <div className=\"border-l-4 border-opinlyAccent pl-4 mb-4\">\n <h2 className=\"text-lg font-semibold mb-2\">TABLE OF CONTENTS</h2>\n <ul className=\"text-sm text-gray-700 space-y-1\">\n {(extractHeadings(content) || []).map((heading) => (\n <li key={heading.slug}>\n <a href={`#${heading.slug}`} className=\"hover:underline\">\n {heading.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n"],"mappings":"AA0Bc
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/blog-post/_components/table-of-contents.tsx"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\nimport { BlogPostRes } from \"../_types/blog-post\";\nimport { cn } from \"../../../utils/merge\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { extractHeadings } from \"../_helpers/extract-headings\";\nimport { Share } from \"./share\";\nimport Link from \"next/link\";\n\ntype TableOfContentsProps = {\n content: JSONContent;\n author: BlogPostRes[\"author\"] | null;\n post: BlogPostRes;\n};\n\nexport const TableOfContents = ({\n content,\n author,\n post,\n}: TableOfContentsProps) => {\n return (\n <aside className={cn(\"w-full lg:w-1/3 lg:sticky lg:top-20 lg:self-start\")}>\n {author && (\n <div className=\"w-full mb-6 border p-4 rounded-md text-sm\">\n <div className=\"flex items-center gap-3 mb-3\">\n {author.fileKey && (\n <Image\n unoptimized={opinlyConfig.unoptimizedImages}\n src={`${opinlyConfig.imagesPrefix}/${author.fileKey}`}\n alt={author.name}\n width={48}\n height={48}\n className=\"rounded-full\"\n />\n )}\n <div>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${author.slug}`}\n className=\"text-xs uppercase text-muted-foreground font-medium\"\n >\n {author.name}\n </Link>\n <div className=\"text-muted-foreground text-sm\">{author.bio}</div>\n </div>\n </div>\n </div>\n )}\n <Share post={post} />\n <div className=\"border-l-4 border-opinlyAccent pl-4 mb-4\">\n <h2 className=\"text-lg font-semibold mb-2\">TABLE OF CONTENTS</h2>\n <ul className=\"text-sm text-gray-700 space-y-1\">\n {(extractHeadings(content) || []).map((heading) => (\n <li key={heading.slug}>\n <a href={`#${heading.slug}`} className=\"hover:underline\">\n {heading.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0Bc;AAxBd,mBAAmB;AACnB,mBAAkB;AAClB,wBAA6B;AAC7B,8BAAgC;AAChC,mBAAsB;AACtB,kBAAiB;AAQV,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,SACE,6CAAC,WAAM,eAAW,iBAAG,mDAAmD,GACrE;AAAA,cACC,4CAAC,SAAI,WAAU,6CACb,uDAAC,SAAI,WAAU,gCACZ;AAAA,aAAO,WACN;AAAA,QAAC,aAAAA;AAAA,QAAA;AAAA,UACC,aAAa,+BAAa;AAAA,UAC1B,KAAK,GAAG,+BAAa,YAAY,IAAI,OAAO,OAAO;AAAA,UACnD,KAAK,OAAO;AAAA,UACZ,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,WAAU;AAAA;AAAA,MACZ;AAAA,MAEF,6CAAC,SACC;AAAA;AAAA,UAAC,YAAAC;AAAA,UAAA;AAAA,YACC,MAAM,GAAG,+BAAa,UAAU,YAAY,OAAO,IAAI;AAAA,YACvD,WAAU;AAAA,YAET,iBAAO;AAAA;AAAA,QACV;AAAA,QACA,4CAAC,SAAI,WAAU,iCAAiC,iBAAO,KAAI;AAAA,SAC7D;AAAA,OACF,GACF;AAAA,IAEF,4CAAC,sBAAM,MAAY;AAAA,IACnB,6CAAC,SAAI,WAAU,4CACb;AAAA,kDAAC,QAAG,WAAU,8BAA6B,+BAAiB;AAAA,MAC5D,4CAAC,QAAG,WAAU,mCACV,wDAAgB,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,YACrC,4CAAC,QACC,sDAAC,OAAE,MAAM,IAAI,QAAQ,IAAI,IAAI,WAAU,mBACpC,kBAAQ,MACX,KAHO,QAAQ,IAIjB,CACD,GACH;AAAA,OACF;AAAA,KACF;AAEJ;","names":["Image","Link"]}
|
|
@@ -1,82 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var table_of_contents_exports = {};
|
|
30
|
-
__export(table_of_contents_exports, {
|
|
31
|
-
TableOfContents: () => TableOfContents
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(table_of_contents_exports);
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
var import_merge = require("../../../utils/merge");
|
|
36
|
-
var import_image = __toESM(require("next/image"), 1);
|
|
37
|
-
var import_sdk_config = require("../../../utils/sdk-config");
|
|
38
|
-
var import_extract_headings = require("../_helpers/extract-headings");
|
|
39
|
-
var import_share = require("./share");
|
|
40
|
-
var import_link = __toESM(require("next/link"), 1);
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../../utils/merge";
|
|
3
|
+
import Image from "next/image";
|
|
4
|
+
import { opinlyConfig } from "../../../utils/sdk-config";
|
|
5
|
+
import { extractHeadings } from "../_helpers/extract-headings";
|
|
6
|
+
import { Share } from "./share";
|
|
7
|
+
import Link from "next/link";
|
|
41
8
|
const TableOfContents = ({
|
|
42
9
|
content,
|
|
43
10
|
author,
|
|
44
11
|
post
|
|
45
12
|
}) => {
|
|
46
|
-
return /* @__PURE__ */
|
|
47
|
-
author && /* @__PURE__ */
|
|
48
|
-
author.fileKey && /* @__PURE__ */
|
|
49
|
-
|
|
13
|
+
return /* @__PURE__ */ jsxs("aside", { className: cn("w-full lg:w-1/3 lg:sticky lg:top-20 lg:self-start"), children: [
|
|
14
|
+
author && /* @__PURE__ */ jsx("div", { className: "w-full mb-6 border p-4 rounded-md text-sm", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
15
|
+
author.fileKey && /* @__PURE__ */ jsx(
|
|
16
|
+
Image,
|
|
50
17
|
{
|
|
51
|
-
unoptimized:
|
|
52
|
-
src: `${
|
|
18
|
+
unoptimized: opinlyConfig.unoptimizedImages,
|
|
19
|
+
src: `${opinlyConfig.imagesPrefix}/${author.fileKey}`,
|
|
53
20
|
alt: author.name,
|
|
54
21
|
width: 48,
|
|
55
22
|
height: 48,
|
|
56
23
|
className: "rounded-full"
|
|
57
24
|
}
|
|
58
25
|
),
|
|
59
|
-
/* @__PURE__ */
|
|
60
|
-
/* @__PURE__ */
|
|
61
|
-
|
|
26
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
27
|
+
/* @__PURE__ */ jsx(
|
|
28
|
+
Link,
|
|
62
29
|
{
|
|
63
|
-
href: `${
|
|
30
|
+
href: `${opinlyConfig.blogPrefix}/authors/${author.slug}`,
|
|
64
31
|
className: "text-xs uppercase text-muted-foreground font-medium",
|
|
65
32
|
children: author.name
|
|
66
33
|
}
|
|
67
34
|
),
|
|
68
|
-
/* @__PURE__ */
|
|
35
|
+
/* @__PURE__ */ jsx("div", { className: "text-muted-foreground text-sm", children: author.bio })
|
|
69
36
|
] })
|
|
70
37
|
] }) }),
|
|
71
|
-
/* @__PURE__ */
|
|
72
|
-
/* @__PURE__ */
|
|
73
|
-
/* @__PURE__ */
|
|
74
|
-
/* @__PURE__ */
|
|
38
|
+
/* @__PURE__ */ jsx(Share, { post }),
|
|
39
|
+
/* @__PURE__ */ jsxs("div", { className: "border-l-4 border-opinlyAccent pl-4 mb-4", children: [
|
|
40
|
+
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold mb-2", children: "TABLE OF CONTENTS" }),
|
|
41
|
+
/* @__PURE__ */ jsx("ul", { className: "text-sm text-gray-700 space-y-1", children: (extractHeadings(content) || []).map((heading) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: `#${heading.slug}`, className: "hover:underline", children: heading.text }) }, heading.slug)) })
|
|
75
42
|
] })
|
|
76
43
|
] });
|
|
77
44
|
};
|
|
78
|
-
|
|
79
|
-
0 && (module.exports = {
|
|
45
|
+
export {
|
|
80
46
|
TableOfContents
|
|
81
|
-
}
|
|
47
|
+
};
|
|
82
48
|
//# sourceMappingURL=table-of-contents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/blog-post/_components/table-of-contents.tsx"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\nimport { BlogPostRes } from \"../_types/blog-post\";\nimport { cn } from \"../../../utils/merge\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { extractHeadings } from \"../_helpers/extract-headings\";\nimport { Share } from \"./share\";\nimport Link from \"next/link\";\n\ntype TableOfContentsProps = {\n content: JSONContent;\n author: BlogPostRes[\"author\"] | null;\n post: BlogPostRes;\n};\n\nexport const TableOfContents = ({\n content,\n author,\n post,\n}: TableOfContentsProps) => {\n return (\n <aside className={cn(\"w-full lg:w-1/3 lg:sticky lg:top-20 lg:self-start\")}>\n {author && (\n <div className=\"w-full mb-6 border p-4 rounded-md text-sm\">\n <div className=\"flex items-center gap-3 mb-3\">\n {author.fileKey && (\n <Image\n unoptimized={opinlyConfig.unoptimizedImages}\n src={`${opinlyConfig.imagesPrefix}/${author.fileKey}`}\n alt={author.name}\n width={48}\n height={48}\n className=\"rounded-full\"\n />\n )}\n <div>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${author.slug}`}\n className=\"text-xs uppercase text-muted-foreground font-medium\"\n >\n {author.name}\n </Link>\n <div className=\"text-muted-foreground text-sm\">{author.bio}</div>\n </div>\n </div>\n </div>\n )}\n <Share post={post} />\n <div className=\"border-l-4 border-opinlyAccent pl-4 mb-4\">\n <h2 className=\"text-lg font-semibold mb-2\">TABLE OF CONTENTS</h2>\n <ul className=\"text-sm text-gray-700 space-y-1\">\n {(extractHeadings(content) || []).map((heading) => (\n <li key={heading.slug}>\n <a href={`#${heading.slug}`} className=\"hover:underline\">\n {heading.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/blog-post/_components/table-of-contents.tsx"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\nimport { BlogPostRes } from \"../_types/blog-post\";\nimport { cn } from \"../../../utils/merge\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../../../utils/sdk-config\";\nimport { extractHeadings } from \"../_helpers/extract-headings\";\nimport { Share } from \"./share\";\nimport Link from \"next/link\";\n\ntype TableOfContentsProps = {\n content: JSONContent;\n author: BlogPostRes[\"author\"] | null;\n post: BlogPostRes;\n};\n\nexport const TableOfContents = ({\n content,\n author,\n post,\n}: TableOfContentsProps) => {\n return (\n <aside className={cn(\"w-full lg:w-1/3 lg:sticky lg:top-20 lg:self-start\")}>\n {author && (\n <div className=\"w-full mb-6 border p-4 rounded-md text-sm\">\n <div className=\"flex items-center gap-3 mb-3\">\n {author.fileKey && (\n <Image\n unoptimized={opinlyConfig.unoptimizedImages}\n src={`${opinlyConfig.imagesPrefix}/${author.fileKey}`}\n alt={author.name}\n width={48}\n height={48}\n className=\"rounded-full\"\n />\n )}\n <div>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${author.slug}`}\n className=\"text-xs uppercase text-muted-foreground font-medium\"\n >\n {author.name}\n </Link>\n <div className=\"text-muted-foreground text-sm\">{author.bio}</div>\n </div>\n </div>\n </div>\n )}\n <Share post={post} />\n <div className=\"border-l-4 border-opinlyAccent pl-4 mb-4\">\n <h2 className=\"text-lg font-semibold mb-2\">TABLE OF CONTENTS</h2>\n <ul className=\"text-sm text-gray-700 space-y-1\">\n {(extractHeadings(content) || []).map((heading) => (\n <li key={heading.slug}>\n <a href={`#${heading.slug}`} className=\"hover:underline\">\n {heading.text}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n"],"mappings":"AA0Bc,cASF,YATE;AAxBd,SAAS,UAAU;AACnB,OAAO,WAAW;AAClB,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,SAAS,aAAa;AACtB,OAAO,UAAU;AAQV,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,SACE,qBAAC,WAAM,WAAW,GAAG,mDAAmD,GACrE;AAAA,cACC,oBAAC,SAAI,WAAU,6CACb,+BAAC,SAAI,WAAU,gCACZ;AAAA,aAAO,WACN;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,aAAa;AAAA,UAC1B,KAAK,GAAG,aAAa,YAAY,IAAI,OAAO,OAAO;AAAA,UACnD,KAAK,OAAO;AAAA,UACZ,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,WAAU;AAAA;AAAA,MACZ;AAAA,MAEF,qBAAC,SACC;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,GAAG,aAAa,UAAU,YAAY,OAAO,IAAI;AAAA,YACvD,WAAU;AAAA,YAET,iBAAO;AAAA;AAAA,QACV;AAAA,QACA,oBAAC,SAAI,WAAU,iCAAiC,iBAAO,KAAI;AAAA,SAC7D;AAAA,OACF,GACF;AAAA,IAEF,oBAAC,SAAM,MAAY;AAAA,IACnB,qBAAC,SAAI,WAAU,4CACb;AAAA,0BAAC,QAAG,WAAU,8BAA6B,+BAAiB;AAAA,MAC5D,oBAAC,QAAG,WAAU,mCACV,2BAAgB,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,YACrC,oBAAC,QACC,8BAAC,OAAE,MAAM,IAAI,QAAQ,IAAI,IAAI,WAAU,mBACpC,kBAAQ,MACX,KAHO,QAAQ,IAIjB,CACD,GACH;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var extract_headings_exports = {};
|
|
20
|
+
__export(extract_headings_exports, {
|
|
21
|
+
extractHeadings: () => extractHeadings
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(extract_headings_exports);
|
|
24
|
+
function extractHeadings(content) {
|
|
25
|
+
const headings = [];
|
|
26
|
+
if (!content?.content) return headings;
|
|
27
|
+
const walk = (nodes) => {
|
|
28
|
+
for (const node of nodes) {
|
|
29
|
+
if (node.type === "heading" && node.content?.[0]?.text) {
|
|
30
|
+
const text = node.content[0].text;
|
|
31
|
+
const slug = text.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
32
|
+
headings.push({ text, slug });
|
|
33
|
+
}
|
|
34
|
+
if (node.content) walk(node.content);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
walk(content.content);
|
|
38
|
+
return headings;
|
|
39
|
+
}
|
|
40
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
+
0 && (module.exports = {
|
|
42
|
+
extractHeadings
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=extract-headings.cjs.map
|
package/dist/components/blog-post/_helpers/{extract-headings.mjs.map → extract-headings.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/blog-post/_helpers/extract-headings.ts"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\n\nexport function extractHeadings(\n content: JSONContent\n): { text: string; slug: string }[] {\n const headings: { text: string; slug: string }[] = [];\n if (!content?.content) return headings;\n\n const walk = (nodes: any[]) => {\n for (const node of nodes) {\n if (node.type === \"heading\" && node.content?.[0]?.text) {\n const text = node.content[0].text;\n const slug = text\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n headings.push({ text, slug });\n }\n if (node.content) walk(node.content);\n }\n };\n\n walk(content.content);\n return headings;\n}\n"],"mappings":"AAEO,SAAS,gBACd,SACkC;AAClC,QAAM,WAA6C,CAAC;AACpD,MAAI,CAAC,SAAS,QAAS,QAAO;AAE9B,QAAM,OAAO,CAAC,UAAiB;AAC7B,eAAW,QAAQ,OAAO;AACxB,UAAI,KAAK,SAAS,aAAa,KAAK,UAAU,CAAC,GAAG,MAAM;AACtD,cAAM,OAAO,KAAK,QAAQ,CAAC,EAAE;AAC7B,cAAM,OAAO,KACV,YAAY,EACZ,QAAQ,eAAe,GAAG,EAC1B,QAAQ,YAAY,EAAE;AACzB,iBAAS,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,MAC9B;AACA,UAAI,KAAK,QAAS,MAAK,KAAK,OAAO;AAAA,IACrC;AAAA,EACF;AAEA,OAAK,QAAQ,OAAO;AACpB,SAAO;AACT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/blog-post/_helpers/extract-headings.ts"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\n\nexport function extractHeadings(\n content: JSONContent\n): { text: string; slug: string }[] {\n const headings: { text: string; slug: string }[] = [];\n if (!content?.content) return headings;\n\n const walk = (nodes: any[]) => {\n for (const node of nodes) {\n if (node.type === \"heading\" && node.content?.[0]?.text) {\n const text = node.content[0].text;\n const slug = text\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n headings.push({ text, slug });\n }\n if (node.content) walk(node.content);\n }\n };\n\n walk(content.content);\n return headings;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,gBACd,SACkC;AAClC,QAAM,WAA6C,CAAC;AACpD,MAAI,CAAC,SAAS,QAAS,QAAO;AAE9B,QAAM,OAAO,CAAC,UAAiB;AAC7B,eAAW,QAAQ,OAAO;AACxB,UAAI,KAAK,SAAS,aAAa,KAAK,UAAU,CAAC,GAAG,MAAM;AACtD,cAAM,OAAO,KAAK,QAAQ,CAAC,EAAE;AAC7B,cAAM,OAAO,KACV,YAAY,EACZ,QAAQ,eAAe,GAAG,EAC1B,QAAQ,YAAY,EAAE;AACzB,iBAAS,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,MAC9B;AACA,UAAI,KAAK,QAAS,MAAK,KAAK,OAAO;AAAA,IACrC;AAAA,EACF;AAEA,OAAK,QAAQ,OAAO;AACpB,SAAO;AACT;","names":[]}
|
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var extract_headings_exports = {};
|
|
20
|
-
__export(extract_headings_exports, {
|
|
21
|
-
extractHeadings: () => extractHeadings
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(extract_headings_exports);
|
|
24
1
|
function extractHeadings(content) {
|
|
25
2
|
const headings = [];
|
|
26
3
|
if (!content?.content) return headings;
|
|
@@ -37,8 +14,7 @@ function extractHeadings(content) {
|
|
|
37
14
|
walk(content.content);
|
|
38
15
|
return headings;
|
|
39
16
|
}
|
|
40
|
-
|
|
41
|
-
0 && (module.exports = {
|
|
17
|
+
export {
|
|
42
18
|
extractHeadings
|
|
43
|
-
}
|
|
19
|
+
};
|
|
44
20
|
//# sourceMappingURL=extract-headings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/blog-post/_helpers/extract-headings.ts"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\n\nexport function extractHeadings(\n content: JSONContent\n): { text: string; slug: string }[] {\n const headings: { text: string; slug: string }[] = [];\n if (!content?.content) return headings;\n\n const walk = (nodes: any[]) => {\n for (const node of nodes) {\n if (node.type === \"heading\" && node.content?.[0]?.text) {\n const text = node.content[0].text;\n const slug = text\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n headings.push({ text, slug });\n }\n if (node.content) walk(node.content);\n }\n };\n\n walk(content.content);\n return headings;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/blog-post/_helpers/extract-headings.ts"],"sourcesContent":["import { JSONContent } from \"@tiptap/core\";\n\nexport function extractHeadings(\n content: JSONContent\n): { text: string; slug: string }[] {\n const headings: { text: string; slug: string }[] = [];\n if (!content?.content) return headings;\n\n const walk = (nodes: any[]) => {\n for (const node of nodes) {\n if (node.type === \"heading\" && node.content?.[0]?.text) {\n const text = node.content[0].text;\n const slug = text\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n headings.push({ text, slug });\n }\n if (node.content) walk(node.content);\n }\n };\n\n walk(content.content);\n return headings;\n}\n"],"mappings":"AAEO,SAAS,gBACd,SACkC;AAClC,QAAM,WAA6C,CAAC;AACpD,MAAI,CAAC,SAAS,QAAS,QAAO;AAE9B,QAAM,OAAO,CAAC,UAAiB;AAC7B,eAAW,QAAQ,OAAO;AACxB,UAAI,KAAK,SAAS,aAAa,KAAK,UAAU,CAAC,GAAG,MAAM;AACtD,cAAM,OAAO,KAAK,QAAQ,CAAC,EAAE;AAC7B,cAAM,OAAO,KACV,YAAY,EACZ,QAAQ,eAAe,GAAG,EAC1B,QAAQ,YAAY,EAAE;AACzB,iBAAS,KAAK,EAAE,MAAM,KAAK,CAAC;AAAA,MAC9B;AACA,UAAI,KAAK,QAAS,MAAK,KAAK,OAAO;AAAA,IACrC;AAAA,EACF;AAEA,OAAK,QAAQ,OAAO;AACpB,SAAO;AACT;","names":[]}
|
|
@@ -1,4 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var json_ld_exports = {};
|
|
20
|
+
__export(json_ld_exports, {
|
|
21
|
+
genBlogPostingJSONLD: () => genBlogPostingJSONLD,
|
|
22
|
+
genBreadcrumbJSONLD: () => genBreadcrumbJSONLD,
|
|
23
|
+
genFaqJSONLD: () => genFaqJSONLD,
|
|
24
|
+
generateArticleBodyHtml: () => generateArticleBodyHtml
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(json_ld_exports);
|
|
27
|
+
var import_sdk_config = require("../../../utils/sdk-config");
|
|
2
28
|
function generateArticleBodyHtml(content) {
|
|
3
29
|
if (!content?.content) return "";
|
|
4
30
|
let htmlString = "";
|
|
@@ -74,17 +100,17 @@ const genBlogPostingJSONLD = (post) => {
|
|
|
74
100
|
"@type": "BlogPosting",
|
|
75
101
|
headline: post.title,
|
|
76
102
|
description: post.description || void 0,
|
|
77
|
-
url: `${opinlyConfig.blogUrl}/${post.folder ? `${post.folder.slug + "/"}${post.slug}` : post.slug}`,
|
|
103
|
+
url: `${import_sdk_config.opinlyConfig.blogUrl}/${post.folder ? `${post.folder.slug + "/"}${post.slug}` : post.slug}`,
|
|
78
104
|
datePublished: post.firstPublishedAt || void 0,
|
|
79
105
|
dateModified: post.modifiedAt || void 0,
|
|
80
106
|
image: post.titleFile?.fileKey ? {
|
|
81
107
|
"@type": "ImageObject",
|
|
82
|
-
url: `${opinlyConfig.imagesUrl}/${post.titleFile.fileKey}`
|
|
108
|
+
url: `${import_sdk_config.opinlyConfig.imagesUrl}/${post.titleFile.fileKey}`
|
|
83
109
|
} : void 0,
|
|
84
110
|
author: post.author ? {
|
|
85
111
|
"@type": "Person",
|
|
86
112
|
name: post.author.name,
|
|
87
|
-
url: `${opinlyConfig.blogUrl}/author/${post.author.slug}`,
|
|
113
|
+
url: `${import_sdk_config.opinlyConfig.blogUrl}/author/${post.author.slug}`,
|
|
88
114
|
description: post.author.bio || void 0
|
|
89
115
|
} : void 0,
|
|
90
116
|
isAccessibleForFree: true,
|
|
@@ -97,13 +123,13 @@ const genBreadcrumbJSONLD = (post) => {
|
|
|
97
123
|
"@type": "ListItem",
|
|
98
124
|
position: 1,
|
|
99
125
|
name: "Company Name",
|
|
100
|
-
item: opinlyConfig.siteUrl
|
|
126
|
+
item: import_sdk_config.opinlyConfig.siteUrl
|
|
101
127
|
},
|
|
102
128
|
{
|
|
103
129
|
"@type": "ListItem",
|
|
104
130
|
position: 2,
|
|
105
131
|
name: post.folder?.name || "Blog",
|
|
106
|
-
item: `${opinlyConfig.blogUrl}/blog`
|
|
132
|
+
item: `${import_sdk_config.opinlyConfig.blogUrl}/blog`
|
|
107
133
|
}
|
|
108
134
|
];
|
|
109
135
|
if (post.folder) {
|
|
@@ -111,20 +137,20 @@ const genBreadcrumbJSONLD = (post) => {
|
|
|
111
137
|
"@type": "ListItem",
|
|
112
138
|
position: 3,
|
|
113
139
|
name: post.folder.name,
|
|
114
|
-
item: `${opinlyConfig.blogUrl}/blog/${post.folder.slug}`
|
|
140
|
+
item: `${import_sdk_config.opinlyConfig.blogUrl}/blog/${post.folder.slug}`
|
|
115
141
|
});
|
|
116
142
|
itemListElement.push({
|
|
117
143
|
"@type": "ListItem",
|
|
118
144
|
position: 4,
|
|
119
145
|
name: post.title,
|
|
120
|
-
item: `${opinlyConfig.blogUrl}/blog/${post.folder.slug}/${post.slug}`
|
|
146
|
+
item: `${import_sdk_config.opinlyConfig.blogUrl}/blog/${post.folder.slug}/${post.slug}`
|
|
121
147
|
});
|
|
122
148
|
} else {
|
|
123
149
|
itemListElement.push({
|
|
124
150
|
"@type": "ListItem",
|
|
125
151
|
position: 3,
|
|
126
152
|
name: post.title,
|
|
127
|
-
item: `${opinlyConfig.blogUrl}/blog/${post.slug}`
|
|
153
|
+
item: `${import_sdk_config.opinlyConfig.blogUrl}/blog/${post.slug}`
|
|
128
154
|
});
|
|
129
155
|
}
|
|
130
156
|
return {
|
|
@@ -133,10 +159,11 @@ const genBreadcrumbJSONLD = (post) => {
|
|
|
133
159
|
itemListElement
|
|
134
160
|
};
|
|
135
161
|
};
|
|
136
|
-
export
|
|
162
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
163
|
+
0 && (module.exports = {
|
|
137
164
|
genBlogPostingJSONLD,
|
|
138
165
|
genBreadcrumbJSONLD,
|
|
139
166
|
genFaqJSONLD,
|
|
140
167
|
generateArticleBodyHtml
|
|
141
|
-
};
|
|
142
|
-
//# sourceMappingURL=json-ld.
|
|
168
|
+
});
|
|
169
|
+
//# sourceMappingURL=json-ld.cjs.map
|