This commit is contained in:
8
node_modules/remark-slate-transformer/lib/index.d.ts
generated
vendored
Normal file
8
node_modules/remark-slate-transformer/lib/index.d.ts
generated
vendored
Normal 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
820
node_modules/remark-slate-transformer/lib/index.js
generated
vendored
Normal 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
|
||||
1
node_modules/remark-slate-transformer/lib/index.js.map
generated
vendored
Normal file
1
node_modules/remark-slate-transformer/lib/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
813
node_modules/remark-slate-transformer/lib/index.mjs
generated
vendored
Normal file
813
node_modules/remark-slate-transformer/lib/index.mjs
generated
vendored
Normal 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
|
||||
1
node_modules/remark-slate-transformer/lib/index.mjs.map
generated
vendored
Normal file
1
node_modules/remark-slate-transformer/lib/index.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
11
node_modules/remark-slate-transformer/lib/models/mdast.d.ts
generated
vendored
Normal file
11
node_modules/remark-slate-transformer/lib/models/mdast.d.ts
generated
vendored
Normal 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;
|
||||
}
|
||||
}
|
||||
7
node_modules/remark-slate-transformer/lib/models/slate.d.ts
generated
vendored
Normal file
7
node_modules/remark-slate-transformer/lib/models/slate.d.ts
generated
vendored
Normal 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;
|
||||
9
node_modules/remark-slate-transformer/lib/plugins/remark-to-slate.d.ts
generated
vendored
Normal file
9
node_modules/remark-slate-transformer/lib/plugins/remark-to-slate.d.ts
generated
vendored
Normal 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;
|
||||
3
node_modules/remark-slate-transformer/lib/plugins/remark-to-slate0.47.d.ts
generated
vendored
Normal file
3
node_modules/remark-slate-transformer/lib/plugins/remark-to-slate0.47.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import type { Plugin } from "unified";
|
||||
declare const plugin: Plugin<[]>;
|
||||
export default plugin;
|
||||
9
node_modules/remark-slate-transformer/lib/plugins/slate-to-remark.d.ts
generated
vendored
Normal file
9
node_modules/remark-slate-transformer/lib/plugins/slate-to-remark.d.ts
generated
vendored
Normal 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;
|
||||
3
node_modules/remark-slate-transformer/lib/plugins/slate0.47-to-remark.d.ts
generated
vendored
Normal file
3
node_modules/remark-slate-transformer/lib/plugins/slate0.47-to-remark.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import type { Plugin } from "unified";
|
||||
declare const plugin: Plugin<[]>;
|
||||
export default plugin;
|
||||
197
node_modules/remark-slate-transformer/lib/transformers/mdast-to-slate/index.d.ts
generated
vendored
Normal file
197
node_modules/remark-slate-transformer/lib/transformers/mdast-to-slate/index.d.ts
generated
vendored
Normal 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 {};
|
||||
7
node_modules/remark-slate-transformer/lib/transformers/slate-to-mdast/index.d.ts
generated
vendored
Normal file
7
node_modules/remark-slate-transformer/lib/transformers/slate-to-mdast/index.d.ts
generated
vendored
Normal 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;
|
||||
3
node_modules/remark-slate-transformer/lib/transformers/slate-to-slate0.47.d.ts
generated
vendored
Normal file
3
node_modules/remark-slate-transformer/lib/transformers/slate-to-slate0.47.d.ts
generated
vendored
Normal 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;
|
||||
3
node_modules/remark-slate-transformer/lib/transformers/slate0.47-to-slate.d.ts
generated
vendored
Normal file
3
node_modules/remark-slate-transformer/lib/transformers/slate0.47-to-slate.d.ts
generated
vendored
Normal 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
1
node_modules/remark-slate-transformer/lib/utils.d.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export declare const unreachable: (_: never) => never;
|
||||
Reference in New Issue
Block a user