@umami/shiso 0.10.0 → 0.12.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/README.md CHANGED
@@ -1,6 +1,54 @@
1
1
  # Shiso
2
2
 
3
- A content layer for [Next.js](https://nextjs.org/).
3
+ A content layer for [Next.js](https://nextjs.org/).
4
+
5
+ [Learn more](https://shiso.umami.is)
6
+
7
+ ## Usage
8
+
9
+ ### 1. Install the package
10
+
11
+ ```shell
12
+ npm install @umami/shiso
13
+ ```
14
+
15
+ ### 2. Create page
16
+
17
+ In your `app` folder, create a folder for the content section you wish to add. In this case we are creating a section for `docs`.
18
+
19
+ ```text
20
+ src
21
+ ├── app
22
+ │ └── docs
23
+ │ └── [[...id]]
24
+ │ └── page.jsx
25
+ ```
26
+
27
+ In the `page.jsx` file, add the following code:
28
+
29
+ ```javascript
30
+ import { Shiso } from '@umami/shiso';
31
+ import { getContent, getContentIds } from '@@umami/shiso/server';
32
+ import config from 'path/to/shiso.config.json';
33
+
34
+ export async function generateStaticParams() {
35
+ const ids = await getContentIds('./src/content/docs');
36
+
37
+ return ids.map((id: string) => ({
38
+ id: id.split('/')
39
+ }));
40
+ }
41
+
42
+ export default async function Page({ params }: { params: Promise<{ id: string[] }> }) {
43
+ const content = await getContent(await params, './src/content/docs');
44
+
45
+ return <Shiso type="docs" content={content} config={config} />;
46
+ }
47
+ ```
48
+
49
+ ### 3. Write content
50
+
51
+ In the folder you specified, start adding `.mdx` files.
4
52
 
5
53
  ## License
6
54
 
package/dist/index.css CHANGED
@@ -34,121 +34,121 @@ pre.CodeBlock_container__YmFmN code {
34
34
  }
35
35
 
36
36
  /* virtual-css:css:0ed498f49b21d225f1b5a4e1685cf2e5 */
37
- .PageLinks_title__ZjdiN {
37
+ .PageLinks_title__ZWYzZ {
38
38
  position: sticky;
39
39
  top: 0;
40
40
  }
41
- .PageLinks_links__ZDkyY {
41
+ .PageLinks_links__MjU2M {
42
42
  position: sticky;
43
43
  top: 30px;
44
44
  height: max-content;
45
45
  }
46
- .PageLinks_links__ZDkyY a {
46
+ .PageLinks_links__MjU2M a {
47
47
  display: block;
48
- color: var(--font-muted-color);
48
+ color: var(--font-color-muted);
49
49
  text-wrap: nowrap;
50
50
  text-decoration: none;
51
51
  }
52
- .PageLinks_links__ZDkyY a:hover {
52
+ .PageLinks_links__MjU2M a:hover {
53
53
  color: var(--primary-color);
54
54
  }
55
- .PageLinks_indent-1__ZDkwN {
55
+ .PageLinks_indent-1__MmYwN {
56
56
  margin-left: 0;
57
57
  }
58
- .PageLinks_indent-2__ZmY5M {
58
+ .PageLinks_indent-2__ODBkZ {
59
59
  margin-left: 0;
60
60
  }
61
- .PageLinks_indent-3__NjBhN {
61
+ .PageLinks_indent-3__ZTc4Y {
62
62
  margin-left: 10px;
63
63
  }
64
- .PageLinks_indent-4__YzBiZ {
64
+ .PageLinks_indent-4__ZjNlO {
65
65
  margin-left: 20px;
66
66
  }
67
- .PageLinks_indent-5__YmEzY {
67
+ .PageLinks_indent-5__NmE5N {
68
68
  margin-left: 30px;
69
69
  }
70
- .PageLinks_indent-6__ZDUzZ {
70
+ .PageLinks_indent-6__YWUwN {
71
71
  margin-left: 40px;
72
72
  }
73
- a.PageLinks_selected__MGE5N {
73
+ a.PageLinks_selected__Y2YxY {
74
74
  color: var(--primary-color);
75
75
  }
76
76
 
77
77
  /* virtual-css:css:72ce2cfbba7b635b2ff1a5f4f5eeabf3 */
78
- .SideNav_nav__YzJiZ {
78
+ .SideNav_nav__YTMyM {
79
79
  position: sticky;
80
80
  top: 30px;
81
81
  height: max-content;
82
82
  }
83
- .SideNav_nav__YzJiZ .SideNav_item__ZTcyN {
84
- color: var(--font-muted-color);
83
+ .SideNav_nav__YTMyM .SideNav_item__NzY4M {
84
+ color: var(--font-color-muted);
85
85
  padding: 0;
86
86
  border-radius: 0;
87
87
  border-left: var(--border-size-1) solid var(--border-color);
88
88
  }
89
- .SideNav_nav__YzJiZ .SideNav_item__ZTcyN a {
89
+ .SideNav_nav__YTMyM .SideNav_item__NzY4M a {
90
90
  color: currentColor;
91
91
  width: 100%;
92
92
  padding: var(--padding-y) var(--padding-x);
93
93
  text-decoration: none;
94
94
  }
95
- .SideNav_nav__YzJiZ .SideNav_item__ZTcyN a:hover {
95
+ .SideNav_nav__YTMyM .SideNav_item__NzY4M a:hover {
96
96
  color: var(--primary-color);
97
97
  }
98
- .SideNav_nav__YzJiZ .SideNav_item__ZTcyN.SideNav_selected__ZGM5M {
98
+ .SideNav_nav__YTMyM .SideNav_item__NzY4M.SideNav_selected__OGVhN {
99
99
  color: var(--font-color);
100
100
  border-color: var(--primary-color);
101
101
  }
102
- .SideNav_items__ODg2Y header {
102
+ .SideNav_items__N2Q4M header {
103
103
  padding: var(--padding-y) 0;
104
104
  }
105
105
 
106
106
  /* virtual-css:css:7938c95522eda3e1f8244364ad70b38c */
107
- .ContentArea_content__Y2RmY {
107
+ .ContentArea_content__ZDM2M {
108
108
  font-size: 16px;
109
109
  margin-bottom: 60px;
110
110
  }
111
- .ContentArea_content__Y2RmY > p {
112
- color: var(--font-muted-color);
111
+ .ContentArea_content__ZDM2M > p {
112
+ color: var(--font-color-muted);
113
113
  line-height: 1.8;
114
114
  }
115
- .ContentArea_content__Y2RmY a {
115
+ .ContentArea_content__ZDM2M a {
116
116
  color: var(--font-color);
117
117
  font-weight: 600;
118
- text-decoration: underline var(--font-faded-color);
118
+ text-decoration: underline var(--font-color-muted);
119
119
  text-underline-offset: 4px;
120
120
  }
121
- .ContentArea_content__Y2RmY a:hover {
121
+ .ContentArea_content__ZDM2M a:hover {
122
122
  text-decoration: underline var(--font-color);
123
123
  }
124
- .ContentArea_content__Y2RmY h1 {
124
+ .ContentArea_content__ZDM2M h1 {
125
125
  font-size: var(--font-size-8);
126
126
  letter-spacing: var(--letter-spacing-1);
127
127
  margin: 0 0 var(--spacing-4) 0;
128
128
  }
129
- .ContentArea_content__Y2RmY h2 {
129
+ .ContentArea_content__ZDM2M h2 {
130
130
  font-size: var(--font-size-6);
131
131
  letter-spacing: var(--letter-spacing-1);
132
132
  margin: var(--spacing-8) 0 var(--spacing-4) 0;
133
133
  }
134
- .ContentArea_content__Y2RmY h3 {
134
+ .ContentArea_content__ZDM2M h3 {
135
135
  font-size: var(--font-size-5);
136
136
  letter-spacing: var(--letter-spacing-1);
137
137
  margin: var(--spacing-7) 0 var(--spacing-4) 0;
138
138
  }
139
- .ContentArea_content__Y2RmY ul {
139
+ .ContentArea_content__ZDM2M ul {
140
140
  list-style: disc;
141
141
  }
142
- .ContentArea_content__Y2RmY ol {
142
+ .ContentArea_content__ZDM2M ol {
143
143
  list-style: decimal;
144
144
  }
145
- .ContentArea_content__Y2RmY pre {
145
+ .ContentArea_content__ZDM2M pre {
146
146
  margin: var(--spacing-5) 0;
147
147
  }
148
- .ContentArea_content__Y2RmY code {
148
+ .ContentArea_content__ZDM2M code {
149
149
  font-size: 14px;
150
150
  }
151
- .ContentArea_content__Y2RmY code:not([class]) {
151
+ .ContentArea_content__ZDM2M code:not([class]) {
152
152
  font-family: var(--font-family-code);
153
153
  color: var(--font-color);
154
154
  padding: var(--spacing-1);
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // ../../react
4
4
 
5
5
  declare module '@umami/shiso' {
6
- import '@umami/react-zen/dist/styles.css';
6
+ import '@umami/react-zen/styles.css';
7
7
  import { Blog } from '@umami/shiso/Blog';
8
8
  import { Docs } from '@umami/shiso/Docs';
9
9
  import { Shiso } from '@umami/shiso/Shiso';
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ __export(index_exports, {
36
36
  Shiso: () => Shiso
37
37
  });
38
38
  module.exports = __toCommonJS(index_exports);
39
- var import_styles = require("@umami/react-zen/dist/styles.css");
39
+ var import_styles = require("@umami/react-zen/styles.css");
40
40
 
41
41
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/Blog.module.css
42
42
  var Blog_default = {};
@@ -145,7 +145,7 @@ var import_react_zen2 = require("@umami/react-zen");
145
145
  var import_classnames = __toESM(require("classnames"));
146
146
 
147
147
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/PageLinks.module.css
148
- var PageLinks_default = { "title": "PageLinks_title__ZjdiN", "links": "PageLinks_links__ZDkyY", "indent-1": "PageLinks_indent-1__ZDkwN", "indent-2": "PageLinks_indent-2__ZmY5M", "indent-3": "PageLinks_indent-3__NjBhN", "indent-4": "PageLinks_indent-4__YzBiZ", "indent-5": "PageLinks_indent-5__YmEzY", "indent-6": "PageLinks_indent-6__ZDUzZ", "selected": "PageLinks_selected__MGE5N" };
148
+ var PageLinks_default = { "title": "PageLinks_title__ZWYzZ", "links": "PageLinks_links__MjU2M", "indent-1": "PageLinks_indent-1__MmYwN", "indent-2": "PageLinks_indent-2__ODBkZ", "indent-3": "PageLinks_indent-3__ZTc4Y", "indent-4": "PageLinks_indent-4__ZjNlO", "indent-5": "PageLinks_indent-5__NmE5N", "indent-6": "PageLinks_indent-6__YWUwN", "selected": "PageLinks_selected__Y2YxY" };
149
149
 
150
150
  // src/components/PageLinks.tsx
151
151
  var import_jsx_runtime5 = require("react/jsx-runtime");
@@ -190,7 +190,7 @@ var import_navigation = require("next/navigation");
190
190
  var import_link = __toESM(require("next/link"));
191
191
 
192
192
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/SideNav.module.css
193
- var SideNav_default = { "nav": "SideNav_nav__YzJiZ", "item": "SideNav_item__ZTcyN", "selected": "SideNav_selected__ZGM5M", "items": "SideNav_items__ODg2Y" };
193
+ var SideNav_default = { "nav": "SideNav_nav__YTMyM", "item": "SideNav_item__NzY4M", "selected": "SideNav_selected__OGVhN", "items": "SideNav_items__N2Q4M" };
194
194
 
195
195
  // src/components/SideNav.tsx
196
196
  var import_jsx_runtime6 = require("react/jsx-runtime");
@@ -232,7 +232,7 @@ function TopNav({ tabs }) {
232
232
  var import_react_zen5 = require("@umami/react-zen");
233
233
 
234
234
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/ContentArea.module.css
235
- var ContentArea_default = { "content": "ContentArea_content__Y2RmY" };
235
+ var ContentArea_default = { "content": "ContentArea_content__ZDM2M" };
236
236
 
237
237
  // src/components/ContentArea.tsx
238
238
  var import_jsx_runtime8 = require("react/jsx-runtime");
@@ -240,7 +240,7 @@ function ContentArea({ content }) {
240
240
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_zen5.Box, { flexGrow: 1, children: [
241
241
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_zen5.Text, { color: "primary", weight: "bold", children: content.group }),
242
242
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_zen5.Heading, { size: "8", as: "h1", children: content?.meta?.title }),
243
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_zen5.Text, { type: "muted", children: content?.meta?.description }),
243
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_zen5.Text, { color: "muted", children: content?.meta?.description }),
244
244
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_zen5.Box, { className: ContentArea_default.content, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Markdown, { content }) })
245
245
  ] });
246
246
  }
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  // src/components/index.ts
4
- import "@umami/react-zen/dist/styles.css";
4
+ import "@umami/react-zen/styles.css";
5
5
 
6
6
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/Blog.module.css
7
7
  var Blog_default = {};
@@ -109,7 +109,7 @@ import { Column, Text } from "@umami/react-zen";
109
109
  import classNames from "classnames";
110
110
 
111
111
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/PageLinks.module.css
112
- var PageLinks_default = { "title": "PageLinks_title__ZjdiN", "links": "PageLinks_links__ZDkyY", "indent-1": "PageLinks_indent-1__ZDkwN", "indent-2": "PageLinks_indent-2__ZmY5M", "indent-3": "PageLinks_indent-3__NjBhN", "indent-4": "PageLinks_indent-4__YzBiZ", "indent-5": "PageLinks_indent-5__YmEzY", "indent-6": "PageLinks_indent-6__ZDUzZ", "selected": "PageLinks_selected__MGE5N" };
112
+ var PageLinks_default = { "title": "PageLinks_title__ZWYzZ", "links": "PageLinks_links__MjU2M", "indent-1": "PageLinks_indent-1__MmYwN", "indent-2": "PageLinks_indent-2__ODBkZ", "indent-3": "PageLinks_indent-3__ZTc4Y", "indent-4": "PageLinks_indent-4__ZjNlO", "indent-5": "PageLinks_indent-5__NmE5N", "indent-6": "PageLinks_indent-6__YWUwN", "selected": "PageLinks_selected__Y2YxY" };
113
113
 
114
114
  // src/components/PageLinks.tsx
115
115
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
@@ -154,7 +154,7 @@ import { usePathname } from "next/navigation";
154
154
  import Link from "next/link";
155
155
 
156
156
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/SideNav.module.css
157
- var SideNav_default = { "nav": "SideNav_nav__YzJiZ", "item": "SideNav_item__ZTcyN", "selected": "SideNav_selected__ZGM5M", "items": "SideNav_items__ODg2Y" };
157
+ var SideNav_default = { "nav": "SideNav_nav__YTMyM", "item": "SideNav_item__NzY4M", "selected": "SideNav_selected__OGVhN", "items": "SideNav_items__N2Q4M" };
158
158
 
159
159
  // src/components/SideNav.tsx
160
160
  import { jsx as jsx6 } from "react/jsx-runtime";
@@ -196,7 +196,7 @@ function TopNav({ tabs }) {
196
196
  import { Heading, Box as Box2, Text as Text2 } from "@umami/react-zen";
197
197
 
198
198
  // css-modules:/Users/mikecao/Development/umami-software/shiso/src/components/ContentArea.module.css
199
- var ContentArea_default = { "content": "ContentArea_content__Y2RmY" };
199
+ var ContentArea_default = { "content": "ContentArea_content__ZDM2M" };
200
200
 
201
201
  // src/components/ContentArea.tsx
202
202
  import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
@@ -204,7 +204,7 @@ function ContentArea({ content }) {
204
204
  return /* @__PURE__ */ jsxs5(Box2, { flexGrow: 1, children: [
205
205
  /* @__PURE__ */ jsx8(Text2, { color: "primary", weight: "bold", children: content.group }),
206
206
  /* @__PURE__ */ jsx8(Heading, { size: "8", as: "h1", children: content?.meta?.title }),
207
- /* @__PURE__ */ jsx8(Text2, { type: "muted", children: content?.meta?.description }),
207
+ /* @__PURE__ */ jsx8(Text2, { color: "muted", children: content?.meta?.description }),
208
208
  /* @__PURE__ */ jsx8(Box2, { className: ContentArea_default.content, children: /* @__PURE__ */ jsx8(Markdown, { content }) })
209
209
  ] });
210
210
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umami/shiso",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "description": "A content layer for Next.js",
5
5
  "homepage": "https://umami.is/shiso",
6
6
  "repository": {
@@ -49,12 +49,11 @@
49
49
  "@mdx-js/loader": "^3.0.0",
50
50
  "@mdx-js/mdx": "^3.1.0",
51
51
  "@mdx-js/react": "^3.0.0",
52
- "@umami/react-zen": "^0.27.0",
52
+ "@umami/react-zen": "^0.28.0",
53
53
  "classnames": "^2.5.1",
54
54
  "glob": "^10.3.10",
55
55
  "gray-matter": "^4.0.3",
56
56
  "highlight.js": "^11.11.0",
57
- "mdx-bundler": "^10.0.3",
58
57
  "next": "15.1.2",
59
58
  "next-mdx-remote": "^5.0.0",
60
59
  "react": "^19.0.0",
package/server/index.d.ts CHANGED
@@ -1,5 +1,2 @@
1
- export declare const parseMdx: (file: string) => Promise<any>;
2
- export declare function getContentIds(folder: string): Promise<any>;
3
- export declare function getContent(params: {
4
- id: string[];
5
- }, folder: string): Promise<any>;
1
+ export declare const getContent: (name: string | undefined, folder: string) => Promise<any>;
2
+ export declare const getContentIds: (folder: string) => Promise<any>;
package/server/index.js CHANGED
@@ -34,6 +34,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
37
46
  import { cache } from 'react';
38
47
  import { compile } from '@mdx-js/mdx';
39
48
  import remarkGfm from 'remark-gfm';
@@ -42,72 +51,72 @@ import matter from 'gray-matter';
42
51
  import fs from 'node:fs/promises';
43
52
  import path from 'node:path';
44
53
  import recursive from 'recursive-readdir';
45
- export var parseMdx = cache(function (file) { return __awaiter(void 0, void 0, void 0, function () {
46
- var postContent, _a, frontmatter, mdxContent, id, anchors, modifiedContent, code, _b;
47
- return __generator(this, function (_c) {
48
- switch (_c.label) {
49
- case 0: return [4 /*yield*/, fs.readFile(file, 'utf8')];
50
- case 1:
51
- postContent = _c.sent();
52
- _a = matter(postContent), frontmatter = _a.data, mdxContent = _a.content;
53
- id = file.replace('.mdx', '').replace(/\\/g, '/').replace(/^\//, '');
54
- anchors = [];
55
- modifiedContent = mdxContent
56
- .split('\n')
57
- .map(function (line) {
58
- var match = line.match(/^(#+)\s+(.*)/);
59
- if (match) {
60
- var num = match[1], name_1 = match[2];
61
- var id_1 = name_1.toLowerCase().replace(/\s+/g, '-');
62
- var size = num.length;
63
- anchors.push({ name: name_1, id: id_1, size: size });
64
- return "<h".concat(size, " id=\"").concat(id_1, "\">").concat(name_1.replace(/\{|\}/g, ''), "</h").concat(size, ">");
65
- }
66
- return line;
67
- })
68
- .join('\n');
69
- _b = String;
70
- return [4 /*yield*/, compile(modifiedContent, {
71
- outputFormat: 'function-body',
72
- remarkPlugins: [remarkGfm],
73
- rehypePlugins: [rehypeHighlight],
74
- })];
75
- case 2:
76
- code = _b.apply(void 0, [_c.sent()]);
77
- return [2 /*return*/, {
78
- id: id,
79
- meta: frontmatter,
80
- content: postContent,
81
- code: code,
82
- anchors: anchors,
83
- }];
84
- }
85
- });
86
- }); });
87
- export function getContentIds(folder) {
88
- return __awaiter(this, void 0, void 0, function () {
89
- var dir, files;
90
- return __generator(this, function (_a) {
91
- switch (_a.label) {
54
+ function getId(name, folder) {
55
+ return name.replace('.mdx', '').replace(folder, '').replace(/\\/g, '/').replace(/^\//, '');
56
+ }
57
+ export var getContent = cache(function () {
58
+ var args_1 = [];
59
+ for (var _i = 0; _i < arguments.length; _i++) {
60
+ args_1[_i] = arguments[_i];
61
+ }
62
+ return __awaiter(void 0, __spreadArray([], args_1, true), void 0, function (name, folder) {
63
+ var file, postContent, _a, frontmatter, mdxContent, id, anchors, modifiedContent, code, _b;
64
+ if (name === void 0) { name = 'index'; }
65
+ return __generator(this, function (_c) {
66
+ switch (_c.label) {
92
67
  case 0:
93
- dir = path.resolve(folder);
94
- return [4 /*yield*/, recursive(dir)];
68
+ file = path.join(folder, "".concat(name, ".mdx"));
69
+ return [4 /*yield*/, fs.readFile(file, 'utf8')];
95
70
  case 1:
96
- files = _a.sent();
97
- return [2 /*return*/, files.map(function (file) {
98
- return file.replace('.mdx', '').replace(dir, '').replace(/\\/g, '/').replace(/^\//, '');
71
+ postContent = _c.sent();
72
+ _a = matter(postContent), frontmatter = _a.data, mdxContent = _a.content;
73
+ id = getId(name, folder);
74
+ anchors = [];
75
+ modifiedContent = mdxContent
76
+ .split('\n')
77
+ .map(function (line) {
78
+ var match = line.match(/^(#+)\s+(.*)/);
79
+ if (match) {
80
+ var num = match[1], name_1 = match[2];
81
+ var id_1 = name_1.toLowerCase().replace(/\s+/g, '-');
82
+ var size = num.length;
83
+ anchors.push({ name: name_1, id: id_1, size: size });
84
+ return "<h".concat(size, " id=\"").concat(id_1, "\">").concat(name_1.replace(/\{|\}/g, ''), "</h").concat(size, ">");
85
+ }
86
+ return line;
87
+ })
88
+ .join('\n');
89
+ _b = String;
90
+ return [4 /*yield*/, compile(modifiedContent, {
91
+ outputFormat: 'function-body',
92
+ remarkPlugins: [remarkGfm],
93
+ rehypePlugins: [rehypeHighlight],
99
94
  })];
95
+ case 2:
96
+ code = _b.apply(void 0, [_c.sent()]);
97
+ return [2 /*return*/, {
98
+ id: id,
99
+ meta: frontmatter,
100
+ content: postContent,
101
+ code: code,
102
+ anchors: anchors,
103
+ }];
100
104
  }
101
105
  });
102
106
  });
103
- }
104
- export function getContent(params, folder) {
105
- return __awaiter(this, void 0, void 0, function () {
106
- var _a, id, name;
107
- return __generator(this, function (_b) {
108
- _a = params.id, id = _a === void 0 ? [] : _a;
109
- name = (id === null || id === void 0 ? void 0 : id.length) ? id.join('/') : 'index';
110
- return [2 /*return*/, parseMdx(path.resolve(folder, "".concat(name, ".mdx")))];
111
- });
107
+ });
108
+ export var getContentIds = cache(function (folder) { return __awaiter(void 0, void 0, void 0, function () {
109
+ var dir, files;
110
+ return __generator(this, function (_a) {
111
+ switch (_a.label) {
112
+ case 0:
113
+ dir = path.resolve(folder);
114
+ return [4 /*yield*/, recursive(dir)];
115
+ case 1:
116
+ files = _a.sent();
117
+ return [2 /*return*/, files.map(function (file) {
118
+ return getId(file, dir);
119
+ })];
120
+ }
112
121
  });
113
- }
122
+ }); });