# posthtml-modules
**Repository Path**: mirrors_posthtml/posthtml-modules
## Basic Information
- **Project Name**: posthtml-modules
- **Description**: Modules Plugin
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-25
- **Last Updated**: 2025-09-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[![NPM][npm]][npm-url]
[![Deps][deps]][deps-url]
[![Tests][travis]][travis-url]
[![Coverage][cover]][cover-url]
[![XO Code Style][style]][style-url]
Modules Plugin
Import and process HTML Modules with PostHTML
## Install
```bash
npm i -D posthtml-modules
```
## Example
```html
title
```
```html
```
```js
const { readFileSync } = require('fs')
const posthtml = require('posthtml')
const options = { /* see available options below */ }
posthtml()
.use(require('posthtml-modules')(options))
.process(readFileSync('index.html', 'utf8'))
.then((result) => result)
});
```
```html
```
## Options
### `root`
Type: `string`\
Default: `./`
Root path for modules lookup.
### `plugins`
Type: `array | function`\
Default: `[]`
PostHTML plugins to apply for every parsed module.
If a function provided, it will be called with module's file path.
### `from`
Type: `string`\
Default: `''`
Root filename for processing apply, needed for path resolving (it's better to always provide it).
### `initial`
Type: `boolean`\
Default: `false`
Apply plugins to root file after modules processing.
### `tag`
Type: `string`\
Default: `module`
Use a custom tag name.
### `attribute`
Type: `string`\
Default: `href`
Use a custom attribute name.
### `locals`
Type: `object`\
Default: `{}`
Pass data to the module.
If present, the JSON object from the `locals=""` attribute will be merged on top of this, overwriting any existing values.
### `attributeAsLocals`
Type: `boolean`\
Default: `false`
All attributes on `` will be added to [locals](#locals)
### `parser`
Type: `object`\
Default: `{}`
Options for the PostHTML parser.
By default, [`posthtml-parser`](https://github.com/posthtml/posthtml-parser) is used.
### `expressions`
Type: `object`\
Default: `{}`
Options to forward to [posthtml-expressions](https://github.com/posthtml/posthtml-expressions), like custom delimiters for example. Available options can be found [here](https://github.com/posthtml/posthtml-expressions#options).
## Component options
### `locals`
You can pass data to a module using a `locals=""` attribute.
Must be a valid JSON object.
Example:
```handlebars
The foo is {{ foo }} in this one.
```
```handlebars
Or so they say...
```
### Result
```html
The foo is strong in this one.
Or so they say...
```
### `attributeAsLocals`
All attributes on `` will be added to [locals](#locals)
Example:
```handlebars
```
```handlebars
Module content
```
### Result
```html
Module content
```
[npm]: https://img.shields.io/npm/v/posthtml-modules.svg
[npm-url]: https://npmjs.com/package/posthtml-modules
[deps]: https://david-dm.org/posthtml/posthtml-modules.svg
[deps-url]: https://david-dm.org/posthtml/posthtml-modules
[style]: https://img.shields.io/badge/code_style-XO-5ed9c7.svg
[style-url]: https://github.com/sindresorhus/xo
[travis]: http://img.shields.io/travis/posthtml/posthtml-modules.svg
[travis-url]: https://travis-ci.org/posthtml/posthtml-modules
[cover]: https://coveralls.io/repos/github/posthtml/posthtml-modules/badge.svg?branch=master
[cover-url]: https://coveralls.io/github/posthtml/posthtml-modules?branch=master