Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rbeer/gatsby-remark-image-attributes
Gatsby remark plugin to processes images with attributes in markdown.
https://github.com/rbeer/gatsby-remark-image-attributes
gatsby gatsby-plugin images markdown mdx plugin remark
Last synced: about 2 months ago
JSON representation
Gatsby remark plugin to processes images with attributes in markdown.
- Host: GitHub
- URL: https://github.com/rbeer/gatsby-remark-image-attributes
- Owner: rbeer
- License: mit
- Created: 2020-03-22T15:17:03.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-02-09T21:59:42.000Z (11 months ago)
- Last Synced: 2024-04-24T23:02:13.403Z (9 months ago)
- Topics: gatsby, gatsby-plugin, images, markdown, mdx, plugin, remark
- Language: TypeScript
- Homepage: https://remark-image-attributes.netlify.app/
- Size: 380 KB
- Stars: 3
- Watchers: 2
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# gatsby-remark-image-attributes
Creates HTML image markup with style and data-* attributes from [`mdAST Image`](https://github.com/syntax-tree/mdast#image) nodes with attributes in their title.![Gatsby 2/3/4 compatible](https://badgen.net/badge/Gatsby%202%2C%203%20%26%204/%E2%9C%93/green) ![npm](https://badgen.net/npm/v/gatsby-remark-image-attributes) ![dependencies](https://badgen.net/bundlephobia/dependency-count/gatsby-remark-image-attributes) ![minified](https://badgen.net/bundlephobia/min/gatsby-remark-image-attributes) ![minified+gzip](https://badgen.net/bundlephobia/minzip/gatsby-remark-image-attributes)
```md
┌─────────── styleAttributes ───────────┐ reserved for image title
│ ▼ ▼ ▼ │ ▼
![satisfied](https://foomoji.com/satisfied.png '#width=32px;height=32px;position=absolute;lightbox=true;title=Image Title')
▲ ▲
Leading # dataAttribute
```yields
```html
```Note that `title` is a reserved attribute key, i.e. declaring `data-title` is not possible. `title` image attributes will always become the HTML attribute `title` of the ``.
The plugin handles [`mdAST HTML`](https://github.com/syntax-tree/mdast#html) nodes created by [gatsby-remark-images](https://github.com/gatsbyjs/gatsby/master/packages/gatsby-remark-images/); possibly other image-processing plugins. Order of plugins in your gatsby-config matters.
---
Some examples
- [CSS Properties](https://remark-image-attributes.netlify.app/#css-properties)
* [Positioning](https://remark-image-attributes.netlify.app/#positioning)
* [SVG](https://remark-image-attributes.netlify.app/#svg)
* [Inline and Lists](https://remark-image-attributes.netlify.app/#inline-and-lists)
- [data-* attributes](https://remark-image-attributes.netlify.app/#data---attributes)[![Netlify Status](https://api.netlify.com/api/v1/badges/e80d307e-a042-4e42-a1b2-b339837f84b7/deploy-status)](https://remark-image-attributes.netlify.app) [![demo source](https://badgen.net/badge/source/gatsby-remark-image-attributes-demo/0e1e25)](https://github.com/rbeer/gatsby-remark-image-attributes-demo/tree/gatsby3)
## Installation
```bash
npm install --save gatsby-remark-image-attributes
```## How to use
- [Basic](https://github.com/rbeer/gatsby-remark-image-attributes/wiki/How-to-use)
- [with gatsby-remark-images](https://github.com/rbeer/gatsby-remark-image-attributes/wiki/How-to-use#gatsby-remark-images)
- [with gatsby-plugin-mdx](https://github.com/rbeer/gatsby-remark-image-attributes/wiki/How-to-use#gatsby-plugin-mdx)#### .gatsby-img-attributes
Generated markup has a CSS class `gatsby-img-attributes`. The plugin itself does not come with any properties for that class; you can use it to apply default styling to all images with attributes.
## Options
|Name|Type|Default|Description|
|:-:|:-:|:-:|-|
| [dataAttributes](#dataattributes) |Boolean| `false` | Set to `true` if you want attributes not recognized as styleAttribute to be added as data- attribute to the image.
| [styleAttributes](#styleattributes) ||| Deprecated ^1.0.0#### styleAttributes
_As of v1.0.0, this option is deprecated and the behavior described below will always apply._
The plugin uses a [list of all CSS properties](https://github.com/rbeer/gatsby-remark-image-attributes/blob/master/src/css-props.json), as defined by the [W3C](https://www.w3.org/Style/CSS/all-properties.en.html), to decide whether an attribute is to be added to the image's style or not.
#### dataAttributes
When `options.dataAttributes` is `true`, the plugin will add all attributes whose key isn't a [CSS property](https://www.w3.org/Style/CSS/all-properties.en.html#list) as data-* attribute to the image.
_gatsby-config.js_:
```js
plugins: [
{
resolve: `gatsby-transformer-remark`,
options: {
plugins: [
{
resolve: `gatsby-remark-image-attributes`,
options: {
dataAttributes: true
}
}
]
}
}
];
```
_md_:```md
![happy](https://foomoji.com/happy.png '#tool-tip=Fancy image with tooltip;position=absolute;height=100px')
```
Where `position` and `height` are recognized as `styleAttributes`, `tool-tip` is not and due to `options.dataAttributes: true` applied as `data-` attribute:```html
```