@fuzdev/mdz 0.3.0 → 0.5.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/LICENSE +10 -17
- package/README.md +6 -3
- package/dist/Mdz.svelte +8 -7
- package/dist/Mdz.svelte.d.ts.map +1 -1
- package/dist/MdzNodeView.svelte +74 -30
- package/dist/MdzNodeView.svelte.d.ts +1 -2
- package/dist/MdzNodeView.svelte.d.ts.map +1 -1
- package/dist/MdzPrecompiled.svelte +3 -3
- package/dist/MdzPrecompiled.svelte.d.ts.map +1 -1
- package/dist/MdzRoot.svelte +3 -3
- package/dist/MdzRoot.svelte.d.ts.map +1 -1
- package/dist/MdzStream.svelte +3 -3
- package/dist/MdzStream.svelte.d.ts.map +1 -1
- package/dist/MdzStreamNodeView.svelte +79 -31
- package/dist/MdzStreamNodeView.svelte.d.ts +1 -2
- package/dist/MdzStreamNodeView.svelte.d.ts.map +1 -1
- package/dist/context_helpers.js +1 -1
- package/dist/mdz.d.ts +12 -1
- package/dist/mdz.d.ts.map +1 -1
- package/dist/mdz.js +1 -1
- package/dist/mdz_contexts.d.ts +33 -6
- package/dist/mdz_contexts.d.ts.map +1 -1
- package/dist/mdz_debug_work.d.ts.map +1 -1
- package/dist/mdz_helpers.d.ts +31 -3
- package/dist/mdz_helpers.d.ts.map +1 -1
- package/dist/mdz_helpers.js +104 -12
- package/dist/mdz_lexer.d.ts +3 -1
- package/dist/mdz_lexer.d.ts.map +1 -1
- package/dist/mdz_lexer.js +115 -31
- package/dist/mdz_opcodes.d.ts +3 -1
- package/dist/mdz_opcodes.d.ts.map +1 -1
- package/dist/mdz_opcodes_to_nodes.d.ts.map +1 -1
- package/dist/mdz_opcodes_to_nodes.js +25 -17
- package/dist/mdz_stream_parser.d.ts.map +1 -1
- package/dist/mdz_stream_parser.js +8 -8
- package/dist/mdz_stream_parser_block.js +5 -5
- package/dist/mdz_stream_parser_inline.js +4 -4
- package/dist/mdz_stream_parser_link.d.ts.map +1 -1
- package/dist/mdz_stream_parser_link.js +83 -11
- package/dist/mdz_stream_parser_list.d.ts.map +1 -1
- package/dist/mdz_stream_parser_list.js +13 -7
- package/dist/mdz_stream_parser_state.d.ts.map +1 -1
- package/dist/mdz_stream_parser_state.js +7 -7
- package/dist/mdz_stream_parser_table.d.ts.map +1 -1
- package/dist/mdz_stream_parser_table.js +16 -9
- package/dist/mdz_stream_parser_text.js +2 -2
- package/dist/mdz_stream_parser_url.js +7 -7
- package/dist/mdz_stream_state.svelte.d.ts +3 -1
- package/dist/mdz_stream_state.svelte.d.ts.map +1 -1
- package/dist/mdz_stream_state.svelte.js +4 -0
- package/dist/mdz_to_svelte.d.ts +17 -4
- package/dist/mdz_to_svelte.d.ts.map +1 -1
- package/dist/mdz_to_svelte.js +22 -9
- package/dist/mdz_token_parser.d.ts.map +1 -1
- package/dist/mdz_token_parser.js +25 -11
- package/dist/svelte_preprocess_mdz.d.ts +6 -3
- package/dist/svelte_preprocess_mdz.d.ts.map +1 -1
- package/dist/svelte_preprocess_mdz.js +11 -11
- package/package.json +25 -40
- package/src/lib/context_helpers.ts +2 -2
- package/src/lib/mdz.ts +15 -3
- package/src/lib/mdz_contexts.ts +41 -11
- package/src/lib/mdz_debug_work.ts +1 -1
- package/src/lib/mdz_helpers.ts +164 -43
- package/src/lib/mdz_lexer.ts +173 -80
- package/src/lib/mdz_opcodes.ts +3 -1
- package/src/lib/mdz_opcodes_to_nodes.ts +40 -30
- package/src/lib/mdz_stream_parser.ts +17 -17
- package/src/lib/mdz_stream_parser_block.ts +14 -14
- package/src/lib/mdz_stream_parser_inline.ts +18 -18
- package/src/lib/mdz_stream_parser_link.ts +88 -18
- package/src/lib/mdz_stream_parser_list.ts +31 -25
- package/src/lib/mdz_stream_parser_state.ts +27 -27
- package/src/lib/mdz_stream_parser_table.ts +38 -31
- package/src/lib/mdz_stream_parser_text.ts +3 -3
- package/src/lib/mdz_stream_parser_url.ts +11 -11
- package/src/lib/mdz_stream_state.svelte.ts +11 -8
- package/src/lib/mdz_to_svelte.ts +71 -27
- package/src/lib/mdz_token_parser.ts +52 -38
- package/src/lib/svelte_preprocess_mdz.ts +66 -60
- package/src/lib/tsdoc_mdz.ts +1 -1
package/dist/mdz_contexts.d.ts
CHANGED
|
@@ -1,18 +1,45 @@
|
|
|
1
1
|
import type { Component } from 'svelte';
|
|
2
|
+
/**
|
|
3
|
+
* The attributes a registered component receives as props: a list of allowed
|
|
4
|
+
* names, or `'all'` to pass every attribute through. Attributes outside the
|
|
5
|
+
* list are dropped (DEV-warned).
|
|
6
|
+
*/
|
|
7
|
+
export type MdzComponentProps = ReadonlyArray<string> | 'all';
|
|
8
|
+
/**
|
|
9
|
+
* A component registry entry that allows attributes through as props.
|
|
10
|
+
*/
|
|
11
|
+
export interface MdzComponentConfig {
|
|
12
|
+
component: Component<any, any>;
|
|
13
|
+
/** Attribute names passed as props, or `'all'`; omitted passes none. */
|
|
14
|
+
props?: MdzComponentProps;
|
|
15
|
+
}
|
|
2
16
|
/**
|
|
3
17
|
* Component registry for custom Svelte components that can be used in mdz content.
|
|
4
18
|
*
|
|
5
|
-
*
|
|
19
|
+
* A bare component entry renders the tag with no props — its attributes are
|
|
20
|
+
* dropped. A `MdzComponentConfig` entry names the attributes that pass through
|
|
21
|
+
* as props, so a component only receives what it's prepared for:
|
|
22
|
+
*
|
|
23
|
+
* ```ts
|
|
24
|
+
* new Map([
|
|
25
|
+
* ['Alert', {component: Alert, props: ['status']}], // `<Alert status="error">`
|
|
26
|
+
* ['Note', Note], // `<Note>`, attributes dropped
|
|
27
|
+
* ]);
|
|
28
|
+
* ```
|
|
6
29
|
*
|
|
7
|
-
*
|
|
30
|
+
* Attribute values are author-controlled strings (or `true` for bare names),
|
|
31
|
+
* so with untrusted content, allow only props the component treats safely.
|
|
32
|
+
* `props: 'all'` passes everything — a component that spreads rest props onto
|
|
33
|
+
* an element then forwards `style`, `href`, and the like.
|
|
8
34
|
*/
|
|
9
|
-
export type MdzComponents = Map<string, Component<any, any
|
|
35
|
+
export type MdzComponents = Map<string, Component<any, any> | MdzComponentConfig>;
|
|
10
36
|
/**
|
|
11
37
|
* Element registry for HTML elements that can be used in mdz content.
|
|
12
38
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
39
|
+
* Register an element by mapping its name to `true` (e.g. `['aside', true]`),
|
|
40
|
+
* which allows `<aside>...</aside>` in mdz content. Only `true` enables an
|
|
41
|
+
* element — the renderers treat any other value (including `false`) as
|
|
42
|
+
* unregistered, so the tag falls back to literal text.
|
|
16
43
|
*/
|
|
17
44
|
export type MdzElements = Map<string, boolean>;
|
|
18
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdz_contexts.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_contexts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mdz_contexts.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_contexts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,wEAAwE;IACxE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,sBAAsB;2CAAwB,aAAa,GAAG,SAAS;4BAAzB,aAAa,GAAG,SAAS;uBAAzB,aAAa,GAAG,SAAS,WAAzB,aAAa,GAAG,SAAS;CAAG,CAAC;AAExF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;2CAAwB,WAAW,GAAG,SAAS;4BAAvB,WAAW,GAAG,SAAS;uBAAvB,WAAW,GAAG,SAAS,WAAvB,WAAW,GAAG,SAAS;CAAG,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;2CAAwB,MAAM,GAAG,SAAS;4BAAlB,MAAM,GAAG,SAAS;uBAAlB,MAAM,GAAG,SAAS,WAAlB,MAAM,GAAG,SAAS;CAAG,CAAC;AAE3E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,gBAAgB;2CAAwB,gBAAgB,GAAG,SAAS;4BAA5B,gBAAgB,GAAG,SAAS;uBAA5B,gBAAgB,GAAG,SAAS,WAA5B,gBAAgB,GAAG,SAAS;CAAG,CAAC;AAErF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;2CAAwB,qBAAqB,GAAG,SAAS;4BAAjC,qBAAqB,GAAG,SAAS;uBAAjC,qBAAqB,GAAG,SAAS,WAAjC,qBAAqB,GAAG,SAAS;CAAG,CAAC;AAE/F,UAAU,gBAAgB,CAAC,CAAC;IAC3B,SAAS,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/C,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,GAAI,CAAC,EAC9C,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAC5B,UAAU,MAAM,CAAC,GAAG,SAAS,KAC3B,IAGF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdz_debug_work.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_debug_work.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,cAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"mdz_debug_work.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_debug_work.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,cAAc,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAiC,CAAC;AAEhG;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,iBAAc,KAAG,IAGrD,CAAC"}
|
package/dist/mdz_helpers.d.ts
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
9
|
+
import type { Component } from 'svelte';
|
|
10
|
+
import type { MdzAttribute, MdzNode, MdzNodeComponent, MdzNodeElement, MdzTableAlign } from './mdz.js';
|
|
11
|
+
import type { MdzComponentConfig, MdzComponentProps } from './mdz_contexts.js';
|
|
10
12
|
/** @nodocs */
|
|
11
13
|
export declare const BACKTICK = 96;
|
|
12
14
|
/** @nodocs */
|
|
@@ -66,6 +68,8 @@ export declare const AMPERSAND = 38;
|
|
|
66
68
|
/** @nodocs */
|
|
67
69
|
export declare const APOSTROPHE = 39;
|
|
68
70
|
/** @nodocs */
|
|
71
|
+
export declare const DOUBLE_QUOTE = 34;
|
|
72
|
+
/** @nodocs */
|
|
69
73
|
export declare const PLUS = 43;
|
|
70
74
|
/** @nodocs */
|
|
71
75
|
export declare const EQUALS = 61;
|
|
@@ -349,6 +353,18 @@ export declare const mdz_is_safe_reference: (reference: string) => boolean;
|
|
|
349
353
|
* Void elements render self-closing; any parsed children are dropped.
|
|
350
354
|
*/
|
|
351
355
|
export declare const mdz_is_void_element: (name: string) => boolean;
|
|
356
|
+
/**
|
|
357
|
+
* The closed, global set of attribute names allowed on rendered HTML elements.
|
|
358
|
+
* Every name is inert on any element (no URL, no script, no focus or DOM
|
|
359
|
+
* clobbering), so element safety is independent of which element names a
|
|
360
|
+
* consumer registers. Anything outside this set is dropped by
|
|
361
|
+
* `mdz_filter_element_attributes`.
|
|
362
|
+
*/
|
|
363
|
+
export declare const ALLOWED_ELEMENT_ATTRIBUTES: ReadonlySet<string>;
|
|
364
|
+
export declare const mdz_filter_element_attributes: (element_name: string, attributes: Array<MdzAttribute>, allowlist: ReadonlySet<string>) => Record<string, string | true>;
|
|
365
|
+
export declare const mdz_filter_component_attributes: (component_name: string, attributes: Array<MdzAttribute>, props: MdzComponentProps | undefined) => Record<string, string | true>;
|
|
366
|
+
export declare const mdz_component_config: (entry: Component<any, any> | MdzComponentConfig) => MdzComponentConfig;
|
|
367
|
+
export declare const mdz_format_unregistered_attributes: (attributes: Array<MdzAttribute>) => string;
|
|
352
368
|
/**
|
|
353
369
|
* Resolves a relative path (`./` or `../`) against a base path.
|
|
354
370
|
* The base is treated as a directory regardless of trailing slash
|
|
@@ -373,10 +389,15 @@ export type MdzLinkRender =
|
|
|
373
389
|
{
|
|
374
390
|
kind: 'unsafe';
|
|
375
391
|
}
|
|
376
|
-
/**
|
|
392
|
+
/**
|
|
393
|
+
* Absolute path — render `resolve(path)` (needs `$app/paths`). `path` is the
|
|
394
|
+
* reference minus its leading slash, SvelteKit's pathname form, which only
|
|
395
|
+
* prepends the base path (or `#` under hash routing; a relative `./`/`../`
|
|
396
|
+
* prefix under `paths.relative` SSR) and keeps the rest verbatim.
|
|
397
|
+
*/
|
|
377
398
|
| {
|
|
378
399
|
kind: 'resolve';
|
|
379
|
-
|
|
400
|
+
path: string;
|
|
380
401
|
}
|
|
381
402
|
/** Internal fragment/query/relative/bare ref — raw `href`, no `resolve()`. */
|
|
382
403
|
| {
|
|
@@ -391,6 +412,13 @@ export type MdzLinkRender =
|
|
|
391
412
|
/**
|
|
392
413
|
* Classify a `Link` reference into how it should render. Pure — no rendering,
|
|
393
414
|
* no context; `base` is the resolved base path (or `undefined`).
|
|
415
|
+
*
|
|
416
|
+
* Absolute references are authored URLs, not SvelteKit route ids: they classify
|
|
417
|
+
* as `resolve` with the base-relative pathname, never a leading-slash route id,
|
|
418
|
+
* whose resolution would drop `(group)` and empty segments, decode `[x+nn]`
|
|
419
|
+
* escapes, and throw on `[param]` segments. A leading `/` followed by any `/`
|
|
420
|
+
* or `\` run collapses to one `/`, so `//host` and `/\host` stay under the base
|
|
421
|
+
* rather than becoming protocol-relative.
|
|
394
422
|
* @nodocs
|
|
395
423
|
*/
|
|
396
424
|
export declare const mdz_classify_link: (reference: string, link_type: "internal" | "external" | undefined, base: string | undefined) => MdzLinkRender;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdz_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"mdz_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/mdz_helpers.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
|
+
import { DEV } from 'esm-env';
|
|
9
10
|
// Character codes for performance
|
|
10
11
|
/** @nodocs */
|
|
11
12
|
export const BACKTICK = 96; // `
|
|
@@ -67,6 +68,8 @@ export const AMPERSAND = 38; // &
|
|
|
67
68
|
/** @nodocs */
|
|
68
69
|
export const APOSTROPHE = 39; // '
|
|
69
70
|
/** @nodocs */
|
|
71
|
+
export const DOUBLE_QUOTE = 34; // "
|
|
72
|
+
/** @nodocs */
|
|
70
73
|
export const PLUS = 43; // +
|
|
71
74
|
/** @nodocs */
|
|
72
75
|
export const EQUALS = 61; // =
|
|
@@ -703,7 +706,7 @@ const VOID_ELEMENTS = new Set([
|
|
|
703
706
|
'meta',
|
|
704
707
|
'source',
|
|
705
708
|
'track',
|
|
706
|
-
'wbr'
|
|
709
|
+
'wbr'
|
|
707
710
|
]);
|
|
708
711
|
/**
|
|
709
712
|
* Check if an element name is an HTML void element (`br`, `img`, `hr`, ...).
|
|
@@ -713,6 +716,77 @@ const VOID_ELEMENTS = new Set([
|
|
|
713
716
|
// pair with children that renderers silently drop; consider treating void tags as
|
|
714
717
|
// implicitly self-closing at parse time, or rejecting the open/close form
|
|
715
718
|
export const mdz_is_void_element = (name) => VOID_ELEMENTS.has(name);
|
|
719
|
+
/**
|
|
720
|
+
* The closed, global set of attribute names allowed on rendered HTML elements.
|
|
721
|
+
* Every name is inert on any element (no URL, no script, no focus or DOM
|
|
722
|
+
* clobbering), so element safety is independent of which element names a
|
|
723
|
+
* consumer registers. Anything outside this set is dropped by
|
|
724
|
+
* `mdz_filter_element_attributes`.
|
|
725
|
+
*/
|
|
726
|
+
export const ALLOWED_ELEMENT_ATTRIBUTES = new Set([
|
|
727
|
+
'class',
|
|
728
|
+
'title',
|
|
729
|
+
'lang',
|
|
730
|
+
'dir',
|
|
731
|
+
'role',
|
|
732
|
+
'aria-label',
|
|
733
|
+
'aria-hidden',
|
|
734
|
+
'aria-describedby',
|
|
735
|
+
'aria-labelledby'
|
|
736
|
+
]);
|
|
737
|
+
// filters an element's parsed attributes against the allowlist, returning a
|
|
738
|
+
// name→value object ready to spread onto `<svelte:element {...}>`. Disallowed
|
|
739
|
+
// names are dropped (DEV-warned). Used identically by MdzNodeView,
|
|
740
|
+
// MdzStreamNodeView, and mdz_to_svelte, so precompiled and runtime output match.
|
|
741
|
+
export const mdz_filter_element_attributes = (element_name, attributes, allowlist) => {
|
|
742
|
+
const filtered = {};
|
|
743
|
+
for (const attr of attributes) {
|
|
744
|
+
if (allowlist.has(attr.name)) {
|
|
745
|
+
filtered[attr.name] = attr.value;
|
|
746
|
+
}
|
|
747
|
+
else if (DEV) {
|
|
748
|
+
console.warn(`mdz: dropped disallowed attribute \`${attr.name}\` on <${element_name}> — not in the element attribute allowlist`);
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
return filtered;
|
|
752
|
+
};
|
|
753
|
+
// filters a component's parsed attributes against its registered `props`,
|
|
754
|
+
// returning a name→value props object spread onto `<Component {...props}>`.
|
|
755
|
+
// Omitted `props` passes nothing, `'all'` passes everything; dropped names are
|
|
756
|
+
// DEV-warned. Used identically by MdzNodeView, MdzStreamNodeView, and
|
|
757
|
+
// mdz_to_svelte, so precompiled and runtime output match.
|
|
758
|
+
export const mdz_filter_component_attributes = (component_name, attributes, props) => {
|
|
759
|
+
const filtered = {};
|
|
760
|
+
for (const attr of attributes) {
|
|
761
|
+
if (props === 'all' || props?.includes(attr.name)) {
|
|
762
|
+
filtered[attr.name] = attr.value;
|
|
763
|
+
}
|
|
764
|
+
else if (DEV) {
|
|
765
|
+
console.warn(`mdz: dropped attribute \`${attr.name}\` on <${component_name}> — not in its registered props`);
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
return filtered;
|
|
769
|
+
};
|
|
770
|
+
// normalizes a component registry entry to its config form
|
|
771
|
+
export const mdz_component_config = (entry) => (typeof entry === 'function' ? { component: entry } : entry);
|
|
772
|
+
// reconstructs authored attribute text (` name="value"` / ` name`) for the
|
|
773
|
+
// unregistered-tag literal placeholder. The quote char is chosen so a value
|
|
774
|
+
// containing one quote type stays balanced — a parsed value holds at most one
|
|
775
|
+
// (a `"`-delimited value can't contain `"`, a `'`-delimited one can't contain
|
|
776
|
+
// `'`). The caller interpolates the result as Svelte text (auto-escaped).
|
|
777
|
+
export const mdz_format_unregistered_attributes = (attributes) => {
|
|
778
|
+
let text = '';
|
|
779
|
+
for (const attr of attributes) {
|
|
780
|
+
if (attr.value === true) {
|
|
781
|
+
text += ` ${attr.name}`;
|
|
782
|
+
}
|
|
783
|
+
else {
|
|
784
|
+
const quote = attr.value.includes('"') ? "'" : '"';
|
|
785
|
+
text += ` ${attr.name}=${quote}${attr.value}${quote}`;
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
return text;
|
|
789
|
+
};
|
|
716
790
|
/**
|
|
717
791
|
* Resolves a relative path (`./` or `../`) against a base path.
|
|
718
792
|
* The base is treated as a directory regardless of trailing slash
|
|
@@ -747,9 +821,29 @@ export const mdz_resolve_relative_path = (reference, base) => {
|
|
|
747
821
|
segments.push('');
|
|
748
822
|
return segments.join('/');
|
|
749
823
|
};
|
|
824
|
+
// `/a` → `a`, `//a` → `a` — the pathname form `resolve()` takes; `\` counts as a
|
|
825
|
+
// slash too, and tab/LF/CR are dropped, since browsers read `/\host` and
|
|
826
|
+
// `/<tab>/host` as protocol-relative
|
|
827
|
+
const strip_leading_slashes = (path) => {
|
|
828
|
+
let i = 0;
|
|
829
|
+
for (;;) {
|
|
830
|
+
const c = path.charCodeAt(i);
|
|
831
|
+
if (c !== SLASH && c !== BACKSLASH && c !== TAB && c !== NEWLINE && c !== CARRIAGE_RETURN)
|
|
832
|
+
break;
|
|
833
|
+
i++;
|
|
834
|
+
}
|
|
835
|
+
return path.slice(i);
|
|
836
|
+
};
|
|
750
837
|
/**
|
|
751
838
|
* Classify a `Link` reference into how it should render. Pure — no rendering,
|
|
752
839
|
* no context; `base` is the resolved base path (or `undefined`).
|
|
840
|
+
*
|
|
841
|
+
* Absolute references are authored URLs, not SvelteKit route ids: they classify
|
|
842
|
+
* as `resolve` with the base-relative pathname, never a leading-slash route id,
|
|
843
|
+
* whose resolution would drop `(group)` and empty segments, decode `[x+nn]`
|
|
844
|
+
* escapes, and throw on `[param]` segments. A leading `/` followed by any `/`
|
|
845
|
+
* or `\` run collapses to one `/`, so `//host` and `/\host` stay under the base
|
|
846
|
+
* rather than becoming protocol-relative.
|
|
753
847
|
* @nodocs
|
|
754
848
|
*/
|
|
755
849
|
export const mdz_classify_link = (reference, link_type, base) => {
|
|
@@ -757,17 +851,15 @@ export const mdz_classify_link = (reference, link_type, base) => {
|
|
|
757
851
|
return { kind: 'unsafe' };
|
|
758
852
|
if (link_type === 'internal') {
|
|
759
853
|
if (reference.startsWith('.') && base) {
|
|
760
|
-
return {
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
if (reference.startsWith('#') ||
|
|
765
|
-
reference.startsWith('?') ||
|
|
766
|
-
reference.startsWith('.') ||
|
|
767
|
-
!reference.startsWith('/')) {
|
|
768
|
-
return { kind: 'internal', href: reference };
|
|
854
|
+
return {
|
|
855
|
+
kind: 'resolve',
|
|
856
|
+
path: strip_leading_slashes(mdz_resolve_relative_path(reference, base))
|
|
857
|
+
};
|
|
769
858
|
}
|
|
770
|
-
|
|
859
|
+
// fragment/query/relative/bare — not under the base, so a raw `href`
|
|
860
|
+
if (!reference.startsWith('/'))
|
|
861
|
+
return { kind: 'internal', href: reference };
|
|
862
|
+
return { kind: 'resolve', path: strip_leading_slashes(reference) };
|
|
771
863
|
}
|
|
772
864
|
return { kind: 'external', href: reference };
|
|
773
865
|
};
|
|
@@ -813,7 +905,7 @@ export const mdz_merge_adjacent_text = (nodes) => {
|
|
|
813
905
|
type: 'Text',
|
|
814
906
|
content: pending.content + node.content,
|
|
815
907
|
start: pending.start,
|
|
816
|
-
end: node.end
|
|
908
|
+
end: node.end
|
|
817
909
|
};
|
|
818
910
|
}
|
|
819
911
|
else {
|
package/dist/mdz_lexer.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
|
-
import type { MdzTableAlign } from './mdz.js';
|
|
9
|
+
import type { MdzAttribute, MdzTableAlign } from './mdz.js';
|
|
10
10
|
export interface MdzTokenBase {
|
|
11
11
|
start: number;
|
|
12
12
|
end: number;
|
|
@@ -70,11 +70,13 @@ export interface MdzTokenTagOpen extends MdzTokenBase {
|
|
|
70
70
|
type: 'tag_open';
|
|
71
71
|
name: string;
|
|
72
72
|
is_component: boolean;
|
|
73
|
+
attributes: Array<MdzAttribute>;
|
|
73
74
|
}
|
|
74
75
|
export interface MdzTokenTagSelfClose extends MdzTokenBase {
|
|
75
76
|
type: 'tag_self_close';
|
|
76
77
|
name: string;
|
|
77
78
|
is_component: boolean;
|
|
79
|
+
attributes: Array<MdzAttribute>;
|
|
78
80
|
}
|
|
79
81
|
export interface MdzTokenTagClose extends MdzTokenBase {
|
|
80
82
|
type: 'tag_close';
|
package/dist/mdz_lexer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdz_lexer.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"mdz_lexer.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/mdz_lexer.ts"],"names":[],"mappings":"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"}
|