feat: frontmatter typing
This commit is contained in:
6
src/lib/types.d.ts
vendored
Normal file
6
src/lib/types.d.ts
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import type { SvelteComponent } from "svelte";
|
||||
|
||||
|
||||
interface MDsveXComponent extends SvelteComponent {
|
||||
metadata: Record<string, unknown>;
|
||||
}
|
||||
@@ -1,11 +1,12 @@
|
||||
<script lang="ts">
|
||||
import type { MDsveXComponent } from '$lib/types';
|
||||
import type { SvelteComponent } from 'svelte';
|
||||
|
||||
const blog_entries: [string, SvelteComponent][] = Object.entries(
|
||||
import.meta.glob('/src/routes/blogs/**/+page.svx', { eager: true })
|
||||
).map(([key, value]) => [
|
||||
key.split('/src/routes').pop()?.split('/+page.svx').slice(0, -1).pop() as string,
|
||||
value as SvelteComponent
|
||||
value as MDsveXComponent
|
||||
]);
|
||||
console.log(blog_entries);
|
||||
</script>
|
||||
@@ -13,5 +14,5 @@
|
||||
<h1>Welcome to SvelteKit</h1>
|
||||
<p>Visit <a href="https://svelte.dev/docs/kit">svelte.dev/docs/kit</a> to read the documentation</p>
|
||||
{#each blog_entries as [href, page]}
|
||||
<a {href}>{href}</a><br />
|
||||
<a {href}>{page.metadata?.title}</a><br />
|
||||
{/each}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
layout: blog
|
||||
title: "Blog Entry #1"
|
||||
---
|
||||
|
||||
# Title
|
||||
@@ -9,3 +9,10 @@ layout: blog
|
||||
1. asd
|
||||
2. asd
|
||||
3. asd
|
||||
|
||||
```js
|
||||
{..., lib}:
|
||||
{
|
||||
"hello" = "world";
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user