diff --git a/lib/ast.mjs b/lib/ast.mjs
new file mode 100644
index 0000000..f520d07
--- /dev/null
+++ b/lib/ast.mjs
@@ -0,0 +1,47 @@
+function attrString(attr) {
+ const buff = [];
+
+ for (const [name, value] of Object.entries(attr)) {
+ buff.push(`${name}="${value}"`);
+ }
+
+ if (buff.length === 0) {
+ return '';
+ }
+
+ return ` ${buff.join(' ')}`;
+}
+
+// eslint-disable-next-line consistent-return
+function stringifier(buff, doc) {
+ switch (doc.type) {
+ case 'text': {
+ return buff + doc.value;
+ }
+ case 'tag': {
+ // eslint-disable-next-line no-param-reassign
+ buff += `<${doc.name}${doc.attr ? attrString(doc.attr) : ''}${
+ doc.void ? ' />' : '>'
+ }`;
+
+ if (doc.void) {
+ return buff;
+ }
+
+ return `${
+ buff +
+ doc.children.reduce(
+ (accumulator, element) => stringifier(accumulator, element),
+ '',
+ )
+ }${doc.name}>`;
+ }
+ default:
+ }
+}
+
+export function stringify(doc) {
+ return doc.reduce((token, rootEl) => {
+ return token + stringifier('', rootEl);
+ }, '');
+}
diff --git a/lib/transform.mjs b/lib/transform.mjs
index 4f8ec5a..ea0ff5f 100644
--- a/lib/transform.mjs
+++ b/lib/transform.mjs
@@ -1,5 +1,6 @@
import { getValue, parse } from 'markdown-code-block-meta';
+import { stringify } from './ast.mjs';
import { fetchData, mime, toDataURL } from './utils.mjs';
/* eslint-disable no-param-reassign */
@@ -14,6 +15,7 @@ const modes = {
node.children = [
{
type: 'image',
+ _meta: { kroki: true, type: diagramType },
alt: alt || diagramType,
url: toDataURL(data),
},
@@ -21,21 +23,61 @@ const modes = {
},
'object-base64': ({ node, diagramType, data, alt }) => {
node.type = 'html';
- node.value = ``;
+ node.value = stringify([
+ {
+ type: 'tag',
+ name: 'object',
+ attr: {
+ type: mime,
+ class: 'kroki-object',
+ 'data-type': diagramType,
+ title: alt || diagramType,
+ data: toDataURL(data),
+ },
+ children: [
+ {
+ type: 'text',
+ value: 'Load SVG fail...',
+ },
+ ],
+ },
+ ]);
},
'img-html-base64': ({ node, diagramType, data, alt }) => {
node.type = 'html';
- node.value = ``;
+ node.value = stringify([
+ {
+ type: 'tag',
+ name: 'img',
+ void: true,
+ attr: {
+ class: 'kroki-image',
+ alt: alt || diagramType,
+ 'data-type': diagramType,
+ src: toDataURL(data),
+ },
+ },
+ ]);
},
'inline-svg': ({ node, diagramType, data, alt }) => {
node.type = 'html';
- node.value = `
${removeXML(data.toString())}
`;
+ node.value = stringify([
+ {
+ type: 'tag',
+ name: 'div',
+ attr: {
+ class: 'kroki-inline-svg',
+ 'data-type': diagramType,
+ 'data-alt': alt || diagramType,
+ },
+ children: [
+ {
+ type: 'text',
+ value: removeXML(data.toString()),
+ },
+ ],
+ },
+ ]);
},
};
diff --git a/test/output.mjs b/test/output.mjs
index b7dafca..52c5a48 100644
--- a/test/output.mjs
+++ b/test/output.mjs
@@ -2,6 +2,10 @@ import test from 'ava';
import { TransformSnapshot } from './helper/lib.mjs';
+test.before((t) => {
+ t.timeout(1000 ** 3);
+});
+
function macro(t, { output }) {
return TransformSnapshot(
t,
diff --git a/test/snapshots/base.mjs.md b/test/snapshots/base.mjs.md
index 0b50d6c..79e91b7 100644
--- a/test/snapshots/base.mjs.md
+++ b/test/snapshots/base.mjs.md
@@ -85,6 +85,10 @@ Generated by [AVA](https://avajs.dev).
{
children: [
{
+ _meta: {
+ kroki: true,
+ type: 'plantuml',
+ },
alt: 'abc',
type: 'image',
url: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXMtYXNjaWkiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgaGVpZ2h0PSIxMDVweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgc3R5bGU9IndpZHRoOjY4cHg7aGVpZ2h0OjEwNXB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY4IDEwNSIgd2lkdGg9IjY4cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiMxODE4MTg7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtZGFzaGFycmF5OjUuMCw1LjA7IiB4MT0iMTYiIHgyPSIxNiIgeTE9IjM2LjI5NjkiIHkyPSI3MC4yOTY5Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWRhc2hhcnJheTo1LjAsNS4wOyIgeDE9IjUwIiB4Mj0iNTAiIHkxPSIzNi4yOTY5IiB5Mj0iNzAuMjk2OSIvPjxyZWN0IGZpbGw9IiNFMkUyRjAiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDowLjU7IiB3aWR0aD0iMjMiIHg9IjUiIHk9IjUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5IiB4PSIxMiIgeT0iMjQuOTk1MSI+QTwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjIzIiB4PSI1IiB5PSI2OS4yOTY5Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOSIgeD0iMTIiIHk9Ijg5LjI5MiI+QTwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjI0IiB4PSIzOCIgeT0iNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwIiB4PSI0NSIgeT0iMjQuOTk1MSI+QjwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjI0IiB4PSIzOCIgeT0iNjkuMjk2OSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwIiB4PSI0NSIgeT0iODkuMjkyIj5CPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiMxODE4MTgiIHBvaW50cz0iMzgsNDguMjk2OSw0OCw1Mi4yOTY5LDM4LDU2LjI5NjksNDIsNTIuMjk2OSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7c3Ryb2tlLWRhc2hhcnJheToyLjAsMi4wOyIgeDE9IjE2LjUiIHgyPSI0NCIgeTE9IjUyLjI5NjkiIHkyPSI1Mi4yOTY5Ii8+PCEtLVNSQz1bU3JKR3JSTEpTMDgwXS0tPjwvZz48L3N2Zz4=',
@@ -125,6 +129,10 @@ Generated by [AVA](https://avajs.dev).
{
children: [
{
+ _meta: {
+ kroki: true,
+ type: 'plantuml',
+ },
alt: 'abc',
type: 'image',
url: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXMtYXNjaWkiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgaGVpZ2h0PSIxMDVweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgc3R5bGU9IndpZHRoOjY4cHg7aGVpZ2h0OjEwNXB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY4IDEwNSIgd2lkdGg9IjY4cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiMxODE4MTg7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtZGFzaGFycmF5OjUuMCw1LjA7IiB4MT0iMTYiIHgyPSIxNiIgeTE9IjM2LjI5NjkiIHkyPSI3MC4yOTY5Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWRhc2hhcnJheTo1LjAsNS4wOyIgeDE9IjUwIiB4Mj0iNTAiIHkxPSIzNi4yOTY5IiB5Mj0iNzAuMjk2OSIvPjxyZWN0IGZpbGw9IiNFMkUyRjAiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDowLjU7IiB3aWR0aD0iMjMiIHg9IjUiIHk9IjUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5IiB4PSIxMiIgeT0iMjQuOTk1MSI+QTwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjIzIiB4PSI1IiB5PSI2OS4yOTY5Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOSIgeD0iMTIiIHk9Ijg5LjI5MiI+QTwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjI0IiB4PSIzOCIgeT0iNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwIiB4PSI0NSIgeT0iMjQuOTk1MSI+QjwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjI0IiB4PSIzOCIgeT0iNjkuMjk2OSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwIiB4PSI0NSIgeT0iODkuMjkyIj5CPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiMxODE4MTgiIHBvaW50cz0iMzgsNDguMjk2OSw0OCw1Mi4yOTY5LDM4LDU2LjI5NjksNDIsNTIuMjk2OSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7c3Ryb2tlLWRhc2hhcnJheToyLjAsMi4wOyIgeDE9IjE2LjUiIHgyPSI0NCIgeTE9IjUyLjI5NjkiIHkyPSI1Mi4yOTY5Ii8+PCEtLVNSQz1bU3JKR3JSTEpTMDgwXS0tPjwvZz48L3N2Zz4=',
diff --git a/test/snapshots/base.mjs.snap b/test/snapshots/base.mjs.snap
index e691882..5d37cec 100644
Binary files a/test/snapshots/base.mjs.snap and b/test/snapshots/base.mjs.snap differ
diff --git a/test/snapshots/fail.mjs.md b/test/snapshots/fail.mjs.md
index a718749..f07dc47 100644
--- a/test/snapshots/fail.mjs.md
+++ b/test/snapshots/fail.mjs.md
@@ -31,6 +31,10 @@ Generated by [AVA](https://avajs.dev).
{
children: [
{
+ _meta: {
+ kroki: true,
+ type: 'plantuml',
+ },
alt: '00',
type: 'image',
url: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MDAgMTgwIj4KICA8cGF0aAogICAgZmlsbD0iI2FhYSIKICAgIGQ9Ik05Mi4xNyAzOS43NWMtLjE4LjIxIDAgLjk5Ljk3IDQuMTEuNzcgMi41Ljk1IDMuNy42OCA0LjY2LS4yMy44Mi0uNjEgMS4xOC0xLjYgMS40OS0uNDIuMTMtLjg2LjI4LS45OC4zMi0uMTIuMDQtLjM3LjAxLS41NS0uMDYtLjU5LS4yNC0xLjcxLTIuMTUtMi41Mi00LjMxLTEuNjMtNC4zNS0zLjc2LTE0LjQyLTUuNy0yNi45LS42MS0zLjk0LS43My01Ljc2LS40Ni02LjcxLjIyLS43OC45MS0xLjY2IDEuNTEtMS45Ny45OC0uNSAxLjM3LS41IDIuMzYtLjAzLjQ3LjIyNi43ODYuMzQzIDEuMDAyLjU2Mi40NDkuNDU1LjQ1NiAxLjM0Ni40OCA0LjU2NWwuMDA4Ljk2M2MuMDMgMy42My4xMiA1LjYuMyA3LjA1LjQxIDMuMTQuNTkgNC4wMi44NyA0LjA4LjE1LjAyLjc4LS42IDEuNjktMS42NyAxLjg3LTIuMjIgNS4wNC01LjI4IDYuNDMtNi4yIDEuODMtMS4yMyAyLjg2LTEuNjMgNC4xMi0xLjY0LjgzIDAgMS4yNS4wOCAxLjc5LjM1LjkzLjQ2IDEuMTYuOTUuOTkgMi4wN2wtLjEzLjg2LTIuMjcgMi4wNWMtMy43NSAzLjM5LTcuMTIgNy4wNy04LjMgOS4wOS0uNDkuODMtLjQ1IDEuMTIuMTYgMS4yNS41Ni4xMiA3Ljc1IDIuNjIgMTAuNDEgMy42MSAxLjE2LjQ0IDIuNjcuOTggMy4zNSAxLjIgMS42LjUzIDEuOTEuODYgMS45OSAyLjEuMTggMi43Mi0xLjExIDMuNTQtNC43OSAzLjA2LTMuMzYtLjQ0LTYuMDUtMS4yOS05LjQ5LTMuMDMtMS42NC0uODMtMi4yMS0xLjA2LTIuMzItLjkyWk0yMy4xOCAxNC45Yy0yLjk3IDAtNS42Ni44NC03LjkgMi40Ni0xLjc4IDEuMy02LjUxIDYuNDEtNy40NCA4LjA1LS40Ny44My0uODQgMS4wNC0xLjE1LjY0LS40NS0uNTctLjgtMi43NC0xLjAyLTYuMzEtLjMzLTUuNTMtLjUyLTYuNTUtMS41Mi04LjI1bC0uNDEtLjctLjc0LjA4Yy0xLjYuMTktMi41MSAxLjA5LTIuODcgMi44MS0uMjggMS4zMS0uMDkgNS4yNy4zNiA3LjcyIDEuNDQgNy44IDQuMiAxNy44NSA2LjU3IDIzLjg4IDEuMTYgMi45NSAyLjIyIDQuODQgMi45NyA1LjMuNjUuMzkgMS4yNS4zNyAyLjE4LS4xIDEuMDQtLjUxIDEuNDktMS4wOCAxLjcxLTIuMTMuNDMtMi4wOC0uMTEtNC4wMS0xLjk2LTcuMDgtMS40NS0yLjM5LTEuODUtMy4zMS0xLjg4LTQuMzQtLjA0LTEuMS4yMS0xLjI2IDEuNTgtMS4wNCAyLjIuMzcgNC4yOCAxLjM5IDguOSA0LjM3IDUuMTEgMy4zMSA3LjE1IDQuMjIgOS45MiA0LjQ4IDEuMzIuMTIgMS43LS4wNSAyLjE2LS45Ni40Mi0uODQuNDctMi40OS4xLTMuMjgtLjUxLTEuMDctMy40NC0zLjAzLTguMTQtNS40Mi00LjEyLTIuMTEtMTAuNjMtNC45Ni0xMi40Ni01LjQ1LS4xMS0uMDMtLjItLjE4LS4yLS4zMyAwLS40MSAzLjUzLTMuOTIgNi4yMi02LjE4IDIuNTgtMi4xOCA0LjQ2LTQuMDkgNS4xLTUuMTYuMjItLjM4LjQ5LTEuMTEuNTktMS42MWwuMDIzLS4xMWMuMTU4LS43NTQuMjI4LTEuMDg0LjA5NS0xLjIyOC0uMTAzLS4xMTItLjMyOS0uMTEyLS43My0uMTEyaC0uMDU4Wm05MC4yOC0uNWMxLjA1LjY1IDEuNzQgMS43MSAxLjgyIDIuNzcuMDMuNDgtLjAxIDEtLjEgMS4xNy0uNDUuODMtMi4xIDEtNC4yNi40NWwtMS4yOS0uMzMuMDUtLjgzYy4xLTIuMTEuNzktMy4xOCAyLjI0LTMuNDguODEtLjE3Ljg3LS4xNiAxLjU0LjI1Wm0xLjg4IDEwLjdjLjQ2LS4xMS40OC0uMDQuNjUgMS45Ny4xNiAxLjg2LjUyIDMuNjggMS41MSA3LjYzIDEuOTMgNy43IDIuNSAxMC43MSAyLjUgMTMuMiAwIDEuMzEtLjQyIDIuMjgtMS4xNiAyLjcxLS41OC4zMy0xLjc0LjQ1LTIuNTIuMjUtMS4zLS4zMi0yLjA5LTEuMDctMi45OC0yLjg1LTEuNDctMi45Mi0yLjI3LTkuNjYtMi4wNC0xNy4wNGwuMTEtMy4zNS41My0uNjJjLjUxLS42IDIuNDEtMS42NiAzLjQtMS45Wm0tNTguMTUgNy41OGMuNDctMi4yNC0xLTQuNzQtMy40NC01Ljg4LS44NS0uNC0xLjI0LS40OC0yLjQtLjUzLTIuNTMtLjEyLTQuMDEuNDUtNS44MSAyLjI0LTEuNTQgMS41Mi0zLjI2IDQuNC0zLjc4IDYuMzQtLjI1LjkyLS42NC44Mi0xLjA2LS4yNi0uNjQtMS42MS0yLjI0LTQuNzktMi45MS01Ljc4LS45LTEuMzMtMS40OC0xLjcxLTIuNDUtMS42Mi0xLjI3LjEyLTEuOSAxLjE0LTEuOSAzLjA1IDAgMy40NyAzLjk0IDEyLjg5IDcuMiAxNy4yMyAxLjYgMi4xMiAyLjYzIDMuMDIgMy44MiAzLjM0Ljg5LjI0LjkyLjI0IDEuODMuMDUuODItLjE4IDEuNTgtLjg2IDEuNzctMS41OS4xOS0uNzktLjA2LTMuMTgtLjU2LTUuMi0uNDYtMS44NS0uNTEtMi4yMy0uNDktNC4xNS4wMy00LjIxIDEuMDMtNi42NiAyLjk2LTcuMi4zNS0uMS43OS0uMzIuOTgtLjQ4LjQ0LS4zOS41OS0uMjcgMS41IDEuMjlsLjcxIDEuMjEgMS4wMS0uMDhjMS44Ny0uMTYgMi43Ni0uNzQgMy4wMi0xLjk4Wm0uNyA1LjE1Yy44Ni0zLjgzIDQtNy41NiA4LjA4LTkuNjIgMi40OC0xLjI1IDQuNTctMS44MSA3LjE5LTEuOTIgMi40OC0uMTEgMy4xOC4xNCA0Ljc4IDEuNzUgMi4zMiAyLjMyIDMuNiA1LjcyIDMuNDIgOS4wNy0uMSAxLjkxLS4zOSAzLjAxLTEuMTcgNC41OC0xLjcxIDMuNDItNC41NyA2LjIxLTguMDkgNy45LTIuMzEgMS4xMS01LjA1IDEuNTktNy4yNiAxLjI4LTMuNzItLjUxLTYuMTctMy4wNi02Ljk4LTcuMjMtLjI5LTEuNTEtLjI3LTQuNDUuMDMtNS44MVptNy4xMS0uMWMtMS41NSAxLjg0LTEuOSAyLjU3LTEuOSAzLjkgMCAyLjA3Ljc4IDMuMjIgMi40OSAzLjY3Ljc3LjIgMi42Ni4wNCAzLjU0LS4zMiAxLjI2LS40OSAyLjQtMS4zMSAzLjczLTIuNjQgMS4zMy0xLjM1IDIuMDQtMi40MyAyLjYtMy45Ny42Ny0xLjg0LjYxLTMuOTctLjE1LTUuNDctLjQ1LS45Mi0uOTgtMS4yNy0xLjg1LTEuMjYtMS44LjAzLTUuNzcgMi44OS04LjQ2IDYuMDlaIgogIC8+CiAgPHRleHQgeT0iODAiIGZpbGw9IiNhYWEiIGZvbnQtc2l6ZT0iMTQiPkZhaWwsIHBsZWFzZSBjaGVjayB5b3VyIGlucHV0LjwvdGV4dD4KICA8Zm9yZWlnbk9iamVjdCB3aWR0aD0iNjAwIiBoZWlnaHQ9IjgwIiB5PSI5MCIgZm9udC1zaXplPSIxNCI+CiAgICA8ZGl2CiAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIgogICAgICBzdHlsZT0iY29sb3I6I2ZmMjIwMDt3b3JkLWJyZWFrOmJyZWFrLWFsbCIKICAgID4KICAgICAgRXJyb3IgNDAwOiBTeW50YXggRXJyb3I/IChsaW5lOiAxKQogICAgPC9kaXY+CiAgPC9mb3JlaWduT2JqZWN0Pgo8L3N2Zz4K',
@@ -71,6 +75,10 @@ Generated by [AVA](https://avajs.dev).
{
children: [
{
+ _meta: {
+ kroki: true,
+ type: 'fake',
+ },
alt: 'fake',
type: 'image',
url: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MDAgMTgwIj4KICA8cGF0aAogICAgZmlsbD0iI2FhYSIKICAgIGQ9Ik05Mi4xNyAzOS43NWMtLjE4LjIxIDAgLjk5Ljk3IDQuMTEuNzcgMi41Ljk1IDMuNy42OCA0LjY2LS4yMy44Mi0uNjEgMS4xOC0xLjYgMS40OS0uNDIuMTMtLjg2LjI4LS45OC4zMi0uMTIuMDQtLjM3LjAxLS41NS0uMDYtLjU5LS4yNC0xLjcxLTIuMTUtMi41Mi00LjMxLTEuNjMtNC4zNS0zLjc2LTE0LjQyLTUuNy0yNi45LS42MS0zLjk0LS43My01Ljc2LS40Ni02LjcxLjIyLS43OC45MS0xLjY2IDEuNTEtMS45Ny45OC0uNSAxLjM3LS41IDIuMzYtLjAzLjQ3LjIyNi43ODYuMzQzIDEuMDAyLjU2Mi40NDkuNDU1LjQ1NiAxLjM0Ni40OCA0LjU2NWwuMDA4Ljk2M2MuMDMgMy42My4xMiA1LjYuMyA3LjA1LjQxIDMuMTQuNTkgNC4wMi44NyA0LjA4LjE1LjAyLjc4LS42IDEuNjktMS42NyAxLjg3LTIuMjIgNS4wNC01LjI4IDYuNDMtNi4yIDEuODMtMS4yMyAyLjg2LTEuNjMgNC4xMi0xLjY0LjgzIDAgMS4yNS4wOCAxLjc5LjM1LjkzLjQ2IDEuMTYuOTUuOTkgMi4wN2wtLjEzLjg2LTIuMjcgMi4wNWMtMy43NSAzLjM5LTcuMTIgNy4wNy04LjMgOS4wOS0uNDkuODMtLjQ1IDEuMTIuMTYgMS4yNS41Ni4xMiA3Ljc1IDIuNjIgMTAuNDEgMy42MSAxLjE2LjQ0IDIuNjcuOTggMy4zNSAxLjIgMS42LjUzIDEuOTEuODYgMS45OSAyLjEuMTggMi43Mi0xLjExIDMuNTQtNC43OSAzLjA2LTMuMzYtLjQ0LTYuMDUtMS4yOS05LjQ5LTMuMDMtMS42NC0uODMtMi4yMS0xLjA2LTIuMzItLjkyWk0yMy4xOCAxNC45Yy0yLjk3IDAtNS42Ni44NC03LjkgMi40Ni0xLjc4IDEuMy02LjUxIDYuNDEtNy40NCA4LjA1LS40Ny44My0uODQgMS4wNC0xLjE1LjY0LS40NS0uNTctLjgtMi43NC0xLjAyLTYuMzEtLjMzLTUuNTMtLjUyLTYuNTUtMS41Mi04LjI1bC0uNDEtLjctLjc0LjA4Yy0xLjYuMTktMi41MSAxLjA5LTIuODcgMi44MS0uMjggMS4zMS0uMDkgNS4yNy4zNiA3LjcyIDEuNDQgNy44IDQuMiAxNy44NSA2LjU3IDIzLjg4IDEuMTYgMi45NSAyLjIyIDQuODQgMi45NyA1LjMuNjUuMzkgMS4yNS4zNyAyLjE4LS4xIDEuMDQtLjUxIDEuNDktMS4wOCAxLjcxLTIuMTMuNDMtMi4wOC0uMTEtNC4wMS0xLjk2LTcuMDgtMS40NS0yLjM5LTEuODUtMy4zMS0xLjg4LTQuMzQtLjA0LTEuMS4yMS0xLjI2IDEuNTgtMS4wNCAyLjIuMzcgNC4yOCAxLjM5IDguOSA0LjM3IDUuMTEgMy4zMSA3LjE1IDQuMjIgOS45MiA0LjQ4IDEuMzIuMTIgMS43LS4wNSAyLjE2LS45Ni40Mi0uODQuNDctMi40OS4xLTMuMjgtLjUxLTEuMDctMy40NC0zLjAzLTguMTQtNS40Mi00LjEyLTIuMTEtMTAuNjMtNC45Ni0xMi40Ni01LjQ1LS4xMS0uMDMtLjItLjE4LS4yLS4zMyAwLS40MSAzLjUzLTMuOTIgNi4yMi02LjE4IDIuNTgtMi4xOCA0LjQ2LTQuMDkgNS4xLTUuMTYuMjItLjM4LjQ5LTEuMTEuNTktMS42MWwuMDIzLS4xMWMuMTU4LS43NTQuMjI4LTEuMDg0LjA5NS0xLjIyOC0uMTAzLS4xMTItLjMyOS0uMTEyLS43My0uMTEyaC0uMDU4Wm05MC4yOC0uNWMxLjA1LjY1IDEuNzQgMS43MSAxLjgyIDIuNzcuMDMuNDgtLjAxIDEtLjEgMS4xNy0uNDUuODMtMi4xIDEtNC4yNi40NWwtMS4yOS0uMzMuMDUtLjgzYy4xLTIuMTEuNzktMy4xOCAyLjI0LTMuNDguODEtLjE3Ljg3LS4xNiAxLjU0LjI1Wm0xLjg4IDEwLjdjLjQ2LS4xMS40OC0uMDQuNjUgMS45Ny4xNiAxLjg2LjUyIDMuNjggMS41MSA3LjYzIDEuOTMgNy43IDIuNSAxMC43MSAyLjUgMTMuMiAwIDEuMzEtLjQyIDIuMjgtMS4xNiAyLjcxLS41OC4zMy0xLjc0LjQ1LTIuNTIuMjUtMS4zLS4zMi0yLjA5LTEuMDctMi45OC0yLjg1LTEuNDctMi45Mi0yLjI3LTkuNjYtMi4wNC0xNy4wNGwuMTEtMy4zNS41My0uNjJjLjUxLS42IDIuNDEtMS42NiAzLjQtMS45Wm0tNTguMTUgNy41OGMuNDctMi4yNC0xLTQuNzQtMy40NC01Ljg4LS44NS0uNC0xLjI0LS40OC0yLjQtLjUzLTIuNTMtLjEyLTQuMDEuNDUtNS44MSAyLjI0LTEuNTQgMS41Mi0zLjI2IDQuNC0zLjc4IDYuMzQtLjI1LjkyLS42NC44Mi0xLjA2LS4yNi0uNjQtMS42MS0yLjI0LTQuNzktMi45MS01Ljc4LS45LTEuMzMtMS40OC0xLjcxLTIuNDUtMS42Mi0xLjI3LjEyLTEuOSAxLjE0LTEuOSAzLjA1IDAgMy40NyAzLjk0IDEyLjg5IDcuMiAxNy4yMyAxLjYgMi4xMiAyLjYzIDMuMDIgMy44MiAzLjM0Ljg5LjI0LjkyLjI0IDEuODMuMDUuODItLjE4IDEuNTgtLjg2IDEuNzctMS41OS4xOS0uNzktLjA2LTMuMTgtLjU2LTUuMi0uNDYtMS44NS0uNTEtMi4yMy0uNDktNC4xNS4wMy00LjIxIDEuMDMtNi42NiAyLjk2LTcuMi4zNS0uMS43OS0uMzIuOTgtLjQ4LjQ0LS4zOS41OS0uMjcgMS41IDEuMjlsLjcxIDEuMjEgMS4wMS0uMDhjMS44Ny0uMTYgMi43Ni0uNzQgMy4wMi0xLjk4Wm0uNyA1LjE1Yy44Ni0zLjgzIDQtNy41NiA4LjA4LTkuNjIgMi40OC0xLjI1IDQuNTctMS44MSA3LjE5LTEuOTIgMi40OC0uMTEgMy4xOC4xNCA0Ljc4IDEuNzUgMi4zMiAyLjMyIDMuNiA1LjcyIDMuNDIgOS4wNy0uMSAxLjkxLS4zOSAzLjAxLTEuMTcgNC41OC0xLjcxIDMuNDItNC41NyA2LjIxLTguMDkgNy45LTIuMzEgMS4xMS01LjA1IDEuNTktNy4yNiAxLjI4LTMuNzItLjUxLTYuMTctMy4wNi02Ljk4LTcuMjMtLjI5LTEuNTEtLjI3LTQuNDUuMDMtNS44MVptNy4xMS0uMWMtMS41NSAxLjg0LTEuOSAyLjU3LTEuOSAzLjkgMCAyLjA3Ljc4IDMuMjIgMi40OSAzLjY3Ljc3LjIgMi42Ni4wNCAzLjU0LS4zMiAxLjI2LS40OSAyLjQtMS4zMSAzLjczLTIuNjQgMS4zMy0xLjM1IDIuMDQtMi40MyAyLjYtMy45Ny42Ny0xLjg0LjYxLTMuOTctLjE1LTUuNDctLjQ1LS45Mi0uOTgtMS4yNy0xLjg1LTEuMjYtMS44LjAzLTUuNzcgMi44OS04LjQ2IDYuMDlaIgogIC8+CiAgPHRleHQgeT0iODAiIGZpbGw9IiNhYWEiIGZvbnQtc2l6ZT0iMTQiPkZhaWwsIHBsZWFzZSBjaGVjayB5b3VyIGlucHV0LjwvdGV4dD4KICA8Zm9yZWlnbk9iamVjdCB3aWR0aD0iNjAwIiBoZWlnaHQ9IjgwIiB5PSI5MCIgZm9udC1zaXplPSIxNCI+CiAgICA8ZGl2CiAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIgogICAgICBzdHlsZT0iY29sb3I6I2ZmMjIwMDt3b3JkLWJyZWFrOmJyZWFrLWFsbCIKICAgID4KICAgICAgRXJyb3IgNDA0OiBOb3QgRm91bmQKICAgIDwvZGl2PgogIDwvZm9yZWlnbk9iamVjdD4KPC9zdmc+Cg==',
diff --git a/test/snapshots/fail.mjs.snap b/test/snapshots/fail.mjs.snap
index a61a250..76ffebd 100644
Binary files a/test/snapshots/fail.mjs.snap and b/test/snapshots/fail.mjs.snap differ
diff --git a/test/snapshots/output.mjs.md b/test/snapshots/output.mjs.md
index 96e4a3e..c1053d6 100644
--- a/test/snapshots/output.mjs.md
+++ b/test/snapshots/output.mjs.md
@@ -65,6 +65,10 @@ Generated by [AVA](https://avajs.dev).
{
children: [
{
+ _meta: {
+ kroki: true,
+ type: 'plantuml',
+ },
alt: 'plantuml',
type: 'image',
url: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXMtYXNjaWkiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgaGVpZ2h0PSIxMDVweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgc3R5bGU9IndpZHRoOjY4cHg7aGVpZ2h0OjEwNXB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY4IDEwNSIgd2lkdGg9IjY4cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiMxODE4MTg7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtZGFzaGFycmF5OjUuMCw1LjA7IiB4MT0iMTYiIHgyPSIxNiIgeTE9IjM2LjI5NjkiIHkyPSI3MC4yOTY5Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWRhc2hhcnJheTo1LjAsNS4wOyIgeDE9IjUwIiB4Mj0iNTAiIHkxPSIzNi4yOTY5IiB5Mj0iNzAuMjk2OSIvPjxyZWN0IGZpbGw9IiNFMkUyRjAiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDowLjU7IiB3aWR0aD0iMjMiIHg9IjUiIHk9IjUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5IiB4PSIxMiIgeT0iMjQuOTk1MSI+QTwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjIzIiB4PSI1IiB5PSI2OS4yOTY5Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOSIgeD0iMTIiIHk9Ijg5LjI5MiI+QTwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjI0IiB4PSIzOCIgeT0iNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwIiB4PSI0NSIgeT0iMjQuOTk1MSI+QjwvdGV4dD48cmVjdCBmaWxsPSIjRTJFMkYwIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzE4MTgxODtzdHJva2Utd2lkdGg6MC41OyIgd2lkdGg9IjI0IiB4PSIzOCIgeT0iNjkuMjk2OSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwIiB4PSI0NSIgeT0iODkuMjkyIj5CPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiMxODE4MTgiIHBvaW50cz0iMzgsNDguMjk2OSw0OCw1Mi4yOTY5LDM4LDU2LjI5NjksNDIsNTIuMjk2OSIgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMTgxODE4O3N0cm9rZS13aWR0aDoxLjA7c3Ryb2tlLWRhc2hhcnJheToyLjAsMi4wOyIgeDE9IjE2LjUiIHgyPSI0NCIgeTE9IjUyLjI5NjkiIHkyPSI1Mi4yOTY5Ii8+PCEtLVNSQz1bU3JKR3JSTEpTMDgwXS0tPjwvZz48L3N2Zz4=',
@@ -104,13 +108,13 @@ Generated by [AVA](https://avajs.dev).
[
{
type: 'html',
- value: '',
+ value: '',
},
]
> Snapshot 4
- ''
+ ''
## object-base64
diff --git a/test/snapshots/output.mjs.snap b/test/snapshots/output.mjs.snap
index 7d478c5..4c5224c 100644
Binary files a/test/snapshots/output.mjs.snap and b/test/snapshots/output.mjs.snap differ