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--> <!--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 **Input**
<script>
import basics from './parts/basics.md'
import reference from './parts/reference.md'
</script>
```md
# Docs # Docs
## Basics ## Basics
{{ basics }} <!--@include: ./parts/basics.md-->
```
## API Reference **Part file** (`parts/basics.md`)
{{ reference }} ```md
``` Some getting started stuff.
Replace curly brackets with `@include`, ### Configuration
the pathname with the extension,
surrounded by `<!-- -->` sintax
```vue Can be created using `.foorc.json`.
<script> ```
import basics from './parts/basics.md'
import reference from './parts/reference.md' **Equivalent code**
</script>
```md
# Docs # Docs
## Basics ## 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 ## Advanced Configuration

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

Loading…
Cancel
Save