nizel-kit 0.1.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 ADDED
@@ -0,0 +1,34 @@
1
+ # nizel-kit
2
+
3
+ Browser and native WebView integration bundle for Nizel.
4
+
5
+ `nizel-kit` packages the browser renderer plus a registry of official plugins. Native apps can show settings from `supportedPlugins`, store selected plugin IDs, and pass those IDs back to the renderer. The Swift app does not need to parse or convert Markdown extension syntax.
6
+
7
+ ## Browser / IIFE
8
+
9
+ Use `dist/nizel-kit.iife.js` in `WKWebView`, `JSContext`, or a browser shell. It exposes `NizelKit`.
10
+
11
+ ```js
12
+ const html = await NizelKit.markdownToHtml(markdown, {
13
+ enabledPlugins: ['alert', 'deflist', 'footnotes', 'math', 'typography', 'diagrams'],
14
+ });
15
+ ```
16
+
17
+ ## Settings UI
18
+
19
+ `supportedPlugins` is intentionally serializable:
20
+
21
+ ```js
22
+ NizelKit.supportedPlugins
23
+ // [{ id, label, description, defaultEnabled, category, exclusiveGroup? }, ...]
24
+ ```
25
+
26
+ For Swift, store `[String]` plugin IDs such as:
27
+
28
+ ```swift
29
+ let enabledPlugins = ["alert", "math", "typography"]
30
+ ```
31
+
32
+ Then pass that array into JavaScript when rendering.
33
+
34
+ Code-rendering plugins use `exclusiveGroup: "code-renderer"`. If multiple code renderers are selected, `nizel-kit` keeps the last selected one so the renderer remains deterministic.
@@ -0,0 +1,81 @@
1
+ import { type NizelBrowserProcessor, type NizelBrowserMountTarget } from 'nizel/browser';
2
+ import type { NizelOptions, NizelPlugin } from 'nizel';
3
+ import { type AbbrPluginOptions } from 'nizel-plugin-abbr';
4
+ import { type AlertPluginOptions } from 'nizel-plugin-alert';
5
+ import { type AutolinkPluginOptions } from 'nizel-plugin-autolink';
6
+ import { type CodeCopyPluginOptions } from 'nizel-plugin-code-copy';
7
+ import { type CitationsPluginOptions } from 'nizel-plugin-citations';
8
+ import { type DeflistPluginOptions } from 'nizel-plugin-deflist';
9
+ import { type DetailsPluginOptions } from 'nizel-plugin-details';
10
+ import { type DiagramsPluginOptions } from 'nizel-plugin-diagrams';
11
+ import { type EmojiPluginOptions } from 'nizel-plugin-emoji';
12
+ import { type FootnotesPluginOptions } from 'nizel-plugin-footnotes';
13
+ import { type FrontmatterUiPluginOptions } from 'nizel-plugin-frontmatter-ui';
14
+ import { type GfmPluginOptions } from 'nizel-plugin-gfm';
15
+ import { type HeadingAnchorsPluginOptions } from 'nizel-plugin-heading-anchors';
16
+ import { type MathPluginOptions } from 'nizel-plugin-math';
17
+ import { type MediaPluginOptions } from 'nizel-plugin-media';
18
+ import { type SanitizePluginOptions } from 'nizel-plugin-sanitize';
19
+ import { type ShikiPluginOptions } from 'nizel-plugin-shiki';
20
+ import { type TocPluginOptions } from 'nizel-plugin-toc';
21
+ import { type TypographyPluginOptions } from 'nizel-plugin-typography';
22
+ export type NizelKitPluginId = 'abbr' | 'alert' | 'autolink' | 'citations' | 'code-copy' | 'deflist' | 'details' | 'diagrams' | 'emoji' | 'footnotes' | 'frontmatter-ui' | 'gfm' | 'heading-anchors' | 'math' | 'media' | 'sanitize' | 'shiki' | 'toc' | 'typography';
23
+ export type NizelKitPluginMeta = {
24
+ id: NizelKitPluginId;
25
+ label: string;
26
+ description: string;
27
+ defaultEnabled: boolean;
28
+ category: 'core-behavior' | 'inline' | 'block' | 'code';
29
+ exclusiveGroup?: string;
30
+ };
31
+ export type NizelKitPluginOptions = {
32
+ abbr?: AbbrPluginOptions;
33
+ alert?: AlertPluginOptions;
34
+ autolink?: AutolinkPluginOptions;
35
+ citations?: CitationsPluginOptions;
36
+ 'code-copy'?: CodeCopyPluginOptions;
37
+ deflist?: DeflistPluginOptions;
38
+ details?: DetailsPluginOptions;
39
+ diagrams?: DiagramsPluginOptions;
40
+ emoji?: EmojiPluginOptions;
41
+ footnotes?: FootnotesPluginOptions;
42
+ 'frontmatter-ui'?: FrontmatterUiPluginOptions;
43
+ gfm?: GfmPluginOptions;
44
+ 'heading-anchors'?: HeadingAnchorsPluginOptions;
45
+ math?: MathPluginOptions;
46
+ media?: MediaPluginOptions;
47
+ sanitize?: SanitizePluginOptions;
48
+ shiki?: ShikiPluginOptions;
49
+ toc?: TocPluginOptions;
50
+ typography?: TypographyPluginOptions;
51
+ };
52
+ export type NizelKitOptions = NizelOptions & {
53
+ enabledPlugins?: NizelKitPluginId[];
54
+ pluginOptions?: NizelKitPluginOptions;
55
+ };
56
+ export declare const supportedPlugins: NizelKitPluginMeta[];
57
+ /**
58
+ * Returns the default enabled plugin identifiers for UI initialization.
59
+ */
60
+ export declare const defaultEnabledPlugins: () => NizelKitPluginId[];
61
+ /**
62
+ * Creates official Nizel plugins from native-app friendly plugin IDs.
63
+ */
64
+ export declare const createPlugins: (enabledPlugins?: NizelKitPluginId[], options?: NizelKitPluginOptions) => NizelPlugin[];
65
+ /**
66
+ * Creates a browser/WebView processor with selected official plugins.
67
+ */
68
+ export declare function useNizelKit(options?: NizelKitOptions): NizelBrowserProcessor;
69
+ /**
70
+ * Renders Markdown to HTML using selected official plugins.
71
+ */
72
+ export declare function markdownToHtml(markdown: string, options?: NizelKitOptions): Promise<string>;
73
+ /**
74
+ * Renders Markdown into a DOM element using selected official plugins.
75
+ */
76
+ export declare function mountMarkdown(target: NizelBrowserMountTarget, markdown: string, options?: NizelKitOptions): Promise<Element>;
77
+ /**
78
+ * Removes unknown IDs and keeps only the last plugin in each exclusive group.
79
+ */
80
+ export declare const normalizeEnabledPlugins: (enabledPlugins: NizelKitPluginId[]) => NizelKitPluginId[];
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,238 @@
1
+ import { useBrowserNizel } from 'nizel/browser';
2
+ import { abbrPlugin } from 'nizel-plugin-abbr';
3
+ import { alertPlugin } from 'nizel-plugin-alert';
4
+ import { autolinkPlugin } from 'nizel-plugin-autolink';
5
+ import { codeCopyPlugin } from 'nizel-plugin-code-copy';
6
+ import { citationsPlugin } from 'nizel-plugin-citations';
7
+ import { deflistPlugin } from 'nizel-plugin-deflist';
8
+ import { detailsPlugin } from 'nizel-plugin-details';
9
+ import { diagramsPlugin } from 'nizel-plugin-diagrams';
10
+ import { emojiPlugin } from 'nizel-plugin-emoji';
11
+ import { footnotesPlugin } from 'nizel-plugin-footnotes';
12
+ import { frontmatterUiPlugin } from 'nizel-plugin-frontmatter-ui';
13
+ import { gfmPlugins } from 'nizel-plugin-gfm';
14
+ import { headingAnchorsPlugin } from 'nizel-plugin-heading-anchors';
15
+ import { mathPlugin } from 'nizel-plugin-math';
16
+ import { mediaPlugin } from 'nizel-plugin-media';
17
+ import { sanitizePlugin } from 'nizel-plugin-sanitize';
18
+ import { shikiPlugin } from 'nizel-plugin-shiki';
19
+ import { tocPlugin } from 'nizel-plugin-toc';
20
+ import { typographyPlugin } from 'nizel-plugin-typography';
21
+ export const supportedPlugins = [
22
+ {
23
+ id: 'sanitize',
24
+ label: 'Sanitize Output',
25
+ description: 'Remove risky HTML from rendered output.',
26
+ defaultEnabled: true,
27
+ category: 'core-behavior',
28
+ },
29
+ {
30
+ id: 'autolink',
31
+ label: 'Autolinks',
32
+ description: 'Configure bare URL and email autolinking.',
33
+ defaultEnabled: true,
34
+ category: 'core-behavior',
35
+ },
36
+ {
37
+ id: 'gfm',
38
+ label: 'GFM Preset',
39
+ description: 'Enable the GFM-oriented companion plugin set.',
40
+ defaultEnabled: false,
41
+ category: 'core-behavior',
42
+ },
43
+ {
44
+ id: 'emoji',
45
+ label: 'Emoji Shortcodes',
46
+ description: 'Replace :name: emoji shortcodes outside code.',
47
+ defaultEnabled: false,
48
+ category: 'inline',
49
+ },
50
+ {
51
+ id: 'abbr',
52
+ label: 'Abbreviations',
53
+ description: 'Render abbreviation definitions as abbr elements.',
54
+ defaultEnabled: false,
55
+ category: 'inline',
56
+ },
57
+ {
58
+ id: 'citations',
59
+ label: 'Citations',
60
+ description: 'Render simple citation references and bibliography entries.',
61
+ defaultEnabled: false,
62
+ category: 'inline',
63
+ },
64
+ {
65
+ id: 'alert',
66
+ label: 'Alerts',
67
+ description: 'Render GitHub-style [!NOTE] callouts and alert custom blocks.',
68
+ defaultEnabled: false,
69
+ category: 'block',
70
+ },
71
+ {
72
+ id: 'details',
73
+ label: 'Details',
74
+ description: 'Render disclosure blocks.',
75
+ defaultEnabled: false,
76
+ category: 'block',
77
+ },
78
+ {
79
+ id: 'deflist',
80
+ label: 'Definition Lists',
81
+ description: 'Render Term / : Definition blocks.',
82
+ defaultEnabled: false,
83
+ category: 'block',
84
+ },
85
+ {
86
+ id: 'frontmatter-ui',
87
+ label: 'Frontmatter UI',
88
+ description: 'Render metadata helper UI blocks.',
89
+ defaultEnabled: false,
90
+ category: 'block',
91
+ },
92
+ {
93
+ id: 'heading-anchors',
94
+ label: 'Heading Anchors',
95
+ description: 'Add visible anchor links to headings.',
96
+ defaultEnabled: false,
97
+ category: 'block',
98
+ },
99
+ {
100
+ id: 'media',
101
+ label: 'Media',
102
+ description: 'Enhance standalone images as native-friendly figures.',
103
+ defaultEnabled: false,
104
+ category: 'block',
105
+ },
106
+ {
107
+ id: 'toc',
108
+ label: 'Table of Contents',
109
+ description: 'Render [[toc]] from document headings.',
110
+ defaultEnabled: false,
111
+ category: 'block',
112
+ },
113
+ {
114
+ id: 'footnotes',
115
+ label: 'Footnotes',
116
+ description: 'Render [^id] references and definitions.',
117
+ defaultEnabled: false,
118
+ category: 'block',
119
+ },
120
+ {
121
+ id: 'math',
122
+ label: 'Math',
123
+ description: 'Wrap inline $math$ and display $$ math for KaTeX or MathJax.',
124
+ defaultEnabled: false,
125
+ category: 'inline',
126
+ },
127
+ {
128
+ id: 'typography',
129
+ label: 'Typography',
130
+ description: 'Render ==mark==, subscript, and superscript extensions.',
131
+ defaultEnabled: false,
132
+ category: 'inline',
133
+ },
134
+ {
135
+ id: 'diagrams',
136
+ label: 'Diagrams',
137
+ description: 'Render Mermaid code fences as diagram containers.',
138
+ defaultEnabled: false,
139
+ category: 'code',
140
+ exclusiveGroup: 'code-renderer',
141
+ },
142
+ {
143
+ id: 'shiki',
144
+ label: 'Code Highlighting',
145
+ description: 'Use a supplied Shiki-compatible highlighter for code blocks.',
146
+ defaultEnabled: false,
147
+ category: 'code',
148
+ exclusiveGroup: 'code-renderer',
149
+ },
150
+ {
151
+ id: 'code-copy',
152
+ label: 'Code Copy',
153
+ description: 'Render code blocks with copy button markup.',
154
+ defaultEnabled: false,
155
+ category: 'code',
156
+ exclusiveGroup: 'code-renderer',
157
+ },
158
+ ];
159
+ const factories = {
160
+ abbr: (options) => abbrPlugin(options.abbr),
161
+ alert: (options) => alertPlugin(options.alert),
162
+ autolink: (options) => autolinkPlugin(options.autolink),
163
+ citations: (options) => citationsPlugin(options.citations),
164
+ 'code-copy': (options) => codeCopyPlugin(options['code-copy']),
165
+ deflist: (options) => deflistPlugin(options.deflist),
166
+ details: (options) => detailsPlugin(options.details),
167
+ diagrams: (options) => diagramsPlugin(options.diagrams),
168
+ emoji: (options) => emojiPlugin(options.emoji),
169
+ footnotes: (options) => footnotesPlugin(options.footnotes),
170
+ 'frontmatter-ui': (options) => frontmatterUiPlugin(options['frontmatter-ui']),
171
+ gfm: (options) => gfmPlugins(options.gfm),
172
+ 'heading-anchors': (options) => headingAnchorsPlugin(options['heading-anchors']),
173
+ math: (options) => mathPlugin(options.math),
174
+ media: (options) => mediaPlugin(options.media),
175
+ sanitize: (options) => sanitizePlugin(options.sanitize),
176
+ shiki: (options) => shikiPlugin(options.shiki),
177
+ toc: (options) => tocPlugin(options.toc),
178
+ typography: (options) => typographyPlugin(options.typography),
179
+ };
180
+ /**
181
+ * Returns the default enabled plugin identifiers for UI initialization.
182
+ */
183
+ export const defaultEnabledPlugins = () => {
184
+ return supportedPlugins.filter((plugin) => plugin.defaultEnabled).map((plugin) => plugin.id);
185
+ };
186
+ /**
187
+ * Creates official Nizel plugins from native-app friendly plugin IDs.
188
+ */
189
+ export const createPlugins = (enabledPlugins = defaultEnabledPlugins(), options = {}) => {
190
+ return normalizeEnabledPlugins(enabledPlugins).flatMap((id) => factories[id](options));
191
+ };
192
+ /**
193
+ * Creates a browser/WebView processor with selected official plugins.
194
+ */
195
+ export function useNizelKit(options = {}) {
196
+ const { enabledPlugins, pluginOptions, plugins = [], ...nizelOptions } = options;
197
+ return useBrowserNizel({
198
+ ...nizelOptions,
199
+ plugins: [...createPlugins(enabledPlugins, pluginOptions), ...plugins],
200
+ });
201
+ }
202
+ /**
203
+ * Renders Markdown to HTML using selected official plugins.
204
+ */
205
+ export async function markdownToHtml(markdown, options) {
206
+ return useNizelKit(options).html(markdown);
207
+ }
208
+ /**
209
+ * Renders Markdown into a DOM element using selected official plugins.
210
+ */
211
+ export async function mountMarkdown(target, markdown, options) {
212
+ return useNizelKit(options).mount(target, markdown);
213
+ }
214
+ /**
215
+ * Removes unknown IDs and keeps only the last plugin in each exclusive group.
216
+ */
217
+ export const normalizeEnabledPlugins = (enabledPlugins) => {
218
+ const validIds = new Set(supportedPlugins.map((plugin) => plugin.id));
219
+ const exclusiveGroups = new Map();
220
+ const normalized = [];
221
+ for (const id of enabledPlugins) {
222
+ if (!validIds.has(id))
223
+ continue;
224
+ const meta = supportedPlugins.find((plugin) => plugin.id === id);
225
+ if (meta?.exclusiveGroup) {
226
+ exclusiveGroups.set(meta.exclusiveGroup, id);
227
+ continue;
228
+ }
229
+ if (!normalized.includes(id))
230
+ normalized.push(id);
231
+ }
232
+ for (const id of exclusiveGroups.values()) {
233
+ if (!normalized.includes(id))
234
+ normalized.push(id);
235
+ }
236
+ return normalized;
237
+ };
238
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}