czon 0.9.5 → 0.9.6

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.
@@ -59,15 +59,15 @@ const ContentPage = props => {
59
59
  } })),
60
60
  react_1.default.createElement("body", null,
61
61
  react_1.default.createElement(PageLayout_1.PageLayout, { header: react_1.default.createElement(CZONHeader_1.CZONHeader, { ctx: props.ctx, lang: props.lang, file: props.file }), navigator: react_1.default.createElement("nav", { className: "sidebar border-r" },
62
- react_1.default.createElement(Navigator_1.Navigator, { ctx: props.ctx, file: props.file, lang: props.lang })), rightSidebar: react_1.default.createElement("aside", { className: "sidebar border-l" },
62
+ react_1.default.createElement(Navigator_1.Navigator, { ctx: props.ctx, file: props.file, lang: props.lang })), rightSidebar: props.content.headings.length > 0 ? (react_1.default.createElement("aside", { className: "sidebar border-l" },
63
63
  react_1.default.createElement("h2", { className: "text-2xl font-semibold mb-2" }, "Table of Contents"),
64
- props.content.headings.map(heading => (react_1.default.createElement("a", { key: heading.id, href: `#${heading.id}`, className: `block ms-${(heading.depth - 1) * 4} mb-2 border-b`, dangerouslySetInnerHTML: { __html: heading.html } })))), main: react_1.default.createElement("main", { className: "content max-w-4xl mx-auto my-8 px-4" },
64
+ props.content.headings.map(heading => (react_1.default.createElement("a", { key: heading.id, href: `#${heading.id}`, className: `block ms-${(heading.depth - 1) * 4} mb-2 border-b`, dangerouslySetInnerHTML: { __html: heading.html } }))))) : undefined, main: react_1.default.createElement("main", { className: "content max-w-4xl mx-auto my-8 px-4" },
65
65
  react_1.default.createElement(ContentMeta_1.ContentMeta, { ctx: props.ctx, file: props.file, lang: props.lang }),
66
- react_1.default.createElement("div", { className: "border-b mb-4 pb-2 xl:hidden" },
66
+ props.content.headings.length > 0 && (react_1.default.createElement("div", { className: "border-b mb-4 pb-2 xl:hidden" },
67
67
  react_1.default.createElement("h2", { className: "text-2xl font-semibold mb-2" }, "Table of Contents"),
68
68
  props.content.headings.map(heading => (react_1.default.createElement("a", { key: heading.id, href: `#${heading.id}`,
69
69
  // 按照 heading.depth 设置缩进
70
- className: `block ps-${heading.depth * 4} mb-2`, dangerouslySetInnerHTML: { __html: heading.html } })))),
70
+ className: `block ps-${heading.depth * 4} mb-2`, dangerouslySetInnerHTML: { __html: heading.html } }))))),
71
71
  react_1.default.createElement("div", { className: "content-body" },
72
72
  react_1.default.createElement("article", { dangerouslySetInnerHTML: { __html: props.content.body } }),
73
73
  relatedContents.length > 0 && (react_1.default.createElement(react_1.default.Fragment, null,
@@ -159,6 +159,18 @@ const ContentPage = props => {
159
159
  }, 300);
160
160
  }
161
161
 
162
+ `),
163
+ react_1.default.createElement("script", null, `
164
+ // 页面加载后将当前激活的导航链接滚动到可视区域
165
+ if (document.readyState === 'loading') {
166
+ document.addEventListener('DOMContentLoaded', scrollActiveNavLink);
167
+ } else {
168
+ scrollActiveNavLink();
169
+ }
170
+ function scrollActiveNavLink() {
171
+ var el = document.querySelector('.nav-link.active');
172
+ if (el) el.scrollIntoView({ block: 'center', behavior: 'instant' });
173
+ }
162
174
  `),
163
175
  react_1.default.createElement("script", { id: "embla-lib", src: "https://unpkg.com/embla-carousel/embla-carousel.umd.js", defer: true }),
164
176
  react_1.default.createElement("script", { id: "embla-autoplay-lib", src: "https://unpkg.com/embla-carousel-autoplay/embla-carousel-autoplay.umd.js", defer: true }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "czon",
3
- "version": "0.9.5",
3
+ "version": "0.9.6",
4
4
  "description": "CZON - AI enhanced Markdown content engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",