0.1.14 • Published 2 years ago
markedpage v0.1.14
MarkedPage
A Markdown provider for my sveltekit static blog.
Features
- Markdown source provide
- Customize Classification
- Support
<!-- more -->
tag, it will add excerpt into frontmatter - Use marked to parse markdown context.
Usage
- Create ./src/site.config.js to configure setting.
const config = {
title: 'TestWebSite',
classifier: [
{ id: 'post', params: { path: '/_posts/' }, type: 'directory' },
{ id: 'tag', params: { keys: ['tag', 'tags'] }, type: 'frontmatter' }
],
marked: {
options: {},
extensions: {}
}
};
export default config;
- Create ./docs/_posts/2022-04-28-post1.md and put markdown files in it.
/
|_docs
|_posts
|_2022-04-28-post1.md
- Use getPage or classifiedSet to get page context or page list in endpoints.
// example.ts
import type { DirectoryClassifierResult } from 'markedpage';
import { getPage, classifiedSet } from 'markedpage';
import type { RequestHandler } from '@sveltejs/kit';
export const get: RequestHandler = async () => {
// Get list.
const pageSet: DirectoryClassifierResult = await classifiedSet('post');
const pages = pageSet.pages;
// Get page.
const page = await getPage('post1');
const context = await page.render();
return {
body: {
pages: pages,
metadata: page.frontMatter,
body: context
}
};
};
Example
<!-- 2022-04-28-firstpage.md -->
title: FirstPost
tags:
- test
---
This is summary field.
<!-- more -->
This is context block.
It will be passed to
{
frontMatter: {
title: 'FirstPost',
tags: [ 'test' ],
excerpt: 'This is summary field.',
created: 2022-04-28T00:00:00.000Z
},
sourcePath: 'docs/2022-04-28-firstpage.md',
indexPath: 'docs/2022-04-28-firstpage',
render: [Function: render],
raw: [Function: raw],
slugKey: 'firstpage'
}
Markdown Vite HMR Support
- Add
markedpageVitePlugin()
to config.plugins
// vite.config.js
import { sveltekit } from '@sveltejs/kit/vite';
import { markedpageVitePlugin } from 'markedpage';
import siteConfig from './src/site.config.js';
/** @type {import('vite').UserConfig} */
const config = {
plugins: [sveltekit(), markedpageVitePlugin(siteConfig)]
};
export default config;
- Listen to onContentUpdate and update the endpoint with invalidate.
// src/routes/
<script lang="ts">
import { invalidate } from '$app/navigation';
import { page } from '$app/stores';
import { onContentUpdate } from 'markedpage/helper';
onContentUpdate((payload) => {
let slug = $page.params.slug;
// update endpoint data.
invalidate(`/api/posts.json`);
invalidate(`/api/posts/${slug}.json`);
});
</script>
Example
https://github.com/saweima12/markedpage-example
ChangeLog
- 2022-08-22 v0.1.14 - breakingMove
onContentUpdate
tomarkedpage/helper
[issues] - 2022-08-18 v0.1.13 - Optimize markdown file reload.
- 2022-07-22 v0.1.10 - Fix: marked config is not loaded properly
- 2022-07-22 v0.1.8 - Add support for site.config.js auto-reload via configuration
- 2022-07-18 v0.1.7 - Replace chalk.js with kleur
- 2022-07-16 v0.1.5 - Add markdown file Vite HMR Support.
- 2022-05-31 Add
_draft
field support in FrontMatter.(It will not be added to list in production) - 2022-05-27 Add extendPageData support
0.1.14
2 years ago
0.1.13-next.1
2 years ago
0.1.13-next.2
2 years ago
0.1.13-next.3
2 years ago
0.1.13-next.4
2 years ago
0.1.13-next.5
2 years ago
0.1.13-next.6
2 years ago
0.1.13-next.7
2 years ago
0.1.10
2 years ago
0.1.11
2 years ago
0.1.12
2 years ago
0.1.13
2 years ago
0.0.197
2 years ago
0.0.198
2 years ago
0.1.0
2 years ago
0.1.2
2 years ago
0.1.1
2 years ago
0.1.8
2 years ago
0.1.7
2 years ago
0.1.9
2 years ago
0.1.4
2 years ago
0.1.3
2 years ago
0.1.6
2 years ago
0.1.5
2 years ago
0.0.15
2 years ago
0.0.16
2 years ago
0.0.17
2 years ago
0.0.18
2 years ago
0.0.19
2 years ago
0.0.1-9.4
2 years ago
0.0.1-9.3
2 years ago
0.0.1-9.2
2 years ago
0.0.13
2 years ago
0.0.1-9.1
2 years ago
0.0.14
2 years ago
0.1.11-next.3
2 years ago
0.1.11-next.4
2 years ago
0.1.11-next.1
2 years ago
0.0.1-9.6
2 years ago
0.1.11-next.2
2 years ago
0.0.1-9.5
2 years ago
0.1.11-next.5
2 years ago
0.1.11-next.6
2 years ago
0.0.12
2 years ago
0.0.11
2 years ago
0.0.10
2 years ago
0.0.9
2 years ago
0.0.8
2 years ago
0.0.7
2 years ago
0.0.6
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago