Reshape Include
Include other HTML files ("partials") into your HTML.
Install
npm i reshape-include --save
Usage
Given the following input files:
<!-- index.html -->Here's my partial:after the partial
<!-- _partial.html -->hello from the partial!
Process them with reshape:
const readFileSync = const reshape = const include = const html =
Output:
Here's my partial:hello from the partial!after the partial
Utilizing Different Parsers
Sometimes, you might want to import a html
file into a sgr
file. Or maybe a svg
. In these cases and any other where you are seeking to mix two files that are processed by different parsers, you can utilize the parserRules
config value. Example shown below:
const htmlParser = const sugarml =
Note that anything not matched by a parserRules
test will be parsed by whatever parser is being used by reshape from its primary config. So in the example above, the html
test is unnecessary -- since reshape's default parser is reshape-parser
, it will already use this for any file not matching .sgr
.
Note that any parser can be used here in theory, but it must output a valid Reshape AST. Feel free to make use of the reshape AST validator if you want in the process.
Options
All options are optional, none are required.
Name | Description | Default |
---|---|---|
root | Root path to resolve the include from | the file's path. |
alias | Object with alias mappings, each key is your reference and the corresponding value is the relative path to your file. { button: './views/button.html } | |
parserRules | Array of objects that can include the test (regex) and parser (fn) keys. See readme for further details |
Reporting Dependencies
This plugin will report its dependencies in the standard format as dictated by reshape-loader if you pass dependencies: []
as an option to reshape when it runs. Dependencies will be available on the output object under the dependencies
key. For example:
const reshape = const include =
If you are using this with webpack, reshape-loader takes care of the dependency reporting and you don't have to do anything 😁
License
- Licensed under MIT
- See our contributing guide