Rebuilding images
rehype-image-salt has the ability to rebuild the <img> tag.
rebype-image-salt registered as plugin in unified and nuxt-content can be used as follows:
- Add attributes to
<img>tags - Replace
<img>to<nuxt-img>etc.
unified
import { unified } from 'unified'
import rehypeParse from 'rehype-parse'
import remarkToRehype from 'remark-rehype'
import rehypeStringify from 'rehype-stringify'
import imageSalt from '@hankei6km/rehype-image-salt'
const rebuild = async (source: string) => {
const html = await unified()
.use(remarkParse)
.use(remarkToRehype)
.use(imageSalt, { command: 'rebuild', rebuild: { /* options... */ } })
.use(rehypeStringify)
.freeze()
.process(source)
return String(html)
}
console.log(
await rebuild('{width="600" height="400"}')
)
// <p><img src="/path/to/image.jpg" alt="river" width="600" height="400"></p>
nuxt-content
nuxt.config.js
{
content: {
markdown: {
rehypePlugins: [
[
"@hankei6km/rehype-image-salt",
{
baseURL: "https://.../",
rebuild: {
// options...
},
},
],
],
},
},
}
Options
The options is passed with the following objects. The behaviors of plugin is switched to rebuild multiple times by pass an array to the plugin.
command
- Type:
rebuild | embed - Default:
rebuild
The mode when running as plugin. Set reuild when rebuilding.
baseURL
- Type:
string - Default:
none
A base part of image URL to be rebuilt. It will be removed from the image URL after rebuilding.
rebuild.tagName
- Type:
string - Default:
img
Using a tag name to rebuilding <img>
rebuild.keepBaseURL
- Type:
boolean - Default:
false
Keep the baseURL part in the image URL when rebuilding. The default value will be switched to false when tagName is nuxt-image component(ie: nuxt-img ).
rebuild.baseAttrs
- Type:
string - Default:
``
Describe the default attributes.