mdstfu
is a TypeScript package for fetching, caching, and rendering Markdown from a specified URL. It uses the marked
library to parse and render Markdown with support for customizable rendering options.
- Fetch Markdown content from a given URL
- Cache fetched content to minimize network requests
- Render Markdown content using
marked
- Support for custom renderers and options for Markdown parsing
Install via npm:
npm install mdstfu
Import the mdstfu
class and create an instance by providing a URL, an optional custom renderer, and optional Markdown options:
import { mdstfu } from 'mdstfu';
import { type MarkedOptions } from 'marked';
const url = 'https://example.com/markdown-file.md';
const options: MarkedOptions = { headerIds: false }; // Example option
const markdownRenderer = new mdstfu(url, undefined, options);
Use the fetch()
method to to retrieve the Markdown content from the specified URL. Once fetched, you can render the Markdown as HTML using the render()
method:
(async () => {
await markdownRenderer.fetch();
const htmlContent = await markdownRenderer.render();
console.log(htmlContent);
})();
Optionally, you can provide a custom renderer function to modify the Markdown content before it is parsed and rendered:
const customRenderer = (markdown: string) => markdown.replace('# ', '## ');
const markdownRenderer = new mdstfu(url, customRenderer);
(async () => {
await markdownRenderer.fetch();
const htmlContent = await markdownRenderer.render();
console.log(htmlContent);
})();
The mdstfu
class provides methods to fetch and render Markdown content.
new mdstfu(url: string, customRenderer?: (markdown: string) => string, markdownOptions?: MarkedOptions)
url
: The URL of the Markdown file to fetch.customRenderer
: An optional custom renderer function to modify the Markdown content before rendering.markdownOptions
: Optional options to customize the Markdown rendering.
fetch(): Promise<void>
: Fetches the Markdown content from the specified URL.render(): Promise<string>
: Renders the fetched Markdown content as HTML.
mdstfu.cache: Map<string, string>
: A static cache to store fetched Markdown content.
- Invalid URL: If the URL is invalid or the request fails, an error will be thrown.
- Fetch Error: If the fetch request fails, an error will be thrown.
- marked: A Markdown parser and compiler.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
Thanks to all the contributors who have helped make this project possible!