Skip to content

Commit 8d83d9f

Browse files
committed
Build
1 parent 5d21629 commit 8d83d9f

27 files changed

+111
-66
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import { SvelteMap } from 'svelte/reactivity';
2+
export declare const getDefinitions: (root: import("mdast").Root) => SvelteMap<string, import("mdast").Definition>;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { isDefinition } from '@accuser/mdast-util-type-guards';
2+
import { collect } from '@typematter/svelte-unist';
3+
import { SvelteMap } from 'svelte/reactivity';
4+
export const getDefinitions = (root) => collect(root, isDefinition).reduce((acc, definition) => acc.set(definition.identifier, definition), new SvelteMap());
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import type { YamlValue } from './yaml-value.js';
2+
export declare const getFrontmatter: (root: import("mdast").Root) => YamlValue | undefined;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { isYaml } from '@accuser/mdast-util-type-guards';
2+
import { parse } from 'yaml';
3+
export const getFrontmatter = (root) => {
4+
if (isYaml(root.children[0])) {
5+
try {
6+
return parse(root.children[0].value);
7+
}
8+
catch {
9+
return undefined;
10+
}
11+
}
12+
};
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import { SvelteMap } from 'svelte/reactivity';
2+
export declare const getHeadingIds: (node: import("mdast").Root) => SvelteMap<import("mdast").Heading, string>;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { isHeading } from '@accuser/mdast-util-type-guards';
2+
import { collect } from '@typematter/svelte-unist';
3+
import GithubSlugger from 'github-slugger';
4+
import { toString } from 'mdast-util-to-string';
5+
import { SvelteMap } from 'svelte/reactivity';
6+
export const getHeadingIds = (node) => {
7+
const slugger = new GithubSlugger();
8+
return collect(node, isHeading).reduce((acc, heading) => acc.set(heading, slugger.slug(toString(heading.children))), new SvelteMap());
9+
};

dist/components/root/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ declare module '@typematter/svelte-unist' {
55
}
66
export { getRootContext } from './root-context.js';
77
export { default as Root } from './root.svelte';
8+
export * from './yaml-value.js';

dist/components/root/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export { getRootContext } from './root-context.js';
22
export { default as Root } from './root.svelte';
3+
export * from './yaml-value.js';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import type { YamlValue } from './yaml-value.js';
12
export interface RootContext {
23
getDefinition: (identifier: string) => import('mdast').Definition | undefined;
4+
getFrontmatter: () => YamlValue | undefined;
35
getHeadingId: (heading: import('mdast').Heading) => string | undefined;
46
}
57
export declare const getRootContext: () => RootContext, setRootContext: (context: RootContext) => RootContext;

dist/components/root/root.svelte

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,21 @@
11
<script lang="ts">
2-
import { isDefinition, isHeading } from '@accuser/mdast-util-type-guards';
3-
import { collect, Node } from '@typematter/svelte-unist';
4-
import GithubSlugger from 'github-slugger';
5-
import { toString } from 'mdast-util-to-string';
6-
import { SvelteMap } from 'svelte/reactivity';
2+
import { Node } from '@typematter/svelte-unist';
3+
import { getDefinitions } from './get-definitions.js';
4+
import { getFrontmatter } from './get-frontmatter.js';
5+
import { getHeadingIds } from './get-heading-ids.js';
76
import { setRootContext } from './root-context.js';
87
98
let { node }: { node: import('mdast').Root } = $props();
109
1110
let { children } = $derived(node);
1211
13-
let definitions = $derived(
14-
collect(node, isDefinition).reduce(
15-
(acc, definition) => acc.set(definition.identifier, definition),
16-
new SvelteMap<string, import('mdast').Definition>()
17-
)
18-
);
19-
20-
let headings = $derived.by(() => {
21-
const slugger = new GithubSlugger();
22-
23-
return collect(node, isHeading).reduce(
24-
(acc, heading) => acc.set(heading, slugger.slug(toString(heading.children))),
25-
new SvelteMap<import('mdast').Heading, string>()
26-
);
27-
});
12+
let definitions = $derived(getDefinitions(node));
13+
let frontmatter = $derived(getFrontmatter(node));
14+
let headings = $derived(getHeadingIds(node));
2815
2916
setRootContext({
3017
getDefinition: (identifier) => definitions.get(identifier),
18+
getFrontmatter: () => frontmatter,
3119
getHeadingId: (heading) => headings.get(heading)
3220
});
3321
</script>

0 commit comments

Comments
 (0)