nizel-kit 0.1.10 → 0.1.11

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { type NizelBrowserProcessor, type NizelBrowserMountTarget } from 'nizel/browser';
1
+ import { type NizelBrowserMountTarget, type NizelBrowserProcessor } from 'nizel/browser';
2
2
  import type { NizelOptions, NizelPlugin } from 'nizel';
3
3
  import { type AbbrPluginOptions } from 'nizel-plugin-abbr';
4
4
  import { type AlertPluginOptions } from 'nizel-plugin-alert';
@@ -13,6 +13,7 @@ import { type FootnotesPluginOptions } from 'nizel-plugin-footnotes';
13
13
  import { type FrontmatterUiPluginOptions } from 'nizel-plugin-frontmatter-ui';
14
14
  import { type GfmPluginOptions } from 'nizel-plugin-gfm';
15
15
  import { type HeadingAnchorsPluginOptions } from 'nizel-plugin-heading-anchors';
16
+ import { type HiddenCommentsPluginOptions } from 'nizel-plugin-hidden-comments';
16
17
  import { type MathPluginOptions } from 'nizel-plugin-math';
17
18
  import { type MediaPluginOptions } from 'nizel-plugin-media';
18
19
  import { type SanitizePluginOptions } from 'nizel-plugin-sanitize';
@@ -20,7 +21,7 @@ import { type ShikiPluginOptions } from 'nizel-plugin-shiki';
20
21
  import { type TaskListPluginOptions } from 'nizel-plugin-task-list';
21
22
  import { type TocPluginOptions } from 'nizel-plugin-toc';
22
23
  import { type TypographyPluginOptions } from 'nizel-plugin-typography';
23
- export type NizelKitPluginId = 'abbr' | 'alert' | 'autolink' | 'citations' | 'code-copy' | 'deflist' | 'details' | 'diagrams' | 'emoji' | 'footnotes' | 'frontmatter-ui' | 'gfm' | 'heading-anchors' | 'math' | 'media' | 'sanitize' | 'shiki' | 'task-list' | 'toc' | 'typography';
24
+ export type NizelKitPluginId = 'abbr' | 'alert' | 'autolink' | 'citations' | 'code-copy' | 'deflist' | 'details' | 'diagrams' | 'emoji' | 'footnotes' | 'frontmatter-ui' | 'gfm' | 'heading-anchors' | 'hidden-comments' | 'math' | 'media' | 'sanitize' | 'shiki' | 'task-list' | 'toc' | 'typography';
24
25
  export type NizelKitPluginMeta = {
25
26
  id: NizelKitPluginId;
26
27
  label: string;
@@ -43,6 +44,7 @@ export type NizelKitPluginOptions = {
43
44
  'frontmatter-ui'?: FrontmatterUiPluginOptions;
44
45
  gfm?: GfmPluginOptions;
45
46
  'heading-anchors'?: HeadingAnchorsPluginOptions;
47
+ 'hidden-comments'?: HiddenCommentsPluginOptions;
46
48
  math?: MathPluginOptions;
47
49
  media?: MediaPluginOptions;
48
50
  sanitize?: SanitizePluginOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { useBrowserNizel } from 'nizel/browser';
1
+ import { useBrowserNizel, } from 'nizel/browser';
2
2
  import { abbrPlugin } from 'nizel-plugin-abbr';
3
3
  import { alertPlugin } from 'nizel-plugin-alert';
4
4
  import { autolinkPlugin } from 'nizel-plugin-autolink';
@@ -12,6 +12,7 @@ import { footnotesPlugin } from 'nizel-plugin-footnotes';
12
12
  import { frontmatterUiPlugin } from 'nizel-plugin-frontmatter-ui';
13
13
  import { gfmPlugins } from 'nizel-plugin-gfm';
14
14
  import { headingAnchorsPlugin } from 'nizel-plugin-heading-anchors';
15
+ import { hiddenCommentsPlugin } from 'nizel-plugin-hidden-comments';
15
16
  import { mathPlugin } from 'nizel-plugin-math';
16
17
  import { mediaPlugin } from 'nizel-plugin-media';
17
18
  import { sanitizePlugin } from 'nizel-plugin-sanitize';
@@ -97,6 +98,13 @@ export const supportedPlugins = [
97
98
  defaultEnabled: false,
98
99
  category: 'block',
99
100
  },
101
+ {
102
+ id: 'hidden-comments',
103
+ label: 'Hidden Comments',
104
+ description: 'Control how Markdown HTML comments render in documents.',
105
+ defaultEnabled: false,
106
+ category: 'core-behavior',
107
+ },
100
108
  {
101
109
  id: 'media',
102
110
  label: 'Media',
@@ -175,6 +183,7 @@ const factories = {
175
183
  'frontmatter-ui': (options) => frontmatterUiPlugin(options['frontmatter-ui']),
176
184
  gfm: (options) => gfmPlugins(options.gfm),
177
185
  'heading-anchors': (options) => headingAnchorsPlugin(options['heading-anchors']),
186
+ 'hidden-comments': (options) => hiddenCommentsPlugin(options['hidden-comments']),
178
187
  math: (options) => mathPlugin(options.math),
179
188
  media: (options) => mediaPlugin(options.media),
180
189
  sanitize: (options) => sanitizePlugin(options.sanitize),
@@ -200,11 +209,31 @@ export const createPlugins = (enabledPlugins = defaultEnabledPlugins(), options
200
209
  */
201
210
  export function useNizelKit(options = {}) {
202
211
  const { enabledPlugins, pluginOptions, plugins = [], ...nizelOptions } = options;
203
- return useBrowserNizel({
212
+ const resolvedPlugins = [...createPlugins(enabledPlugins, pluginOptions), ...plugins];
213
+ const processor = useBrowserNizel({
204
214
  ...nizelOptions,
205
- plugins: [...createPlugins(enabledPlugins, pluginOptions), ...plugins],
215
+ plugins: resolvedPlugins,
206
216
  });
217
+ const htmlToMarkdown = processor.htmlToMarkdown.bind(processor);
218
+ processor.htmlToMarkdown = (source, reverseOptions) => {
219
+ return htmlToMarkdown(source, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
220
+ };
221
+ const nodeToMarkdown = processor.nodeToMarkdown.bind(processor);
222
+ processor.nodeToMarkdown = (source, reverseOptions) => {
223
+ return nodeToMarkdown(source, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
224
+ };
225
+ const selectionToMarkdown = processor.selectionToMarkdown.bind(processor);
226
+ processor.selectionToMarkdown = (selection, reverseOptions) => {
227
+ return selectionToMarkdown(selection, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
228
+ };
229
+ return processor;
207
230
  }
231
+ const withKitHtmlToMarkdownPlugins = (options, plugins) => {
232
+ return {
233
+ ...options,
234
+ plugins: [...plugins, ...(options?.plugins ?? [])],
235
+ };
236
+ };
208
237
  /**
209
238
  * Renders Markdown to HTML using selected official plugins.
210
239
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -2454,6 +2454,10 @@ ${trimmed}
2454
2454
  ...left.variables ?? {},
2455
2455
  ...right.variables ?? {}
2456
2456
  },
2457
+ meta: {
2458
+ ...left.meta ?? {},
2459
+ ...right.meta ?? {}
2460
+ },
2457
2461
  elements: {
2458
2462
  ...left.elements ?? {},
2459
2463
  ...right.elements ?? {}
@@ -6021,6 +6025,177 @@ ${code}
6021
6025
  });
6022
6026
  var escapeHtml8 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6023
6027
 
6028
+ // ../nizel-plugin-hidden-comments/dist/index.js
6029
+ var hiddenCommentsPlugin = (options = {}) => {
6030
+ const normalized = normalizeOptions(options);
6031
+ let comments = /* @__PURE__ */ new Map();
6032
+ let nextIndex = 0;
6033
+ return {
6034
+ name: "hidden-comments",
6035
+ hooks: {
6036
+ beforeParse(markdown) {
6037
+ comments = /* @__PURE__ */ new Map();
6038
+ nextIndex = 0;
6039
+ return transformMarkdownComments(markdown, normalized, (comment) => {
6040
+ const token = `NIZEL_HIDDEN_COMMENT_${nextIndex}_${Math.random().toString(36).slice(2)}`;
6041
+ nextIndex += 1;
6042
+ comments.set(token, comment);
6043
+ return token;
6044
+ });
6045
+ },
6046
+ afterRender(html) {
6047
+ let nextHtml = restoreCommentTokens(html, comments, normalized);
6048
+ if (normalized.injectCss && normalized.mode !== "remove") {
6049
+ nextHtml = `${hiddenCommentsStyleTag(normalized.className)}
6050
+ ${nextHtml}`;
6051
+ }
6052
+ return nextHtml;
6053
+ }
6054
+ },
6055
+ htmlToMarkdown: hiddenCommentsToMarkdown(normalized)
6056
+ };
6057
+ };
6058
+ var transformMarkdownComments = (markdown, options = {}, createToken = (comment) => renderCommentElement(comment, normalizeOptions(options))) => {
6059
+ const normalized = normalizeOptions(options);
6060
+ if (typeof markdown !== "string" || markdown.indexOf("<!--") === -1)
6061
+ return markdown;
6062
+ return replaceMarkdownCommentsOutsideFences(markdown, (comment) => {
6063
+ if (normalized.mode === "remove")
6064
+ return "";
6065
+ return createToken(comment);
6066
+ });
6067
+ };
6068
+ var hiddenCommentsToMarkdown = (options = {}) => {
6069
+ const normalized = normalizeOptions(options);
6070
+ return (node, ctx) => {
6071
+ if (node.type !== "element" || node.tag !== "span")
6072
+ return void 0;
6073
+ if (!isHiddenCommentElement(node.attrs, normalized.className))
6074
+ return void 0;
6075
+ const text = ctx.text(node).trim();
6076
+ if (/^<!--[\s\S]*-->$/.test(text))
6077
+ return text;
6078
+ return `<!-- ${text.replace(/^<!--|-->$/g, "").trim()} -->`;
6079
+ };
6080
+ };
6081
+ var isHiddenCommentElement = (attrs, className) => {
6082
+ if ("data-nizel-hidden-comment" in attrs)
6083
+ return true;
6084
+ return (attrs.class ?? "").split(/\s+/).includes(className);
6085
+ };
6086
+ var normalizeOptions = (options) => ({
6087
+ mode: options.mode ?? "hide",
6088
+ injectCss: options.injectCss ?? false,
6089
+ className: options.className ?? "nizel-hidden-comment"
6090
+ });
6091
+ var replaceMarkdownCommentsOutsideFences = (markdown, replacer) => {
6092
+ const lines = markdown.split(/(\n)/);
6093
+ let result = "";
6094
+ let line = "";
6095
+ let fence;
6096
+ for (const part of lines) {
6097
+ line += part;
6098
+ if (part !== "\n")
6099
+ continue;
6100
+ const next = processLine(line, fence, replacer);
6101
+ result += next.line;
6102
+ fence = next.fence;
6103
+ line = "";
6104
+ }
6105
+ if (line) {
6106
+ const next = processLine(line, fence, replacer);
6107
+ result += next.line;
6108
+ }
6109
+ return result;
6110
+ };
6111
+ var processLine = (line, fence, replacer) => {
6112
+ if (fence) {
6113
+ return {
6114
+ line,
6115
+ fence: isClosingFenceLine(line, fence) ? void 0 : fence
6116
+ };
6117
+ }
6118
+ const openingFence = getOpeningFenceLine(line);
6119
+ if (openingFence)
6120
+ return { line, fence: openingFence };
6121
+ return {
6122
+ line: line.replace(/<!--[\s\S]*?-->/g, replacer),
6123
+ fence
6124
+ };
6125
+ };
6126
+ var getOpeningFenceLine = (line) => {
6127
+ const match = /^( {0,3})(`{3,}|~{3,})/.exec(line);
6128
+ if (!match)
6129
+ return void 0;
6130
+ return { marker: match[2].charAt(0), length: match[2].length };
6131
+ };
6132
+ var isClosingFenceLine = (line, fence) => {
6133
+ const lineText = line.replace(/\r?\n$/, "");
6134
+ const escapedMarker = fence.marker.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6135
+ const pattern = new RegExp(`^ {0,3}${escapedMarker}{${fence.length},} *$`);
6136
+ return pattern.test(lineText);
6137
+ };
6138
+ var renderCommentElement = (comment, options) => {
6139
+ const classes = [
6140
+ options.className,
6141
+ `${options.className}--${options.mode}`,
6142
+ "print-hidden-comment"
6143
+ ];
6144
+ const mode = escapeHtml9(options.mode);
6145
+ return `<span class="${classes.map(escapeHtml9).join(" ")}" data-nizel-hidden-comment="" data-hidden-comment-mode="${mode}">${escapeHtml9(comment)}</span>`;
6146
+ };
6147
+ var restoreCommentTokens = (html, comments, options) => {
6148
+ if (!comments.size || options.mode === "remove")
6149
+ return html;
6150
+ let nextHtml = html;
6151
+ for (const [token, comment] of comments) {
6152
+ const tokenPattern = new RegExp(escapeRegExp2(token), "g");
6153
+ const blockPattern = new RegExp(`<p>\\s*${escapeRegExp2(token)}\\s*</p>`, "g");
6154
+ const rendered = renderCommentElement(comment, options);
6155
+ nextHtml = nextHtml.replace(blockPattern, rendered).replace(tokenPattern, rendered);
6156
+ }
6157
+ return nextHtml;
6158
+ };
6159
+ var hiddenCommentsStyleTag = (className) => {
6160
+ return `<style data-nizel-plugin="hidden-comments">${hiddenCommentsCss(className)}</style>`;
6161
+ };
6162
+ var hiddenCommentsCss = (className) => {
6163
+ const selector = `.${className.replace(/[^A-Za-z0-9_-]/g, "")}`;
6164
+ return `${selector} {
6165
+ user-select: text;
6166
+ }
6167
+ ${selector}--hide {
6168
+ border: 0;
6169
+ color: rgba(255, 255, 255, 0);
6170
+ display: inline-block;
6171
+ font-size: 1px;
6172
+ height: 0;
6173
+ line-height: 0;
6174
+ margin: 0;
6175
+ max-height: 0;
6176
+ max-width: 0;
6177
+ overflow: hidden;
6178
+ padding: 0;
6179
+ vertical-align: baseline;
6180
+ width: 0;
6181
+ }
6182
+ ${selector}--small {
6183
+ color: color-mix(in srgb, currentColor 60%, transparent);
6184
+ display: inline;
6185
+ font-size: 0.75em;
6186
+ line-height: 1;
6187
+ }
6188
+ ${selector}--render {
6189
+ display: inline;
6190
+ }`;
6191
+ };
6192
+ var escapeHtml9 = (value) => {
6193
+ return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6194
+ };
6195
+ var escapeRegExp2 = (value) => {
6196
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6197
+ };
6198
+
6024
6199
  // ../plugin-math/dist/index.js
6025
6200
  var mathPlugin = (options = {}) => {
6026
6201
  return {
@@ -6138,7 +6313,7 @@ $$`;
6138
6313
  nodes.push({ type: "text", value: value.slice(lastIndex, match.index) });
6139
6314
  nodes.push({
6140
6315
  type: "inlineHtml",
6141
- value: `<span class="${escapeHtml9(options.inlineClassName ?? "math math-inline")}">${escapeHtml9(match[1])}</span>`
6316
+ value: `<span class="${escapeHtml10(options.inlineClassName ?? "math math-inline")}">${escapeHtml10(match[1])}</span>`
6142
6317
  });
6143
6318
  lastIndex = pattern.lastIndex;
6144
6319
  }
@@ -6146,7 +6321,7 @@ $$`;
6146
6321
  nodes.push({ type: "text", value: value.slice(lastIndex) });
6147
6322
  return nodes;
6148
6323
  };
6149
- var escapeHtml9 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6324
+ var escapeHtml10 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6150
6325
 
6151
6326
  // ../plugin-media/dist/index.js
6152
6327
  var mediaPlugin = (options = {}) => ({
@@ -6182,7 +6357,7 @@ $$`;
6182
6357
  return html.replace(/<p>(<img\b[^>]*>)<\/p>/g, (_match, img) => {
6183
6358
  const enhanced = enhanceImageTag(img, { lazy, responsive });
6184
6359
  const caption = /alt="([^"]+)"/.exec(enhanced)?.[1];
6185
- return `<figure class="${escapeHtml10(className)}">${enhanced}${caption ? `<figcaption>${caption}</figcaption>` : ""}</figure>`;
6360
+ return `<figure class="${escapeHtml11(className)}">${enhanced}${caption ? `<figcaption>${caption}</figcaption>` : ""}</figure>`;
6186
6361
  });
6187
6362
  };
6188
6363
  var enhanceImageTag = (img, options) => {
@@ -6193,7 +6368,7 @@ $$`;
6193
6368
  next = next.replace(/\/?>$/, ' decoding="async" />');
6194
6369
  return next;
6195
6370
  };
6196
- var escapeHtml10 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6371
+ var escapeHtml11 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6197
6372
 
6198
6373
  // ../plugin-sanitize/dist/index.js
6199
6374
  var sanitizePlugin = (options = {}) => ({
@@ -6396,11 +6571,11 @@ ${fence}`;
6396
6571
  if (match.index > lastIndex)
6397
6572
  nodes.push({ type: "text", value: value.slice(lastIndex, match.index) });
6398
6573
  if (match[1] !== void 0 && mark)
6399
- nodes.push({ type: "inlineHtml", value: `<mark>${escapeHtml11(match[1])}</mark>` });
6574
+ nodes.push({ type: "inlineHtml", value: `<mark>${escapeHtml12(match[1])}</mark>` });
6400
6575
  else if (match[2] !== void 0 && subscript)
6401
- nodes.push({ type: "inlineHtml", value: `<sub>${escapeHtml11(match[2])}</sub>` });
6576
+ nodes.push({ type: "inlineHtml", value: `<sub>${escapeHtml12(match[2])}</sub>` });
6402
6577
  else if (match[3] !== void 0 && superscript)
6403
- nodes.push({ type: "inlineHtml", value: `<sup>${escapeHtml11(match[3])}</sup>` });
6578
+ nodes.push({ type: "inlineHtml", value: `<sup>${escapeHtml12(match[3])}</sup>` });
6404
6579
  else
6405
6580
  nodes.push({ type: "text", value: match[0] });
6406
6581
  lastIndex = pattern.lastIndex;
@@ -6409,7 +6584,7 @@ ${fence}`;
6409
6584
  nodes.push({ type: "text", value: value.slice(lastIndex) });
6410
6585
  return nodes;
6411
6586
  };
6412
- var escapeHtml11 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
6587
+ var escapeHtml12 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
6413
6588
 
6414
6589
  // src/index.ts
6415
6590
  var supportedPlugins = [
@@ -6490,6 +6665,13 @@ ${fence}`;
6490
6665
  defaultEnabled: false,
6491
6666
  category: "block"
6492
6667
  },
6668
+ {
6669
+ id: "hidden-comments",
6670
+ label: "Hidden Comments",
6671
+ description: "Control how Markdown HTML comments render in documents.",
6672
+ defaultEnabled: false,
6673
+ category: "core-behavior"
6674
+ },
6493
6675
  {
6494
6676
  id: "media",
6495
6677
  label: "Media",
@@ -6568,6 +6750,7 @@ ${fence}`;
6568
6750
  "frontmatter-ui": (options) => frontmatterUiPlugin(options["frontmatter-ui"]),
6569
6751
  gfm: (options) => gfmPlugins(options.gfm),
6570
6752
  "heading-anchors": (options) => headingAnchorsPlugin(options["heading-anchors"]),
6753
+ "hidden-comments": (options) => hiddenCommentsPlugin(options["hidden-comments"]),
6571
6754
  math: (options) => mathPlugin(options.math),
6572
6755
  media: (options) => mediaPlugin(options.media),
6573
6756
  sanitize: (options) => sanitizePlugin(options.sanitize),
@@ -6584,11 +6767,31 @@ ${fence}`;
6584
6767
  };
6585
6768
  function useNizelKit(options = {}) {
6586
6769
  const { enabledPlugins, pluginOptions, plugins = [], ...nizelOptions } = options;
6587
- return useBrowserNizel({
6770
+ const resolvedPlugins = [...createPlugins(enabledPlugins, pluginOptions), ...plugins];
6771
+ const processor = useBrowserNizel({
6588
6772
  ...nizelOptions,
6589
- plugins: [...createPlugins(enabledPlugins, pluginOptions), ...plugins]
6773
+ plugins: resolvedPlugins
6590
6774
  });
6775
+ const htmlToMarkdown3 = processor.htmlToMarkdown.bind(processor);
6776
+ processor.htmlToMarkdown = (source, reverseOptions) => {
6777
+ return htmlToMarkdown3(source, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
6778
+ };
6779
+ const nodeToMarkdown2 = processor.nodeToMarkdown.bind(processor);
6780
+ processor.nodeToMarkdown = (source, reverseOptions) => {
6781
+ return nodeToMarkdown2(source, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
6782
+ };
6783
+ const selectionToMarkdown2 = processor.selectionToMarkdown.bind(processor);
6784
+ processor.selectionToMarkdown = (selection, reverseOptions) => {
6785
+ return selectionToMarkdown2(selection, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
6786
+ };
6787
+ return processor;
6591
6788
  }
6789
+ var withKitHtmlToMarkdownPlugins = (options, plugins) => {
6790
+ return {
6791
+ ...options,
6792
+ plugins: [...plugins, ...options?.plugins ?? []]
6793
+ };
6794
+ };
6592
6795
  async function markdownToHtml(markdown, options) {
6593
6796
  return useNizelKit(options).html(markdown);
6594
6797
  }
package/dist/nizel-kit.js CHANGED
@@ -2422,6 +2422,10 @@ function mergeOptions(left, right) {
2422
2422
  ...left.variables ?? {},
2423
2423
  ...right.variables ?? {}
2424
2424
  },
2425
+ meta: {
2426
+ ...left.meta ?? {},
2427
+ ...right.meta ?? {}
2428
+ },
2425
2429
  elements: {
2426
2430
  ...left.elements ?? {},
2427
2431
  ...right.elements ?? {}
@@ -5989,6 +5993,177 @@ var addHeadingAnchors = (ast, options = {}) => ({
5989
5993
  });
5990
5994
  var escapeHtml8 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
5991
5995
 
5996
+ // ../nizel-plugin-hidden-comments/dist/index.js
5997
+ var hiddenCommentsPlugin = (options = {}) => {
5998
+ const normalized = normalizeOptions(options);
5999
+ let comments = /* @__PURE__ */ new Map();
6000
+ let nextIndex = 0;
6001
+ return {
6002
+ name: "hidden-comments",
6003
+ hooks: {
6004
+ beforeParse(markdown) {
6005
+ comments = /* @__PURE__ */ new Map();
6006
+ nextIndex = 0;
6007
+ return transformMarkdownComments(markdown, normalized, (comment) => {
6008
+ const token = `NIZEL_HIDDEN_COMMENT_${nextIndex}_${Math.random().toString(36).slice(2)}`;
6009
+ nextIndex += 1;
6010
+ comments.set(token, comment);
6011
+ return token;
6012
+ });
6013
+ },
6014
+ afterRender(html) {
6015
+ let nextHtml = restoreCommentTokens(html, comments, normalized);
6016
+ if (normalized.injectCss && normalized.mode !== "remove") {
6017
+ nextHtml = `${hiddenCommentsStyleTag(normalized.className)}
6018
+ ${nextHtml}`;
6019
+ }
6020
+ return nextHtml;
6021
+ }
6022
+ },
6023
+ htmlToMarkdown: hiddenCommentsToMarkdown(normalized)
6024
+ };
6025
+ };
6026
+ var transformMarkdownComments = (markdown, options = {}, createToken = (comment) => renderCommentElement(comment, normalizeOptions(options))) => {
6027
+ const normalized = normalizeOptions(options);
6028
+ if (typeof markdown !== "string" || markdown.indexOf("<!--") === -1)
6029
+ return markdown;
6030
+ return replaceMarkdownCommentsOutsideFences(markdown, (comment) => {
6031
+ if (normalized.mode === "remove")
6032
+ return "";
6033
+ return createToken(comment);
6034
+ });
6035
+ };
6036
+ var hiddenCommentsToMarkdown = (options = {}) => {
6037
+ const normalized = normalizeOptions(options);
6038
+ return (node, ctx) => {
6039
+ if (node.type !== "element" || node.tag !== "span")
6040
+ return void 0;
6041
+ if (!isHiddenCommentElement(node.attrs, normalized.className))
6042
+ return void 0;
6043
+ const text = ctx.text(node).trim();
6044
+ if (/^<!--[\s\S]*-->$/.test(text))
6045
+ return text;
6046
+ return `<!-- ${text.replace(/^<!--|-->$/g, "").trim()} -->`;
6047
+ };
6048
+ };
6049
+ var isHiddenCommentElement = (attrs, className) => {
6050
+ if ("data-nizel-hidden-comment" in attrs)
6051
+ return true;
6052
+ return (attrs.class ?? "").split(/\s+/).includes(className);
6053
+ };
6054
+ var normalizeOptions = (options) => ({
6055
+ mode: options.mode ?? "hide",
6056
+ injectCss: options.injectCss ?? false,
6057
+ className: options.className ?? "nizel-hidden-comment"
6058
+ });
6059
+ var replaceMarkdownCommentsOutsideFences = (markdown, replacer) => {
6060
+ const lines = markdown.split(/(\n)/);
6061
+ let result = "";
6062
+ let line = "";
6063
+ let fence;
6064
+ for (const part of lines) {
6065
+ line += part;
6066
+ if (part !== "\n")
6067
+ continue;
6068
+ const next = processLine(line, fence, replacer);
6069
+ result += next.line;
6070
+ fence = next.fence;
6071
+ line = "";
6072
+ }
6073
+ if (line) {
6074
+ const next = processLine(line, fence, replacer);
6075
+ result += next.line;
6076
+ }
6077
+ return result;
6078
+ };
6079
+ var processLine = (line, fence, replacer) => {
6080
+ if (fence) {
6081
+ return {
6082
+ line,
6083
+ fence: isClosingFenceLine(line, fence) ? void 0 : fence
6084
+ };
6085
+ }
6086
+ const openingFence = getOpeningFenceLine(line);
6087
+ if (openingFence)
6088
+ return { line, fence: openingFence };
6089
+ return {
6090
+ line: line.replace(/<!--[\s\S]*?-->/g, replacer),
6091
+ fence
6092
+ };
6093
+ };
6094
+ var getOpeningFenceLine = (line) => {
6095
+ const match = /^( {0,3})(`{3,}|~{3,})/.exec(line);
6096
+ if (!match)
6097
+ return void 0;
6098
+ return { marker: match[2].charAt(0), length: match[2].length };
6099
+ };
6100
+ var isClosingFenceLine = (line, fence) => {
6101
+ const lineText = line.replace(/\r?\n$/, "");
6102
+ const escapedMarker = fence.marker.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6103
+ const pattern = new RegExp(`^ {0,3}${escapedMarker}{${fence.length},} *$`);
6104
+ return pattern.test(lineText);
6105
+ };
6106
+ var renderCommentElement = (comment, options) => {
6107
+ const classes = [
6108
+ options.className,
6109
+ `${options.className}--${options.mode}`,
6110
+ "print-hidden-comment"
6111
+ ];
6112
+ const mode = escapeHtml9(options.mode);
6113
+ return `<span class="${classes.map(escapeHtml9).join(" ")}" data-nizel-hidden-comment="" data-hidden-comment-mode="${mode}">${escapeHtml9(comment)}</span>`;
6114
+ };
6115
+ var restoreCommentTokens = (html, comments, options) => {
6116
+ if (!comments.size || options.mode === "remove")
6117
+ return html;
6118
+ let nextHtml = html;
6119
+ for (const [token, comment] of comments) {
6120
+ const tokenPattern = new RegExp(escapeRegExp2(token), "g");
6121
+ const blockPattern = new RegExp(`<p>\\s*${escapeRegExp2(token)}\\s*</p>`, "g");
6122
+ const rendered = renderCommentElement(comment, options);
6123
+ nextHtml = nextHtml.replace(blockPattern, rendered).replace(tokenPattern, rendered);
6124
+ }
6125
+ return nextHtml;
6126
+ };
6127
+ var hiddenCommentsStyleTag = (className) => {
6128
+ return `<style data-nizel-plugin="hidden-comments">${hiddenCommentsCss(className)}</style>`;
6129
+ };
6130
+ var hiddenCommentsCss = (className) => {
6131
+ const selector = `.${className.replace(/[^A-Za-z0-9_-]/g, "")}`;
6132
+ return `${selector} {
6133
+ user-select: text;
6134
+ }
6135
+ ${selector}--hide {
6136
+ border: 0;
6137
+ color: rgba(255, 255, 255, 0);
6138
+ display: inline-block;
6139
+ font-size: 1px;
6140
+ height: 0;
6141
+ line-height: 0;
6142
+ margin: 0;
6143
+ max-height: 0;
6144
+ max-width: 0;
6145
+ overflow: hidden;
6146
+ padding: 0;
6147
+ vertical-align: baseline;
6148
+ width: 0;
6149
+ }
6150
+ ${selector}--small {
6151
+ color: color-mix(in srgb, currentColor 60%, transparent);
6152
+ display: inline;
6153
+ font-size: 0.75em;
6154
+ line-height: 1;
6155
+ }
6156
+ ${selector}--render {
6157
+ display: inline;
6158
+ }`;
6159
+ };
6160
+ var escapeHtml9 = (value) => {
6161
+ return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6162
+ };
6163
+ var escapeRegExp2 = (value) => {
6164
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6165
+ };
6166
+
5992
6167
  // ../plugin-math/dist/index.js
5993
6168
  var mathPlugin = (options = {}) => {
5994
6169
  return {
@@ -6106,7 +6281,7 @@ var transformText2 = (value, options) => {
6106
6281
  nodes.push({ type: "text", value: value.slice(lastIndex, match.index) });
6107
6282
  nodes.push({
6108
6283
  type: "inlineHtml",
6109
- value: `<span class="${escapeHtml9(options.inlineClassName ?? "math math-inline")}">${escapeHtml9(match[1])}</span>`
6284
+ value: `<span class="${escapeHtml10(options.inlineClassName ?? "math math-inline")}">${escapeHtml10(match[1])}</span>`
6110
6285
  });
6111
6286
  lastIndex = pattern.lastIndex;
6112
6287
  }
@@ -6114,7 +6289,7 @@ var transformText2 = (value, options) => {
6114
6289
  nodes.push({ type: "text", value: value.slice(lastIndex) });
6115
6290
  return nodes;
6116
6291
  };
6117
- var escapeHtml9 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6292
+ var escapeHtml10 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6118
6293
 
6119
6294
  // ../plugin-media/dist/index.js
6120
6295
  var mediaPlugin = (options = {}) => ({
@@ -6150,7 +6325,7 @@ var enhanceImages = (html, options = {}) => {
6150
6325
  return html.replace(/<p>(<img\b[^>]*>)<\/p>/g, (_match, img) => {
6151
6326
  const enhanced = enhanceImageTag(img, { lazy, responsive });
6152
6327
  const caption = /alt="([^"]+)"/.exec(enhanced)?.[1];
6153
- return `<figure class="${escapeHtml10(className)}">${enhanced}${caption ? `<figcaption>${caption}</figcaption>` : ""}</figure>`;
6328
+ return `<figure class="${escapeHtml11(className)}">${enhanced}${caption ? `<figcaption>${caption}</figcaption>` : ""}</figure>`;
6154
6329
  });
6155
6330
  };
6156
6331
  var enhanceImageTag = (img, options) => {
@@ -6161,7 +6336,7 @@ var enhanceImageTag = (img, options) => {
6161
6336
  next = next.replace(/\/?>$/, ' decoding="async" />');
6162
6337
  return next;
6163
6338
  };
6164
- var escapeHtml10 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6339
+ var escapeHtml11 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6165
6340
 
6166
6341
  // ../plugin-sanitize/dist/index.js
6167
6342
  var sanitizePlugin = (options = {}) => ({
@@ -6364,11 +6539,11 @@ var transformText3 = (value, options) => {
6364
6539
  if (match.index > lastIndex)
6365
6540
  nodes.push({ type: "text", value: value.slice(lastIndex, match.index) });
6366
6541
  if (match[1] !== void 0 && mark)
6367
- nodes.push({ type: "inlineHtml", value: `<mark>${escapeHtml11(match[1])}</mark>` });
6542
+ nodes.push({ type: "inlineHtml", value: `<mark>${escapeHtml12(match[1])}</mark>` });
6368
6543
  else if (match[2] !== void 0 && subscript)
6369
- nodes.push({ type: "inlineHtml", value: `<sub>${escapeHtml11(match[2])}</sub>` });
6544
+ nodes.push({ type: "inlineHtml", value: `<sub>${escapeHtml12(match[2])}</sub>` });
6370
6545
  else if (match[3] !== void 0 && superscript)
6371
- nodes.push({ type: "inlineHtml", value: `<sup>${escapeHtml11(match[3])}</sup>` });
6546
+ nodes.push({ type: "inlineHtml", value: `<sup>${escapeHtml12(match[3])}</sup>` });
6372
6547
  else
6373
6548
  nodes.push({ type: "text", value: match[0] });
6374
6549
  lastIndex = pattern.lastIndex;
@@ -6377,7 +6552,7 @@ var transformText3 = (value, options) => {
6377
6552
  nodes.push({ type: "text", value: value.slice(lastIndex) });
6378
6553
  return nodes;
6379
6554
  };
6380
- var escapeHtml11 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
6555
+ var escapeHtml12 = (value) => value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
6381
6556
 
6382
6557
  // src/index.ts
6383
6558
  var supportedPlugins = [
@@ -6458,6 +6633,13 @@ var supportedPlugins = [
6458
6633
  defaultEnabled: false,
6459
6634
  category: "block"
6460
6635
  },
6636
+ {
6637
+ id: "hidden-comments",
6638
+ label: "Hidden Comments",
6639
+ description: "Control how Markdown HTML comments render in documents.",
6640
+ defaultEnabled: false,
6641
+ category: "core-behavior"
6642
+ },
6461
6643
  {
6462
6644
  id: "media",
6463
6645
  label: "Media",
@@ -6536,6 +6718,7 @@ var factories = {
6536
6718
  "frontmatter-ui": (options) => frontmatterUiPlugin(options["frontmatter-ui"]),
6537
6719
  gfm: (options) => gfmPlugins(options.gfm),
6538
6720
  "heading-anchors": (options) => headingAnchorsPlugin(options["heading-anchors"]),
6721
+ "hidden-comments": (options) => hiddenCommentsPlugin(options["hidden-comments"]),
6539
6722
  math: (options) => mathPlugin(options.math),
6540
6723
  media: (options) => mediaPlugin(options.media),
6541
6724
  sanitize: (options) => sanitizePlugin(options.sanitize),
@@ -6552,11 +6735,31 @@ var createPlugins = (enabledPlugins = defaultEnabledPlugins(), options = {}) =>
6552
6735
  };
6553
6736
  function useNizelKit(options = {}) {
6554
6737
  const { enabledPlugins, pluginOptions, plugins = [], ...nizelOptions } = options;
6555
- return useBrowserNizel({
6738
+ const resolvedPlugins = [...createPlugins(enabledPlugins, pluginOptions), ...plugins];
6739
+ const processor = useBrowserNizel({
6556
6740
  ...nizelOptions,
6557
- plugins: [...createPlugins(enabledPlugins, pluginOptions), ...plugins]
6741
+ plugins: resolvedPlugins
6558
6742
  });
6743
+ const htmlToMarkdown3 = processor.htmlToMarkdown.bind(processor);
6744
+ processor.htmlToMarkdown = (source, reverseOptions) => {
6745
+ return htmlToMarkdown3(source, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
6746
+ };
6747
+ const nodeToMarkdown2 = processor.nodeToMarkdown.bind(processor);
6748
+ processor.nodeToMarkdown = (source, reverseOptions) => {
6749
+ return nodeToMarkdown2(source, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
6750
+ };
6751
+ const selectionToMarkdown2 = processor.selectionToMarkdown.bind(processor);
6752
+ processor.selectionToMarkdown = (selection, reverseOptions) => {
6753
+ return selectionToMarkdown2(selection, withKitHtmlToMarkdownPlugins(reverseOptions, resolvedPlugins));
6754
+ };
6755
+ return processor;
6559
6756
  }
6757
+ var withKitHtmlToMarkdownPlugins = (options, plugins) => {
6758
+ return {
6759
+ ...options,
6760
+ plugins: [...plugins, ...options?.plugins ?? []]
6761
+ };
6762
+ };
6560
6763
  async function markdownToHtml(markdown, options) {
6561
6764
  return useNizelKit(options).html(markdown);
6562
6765
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nizel-kit",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Browser and native WebView integration kit for Nizel with official plugin registry.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,6 +46,7 @@
46
46
  "nizel-plugin-frontmatter-ui": "^0.1.0",
47
47
  "nizel-plugin-gfm": "^0.1.0",
48
48
  "nizel-plugin-heading-anchors": "^0.1.0",
49
+ "nizel-plugin-hidden-comments": "^0.1.0",
49
50
  "nizel-plugin-math": "^0.1.0",
50
51
  "nizel-plugin-media": "^0.1.0",
51
52
  "nizel-plugin-sanitize": "^0.1.0",