leblog is made to quickly add a blog (or blogs) to new and existing SvelteKit sites.
Its raison d'être is that I (Nick) wanted to keep changelogs for my SvelteKit projects without the fanfare of signing up for something or adding boilerplate.
It is not:
npm install leblog
In src/posts
write markdown files with yyyy-mm-dd-{slug}.md
-formatted filenames.
--- title: my epic post --- the title says it all
In +page.server.js
:
export { load } from 'leblog'
In its sibling +page.svelte
:
<script> import { Entry } from 'leblog' /** @type {import('./$types').PageData} */ export let data </script> <ul> {#each data.posts as entry} <li> <h2>{entry.title}</h2> <Entry {entry} /> </li> {/each} </ul>
Et voila! Full documentation is on github, and you can see it in action on the demo page. Single-file changelogs also work, like this one (source):
GET
request handler from a page's +server.js
:import { loadFeed } from 'leblog'
export const GET = loadFeed('posts')
html
field with — you guessed it! — the entry's HTML.@sveltejs/kit
and svelte
dependencies are now set correctly.Entry
is now exported from leblog
instead of leblog/entry
(conditional exports ftw).loadCollection
, loadEntry
and load
now run on the server in +page.server.js
endpoints, removing the need for a handle hook.Entry
component is now exported from leblog/entry
..md
) are now considered entries.leblog
hook, which is replaced by the aforementioned load functions.load
function to infer a collection/entry, assuming there's only one defined collection.slug
parameter to loadEntry
, so you can override the default params.slug
.handle
alias of leblog
, so in hooks.server.js
you can simply: export { handle } from 'leblog/hooks'
.The first release!
Made with ❤️ by nbgoodall