This commit is contained in:
Niccolo Borgioli 2023-11-16 15:23:12 +01:00
parent 6f59a120ef
commit 003ef89da6
No known key found for this signature in database
GPG Key ID: D93C615F75EE4F0B
1 changed files with 54 additions and 1 deletions

View File

@ -1,6 +1,6 @@
# Markdown import plugin
This is a `markdown-it` plugin to include/import raw files from your filesystem.
This is a `markdown-it` plugin to include/import any raw files from your filesystem.
## Features
@ -8,6 +8,7 @@ This is a `markdown-it` plugin to include/import raw files from your filesystem.
- Recursive import
- Import whatever file
- Customizable RegEx
- Tested
## Installation
@ -15,6 +16,58 @@ This is a `markdown-it` plugin to include/import raw files from your filesystem.
npm install @nicco.io/markdown-it-import
```
## Usage
Include a whole file
```md
@import(somefile.md)
```
Import specific lines
```md
@import(snippet.ts)[5-10]
```
### Example
```md
<!-- main.md -->
# Title
@import(chapter.md)
<!-- This should be tripple ` -->
`ts
@import(sum.ts)
`
```
```md
## Chapter
I will be included
```
```ts
// sum.ts
export function sum(a: number, b: number): number {
return a + b
}
```
```ts
import MarkdownIt from 'markdown-it'
import fs from 'node:fs/promises'
import { Options, importPlugin } from '@nicco.io/markdown-it-import'
const input = await fs.readFile('./main.md', 'utf-8')
const html = MarkdownIt().use(importPlugin).render(input)
```
## Similar works
There are two very similar plugins, which this one is def. inspired by, however while the one can only import `.md` files, the other cannot select single lines.