planning
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s

This commit is contained in:
2024-10-14 09:15:30 +02:00
parent bcba00a730
commit 6e64e138e2
21059 changed files with 2317811 additions and 1 deletions

8
node_modules/remark-slate-transformer/lib/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
export { default as remarkToSlate } from "./plugins/remark-to-slate";
export type { Options as RemarkToSlateOptions } from "./plugins/remark-to-slate";
export { default as slateToRemark } from "./plugins/slate-to-remark";
export type { Options as SlateToRemarkOptions } from "./plugins/slate-to-remark";
export { default as slateToRemarkLegacy } from "./plugins/slate0.47-to-remark";
export { default as remarkToSlateLegacy } from "./plugins/remark-to-slate0.47";
export { mdastToSlate } from "./transformers/mdast-to-slate";
export { slateToMdast } from "./transformers/slate-to-mdast";

820
node_modules/remark-slate-transformer/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1,820 @@
'use strict';
var tslib = require('tslib');
const unreachable = (_) => {
throw new Error("unreachable");
};
const mdastToSlate = (node, overrides) => {
return buildSlateRoot(node, overrides);
};
const buildSlateRoot = (root, overrides) => {
return convertNodes$3(root.children, {}, overrides);
};
const convertNodes$3 = (nodes, deco, overrides) => {
return nodes.reduce((acc, node) => {
acc.push(...buildSlateNode(node, deco, overrides));
return acc;
}, []);
};
const buildSlateNode = (node, deco, overrides) => {
var _a;
const customNode = (_a = overrides[node.type]) === null || _a === void 0 ? void 0 : _a.call(overrides, node, (children) => convertNodes$3(children, deco, overrides));
if (customNode != null) {
return [customNode];
}
switch (node.type) {
case "paragraph":
return [buildParagraph$1(node, deco, overrides)];
case "heading":
return [buildHeading$1(node, deco, overrides)];
case "thematicBreak":
return [buildThematicBreak$1(node)];
case "blockquote":
return [buildBlockquote$1(node, deco, overrides)];
case "list":
return [buildList$1(node, deco, overrides)];
case "listItem":
return [buildListItem$1(node, deco, overrides)];
case "table":
return [buildTable$1(node, deco, overrides)];
case "tableRow":
return [buildTableRow$1(node, deco, overrides)];
case "tableCell":
return [buildTableCell$1(node, deco, overrides)];
case "html":
return [buildHtml$1(node)];
case "code":
return [buildCode$1(node)];
case "yaml":
return [buildYaml$1(node)];
case "toml":
return [buildToml$1(node)];
case "definition":
return [buildDefinition$1(node)];
case "footnoteDefinition":
return [buildFootnoteDefinition$1(node, deco, overrides)];
case "text":
return [buildText(node.value, deco)];
case "emphasis":
case "strong":
case "delete": {
const { type, children } = node;
return children.reduce((acc, n) => {
acc.push(...buildSlateNode(n, Object.assign(Object.assign({}, deco), { [type]: true }), overrides));
return acc;
}, []);
}
case "inlineCode": {
const { type, value } = node;
return [buildText(value, Object.assign(Object.assign({}, deco), { [type]: true }))];
}
case "break":
return [buildBreak$1(node)];
case "link":
return [buildLink$1(node, deco, overrides)];
case "image":
return [buildImage$1(node)];
case "linkReference":
return [buildLinkReference$1(node, deco, overrides)];
case "imageReference":
return [buildImageReference$1(node)];
case "footnote":
return [buildFootnote$1(node, deco, overrides)];
case "footnoteReference":
return [buildFootnoteReference(node)];
case "math":
return [buildMath$1(node)];
case "inlineMath":
return [buildInlineMath$1(node)];
default:
unreachable();
break;
}
return [];
};
const buildParagraph$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildHeading$1 = ({ type, children, depth }, deco, overrides) => {
return {
type,
depth,
children: convertNodes$3(children, deco, overrides),
};
};
const buildThematicBreak$1 = ({ type }) => {
return {
type,
children: [{ text: "" }],
};
};
const buildBlockquote$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildList$1 = ({ type, children, ordered, start, spread }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
ordered,
start,
spread,
};
};
const buildListItem$1 = ({ type, children, checked, spread }, deco, overrides) => {
return {
type,
children:
// https://github.com/inokawa/remark-slate-transformer/issues/42
// https://github.com/inokawa/remark-slate-transformer/issues/129
children.length === 0
? [{ text: "" }]
: convertNodes$3(children, deco, overrides),
checked,
spread,
};
};
const buildTable$1 = ({ type, children, align }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
align,
};
};
const buildTableRow$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildTableCell$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildHtml$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildCode$1 = ({ type, value, lang, meta }) => {
return {
type,
lang,
meta,
children: [{ text: value }],
};
};
const buildYaml$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildToml$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildMath$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildInlineMath$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildDefinition$1 = ({ type, identifier, label, url, title, }) => {
return {
type,
identifier,
label,
url,
title,
children: [{ text: "" }],
};
};
const buildFootnoteDefinition$1 = ({ type, children, identifier, label }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
identifier,
label,
};
};
const buildText = (text, deco) => {
return Object.assign(Object.assign({}, deco), { text });
};
const buildBreak$1 = ({ type }) => {
return {
type,
children: [{ text: "" }],
};
};
const buildLink$1 = ({ type, children, url, title }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
url,
title,
};
};
const buildImage$1 = ({ type, url, title, alt }) => {
return {
type,
url,
title,
alt,
children: [{ text: "" }],
};
};
const buildLinkReference$1 = ({ type, children, referenceType, identifier, label }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
referenceType,
identifier,
label,
};
};
const buildImageReference$1 = ({ type, alt, referenceType, identifier, label, }) => {
return {
type,
alt,
referenceType,
identifier,
label,
children: [{ text: "" }],
};
};
const buildFootnote$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildFootnoteReference = ({ type, identifier, label, }) => {
return {
type,
identifier,
label,
children: [{ text: "" }],
};
};
const plugin$3 = function ({ overrides = {}, } = {}) {
this.Compiler = function (node) {
return mdastToSlate(node, overrides);
};
};
const slateToMdast = (node, overrides) => {
return buildMdastRoot(node, overrides);
};
const buildMdastRoot = (node, overrides) => {
return {
type: "root",
children: convertNodes$2(node.children, overrides),
};
};
const convertNodes$2 = (nodes, overrides) => {
const mdastNodes = [];
let textQueue = [];
for (let i = 0; i <= nodes.length; i++) {
const n = nodes[i];
if (n && isText(n)) {
textQueue.push(n);
}
else {
mdastNodes.push(...convertTexts(textQueue));
textQueue = [];
if (!n)
continue;
const node = buildMdastNode(n, overrides);
if (node) {
mdastNodes.push(node);
}
}
}
return mdastNodes;
};
const convertTexts = (slateTexts) => {
const mdastTexts = [];
const starts = [];
let ends = [];
let textTemp = "";
for (let j = 0; j < slateTexts.length; j++) {
const cur = slateTexts[j];
textTemp += cur.text;
const prevStarts = starts.slice();
const prevEnds = ends.slice();
const prev = slateTexts[j - 1];
const next = slateTexts[j + 1];
ends = [];
[
"emphasis",
"strong",
"delete",
// inlineCode should be last because of the spec in mdast
// https://github.com/inokawa/remark-slate-transformer/issues/145
"inlineCode",
].forEach((k) => {
if (cur[k]) {
if (!prev || !prev[k]) {
starts.push(k);
}
if (!next || !next[k]) {
ends.push(k);
}
}
});
const endsToRemove = starts.reduce((acc, k, kIndex) => {
if (ends.includes(k)) {
acc.push({ key: k, index: kIndex });
}
return acc;
}, []);
if (starts.length > 0) {
let bef = "";
let aft = "";
if (endsToRemove.length === 1 &&
(prevStarts.toString() !== starts.toString() ||
// https://github.com/inokawa/remark-slate-transformer/issues/90
(prevEnds.includes("emphasis") && ends.includes("strong"))) &&
starts.length - endsToRemove.length === 0) {
while (textTemp.startsWith(" ")) {
bef += " ";
textTemp = textTemp.slice(1);
}
while (textTemp.endsWith(" ")) {
aft += " ";
textTemp = textTemp.slice(0, -1);
}
}
let res = {
type: "text",
value: textTemp,
};
textTemp = "";
const startsReversed = starts.slice().reverse();
startsReversed.forEach((k) => {
switch (k) {
case "inlineCode":
res = {
type: k,
value: res.value,
};
break;
case "strong":
case "emphasis":
case "delete":
res = {
type: k,
children: [res],
};
break;
default:
unreachable();
break;
}
});
const arr = [];
if (bef.length > 0) {
arr.push({ type: "text", value: bef });
}
arr.push(res);
if (aft.length > 0) {
arr.push({ type: "text", value: aft });
}
mdastTexts.push(...arr);
}
if (endsToRemove.length > 0) {
endsToRemove.reverse().forEach((e) => {
starts.splice(e.index, 1);
});
}
else {
mdastTexts.push({ type: "text", value: textTemp });
textTemp = "";
}
}
if (textTemp) {
mdastTexts.push({ type: "text", value: textTemp });
textTemp = "";
}
return mergeTexts(mdastTexts);
};
const buildMdastNode = (node, overrides) => {
var _a;
const customNode = (_a = overrides[node.type]) === null || _a === void 0 ? void 0 : _a.call(overrides, node, (children) => convertNodes$2(children, overrides));
if (customNode != null) {
return customNode;
}
switch (node.type) {
case "paragraph":
return buildParagraph(node, overrides);
case "heading":
return buildHeading(node, overrides);
case "thematicBreak":
return buildThematicBreak(node);
case "blockquote":
return buildBlockquote(node, overrides);
case "list":
return buildList(node, overrides);
case "listItem":
return buildListItem(node, overrides);
case "table":
return buildTable(node, overrides);
case "tableRow":
return buildTableRow(node, overrides);
case "tableCell":
return buildTableCell(node, overrides);
case "html":
return buildHtml(node);
case "code":
return buildCode(node);
case "yaml":
return buildYaml(node);
case "toml":
return buildToml(node);
case "definition":
return buildDefinition(node);
case "footnoteDefinition":
return buildFootnoteDefinition(node, overrides);
case "break":
return buildBreak(node);
case "link":
return buildLink(node, overrides);
case "image":
return buildImage(node);
case "linkReference":
return buildLinkReference(node, overrides);
case "imageReference":
return buildImageReference(node);
case "footnote":
return buildFootnote(node, overrides);
case "footnoteReference":
return creatFootnoteReference(node);
case "math":
return buildMath(node);
case "inlineMath":
return buildInlineMath(node);
default:
unreachable();
break;
}
return null;
};
const isText = (node) => {
return "text" in node;
};
const mergeTexts = (nodes) => {
const res = [];
for (const cur of nodes) {
const last = res[res.length - 1];
if (last && last.type === cur.type) {
if (last.type === "text") {
last.value += cur.value;
}
else if (last.type === "inlineCode") {
last.value += cur.value;
}
else {
last.children = mergeTexts(last.children.concat(cur.children));
}
}
else {
if (cur.type === "text" && cur.value === "")
continue;
res.push(cur);
}
}
return res;
};
const buildParagraph = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildHeading = ({ type, depth, children }, overrides) => {
return {
type,
depth,
children: convertNodes$2(children, overrides),
};
};
const buildThematicBreak = ({ type, }) => {
return {
type,
};
};
const buildBlockquote = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildList = ({ type, ordered, start, spread, children }, overrides) => {
return {
type,
ordered,
start,
spread,
children: convertNodes$2(children, overrides),
};
};
const buildListItem = ({ type, checked, spread, children }, overrides) => {
return {
type,
checked,
spread,
children: convertNodes$2(children, overrides),
};
};
const buildTable = ({ type, align, children }, overrides) => {
return {
type,
align,
children: convertNodes$2(children, overrides),
};
};
const buildTableRow = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildTableCell = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildHtml = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildCode = ({ type, lang, meta, children, }) => {
return {
type,
lang,
meta,
value: children[0].text,
};
};
const buildYaml = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildToml = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildDefinition = ({ type, identifier, label, url, title, }) => {
return {
type,
identifier,
label,
url,
title,
};
};
const buildFootnoteDefinition = ({ type, identifier, label, children }, overrides) => {
return {
type,
identifier,
label,
children: convertNodes$2(children, overrides),
};
};
const buildBreak = ({ type }) => {
return {
type,
};
};
const buildLink = ({ type, url, title, children }, overrides) => {
return {
type,
url,
title,
children: convertNodes$2(children, overrides),
};
};
const buildImage = ({ type, url, title, alt, }) => {
return {
type,
url,
title,
alt,
};
};
const buildLinkReference = ({ type, identifier, label, referenceType, children, }, overrides) => {
return {
type,
identifier,
label,
referenceType,
children: convertNodes$2(children, overrides),
};
};
const buildImageReference = ({ type, identifier, label, alt, referenceType, }) => {
return {
type,
identifier,
label,
alt,
referenceType,
};
};
const buildFootnote = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const creatFootnoteReference = ({ type, identifier, label, }) => {
return {
type,
identifier,
label,
};
};
const buildMath = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildInlineMath = ({ type, children, }) => {
return {
type,
value: children[0].text,
};
};
const plugin$2 = ({ overrides = {}, } = {}) => {
return function (node) {
return slateToMdast(node, overrides);
};
};
const slate047ToSlate = (nodes) => {
return convertNodes$1(nodes);
};
const convertNodes$1 = (nodes) => {
return nodes.reduce((acc, n) => {
const node = convert$1(n);
if (node) {
acc.push(node);
}
return acc;
}, []);
};
const convert$1 = (node) => {
switch (node.object) {
case "block": {
const { type, nodes, data } = node;
return Object.assign({ type, children: convertNodes$1(nodes) }, data);
}
case "inline": {
const { type, nodes, data } = node;
return Object.assign({ type, children: convertNodes$1(nodes) }, data);
}
case "text": {
const { text = "", marks } = node;
return Object.assign({ text }, marks === null || marks === void 0 ? void 0 : marks.reduce((acc, m) => {
acc[m.type] = true;
return acc;
}, {}));
}
}
return null;
};
const plugin$1 = function () {
return function (node) {
return slateToMdast({
type: "root",
children: slate047ToSlate(node.children),
}, {});
};
};
const slateToSlate047 = (nodes) => {
return {
object: "value",
document: {
object: "document",
nodes: convertNodes(nodes),
},
};
};
const convertNodes = (nodes) => {
return nodes.reduce((acc, n) => {
const node = convert(n);
if (node) {
acc.push(node);
}
return acc;
}, []);
};
const convert = (node) => {
if ("text" in node) {
const { text } = node, rest = tslib.__rest(node, ["text"]);
const marks = Object.keys(rest).reduce((acc, type) => {
if (!rest[type])
return acc;
acc.push({
object: "mark",
type,
});
return acc;
}, []);
const res = {
object: "text",
text,
marks,
};
return res;
}
switch (node.type) {
case "paragraph":
case "heading":
case "blockquote":
case "list":
case "listItem":
case "table":
case "tableRow":
case "tableCell":
case "html":
case "code":
case "yaml":
case "toml":
case "thematicBreak":
case "definition":
case "break":
case "math": {
const { type, children } = node, rest = tslib.__rest(node, ["type", "children"]);
const res = {
object: "block",
type,
nodes: convertNodes(children),
data: Object.assign({}, rest),
};
return res;
}
case "footnoteDefinition":
case "link":
case "linkReference":
case "image":
case "imageReference":
case "footnote":
case "footnoteReference":
case "inlineMath": {
const { type, children } = node, rest = tslib.__rest(node, ["type", "children"]);
const res = {
object: "inline",
type,
nodes: convertNodes(children),
data: Object.assign({}, rest),
};
return res;
}
}
return null;
};
const plugin = function () {
this.Compiler = function (node) {
return slateToSlate047(mdastToSlate(node, {}));
};
};
exports.mdastToSlate = mdastToSlate;
exports.remarkToSlate = plugin$3;
exports.remarkToSlateLegacy = plugin;
exports.slateToMdast = slateToMdast;
exports.slateToRemark = plugin$2;
exports.slateToRemarkLegacy = plugin$1;
//# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

813
node_modules/remark-slate-transformer/lib/index.mjs generated vendored Normal file
View File

@@ -0,0 +1,813 @@
import { __rest } from 'tslib';
const unreachable = (_) => {
throw new Error("unreachable");
};
const mdastToSlate = (node, overrides) => {
return buildSlateRoot(node, overrides);
};
const buildSlateRoot = (root, overrides) => {
return convertNodes$3(root.children, {}, overrides);
};
const convertNodes$3 = (nodes, deco, overrides) => {
return nodes.reduce((acc, node) => {
acc.push(...buildSlateNode(node, deco, overrides));
return acc;
}, []);
};
const buildSlateNode = (node, deco, overrides) => {
var _a;
const customNode = (_a = overrides[node.type]) === null || _a === void 0 ? void 0 : _a.call(overrides, node, (children) => convertNodes$3(children, deco, overrides));
if (customNode != null) {
return [customNode];
}
switch (node.type) {
case "paragraph":
return [buildParagraph$1(node, deco, overrides)];
case "heading":
return [buildHeading$1(node, deco, overrides)];
case "thematicBreak":
return [buildThematicBreak$1(node)];
case "blockquote":
return [buildBlockquote$1(node, deco, overrides)];
case "list":
return [buildList$1(node, deco, overrides)];
case "listItem":
return [buildListItem$1(node, deco, overrides)];
case "table":
return [buildTable$1(node, deco, overrides)];
case "tableRow":
return [buildTableRow$1(node, deco, overrides)];
case "tableCell":
return [buildTableCell$1(node, deco, overrides)];
case "html":
return [buildHtml$1(node)];
case "code":
return [buildCode$1(node)];
case "yaml":
return [buildYaml$1(node)];
case "toml":
return [buildToml$1(node)];
case "definition":
return [buildDefinition$1(node)];
case "footnoteDefinition":
return [buildFootnoteDefinition$1(node, deco, overrides)];
case "text":
return [buildText(node.value, deco)];
case "emphasis":
case "strong":
case "delete": {
const { type, children } = node;
return children.reduce((acc, n) => {
acc.push(...buildSlateNode(n, Object.assign(Object.assign({}, deco), { [type]: true }), overrides));
return acc;
}, []);
}
case "inlineCode": {
const { type, value } = node;
return [buildText(value, Object.assign(Object.assign({}, deco), { [type]: true }))];
}
case "break":
return [buildBreak$1(node)];
case "link":
return [buildLink$1(node, deco, overrides)];
case "image":
return [buildImage$1(node)];
case "linkReference":
return [buildLinkReference$1(node, deco, overrides)];
case "imageReference":
return [buildImageReference$1(node)];
case "footnote":
return [buildFootnote$1(node, deco, overrides)];
case "footnoteReference":
return [buildFootnoteReference(node)];
case "math":
return [buildMath$1(node)];
case "inlineMath":
return [buildInlineMath$1(node)];
default:
unreachable();
break;
}
return [];
};
const buildParagraph$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildHeading$1 = ({ type, children, depth }, deco, overrides) => {
return {
type,
depth,
children: convertNodes$3(children, deco, overrides),
};
};
const buildThematicBreak$1 = ({ type }) => {
return {
type,
children: [{ text: "" }],
};
};
const buildBlockquote$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildList$1 = ({ type, children, ordered, start, spread }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
ordered,
start,
spread,
};
};
const buildListItem$1 = ({ type, children, checked, spread }, deco, overrides) => {
return {
type,
children:
// https://github.com/inokawa/remark-slate-transformer/issues/42
// https://github.com/inokawa/remark-slate-transformer/issues/129
children.length === 0
? [{ text: "" }]
: convertNodes$3(children, deco, overrides),
checked,
spread,
};
};
const buildTable$1 = ({ type, children, align }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
align,
};
};
const buildTableRow$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildTableCell$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildHtml$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildCode$1 = ({ type, value, lang, meta }) => {
return {
type,
lang,
meta,
children: [{ text: value }],
};
};
const buildYaml$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildToml$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildMath$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildInlineMath$1 = ({ type, value }) => {
return {
type,
children: [{ text: value }],
};
};
const buildDefinition$1 = ({ type, identifier, label, url, title, }) => {
return {
type,
identifier,
label,
url,
title,
children: [{ text: "" }],
};
};
const buildFootnoteDefinition$1 = ({ type, children, identifier, label }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
identifier,
label,
};
};
const buildText = (text, deco) => {
return Object.assign(Object.assign({}, deco), { text });
};
const buildBreak$1 = ({ type }) => {
return {
type,
children: [{ text: "" }],
};
};
const buildLink$1 = ({ type, children, url, title }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
url,
title,
};
};
const buildImage$1 = ({ type, url, title, alt }) => {
return {
type,
url,
title,
alt,
children: [{ text: "" }],
};
};
const buildLinkReference$1 = ({ type, children, referenceType, identifier, label }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
referenceType,
identifier,
label,
};
};
const buildImageReference$1 = ({ type, alt, referenceType, identifier, label, }) => {
return {
type,
alt,
referenceType,
identifier,
label,
children: [{ text: "" }],
};
};
const buildFootnote$1 = ({ type, children }, deco, overrides) => {
return {
type,
children: convertNodes$3(children, deco, overrides),
};
};
const buildFootnoteReference = ({ type, identifier, label, }) => {
return {
type,
identifier,
label,
children: [{ text: "" }],
};
};
const plugin$3 = function ({ overrides = {}, } = {}) {
this.Compiler = function (node) {
return mdastToSlate(node, overrides);
};
};
const slateToMdast = (node, overrides) => {
return buildMdastRoot(node, overrides);
};
const buildMdastRoot = (node, overrides) => {
return {
type: "root",
children: convertNodes$2(node.children, overrides),
};
};
const convertNodes$2 = (nodes, overrides) => {
const mdastNodes = [];
let textQueue = [];
for (let i = 0; i <= nodes.length; i++) {
const n = nodes[i];
if (n && isText(n)) {
textQueue.push(n);
}
else {
mdastNodes.push(...convertTexts(textQueue));
textQueue = [];
if (!n)
continue;
const node = buildMdastNode(n, overrides);
if (node) {
mdastNodes.push(node);
}
}
}
return mdastNodes;
};
const convertTexts = (slateTexts) => {
const mdastTexts = [];
const starts = [];
let ends = [];
let textTemp = "";
for (let j = 0; j < slateTexts.length; j++) {
const cur = slateTexts[j];
textTemp += cur.text;
const prevStarts = starts.slice();
const prevEnds = ends.slice();
const prev = slateTexts[j - 1];
const next = slateTexts[j + 1];
ends = [];
[
"emphasis",
"strong",
"delete",
// inlineCode should be last because of the spec in mdast
// https://github.com/inokawa/remark-slate-transformer/issues/145
"inlineCode",
].forEach((k) => {
if (cur[k]) {
if (!prev || !prev[k]) {
starts.push(k);
}
if (!next || !next[k]) {
ends.push(k);
}
}
});
const endsToRemove = starts.reduce((acc, k, kIndex) => {
if (ends.includes(k)) {
acc.push({ key: k, index: kIndex });
}
return acc;
}, []);
if (starts.length > 0) {
let bef = "";
let aft = "";
if (endsToRemove.length === 1 &&
(prevStarts.toString() !== starts.toString() ||
// https://github.com/inokawa/remark-slate-transformer/issues/90
(prevEnds.includes("emphasis") && ends.includes("strong"))) &&
starts.length - endsToRemove.length === 0) {
while (textTemp.startsWith(" ")) {
bef += " ";
textTemp = textTemp.slice(1);
}
while (textTemp.endsWith(" ")) {
aft += " ";
textTemp = textTemp.slice(0, -1);
}
}
let res = {
type: "text",
value: textTemp,
};
textTemp = "";
const startsReversed = starts.slice().reverse();
startsReversed.forEach((k) => {
switch (k) {
case "inlineCode":
res = {
type: k,
value: res.value,
};
break;
case "strong":
case "emphasis":
case "delete":
res = {
type: k,
children: [res],
};
break;
default:
unreachable();
break;
}
});
const arr = [];
if (bef.length > 0) {
arr.push({ type: "text", value: bef });
}
arr.push(res);
if (aft.length > 0) {
arr.push({ type: "text", value: aft });
}
mdastTexts.push(...arr);
}
if (endsToRemove.length > 0) {
endsToRemove.reverse().forEach((e) => {
starts.splice(e.index, 1);
});
}
else {
mdastTexts.push({ type: "text", value: textTemp });
textTemp = "";
}
}
if (textTemp) {
mdastTexts.push({ type: "text", value: textTemp });
textTemp = "";
}
return mergeTexts(mdastTexts);
};
const buildMdastNode = (node, overrides) => {
var _a;
const customNode = (_a = overrides[node.type]) === null || _a === void 0 ? void 0 : _a.call(overrides, node, (children) => convertNodes$2(children, overrides));
if (customNode != null) {
return customNode;
}
switch (node.type) {
case "paragraph":
return buildParagraph(node, overrides);
case "heading":
return buildHeading(node, overrides);
case "thematicBreak":
return buildThematicBreak(node);
case "blockquote":
return buildBlockquote(node, overrides);
case "list":
return buildList(node, overrides);
case "listItem":
return buildListItem(node, overrides);
case "table":
return buildTable(node, overrides);
case "tableRow":
return buildTableRow(node, overrides);
case "tableCell":
return buildTableCell(node, overrides);
case "html":
return buildHtml(node);
case "code":
return buildCode(node);
case "yaml":
return buildYaml(node);
case "toml":
return buildToml(node);
case "definition":
return buildDefinition(node);
case "footnoteDefinition":
return buildFootnoteDefinition(node, overrides);
case "break":
return buildBreak(node);
case "link":
return buildLink(node, overrides);
case "image":
return buildImage(node);
case "linkReference":
return buildLinkReference(node, overrides);
case "imageReference":
return buildImageReference(node);
case "footnote":
return buildFootnote(node, overrides);
case "footnoteReference":
return creatFootnoteReference(node);
case "math":
return buildMath(node);
case "inlineMath":
return buildInlineMath(node);
default:
unreachable();
break;
}
return null;
};
const isText = (node) => {
return "text" in node;
};
const mergeTexts = (nodes) => {
const res = [];
for (const cur of nodes) {
const last = res[res.length - 1];
if (last && last.type === cur.type) {
if (last.type === "text") {
last.value += cur.value;
}
else if (last.type === "inlineCode") {
last.value += cur.value;
}
else {
last.children = mergeTexts(last.children.concat(cur.children));
}
}
else {
if (cur.type === "text" && cur.value === "")
continue;
res.push(cur);
}
}
return res;
};
const buildParagraph = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildHeading = ({ type, depth, children }, overrides) => {
return {
type,
depth,
children: convertNodes$2(children, overrides),
};
};
const buildThematicBreak = ({ type, }) => {
return {
type,
};
};
const buildBlockquote = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildList = ({ type, ordered, start, spread, children }, overrides) => {
return {
type,
ordered,
start,
spread,
children: convertNodes$2(children, overrides),
};
};
const buildListItem = ({ type, checked, spread, children }, overrides) => {
return {
type,
checked,
spread,
children: convertNodes$2(children, overrides),
};
};
const buildTable = ({ type, align, children }, overrides) => {
return {
type,
align,
children: convertNodes$2(children, overrides),
};
};
const buildTableRow = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildTableCell = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const buildHtml = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildCode = ({ type, lang, meta, children, }) => {
return {
type,
lang,
meta,
value: children[0].text,
};
};
const buildYaml = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildToml = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildDefinition = ({ type, identifier, label, url, title, }) => {
return {
type,
identifier,
label,
url,
title,
};
};
const buildFootnoteDefinition = ({ type, identifier, label, children }, overrides) => {
return {
type,
identifier,
label,
children: convertNodes$2(children, overrides),
};
};
const buildBreak = ({ type }) => {
return {
type,
};
};
const buildLink = ({ type, url, title, children }, overrides) => {
return {
type,
url,
title,
children: convertNodes$2(children, overrides),
};
};
const buildImage = ({ type, url, title, alt, }) => {
return {
type,
url,
title,
alt,
};
};
const buildLinkReference = ({ type, identifier, label, referenceType, children, }, overrides) => {
return {
type,
identifier,
label,
referenceType,
children: convertNodes$2(children, overrides),
};
};
const buildImageReference = ({ type, identifier, label, alt, referenceType, }) => {
return {
type,
identifier,
label,
alt,
referenceType,
};
};
const buildFootnote = ({ type, children }, overrides) => {
return {
type,
children: convertNodes$2(children, overrides),
};
};
const creatFootnoteReference = ({ type, identifier, label, }) => {
return {
type,
identifier,
label,
};
};
const buildMath = ({ type, children }) => {
return {
type,
value: children[0].text,
};
};
const buildInlineMath = ({ type, children, }) => {
return {
type,
value: children[0].text,
};
};
const plugin$2 = ({ overrides = {}, } = {}) => {
return function (node) {
return slateToMdast(node, overrides);
};
};
const slate047ToSlate = (nodes) => {
return convertNodes$1(nodes);
};
const convertNodes$1 = (nodes) => {
return nodes.reduce((acc, n) => {
const node = convert$1(n);
if (node) {
acc.push(node);
}
return acc;
}, []);
};
const convert$1 = (node) => {
switch (node.object) {
case "block": {
const { type, nodes, data } = node;
return Object.assign({ type, children: convertNodes$1(nodes) }, data);
}
case "inline": {
const { type, nodes, data } = node;
return Object.assign({ type, children: convertNodes$1(nodes) }, data);
}
case "text": {
const { text = "", marks } = node;
return Object.assign({ text }, marks === null || marks === void 0 ? void 0 : marks.reduce((acc, m) => {
acc[m.type] = true;
return acc;
}, {}));
}
}
return null;
};
const plugin$1 = function () {
return function (node) {
return slateToMdast({
type: "root",
children: slate047ToSlate(node.children),
}, {});
};
};
const slateToSlate047 = (nodes) => {
return {
object: "value",
document: {
object: "document",
nodes: convertNodes(nodes),
},
};
};
const convertNodes = (nodes) => {
return nodes.reduce((acc, n) => {
const node = convert(n);
if (node) {
acc.push(node);
}
return acc;
}, []);
};
const convert = (node) => {
if ("text" in node) {
const { text } = node, rest = __rest(node, ["text"]);
const marks = Object.keys(rest).reduce((acc, type) => {
if (!rest[type])
return acc;
acc.push({
object: "mark",
type,
});
return acc;
}, []);
const res = {
object: "text",
text,
marks,
};
return res;
}
switch (node.type) {
case "paragraph":
case "heading":
case "blockquote":
case "list":
case "listItem":
case "table":
case "tableRow":
case "tableCell":
case "html":
case "code":
case "yaml":
case "toml":
case "thematicBreak":
case "definition":
case "break":
case "math": {
const { type, children } = node, rest = __rest(node, ["type", "children"]);
const res = {
object: "block",
type,
nodes: convertNodes(children),
data: Object.assign({}, rest),
};
return res;
}
case "footnoteDefinition":
case "link":
case "linkReference":
case "image":
case "imageReference":
case "footnote":
case "footnoteReference":
case "inlineMath": {
const { type, children } = node, rest = __rest(node, ["type", "children"]);
const res = {
object: "inline",
type,
nodes: convertNodes(children),
data: Object.assign({}, rest),
};
return res;
}
}
return null;
};
const plugin = function () {
this.Compiler = function (node) {
return slateToSlate047(mdastToSlate(node, {}));
};
};
export { mdastToSlate, plugin$3 as remarkToSlate, plugin as remarkToSlateLegacy, slateToMdast, plugin$2 as slateToRemark, plugin$1 as slateToRemarkLegacy };
//# sourceMappingURL=index.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
import type { Literal } from "mdast";
export * from "mdast";
export * from "mdast-util-math/complex-types";
export interface TOML extends Literal {
type: "toml";
}
declare module "mdast" {
interface FrontmatterContentMap {
toml: TOML;
}
}

View File

@@ -0,0 +1,7 @@
import type * as slate from "slate";
export type Node = Editor | Element | Text;
export type Editor = slate.Editor;
export type Element = slate.Element & {
type: string;
};
export type Text = slate.Text;

View File

@@ -0,0 +1,9 @@
import type { Plugin } from "unified";
import type * as mdast from "../models/mdast";
import type * as slate from "../models/slate";
import { OverridedMdastBuilders } from "../transformers/mdast-to-slate";
export type Options = {
overrides?: OverridedMdastBuilders;
};
declare const plugin: Plugin<[Options?], mdast.Root, slate.Node[]>;
export default plugin;

View File

@@ -0,0 +1,3 @@
import type { Plugin } from "unified";
declare const plugin: Plugin<[]>;
export default plugin;

View File

@@ -0,0 +1,9 @@
import type { Plugin } from "unified";
import type * as mdast from "../models/mdast";
import type * as slate from "../models/slate";
import { OverridedSlateBuilders } from "../transformers/slate-to-mdast";
export type Options = {
overrides?: OverridedSlateBuilders;
};
declare const plugin: Plugin<[Options?], slate.Node, mdast.Root>;
export default plugin;

View File

@@ -0,0 +1,3 @@
import type { Plugin } from "unified";
declare const plugin: Plugin<[]>;
export default plugin;

View File

@@ -0,0 +1,197 @@
import type * as slate from "../../models/slate";
import type * as mdast from "../../models/mdast";
export type Decoration = Readonly<{
[key in (mdast.Emphasis | mdast.Strong | mdast.Delete | mdast.InlineCode)["type"]]?: true;
}>;
export type OverridedMdastBuilders = {
[key in mdast.Content["type"]]?: MdastBuilder<key>;
} & ({
[key: string]: MdastBuilder<typeof key>;
} | {});
export type MdastBuilder<T extends string> = (node: T extends mdast.Content["type"] ? Extract<mdast.Content, {
type: T;
}> : unknown, next: (children: any[]) => any) => object | undefined;
export declare const mdastToSlate: (node: mdast.Root, overrides: OverridedMdastBuilders) => slate.Node[];
export type Paragraph = ReturnType<typeof buildParagraph>;
declare const buildParagraph: ({ type, children }: mdast.Paragraph, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "paragraph";
children: slate.Node[];
};
export type Heading = ReturnType<typeof buildHeading>;
declare const buildHeading: ({ type, children, depth }: mdast.Heading, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "heading";
depth: 3 | 1 | 2 | 4 | 5 | 6;
children: slate.Node[];
};
export type ThematicBreak = ReturnType<typeof buildThematicBreak>;
declare const buildThematicBreak: ({ type }: mdast.ThematicBreak) => {
type: "thematicBreak";
children: {
text: string;
}[];
};
export type Blockquote = ReturnType<typeof buildBlockquote>;
declare const buildBlockquote: ({ type, children }: mdast.Blockquote, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "blockquote";
children: slate.Node[];
};
export type List = ReturnType<typeof buildList>;
declare const buildList: ({ type, children, ordered, start, spread }: mdast.List, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "list";
children: slate.Node[];
ordered: boolean | null | undefined;
start: number | null | undefined;
spread: boolean | null | undefined;
};
export type ListItem = ReturnType<typeof buildListItem>;
declare const buildListItem: ({ type, children, checked, spread }: mdast.ListItem, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "listItem";
children: slate.Node[];
checked: boolean | null | undefined;
spread: boolean | null | undefined;
};
export type Table = ReturnType<typeof buildTable>;
declare const buildTable: ({ type, children, align }: mdast.Table, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "table";
children: slate.Node[];
align: mdast.AlignType[] | null | undefined;
};
export type TableRow = ReturnType<typeof buildTableRow>;
declare const buildTableRow: ({ type, children }: mdast.TableRow, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "tableRow";
children: slate.Node[];
};
export type TableCell = ReturnType<typeof buildTableCell>;
declare const buildTableCell: ({ type, children }: mdast.TableCell, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "tableCell";
children: slate.Node[];
};
export type Html = ReturnType<typeof buildHtml>;
declare const buildHtml: ({ type, value }: mdast.HTML) => {
type: "html";
children: {
text: string;
}[];
};
export type Code = ReturnType<typeof buildCode>;
declare const buildCode: ({ type, value, lang, meta }: mdast.Code) => {
type: "code";
lang: string | null | undefined;
meta: string | null | undefined;
children: {
text: string;
}[];
};
export type Yaml = ReturnType<typeof buildYaml>;
declare const buildYaml: ({ type, value }: mdast.YAML) => {
type: "yaml";
children: {
text: string;
}[];
};
export type Toml = ReturnType<typeof buildToml>;
declare const buildToml: ({ type, value }: mdast.TOML) => {
type: "toml";
children: {
text: string;
}[];
};
export type Math = ReturnType<typeof buildMath>;
declare const buildMath: ({ type, value }: mdast.Math) => {
type: "math";
children: {
text: string;
}[];
};
export type InlineMath = ReturnType<typeof buildInlineMath>;
declare const buildInlineMath: ({ type, value }: mdast.InlineMath) => {
type: "inlineMath";
children: {
text: string;
}[];
};
export type Definition = ReturnType<typeof buildDefinition>;
declare const buildDefinition: ({ type, identifier, label, url, title, }: mdast.Definition) => {
type: "definition";
identifier: string;
label: string | null | undefined;
url: string;
title: string | null | undefined;
children: {
text: string;
}[];
};
export type FootnoteDefinition = ReturnType<typeof buildFootnoteDefinition>;
declare const buildFootnoteDefinition: ({ type, children, identifier, label }: mdast.FootnoteDefinition, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "footnoteDefinition";
children: slate.Node[];
identifier: string;
label: string | null | undefined;
};
export type Text = ReturnType<typeof buildText>;
declare const buildText: (text: string, deco: Decoration) => {
text: string;
emphasis?: true;
strong?: true;
delete?: true;
inlineCode?: true;
};
export type Break = ReturnType<typeof buildBreak>;
declare const buildBreak: ({ type }: mdast.Break) => {
type: "break";
children: {
text: string;
}[];
};
export type Link = ReturnType<typeof buildLink>;
declare const buildLink: ({ type, children, url, title }: mdast.Link, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "link";
children: slate.Node[];
url: string;
title: string | null | undefined;
};
export type Image = ReturnType<typeof buildImage>;
declare const buildImage: ({ type, url, title, alt }: mdast.Image) => {
type: "image";
url: string;
title: string | null | undefined;
alt: string | null | undefined;
children: {
text: string;
}[];
};
export type LinkReference = ReturnType<typeof buildLinkReference>;
declare const buildLinkReference: ({ type, children, referenceType, identifier, label }: mdast.LinkReference, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "linkReference";
children: slate.Node[];
referenceType: mdast.ReferenceType;
identifier: string;
label: string | null | undefined;
};
export type ImageReference = ReturnType<typeof buildImageReference>;
declare const buildImageReference: ({ type, alt, referenceType, identifier, label, }: mdast.ImageReference) => {
type: "imageReference";
alt: string | null | undefined;
referenceType: mdast.ReferenceType;
identifier: string;
label: string | null | undefined;
children: {
text: string;
}[];
};
export type Footnote = ReturnType<typeof buildFootnote>;
declare const buildFootnote: ({ type, children }: mdast.Footnote, deco: Decoration, overrides: OverridedMdastBuilders) => {
type: "footnote";
children: slate.Node[];
};
export type FootnoteReference = ReturnType<typeof buildFootnoteReference>;
declare const buildFootnoteReference: ({ type, identifier, label, }: mdast.FootnoteReference) => {
type: "footnoteReference";
identifier: string;
label: string | null | undefined;
children: {
text: string;
}[];
};
export type SlateNode = Paragraph | Heading | ThematicBreak | Blockquote | List | ListItem | Table | TableRow | TableCell | Html | Code | Yaml | Toml | Definition | FootnoteDefinition | Text | Break | Link | Image | LinkReference | ImageReference | Footnote | FootnoteReference | Math | InlineMath;
export {};

View File

@@ -0,0 +1,7 @@
import type * as slate from "../../models/slate";
import type * as mdast from "../../models/mdast";
export type OverridedSlateBuilders = {
[key: string]: SlateBuilder;
};
export type SlateBuilder = (node: unknown, next: (children: any[]) => any) => object | undefined;
export declare const slateToMdast: (node: slate.Node, overrides: OverridedSlateBuilders) => mdast.Root;

View File

@@ -0,0 +1,3 @@
import type { ValueJSON } from "slate_legacy";
import type { SlateNode } from "./mdast-to-slate";
export declare const slateToSlate047: (nodes: SlateNode[]) => ValueJSON;

View File

@@ -0,0 +1,3 @@
import type { BlockJSON, InlineJSON, TextJSON } from "slate_legacy";
import type * as slate from "../models/slate";
export declare const slate047ToSlate: (nodes: (BlockJSON | InlineJSON | TextJSON)[]) => slate.Node[];

1
node_modules/remark-slate-transformer/lib/utils.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export declare const unreachable: (_: never) => never;