mdast-avatar
v0.1.0
Published
embed avatar image into mdast
Readme
mdast-avatar
mdast に含まれる画像をアバターとして Markdown へ埋め込む。
![]()
Install
npm:
npm install mdast-avatarUsage
画像の URL に avatar:
code:
import fromMarkdown from 'mdast-util-from-markdown';
import toMarkdown from 'mdast-util-to-markdown';
import { toImageDataURL } from './avatar';
(async () => {
const tree = fromMarkdown('# title\n\n\ntext');
await toImageDataURL(tree);
console.log(toMarkdown(tree));
})();yield:
# title

text画像の alt に avatar:
code:
import fromMarkdown from 'mdast-util-from-markdown';
import toMarkdown from 'mdast-util-to-markdown';
import { toImageDataURL } from './avatar';
(async () => {
const tree = fromMarkdown('# title\n\n\ntext');
await toImageDataURL(tree);
console.log(toMarkdown(tree));
})();yield:
# title

textBase Image に重ねる
code:
import fromMarkdown from 'mdast-util-from-markdown';
import toMarkdown from 'mdast-util-to-markdown';
import { toImageDataURL } from './qrcode';
(async () => {
const tree = fromMarkdown(
'# title\n\\n\ntext'
);
await toImageDataURL(tree);
console.log(toMarkdown(tree));
})();yield:
# title

textOptions
code:
import fromMarkdown from 'mdast-util-from-markdown';
import toMarkdown from 'mdast-util-to-markdown';
import { toImageDataURL } from './qrcode';
(async () => {
const tree = fromMarkdown(
'# title\n\\n\ntext'
);
await toImageDataURL(tree);
console.log(toMarkdown(tree));
})();yield:
# title

textavatar options:
- position:
-avatar_position-<center | right-bottom> - fillstyle:
-avatar_fillstyle-<<RRGGBBAA>> - fillshape:
-avatar_fillshape-<circle | rect>> - margin:
-avatar_margin-<number> - paddinfg:
-avatar_padding-<number> - fit:
-avatar_fit-<number> - query:
-avatar_query-<string>("." で区切られる、またはオプション文字列の末尾に配置)
format options:
- type:
-format_type-<png | jpeg> - quality:
-format_quality-<number>(単位は%)
base options:n
- query:
-base_query-<string>("." で区切られる、またはオプション文字列の末尾に配置)
API
toImageDataURL(tree[, options])
mdast に含まれる画像をアバターとして変換。
変換対象となる画像。
srcがavatar:で始まるaltがavatar:で始まるsrcのファイル名がmdast-avatarで始まる- 画像 URL のプロトコルが
http:https:data:
画像は root / paragraph / image 階層のみサポートしている。
アバターの直後に image または link / image がある場合、その image はロゴ画像として扱われる。
options.avatar
主に base に avatar を重ねるときのオプション。
position
type: center | right-bottom
deault: center
fillstyle
type: #RRGGBBAA
deault: #FFFFFFFF
fillshape
type: circle | rect
deault: circle
margin
type: <number>
default: 55
padding
type: <number>
default: 4
fit
type:<number>
base の幅に対する比率(単位は %)。 0 を渡すと無効化。
default: 35
query
type:<string>
アバター画像の URL に付加される文字列。 imgix の Rendering API を base64 variants で利用することを想定。
format
生成された画像を DataURL でエンコードするときのオプション。
type
type: png | jpeg
default: png
quality
type: number
default: 0.92
base
Base image 用のオプション。
Base image の URL に付加される文字列。 imgix の Rendering API を base64 variants で利用することを想定。
returns
Promise<MdNode>
CLI
$ cat example/avatar-deck.md | mdavatar > avatar-embedded-deck.mdなお、出力される markdown 文字列はアバター画像の変換以外も to-markdown の変換に影響される。
JSON config file
{
"toMarkdown": { "bullet": "-", "rule": "-" }
}toMarkdown.bullet / toMarkdown.rule フィールドは toMarkdown へ渡される。
License
MIT License
Copyright (c) 2021 hankei6km
