svelte-intlayer 8.2.3 → 8.2.4

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.
@@ -12,7 +12,12 @@ export const preserveFrontmatter: boolean | undefined = undefined;
12
12
  export const tagfilter: boolean | undefined = undefined;
13
13
 
14
14
  let customRenderMarkdown:
15
- | ((markdown: string, overrides?: any) => string)
15
+ | ((
16
+ markdown: string,
17
+ options?: any,
18
+ components?: HTMLComponents<'permissive', {}>,
19
+ wrapper?: any
20
+ ) => string)
16
21
  | undefined;
17
22
  export { customRenderMarkdown as renderMarkdown };
18
23
 
@@ -25,50 +30,47 @@ $: baseOptions = {
25
30
  tagfilter,
26
31
  };
27
32
 
28
- const internalRenderMarkdown = (markdown: string, overrides?: any) => {
33
+ const internalRenderMarkdown = (
34
+ markdown: string,
35
+ options?: {
36
+ forceBlock?: boolean;
37
+ forceInline?: boolean;
38
+ preserveFrontmatter?: boolean;
39
+ tagfilter?: boolean;
40
+ },
41
+ componentsOverride?: HTMLComponents<'permissive', {}>,
42
+ wrapperOverride?: any
43
+ ) => {
29
44
  if (typeof customRenderMarkdown === 'function') {
30
- return customRenderMarkdown(markdown, overrides);
45
+ return customRenderMarkdown(
46
+ markdown,
47
+ options,
48
+ componentsOverride,
49
+ wrapperOverride
50
+ );
31
51
  }
32
52
 
33
- const isOptionsObject =
34
- overrides &&
35
- typeof overrides === 'object' &&
36
- ('components' in overrides ||
37
- 'wrapper' in overrides ||
38
- 'forceBlock' in overrides ||
39
- 'forceInline' in overrides ||
40
- 'preserveFrontmatter' in overrides ||
41
- 'tagfilter' in overrides);
42
-
43
- const {
44
- components: overrideComponents,
45
- wrapper: localWrapper,
46
- forceBlock: localForceBlock,
47
- forceInline: localForceInline,
48
- preserveFrontmatter: localPreserveFrontmatter,
49
- tagfilter: localTagfilter,
50
- ...componentsFromRest
51
- } = isOptionsObject ? overrides : { components: overrides };
52
-
53
- const actualComponents = overrideComponents || componentsFromRest;
54
-
55
53
  const mergedOptions = {
56
- forceBlock: localForceBlock ?? baseOptions.forceBlock,
57
- forceInline: localForceInline ?? baseOptions.forceInline,
54
+ forceBlock: options?.forceBlock ?? baseOptions.forceBlock,
55
+ forceInline: options?.forceInline ?? baseOptions.forceInline,
58
56
  preserveFrontmatter:
59
- localPreserveFrontmatter ?? baseOptions.preserveFrontmatter,
60
- tagfilter: localTagfilter ?? baseOptions.tagfilter,
61
- wrapper: localWrapper || baseOptions.wrapper,
57
+ options?.preserveFrontmatter ?? baseOptions.preserveFrontmatter,
58
+ tagfilter: options?.tagfilter ?? baseOptions.tagfilter,
59
+ wrapper: wrapperOverride || baseOptions.wrapper,
60
+ forceWrapper: !!(wrapperOverride || baseOptions.wrapper),
62
61
  components: {
63
62
  ...baseOptions.components,
64
- ...actualComponents,
63
+ ...(componentsOverride ?? {}),
65
64
  },
66
65
  };
67
66
 
68
67
  return compileMarkdown(markdown, mergedOptions) as string;
69
68
  };
70
69
 
71
- setMarkdownContext({ renderMarkdown: internalRenderMarkdown });
70
+ setMarkdownContext({
71
+ components,
72
+ renderMarkdown: internalRenderMarkdown,
73
+ });
72
74
  </script>
73
75
 
74
76
  <slot />
@@ -24,7 +24,7 @@ declare const MarkdownProvider: $$__sveltets_2_IsomorphicComponent<$$__sveltets_
24
24
  forceInline?: boolean | undefined;
25
25
  preserveFrontmatter?: boolean | undefined;
26
26
  tagfilter?: boolean | undefined;
27
- renderMarkdown: ((markdown: string, overrides?: any) => string) | undefined;
27
+ renderMarkdown: ((markdown: string, options?: any, components?: HTMLComponents<"permissive", {}>, wrapper?: any) => string) | undefined;
28
28
  }, {
29
29
  default: {};
30
30
  }>, {
@@ -13,14 +13,20 @@ export const tagfilter: boolean | undefined = undefined;
13
13
 
14
14
  const context = getMarkdownContext();
15
15
 
16
- $: htmlContent = context.renderMarkdown(value, {
17
- components,
18
- wrapper,
19
- forceBlock,
20
- forceInline,
21
- preserveFrontmatter,
22
- tagfilter,
23
- });
16
+ $: htmlContent = context.renderMarkdown(
17
+ value,
18
+ {
19
+ forceBlock,
20
+ forceInline,
21
+ preserveFrontmatter,
22
+ tagfilter,
23
+ },
24
+ {
25
+ ...(context.components ?? {}),
26
+ ...(components ?? {}),
27
+ },
28
+ wrapper
29
+ );
24
30
  </script>
25
31
 
26
32
  {@html htmlContent}
@@ -1,14 +1,18 @@
1
1
  import type { HTMLComponents } from '../html/types';
2
2
  export declare const MARKDOWN_CONTEXT_KEY: unique symbol;
3
- export type RenderMarkdownOptions = {
4
- components?: HTMLComponents<'permissive', {}>;
5
- wrapper?: any;
3
+ export type MarkdownProviderOptions = {
6
4
  forceBlock?: boolean;
5
+ forceInline?: boolean;
7
6
  preserveFrontmatter?: boolean;
8
7
  tagfilter?: boolean;
9
8
  };
9
+ export type RenderMarkdownOptions = MarkdownProviderOptions & {
10
+ components?: HTMLComponents<'permissive', {}>;
11
+ wrapper?: any;
12
+ };
10
13
  export interface MarkdownContext {
11
- renderMarkdown: (markdown: string, overrides?: HTMLComponents<'permissive', {}> | RenderMarkdownOptions) => string;
14
+ components?: HTMLComponents<'permissive', {}>;
15
+ renderMarkdown: (markdown: string, options?: MarkdownProviderOptions, components?: HTMLComponents<'permissive', {}>, wrapper?: any) => string;
12
16
  }
13
17
  export declare const getMarkdownContext: () => MarkdownContext;
14
18
  export declare const setMarkdownContext: (context: MarkdownContext) => void;
@@ -3,7 +3,11 @@ import { compileMarkdown } from './compiler';
3
3
  export const MARKDOWN_CONTEXT_KEY = Symbol('INTLAYER_MARKDOWN_CONTEXT');
4
4
  export const getMarkdownContext = () => {
5
5
  return (getContext(MARKDOWN_CONTEXT_KEY) || {
6
- renderMarkdown: (md, overrides) => compileMarkdown(md, overrides),
6
+ renderMarkdown: (md, _options, components, wrapper) => compileMarkdown(md, {
7
+ components,
8
+ wrapper,
9
+ forceWrapper: !!wrapper,
10
+ }),
7
11
  });
8
12
  };
9
13
  export const setMarkdownContext = (context) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-intlayer",
3
- "version": "8.2.3",
3
+ "version": "8.2.4",
4
4
  "description": "Easily internationalize i18n your Svelte applications with type-safe multilingual content management.",
5
5
  "keywords": [
6
6
  "intlayer",