# posthtml-insert-at
**Repository Path**: mirrors_posthtml/posthtml-insert-at
## Basic Information
- **Project Name**: posthtml-insert-at
- **Description**: PostHTML plugin to append or prepend HTML to a selector
- **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-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# posthtml-insert-at
[![NPM][npm]][npm-url]
`posthtml-insert-at` is a [PostHTML](https://github.com/posthtml/posthtml) plugin to append or prepend HTML to a selector.
## [Examples](examples/)
**Before:**
```html
```
**After:**
```html
```
## Install
```bash
yarn add -D posthtml-insert-at
# OR
npm i posthtml-insert-at
```
## Usage
```js
const fs = require("fs");
const posthtml = require("posthtml");
const { insertAt } = require("posthtml-insert-at");
const html = fs.readFileSync("./index.html");
posthtml()
.use(
insertAt({
/**
* Specify the selector to append/prepend content to.
* Example selectors: `main`, `#id`, `.class`, `main.foo`.
*/
selector: "main",
/**
* Prepend HTML markup at the selector.
*/
prepend: `
`,
/**
* Append HTML markup at the selector.
*/
append: `
`,
/**
* Specify whether to append/prepend content inside or outside (i.e. adjacent to) of the selector.
*
* The default behavior is `inside`.
*/
behavior: "outside",
})
)
.process(html)
.then((result) => fs.writeFileSync("./after.html", result.html));
```
## Options
| Name | Kind | Description |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------------- |
| `selector` | **required** `string` | Selector to insert markup at (e.g. `.classname`, `#id` or `tag`) |
| `prepend` | optional `string` | Markup to prepend to the selector |
| `append` | optional `string` | Markup to append to the selector |
| `behavior` | optional (`"inside"` or `"outside"`) - default is `"inside"` | Whether to append/prepend content inside or outside of the selector |
The plugin accepts an object or an an array of objects.
```js
const option = {
selector: "body",
prepend: "",
append: "",
behavior: "inside",
};
insertAt(option);
// OR
insertAt([option /*, ...more options */]);
```
## Limitations
Currently, this plugin does not supported nested selectors.
## Contributing
See the [PostHTML Guidelines](https://github.com/posthtml/posthtml/tree/master/docs).
## [Changelog](CHANGELOG.md)
## License
[MIT](LICENSE)
[npm]: https://img.shields.io/npm/v/posthtml-insert-at.svg?color=blue
[npm-url]: https://npmjs.com/package/posthtml-insert-at