@portabletext/markdown 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -10
- package/dist/index.js.map +1 -1
- package/package.json +4 -6
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../node_modules/.pnpm/@portabletext+types@4.0.2/node_modules/@portabletext/types/dist/index.d.ts","../src/from-portable-text/renderers/block-spacing.ts","../src/from-portable-text/types.ts","../src/from-portable-text/portable-text-to-markdown.ts","../src/to-portable-text/matchers.ts","../src/to-portable-text/markdown-to-portable-text.ts","../src/apply-markdown-edit.ts","../src/from-portable-text/renderers/hard-break.ts","../src/from-portable-text/renderers/list-item.ts","../src/from-portable-text/renderers/style.ts","../src/from-portable-text/renderers/marks.ts","../src/from-portable-text/renderers/type.ts"],"x_google_ignoreList":[0],"mappings":";;;;;;UAKU;;;;;EAKR;;;;;EAKA;;;;;;KAMG,uBAAuB;GACzB;;;;;;;;;;;;;UAaO,oBAAkB,UAAU,6BAA6B,4BAA4B,UAAU,cAAc,uBAAuB,kBAAkB,mBAAmB,wBAAwB,mBAAmB,kCAAkC;;;;;;;EAO9P;;;;;;EAMA;;;;;EAKA,UAAU;;;;;;EAMV,WAAW;;;;;EAKX,QAAQ;;;;;EAKR,WAAW;;;;EAIX;;;;;;;;;;;UAWQ,0BAA0B,UAAU,6BAA6B,4BAA4B,UAAU,cAAc,kBAAkB,mBAAmB,wBAAwB,mBAAmB,kCAAkC,KAAK,oBAAkB,GAAG,GAAG,GAAG;EAC/Q,UAAU;;;;;;KAMP;;;;;KAKA;;;;;;;UAOK;;;;GAIP;;;;;EAKD;;;;EAIA;;;;;;UAMQ;;;;EAIR;;;;EAIA;;;;EAIA;;;;;;EAMA;;;;;KCnIU,wBAAwB;EAClC,SAAS;EACT,MAAM;;;;;cAMK,6BAA6B;KCRrC,YAAY,kBAAkB,KAAK,eAAe,QACpD,KAAK,KAAK;;;;;;KAQD,qBAAqB,MAC/B,SAAS,4BAA4B;;;;;;KAQ3B,4BAA4B,qBAAqB;;;;;;KAOjD,+BACV,qBAAqB;;;;;;KAOX,yBAAyB,UAAU,sBAC7C,SAAS,gCAAgC;;;;KAM/B,yBAAyB,UAAU,sBAC7C,SAAS,gCAAgC;;;;;;;UAS1B;;;;;;;;;;;EAWf,OAAO,eAAe;;;;;;;EAQtB,OAAO,eAAe;;;;;;;;;EAUtB,OACI,YAAY,wBAAwB,yCACpC;;;;;;;;;EAUJ,UACI,YACE,0BACA,4CAEF;;;;;EAMJ;;;;;EAMA,aAAa;;;;;EAMb,aAAa,qBAAqB;;;;;EAMlC,mBAAmB,qBAAqB;;;;;EAMxC,iBAAiB,qBAAqB;;;;;;;UAQvB,4BAA4B;;;;EAI3C,OAAO;;;;EAKP;;;;EAKA;;;;;;;;EASA;;;;;EAMA;;;;;;EAOA;;;;;;EAOA,YAAY;;;;;;;KAQF,gCAAgC,KAAK,KAC/C,4BAA4B;;;;;;UASb,gCACf,UAAU,cAAc;;;;EAKxB,QAAQ;;;;;;;;;EAUR;;;;EAKA;;;;EAKA;;;;;;;;EASA;;;;;;EAOA,YAAY;;;;;;KAOF;GACN;EAAuB;IACzB;KAEQ,cAAc,UAAU,aAClC,SAAS,aAAa;UAGP,aAAa;EAC5B,MAAM;EACN;EACA;EACA,YAAY;;KCpLT,YAAU,QAAQ;EACrB,eAAe;;;;;;;;;;;;;EAcf,SAAS;;;;;iBAMK,uBACd,cAAc,cAAc,sBAAoB,sBAChD,QAAQ,MAAM,QAAQ,UAAS;;;;;;KC9BrB,kBACV;EAEA;IAAU,QAAQ;;;;;;;;KAwBR,qBACV;EAEA;IAAU,QAAQ;;;;;;;;KAwBR,sBACV;EAEA;IAAU,QAAQ;;;;;;;;KAwBR,kBACV,eAAe,0BAA0B,4BAEzC,SACA;EAEA;IAAU,QAAQ;IAAQ;;EAC1B,OAAO;MACH;;;;;;KAuBM,cACV,eAAe,0BAA0B,4BAEzC,SACA,OACA;EAEA;IAAU,QAAQ;IAAQ;;EAC1B,OAAO;EACP;MACI;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../node_modules/.pnpm/@portabletext+types@4.0.2/node_modules/@portabletext/types/dist/index.d.ts","../src/from-portable-text/renderers/block-spacing.ts","../src/from-portable-text/types.ts","../src/from-portable-text/portable-text-to-markdown.ts","../src/to-portable-text/matchers.ts","../src/to-portable-text/markdown-to-portable-text.ts","../src/apply-markdown-edit.ts","../src/from-portable-text/renderers/hard-break.ts","../src/from-portable-text/renderers/list-item.ts","../src/from-portable-text/renderers/style.ts","../src/from-portable-text/renderers/marks.ts","../src/from-portable-text/renderers/type.ts"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cleanupEfficiency, makeDiff } from "@sanity/diff-match-patch";
|
|
2
2
|
import { compileSchema, defineSchema, isSpan, isTextBlock, isTypedObject } from "@portabletext/schema";
|
|
3
3
|
import { buildMarksTree, isPortableTextBlock, isPortableTextListItemBlock, isPortableTextSpan, isPortableTextToolkitSpan, isPortableTextToolkitTextNode, spanToPlainText } from "@portabletext/toolkit";
|
|
4
|
-
import LinkifyIt from "linkify-it";
|
|
4
|
+
import { LinkifyIt } from "linkify-it";
|
|
5
5
|
import markdownit from "markdown-it";
|
|
6
6
|
import { alert } from "@mdit/plugin-alert";
|
|
7
7
|
function defaultKeyGenerator() {
|
|
@@ -121,7 +121,10 @@ function buildListIndexMap(blocks) {
|
|
|
121
121
|
* The CommonMark ASCII punctuation set. Only these characters can be
|
|
122
122
|
* backslash-escaped into a literal without changing the parsed text.
|
|
123
123
|
*/
|
|
124
|
-
const ASCII_PUNCTUATION = /[!-/:-@[-`{-~]/, ENTITY_REFERENCE = /&(?:[a-zA-Z][a-zA-Z0-9]*|#[0-9]+|#[xX][0-9a-fA-F]+);/g, BACKSLASH_BEFORE_PUNCTUATION = RegExp(`\\\\(?=${ASCII_PUNCTUATION.source})`, "g"), TILDE_RUN = /~{2,}/g, HTML_LIKE_ANGLE_BRACKET = /<(?=[a-zA-Z/!?])/g, BRACKET_BEFORE_LINK_OPEN = /\](?=[([])/g, UNICODE_PUNCTUATION_OR_SYMBOL = /^(?:\p{P}|\p{S})$/u, linkify = new LinkifyIt(
|
|
124
|
+
const ASCII_PUNCTUATION = /[!-/:-@[-`{-~]/, ENTITY_REFERENCE = /&(?:[a-zA-Z][a-zA-Z0-9]*|#[0-9]+|#[xX][0-9a-fA-F]+);/g, BACKSLASH_BEFORE_PUNCTUATION = RegExp(`\\\\(?=${ASCII_PUNCTUATION.source})`, "g"), TILDE_RUN = /~{2,}/g, HTML_LIKE_ANGLE_BRACKET = /<(?=[a-zA-Z/!?])/g, BRACKET_BEFORE_LINK_OPEN = /\](?=[([])/g, UNICODE_PUNCTUATION_OR_SYMBOL = /^(?:\p{P}|\p{S})$/u, linkify = new LinkifyIt({
|
|
125
|
+
fuzzyLink: !0,
|
|
126
|
+
urlAuth: !0
|
|
127
|
+
});
|
|
125
128
|
/**
|
|
126
129
|
* Plans the escaped replacement for every plain-text leaf a block's children
|
|
127
130
|
* will produce, in the exact left-to-right order `renderText` visits them
|
|
@@ -698,7 +701,7 @@ const DefaultImageRenderer = (options) => {
|
|
|
698
701
|
if (!isImageShaped(options.value) || !linkValidator(options.value.src)) return DefaultUnknownTypeRenderer(options);
|
|
699
702
|
let alt = escapeImageAndLinkText(options.value.alt ?? ""), title = options.value.title ? ` "${escapeImageAndLinkTitle(options.value.title)}"` : "";
|
|
700
703
|
return ``;
|
|
701
|
-
},
|
|
704
|
+
}, md = new markdownit(), linkValidator = (url) => md.validateLink(url);
|
|
702
705
|
function isImageShaped(value) {
|
|
703
706
|
let image = value;
|
|
704
707
|
return typeof image?.src == "string" && (image.alt == null || typeof image.alt == "string") && (image.title == null || typeof image.title == "string");
|
|
@@ -1194,6 +1197,17 @@ const codeBlockMatcher = ({ context, value, isInline }) => {
|
|
|
1194
1197
|
}
|
|
1195
1198
|
};
|
|
1196
1199
|
/**
|
|
1200
|
+
* Reads a token attribute as a string. markdown-it's own `Token#attrs` type
|
|
1201
|
+
* also allows numeric values, for attributes like an ordered list's
|
|
1202
|
+
* `start`, but the attributes this file reads (`src`, `href`, `title`,
|
|
1203
|
+
* `style`) are always strings, set by markdown-it's own link/image/table
|
|
1204
|
+
* parsing.
|
|
1205
|
+
*/
|
|
1206
|
+
function stringAttr(token, name) {
|
|
1207
|
+
let value = token.attrGet(name);
|
|
1208
|
+
return typeof value == "string" ? value : void 0;
|
|
1209
|
+
}
|
|
1210
|
+
/**
|
|
1197
1211
|
* Reads GFM column alignment from a markdown-it cell token's `style`
|
|
1198
1212
|
* attribute. Tolerates other CSS declarations sharing the value.
|
|
1199
1213
|
*/
|
|
@@ -1356,11 +1370,16 @@ function markdownToPortableText(markdown, options) {
|
|
|
1356
1370
|
message: degradationMessage["fields-dropped"](names, dropped.construct),
|
|
1357
1371
|
line
|
|
1358
1372
|
});
|
|
1359
|
-
},
|
|
1373
|
+
}, md = markdownit({
|
|
1360
1374
|
html: !0,
|
|
1361
1375
|
linkify: !0,
|
|
1362
1376
|
typographer: !1
|
|
1363
|
-
}).enable(["strikethrough", "table"]).use(alert)
|
|
1377
|
+
}).enable(["strikethrough", "table"]).use(alert);
|
|
1378
|
+
md.linkify.set({
|
|
1379
|
+
fuzzyLink: !0,
|
|
1380
|
+
urlAuth: !0
|
|
1381
|
+
});
|
|
1382
|
+
let tokens = md.parse(markdown, {}), taskCheckedByListItemIndex = /* @__PURE__ */ new Map(), taskItemTextByListItemIndex = /* @__PURE__ */ new Map();
|
|
1364
1383
|
for (let i = 0; i < tokens.length; i++) {
|
|
1365
1384
|
if (tokens[i]?.type !== "list_item_open") continue;
|
|
1366
1385
|
let inlineIndex = -1;
|
|
@@ -1879,7 +1898,7 @@ function markdownToPortableText(markdown, options) {
|
|
|
1879
1898
|
break;
|
|
1880
1899
|
case "th_open":
|
|
1881
1900
|
case "td_open": {
|
|
1882
|
-
currentTable && inTableHead && token.type === "th_open" && currentTable.alignment.push(extractAlignmentFromStyleAttr(token
|
|
1901
|
+
currentTable && inTableHead && token.type === "th_open" && currentTable.alignment.push(extractAlignmentFromStyleAttr(stringAttr(token, "style") ?? null));
|
|
1883
1902
|
let style = consolidatedOptions.block.normal({ context: { schema: consolidatedOptions.schema } });
|
|
1884
1903
|
style ? startBlock(style) : (reportStyleFallback("normal", currentTable?.line), startBlock("normal"));
|
|
1885
1904
|
break;
|
|
@@ -1935,7 +1954,7 @@ function markdownToPortableText(markdown, options) {
|
|
|
1935
1954
|
if (token.children?.length === 1 && token.children[0]?.type === "image") {
|
|
1936
1955
|
let imageToken = token.children[0];
|
|
1937
1956
|
if (!imageToken) break;
|
|
1938
|
-
let src = imageToken
|
|
1957
|
+
let src = stringAttr(imageToken, "src") || "", alt = unescapeImageAndLinkText(imageToken.content || ""), title = stringAttr(imageToken, "title"), blockImageObject = consolidatedOptions.types.image({
|
|
1939
1958
|
context: {
|
|
1940
1959
|
schema: consolidatedOptions.schema,
|
|
1941
1960
|
keyGenerator: consolidatedOptions.keyGenerator
|
|
@@ -2108,7 +2127,7 @@ function markdownToPortableText(markdown, options) {
|
|
|
2108
2127
|
break;
|
|
2109
2128
|
}
|
|
2110
2129
|
case "link_open": {
|
|
2111
|
-
let href = childToken
|
|
2130
|
+
let href = stringAttr(childToken, "href");
|
|
2112
2131
|
if (!href) {
|
|
2113
2132
|
let missingHrefSnippet = truncateSnippet(collectInlineText(inlineChildren, childIndex, "link_open", "link_close"));
|
|
2114
2133
|
report({
|
|
@@ -2119,7 +2138,7 @@ function markdownToPortableText(markdown, options) {
|
|
|
2119
2138
|
});
|
|
2120
2139
|
break;
|
|
2121
2140
|
}
|
|
2122
|
-
let title = childToken
|
|
2141
|
+
let title = stringAttr(childToken, "title"), linkObject = consolidatedOptions.marks.link({
|
|
2123
2142
|
context: {
|
|
2124
2143
|
schema: consolidatedOptions.schema,
|
|
2125
2144
|
keyGenerator: consolidatedOptions.keyGenerator
|
|
@@ -2155,7 +2174,7 @@ function markdownToPortableText(markdown, options) {
|
|
|
2155
2174
|
break;
|
|
2156
2175
|
}
|
|
2157
2176
|
case "image": {
|
|
2158
|
-
let src = childToken
|
|
2177
|
+
let src = stringAttr(childToken, "src") || "", alt = unescapeImageAndLinkText(childToken.content || ""), inlineImageObject = consolidatedOptions.types.image({
|
|
2159
2178
|
context: {
|
|
2160
2179
|
schema: consolidatedOptions.schema,
|
|
2161
2180
|
keyGenerator: consolidatedOptions.keyGenerator
|