๐ Populate code blocks from files.
Starting from v1.0.0, the plugin is now ESM only. Node 12+ is needed to use it and it must be imported instead of required.
npm install -D remark-code-importThe plugin can be imported via named export, there's no default export.
import codeImport from 'remark-code-import';See Using plugins for more instructions in the official documentation.
It can also be used in various of libraries: remark: MDX, Gatsby gatsby-plugin-mdx, Storybook docs.
Transform:
```js file=./say-hi.js
```into:
```js file=./say-hi.js
console.log('Hello remark-code-import!');
```The file path is relative to the markdown file path. You can use <rootDir> at the start of the path to import files relatively from the rootDir:
```js file=<rootDir>/file-under-root-directory.js
```You may also specify lines or ranges:
Only line 3:
```js file=./say-hi.js#L3
```
Line 3 to line 6:
```js file=./say-hi.js#L3-L6
```
Line 3 to the end of the file
```js file=./say-hi.js#L3-
```File paths with spaces should be escaped with \:
```js file=./file\ with\ spaces.js
```async: boolean: By default, this plugin usesreadFileSyncto read the contents of the files. Set this totrueif you want to usereadFilefor non-blocking IO.rootDir: string: Change what<rootDir>refers to. Defaults toprocess.cwd().preserveTrailingNewline: boolean: By default, this plugin will trim the trailing newline of the file when importing the code. You can preserve the trailing new line in the code block by setting this option totrue.removeRedundantIndentations: boolean: Set totrueto remove redundant indentations for each line. For instance, the imported code of:will become...First line Second lineFirst line Second lineallowImportingFromOutside: boolean: For security reasons, by default this plugin doesn't allow importing files from outside the root directory (rootDir). Set this option totrueto bypass this limit.
Use the /gatsby endpoint. It's possible through to-gatsby-remark-plugin.
{
resolve: 'remark-code-import/gatsby',
options: {}
}After installing dependencies with npm install, the tests can be run with: npm test
Kai Hao MIT