# @gechiui/shortcode

> Shortcode module for GeChiUI.

Latest version **3.3.1** (published 2022-03-17) · GPL-2.0-or-later license · 0 weekly downloads

## Install

```sh
npm install @gechiui/shortcode
pnpm add @gechiui/shortcode
yarn add @gechiui/shortcode
bun add @gechiui/shortcode
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.3.1 |
| Published | 2022-03-17 |
| First published | 2022-03-17 |
| Weekly downloads | 0 |
| License | GPL-2.0-or-later |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=12 |
| Dependencies | 3 |
| Unpacked size | 112.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | The GeChiUI Contributors |
| Maintainers | gechiui |
| Keywords | gechiui, gutenberg, shortcode |

## Links

- npm: https://www.npmjs.com/package/@gechiui/shortcode
- Repository: https://github.com/GeChiUI/gutenberg
- Homepage: https://github.com/GeChiUI/gutenberg/tree/HEAD/packages/shortcode/README.md
- Issues: https://github.com/GeChiUI/gutenberg/issues
- npm.io page: https://npm.io/package/@gechiui/shortcode

## Dependencies (3)

- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [memize](https://npm.io/package/memize.md) ^1.1.0
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ^7.16.0

## Recent versions

- 3.3.1 (latest) — 2022-03-17
- 3.2.3 — 2022-03-17

## README

# Shortcode

Shortcode module for GeChiUI.

## Installation

Install the module

```bash
npm install @gechiui/shortcode --save
```

_This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for such language features and APIs, you should include [the polyfill shipped in `@gechiui/babel-preset-default`](https://github.com/GeChiUI/gutenberg/tree/HEAD/packages/babel-preset-default#polyfill) in your code._

## API

<!-- START TOKEN(Autogenerated API docs) -->

### attrs

Parse shortcode attributes.

Shortcodes accept many types of attributes. These can chiefly be divided into
named and numeric attributes:

Named attributes are assigned on a key/value basis, while numeric attributes
are treated as an array.

Named attributes can be formatted as either `name="value"`, `name='value'`,
or `name=value`. Numeric attributes can be formatted as `"value"` or just
`value`.

_Parameters_

-   _text_ `string`: Serialised shortcode attributes.

_Returns_

-   `GCShortcodeAttrs`: Parsed shortcode attributes.

### default

Creates a shortcode instance.

To access a raw representation of a shortcode, pass an `options` object,
containing a `tag` string, a string or object of `attrs`, a string indicating
the `type` of the shortcode ('single', 'self-closing', or 'closed'), and a
`content` string.

_Parameters_

-   _options_ `Object`: Options as described.

_Returns_

-   `GCShortcode`: Shortcode instance.

### fromMatch

Generate a Shortcode Object from a RegExp match.

Accepts a `match` object from calling `regexp.exec()` on a `RegExp` generated
by `regexp()`. `match` can also be set to the `arguments` from a callback
passed to `regexp.replace()`.

_Parameters_

-   _match_ `Array`: Match array.

_Returns_

-   `GCShortcode`: Shortcode instance.

### next

Find the next matching shortcode.

_Parameters_

-   _tag_ `string`: Shortcode tag.
-   _text_ `string`: Text to search.
-   _index_ `number`: Index to start search from.

_Returns_

-   `?GCShortcodeMatch`: Matched information.

### regexp

Generate a RegExp to identify a shortcode.

The base regex is functionally equivalent to the one found in
`get_shortcode_regex()` in `gc-includes/shortcodes.php`.

Capture groups:

1.  An extra `[` to allow for escaping shortcodes with double `[[]]`
2.  The shortcode name
3.  The shortcode argument list
4.  The self closing `/`
5.  The content of a shortcode when it wraps some content.
6.  The closing tag.
7.  An extra `]` to allow for escaping shortcodes with double `[[]]`

_Parameters_

-   _tag_ `string`: Shortcode tag.

_Returns_

-   `RegExp`: Shortcode RegExp.

### replace

Replace matching shortcodes in a block of text.

_Parameters_

-   _tag_ `string`: Shortcode tag.
-   _text_ `string`: Text to search.
-   _callback_ `Function`: Function to process the match and return replacement string.

_Returns_

-   `string`: Text with shortcodes replaced.

### string

Generate a string from shortcode parameters.

Creates a shortcode instance and returns a string.

Accepts the same `options` as the `shortcode()` constructor, containing a
`tag` string, a string or object of `attrs`, a boolean indicating whether to
format the shortcode using a `single` tag, and a `content` string.

_Parameters_

-   _options_ `Object`:

_Returns_

-   `string`: String representation of the shortcode.

<!-- END TOKEN(Autogenerated API docs) -->

## Contributing to this package

This is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [GeChiUI](https://make.gechiui.com/core/) as well as other software projects.

To find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/GeChiUI/gutenberg/tree/HEAD/CONTRIBUTING.md).

<br /><br /><p align="center"><img src="https://s.w.org/style/images/codeispoetry.png?1" alt="Code is Poetry." /></p>

---
_Source: https://npm.io/package/@gechiui/shortcode · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
