fix: don't throw error on including non existent md file

pull/938/head
Divyansh Singh 3 years ago
parent a55f84aebd
commit 80b34c7c49

@ -388,48 +388,47 @@ You can also use a [VS Code region](https://code.visualstudio.com/docs/editor/co
<!--lint enable strong-marker-->
## Import & Embed markdown's content
## Markdown File Inclusion
When you need to combine multiple markdown content over a single markdown file, e.g.
You can include a markdown file in another markdown file like this:
```vue
<script>
import basics from './parts/basics.md'
import reference from './parts/reference.md'
</script>
**Input**
```md
# Docs
## Basics
{{ basics }}
<!--@include: ./parts/basics.md-->
```
## API Reference
**Part file** (`parts/basics.md`)
{{ reference }}
```
```md
Some getting started stuff.
Replace curly brackets with `@include`,
the pathname with the extension,
surrounded by `<!-- -->` sintax
### Configuration
```vue
<script>
import basics from './parts/basics.md'
import reference from './parts/reference.md'
</script>
Can be created using `.foorc.json`.
```
**Equivalent code**
```md
# Docs
## Basics
< !--@include:./parts/basics.md-->
Some getting started stuff.
## API Reference
### Configuration
< !--@include:./parts/reference.md-->
Can be created using `.foorc.json`.
```
::: warning
Note that this does not throw errors if your file is not present. Hence, when using this feature make sure that the contents are being rendered as expected.
:::
## Advanced Configuration

@ -54,11 +54,15 @@ export async function createMarkdownToVueRenderFn(
// resolve includes
let includes: string[] = []
src = src.replace(includesRE, (_, m1) => {
const includePath = path.join(dir, m1)
const content = fs.readFileSync(includePath, 'utf-8')
includes.push(slash(includePath))
return content
src = src.replace(includesRE, (m, m1) => {
try {
const includePath = path.join(dir, m1)
const content = fs.readFileSync(includePath, 'utf-8')
includes.push(slash(includePath))
return content
} catch (error) {
return m // silently ignore error if file is not present
}
})
const { content, data: frontmatter } = matter(src)

Loading…
Cancel
Save