markdown-it-any-block 3.2.10-beta5 → 3.2.11
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/README.md +2 -0
- package/dist/mdit-any-block.cjs +189 -201
- package/dist/mdit-any-block.cjs.map +1 -1
- package/dist/mdit-any-block.js +189 -201
- package/dist/mdit-any-block.js.map +1 -1
- package/index_mdit.ts +87 -60
- package/package.json +50 -50
- package/styles.css +9 -1
package/dist/mdit-any-block.js
CHANGED
|
@@ -22,106 +22,6 @@ async function jsdom_init() {
|
|
|
22
22
|
dom.window.scrollTo = () => {
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
function container_plugin(md, name2, options) {
|
|
26
|
-
function validateDefault(params) {
|
|
27
|
-
return params.trim().split(" ", 2)[0] === name2;
|
|
28
|
-
}
|
|
29
|
-
function renderDefault(tokens, idx, _options, env, slf) {
|
|
30
|
-
if (tokens[idx].nesting === 1) {
|
|
31
|
-
tokens[idx].attrJoin("class", name2);
|
|
32
|
-
}
|
|
33
|
-
return slf.renderToken(tokens, idx, _options, env, slf);
|
|
34
|
-
}
|
|
35
|
-
options = options || {};
|
|
36
|
-
const min_markers = 3;
|
|
37
|
-
const marker_str = options.marker || ":";
|
|
38
|
-
const marker_char = marker_str.charCodeAt(0);
|
|
39
|
-
const marker_len = marker_str.length;
|
|
40
|
-
const validate = options.validate || validateDefault;
|
|
41
|
-
const render2 = options.render || renderDefault;
|
|
42
|
-
function container(state, startLine, endLine, silent) {
|
|
43
|
-
let pos;
|
|
44
|
-
let auto_closed = false;
|
|
45
|
-
let start = state.bMarks[startLine] + state.tShift[startLine];
|
|
46
|
-
let max = state.eMarks[startLine];
|
|
47
|
-
if (marker_char !== state.src.charCodeAt(start)) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
for (pos = start + 1; pos <= max; pos++) {
|
|
51
|
-
if (marker_str[(pos - start) % marker_len] !== state.src[pos]) {
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
const marker_count = Math.floor((pos - start) / marker_len);
|
|
56
|
-
if (marker_count < min_markers) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
pos -= (pos - start) % marker_len;
|
|
60
|
-
const markup = state.src.slice(start, pos);
|
|
61
|
-
const params = state.src.slice(pos, max);
|
|
62
|
-
if (!validate(params, markup)) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
if (silent) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
let nextLine = startLine;
|
|
69
|
-
for (; ; ) {
|
|
70
|
-
nextLine++;
|
|
71
|
-
if (nextLine >= endLine) {
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
start = state.bMarks[nextLine] + state.tShift[nextLine];
|
|
75
|
-
max = state.eMarks[nextLine];
|
|
76
|
-
if (start < max && state.sCount[nextLine] < state.blkIndent) {
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
if (marker_char !== state.src.charCodeAt(start)) {
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (state.sCount[nextLine] - state.blkIndent >= 4) {
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
for (pos = start + 1; pos <= max; pos++) {
|
|
86
|
-
if (marker_str[(pos - start) % marker_len] !== state.src[pos]) {
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (Math.floor((pos - start) / marker_len) < marker_count) {
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
pos -= (pos - start) % marker_len;
|
|
94
|
-
pos = state.skipSpaces(pos);
|
|
95
|
-
if (pos < max) {
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
auto_closed = true;
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
const old_parent = state.parentType;
|
|
102
|
-
const old_line_max = state.lineMax;
|
|
103
|
-
state.parentType = "container";
|
|
104
|
-
state.lineMax = nextLine;
|
|
105
|
-
const token_o = state.push("container_" + name2 + "_open", "div", 1);
|
|
106
|
-
token_o.markup = markup;
|
|
107
|
-
token_o.block = true;
|
|
108
|
-
token_o.info = params;
|
|
109
|
-
token_o.map = [startLine, nextLine];
|
|
110
|
-
state.md.block.tokenize(state, startLine + 1, nextLine);
|
|
111
|
-
const token_c = state.push("container_" + name2 + "_close", "div", -1);
|
|
112
|
-
token_c.markup = state.src.slice(start, pos);
|
|
113
|
-
token_c.block = true;
|
|
114
|
-
state.parentType = old_parent;
|
|
115
|
-
state.lineMax = old_line_max;
|
|
116
|
-
state.line = nextLine + (auto_closed ? 1 : 0);
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
md.block.ruler.before("fence", "container_" + name2, container, {
|
|
120
|
-
alt: ["paragraph", "reference", "blockquote", "list"]
|
|
121
|
-
});
|
|
122
|
-
md.renderer.rules["container_" + name2 + "_open"] = render2;
|
|
123
|
-
md.renderer.rules["container_" + name2 + "_close"] = render2;
|
|
124
|
-
}
|
|
125
25
|
var ABConvert_IOEnum = /* @__PURE__ */ ((ABConvert_IOEnum2) => {
|
|
126
26
|
ABConvert_IOEnum2["text"] = "string";
|
|
127
27
|
ABConvert_IOEnum2["el"] = "HTMLElement";
|
|
@@ -2009,13 +1909,16 @@ class DirProcess {
|
|
|
2009
1909
|
* 第一列等级为0、没有分叉
|
|
2010
1910
|
*/
|
|
2011
1911
|
static dtdata2dt(list_tableInfo, div, modeT, is_folder = false) {
|
|
1912
|
+
const div2 = document.createElement("div");
|
|
1913
|
+
div.appendChild(div2);
|
|
1914
|
+
div2.classList.add("ab-list-table-parent");
|
|
1915
|
+
let table, thead, tbody;
|
|
2012
1916
|
{
|
|
2013
|
-
|
|
2014
|
-
|
|
1917
|
+
table = document.createElement("table");
|
|
1918
|
+
div2.appendChild(table);
|
|
2015
1919
|
table.classList.add("ab-table", "ab-list-table");
|
|
2016
1920
|
if (is_folder) table.classList.add("ab-table-folder");
|
|
2017
1921
|
if (modeT) table.setAttribute("modeT", "true");
|
|
2018
|
-
let thead, tbody;
|
|
2019
1922
|
{
|
|
2020
1923
|
if (list_tableInfo[0].content.indexOf("< ") == 0) {
|
|
2021
1924
|
thead = document.createElement("thead");
|
|
@@ -2071,10 +1974,12 @@ class DirProcess {
|
|
|
2071
1974
|
td_cell.classList.add("ab-list-table-witharrow");
|
|
2072
1975
|
ABConvertManager.getInstance().m_renderMarkdownFn(cell_item.content, td_cell);
|
|
2073
1976
|
}
|
|
1977
|
+
}
|
|
1978
|
+
{
|
|
2074
1979
|
const l_tr = tbody.querySelectorAll("tr");
|
|
2075
1980
|
for (let i = 0; i < l_tr.length; i++) {
|
|
2076
|
-
|
|
2077
|
-
targetEl =
|
|
1981
|
+
const tr = l_tr[i];
|
|
1982
|
+
const targetEl = tr.querySelector(":scope>td:first-child") ?? tr;
|
|
2078
1983
|
if (ABCSetting.env == "obsidian" || ABCSetting.env == "obsidian-min") {
|
|
2079
1984
|
targetEl.onclick = () => {
|
|
2080
1985
|
const tr_level = Number(tr.getAttribute("tr_level"));
|
|
@@ -2093,57 +1998,106 @@ class DirProcess {
|
|
|
2093
1998
|
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold == "true" ? "false" : "true");
|
|
2094
1999
|
};
|
|
2095
2000
|
} else {
|
|
2096
|
-
targetEl.setAttribute("onclick", `
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2001
|
+
targetEl.setAttribute("onclick", ` const tr = (this.tagName == "TD") ? this.parentNode : this
|
|
2002
|
+
const l_tr = tr.parentNode.querySelectorAll("tr")
|
|
2003
|
+
const i = ${i}
|
|
2004
|
+
|
|
2005
|
+
const tr_level = Number(tr.getAttribute("tr_level"))
|
|
2006
|
+
if (isNaN(tr_level)) return
|
|
2007
|
+
const tr_isfold = tr.getAttribute("is_fold")
|
|
2008
|
+
if (!tr_isfold) return
|
|
2009
|
+
let flag_do_fold = false // 防止折叠最小层
|
|
2010
|
+
for (let j=i+1; j<l_tr.length; j++){
|
|
2011
|
+
const tr2 = l_tr[j]
|
|
2012
|
+
const tr_level2 = Number(tr2.getAttribute("tr_level"))
|
|
2013
|
+
if (isNaN(tr_level2)) break
|
|
2014
|
+
if (tr_level2<=tr_level) break
|
|
2015
|
+
(tr_isfold == "true") ? tr2.style.display = "" : tr2.style.display = "none"
|
|
2016
|
+
flag_do_fold = true
|
|
2017
|
+
}
|
|
2018
|
+
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold=="true"?"false":"true")
|
|
2114
2019
|
`);
|
|
2115
2020
|
}
|
|
2116
2021
|
}
|
|
2022
|
+
}
|
|
2023
|
+
{
|
|
2117
2024
|
const btn = document.createElement("button");
|
|
2118
|
-
|
|
2025
|
+
div2.appendChild(btn);
|
|
2119
2026
|
btn.classList.add("ab-table-fold");
|
|
2120
|
-
|
|
2027
|
+
const svgStr_fold = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-fold-vertical-icon lucide-fold-vertical"><path d="M12 22v-6"/><path d="M12 8V2"/><path d="M4 12H2"/><path d="M10 12H8"/><path d="M16 12h-2"/><path d="M22 12h-2"/><path d="m15 19-3-3-3 3"/><path d="m15 5-3 3-3-3"/></svg>`;
|
|
2028
|
+
const svgStr_unfold = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-unfold-vertical-icon lucide-unfold-vertical"><path d="M12 22v-6"/><path d="M12 8V2"/><path d="M4 12H2"/><path d="M10 12H8"/><path d="M16 12h-2"/><path d="M22 12h-2"/><path d="m15 19-3 3-3-3"/><path d="m15 5-3-3-3 3"/></svg>`;
|
|
2121
2029
|
btn.setAttribute("is_fold", "false");
|
|
2122
|
-
btn.
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
const
|
|
2126
|
-
(
|
|
2127
|
-
const
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2030
|
+
btn.innerHTML = svgStr_fold;
|
|
2031
|
+
if (ABCSetting.env == "obsidian" || ABCSetting.env == "obsidian-min") {
|
|
2032
|
+
btn.onclick = () => {
|
|
2033
|
+
const l_tr = table.querySelectorAll("tr");
|
|
2034
|
+
for (let i = 0; i < l_tr.length; i++) {
|
|
2035
|
+
const tr = l_tr[i];
|
|
2036
|
+
(() => {
|
|
2037
|
+
const tr_level = Number(tr.getAttribute("tr_level"));
|
|
2038
|
+
if (isNaN(tr_level)) return;
|
|
2039
|
+
const tr_isfold = btn.getAttribute("is_fold");
|
|
2040
|
+
if (!tr_isfold) return;
|
|
2041
|
+
let flag_do_fold = false;
|
|
2042
|
+
for (let j = i + 1; j < l_tr.length; j++) {
|
|
2043
|
+
const tr2 = l_tr[j];
|
|
2044
|
+
const tr_level2 = Number(tr2.getAttribute("tr_level"));
|
|
2045
|
+
if (isNaN(tr_level2)) break;
|
|
2046
|
+
if (tr_level2 <= tr_level) break;
|
|
2047
|
+
tr_isfold == "true" ? tr2.style.display = "" : tr2.style.display = "none";
|
|
2048
|
+
flag_do_fold = true;
|
|
2049
|
+
}
|
|
2050
|
+
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold == "true" ? "false" : "true");
|
|
2051
|
+
})();
|
|
2052
|
+
}
|
|
2053
|
+
const is_all_fold = btn.getAttribute("is_fold");
|
|
2054
|
+
if (is_all_fold == "true") {
|
|
2055
|
+
btn.setAttribute("is_fold", "false");
|
|
2056
|
+
btn.innerHTML = svgStr_fold;
|
|
2057
|
+
} else {
|
|
2058
|
+
btn.setAttribute("is_fold", "true");
|
|
2059
|
+
btn.innerHTML = svgStr_unfold;
|
|
2060
|
+
}
|
|
2061
|
+
};
|
|
2062
|
+
} else {
|
|
2063
|
+
btn.setAttribute(
|
|
2064
|
+
"onclick",
|
|
2065
|
+
` const btn = this;
|
|
2066
|
+
const svgStr_fold = \`${svgStr_fold}\`;
|
|
2067
|
+
const svgStr_unfold = \`${svgStr_unfold}\`;
|
|
2068
|
+
const table = btn.parentNode?.querySelector("table");
|
|
2069
|
+
if (!table) return;
|
|
2070
|
+
|
|
2071
|
+
const l_tr = table.querySelectorAll("tr");
|
|
2072
|
+
for (let i=0; i<l_tr.length; i++) {
|
|
2073
|
+
const tr = l_tr[i]
|
|
2074
|
+
;(()=>{
|
|
2075
|
+
const tr_level = Number(tr.getAttribute("tr_level"))
|
|
2076
|
+
if (isNaN(tr_level)) return
|
|
2077
|
+
const tr_isfold = btn.getAttribute("is_fold"); // [!code] tr->btn
|
|
2078
|
+
if (!tr_isfold) return
|
|
2079
|
+
let flag_do_fold = false // 防止折叠最小层
|
|
2080
|
+
for (let j=i+1; j<l_tr.length; j++){
|
|
2081
|
+
const tr2 = l_tr[j]
|
|
2082
|
+
const tr_level2 = Number(tr2.getAttribute("tr_level"))
|
|
2083
|
+
if (isNaN(tr_level2)) break
|
|
2084
|
+
if (tr_level2<=tr_level) break
|
|
2085
|
+
(tr_isfold == "true") ? tr2.style.display = "" : tr2.style.display = "none"
|
|
2086
|
+
flag_do_fold = true
|
|
2087
|
+
}
|
|
2088
|
+
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold=="true"?"false":"true")
|
|
2089
|
+
})()
|
|
2090
|
+
}
|
|
2091
|
+
const is_all_fold = btn.getAttribute("is_fold")
|
|
2092
|
+
if (is_all_fold=="true") {
|
|
2093
|
+
btn.setAttribute("is_fold", "false"); btn.innerHTML = svgStr_fold;
|
|
2094
|
+
}
|
|
2095
|
+
else {
|
|
2096
|
+
btn.setAttribute("is_fold", "true"); btn.innerHTML = svgStr_unfold;
|
|
2097
|
+
}
|
|
2098
|
+
`
|
|
2099
|
+
);
|
|
2100
|
+
}
|
|
2147
2101
|
}
|
|
2148
2102
|
return div;
|
|
2149
2103
|
}
|
|
@@ -2414,36 +2368,32 @@ ABConvert.factory({
|
|
|
2414
2368
|
const args = matchs[1].split(",").map(
|
|
2415
2369
|
(arg) => /^\d*\.?\d+$/.test(arg.trim()) ? `${arg.trim()}%` : arg.trim()
|
|
2416
2370
|
);
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
sub_el.style.flex = `0 0 auto`;
|
|
2427
|
-
}
|
|
2371
|
+
if (content.children[0].classList.contains("ab-col")) {
|
|
2372
|
+
const sub_els = content.children[0].children;
|
|
2373
|
+
if (sub_els.length == 0) return content;
|
|
2374
|
+
for (let i = 0; i < Math.min(sub_els.length, args.length); i++) {
|
|
2375
|
+
const sub_el = sub_els[i];
|
|
2376
|
+
if (args[i].endsWith("%")) sub_el.style.flex = `0 1 ${args[i]}`;
|
|
2377
|
+
else {
|
|
2378
|
+
sub_el.style.width = args[i];
|
|
2379
|
+
sub_el.style.flex = `0 0 auto`;
|
|
2428
2380
|
}
|
|
2429
|
-
return content;
|
|
2430
|
-
}
|
|
2431
|
-
case content.children[0].querySelector("table") !== null: {
|
|
2432
|
-
const table = content.children[0].querySelector("table");
|
|
2433
|
-
if (!table) return content;
|
|
2434
|
-
table.style.tableLayout = "fixed";
|
|
2435
|
-
table.style.width = args.some((arg) => arg.endsWith("%")) ? "100%" : "fit-content";
|
|
2436
|
-
table.querySelectorAll("tr").forEach((row) => {
|
|
2437
|
-
for (let i = 0; i < Math.min(row.children.length, args.length); i++) {
|
|
2438
|
-
const cell = row.children[i];
|
|
2439
|
-
cell.style.width = cell.style.minWidth = cell.style.maxWidth = args[i];
|
|
2440
|
-
}
|
|
2441
|
-
});
|
|
2442
|
-
return content;
|
|
2443
2381
|
}
|
|
2444
|
-
|
|
2445
|
-
return content;
|
|
2382
|
+
return content;
|
|
2446
2383
|
}
|
|
2384
|
+
const table = content.children[0].querySelector("table");
|
|
2385
|
+
if (table !== null) {
|
|
2386
|
+
table.style.tableLayout = "fixed";
|
|
2387
|
+
table.style.width = args.some((arg) => arg.endsWith("%")) ? "100%" : "fit-content";
|
|
2388
|
+
table.querySelectorAll("tr").forEach((row) => {
|
|
2389
|
+
for (let i = 0; i < Math.min(row.children.length, args.length); i++) {
|
|
2390
|
+
const cell = row.children[i];
|
|
2391
|
+
cell.style.width = cell.style.minWidth = cell.style.maxWidth = args[i];
|
|
2392
|
+
}
|
|
2393
|
+
});
|
|
2394
|
+
return content;
|
|
2395
|
+
}
|
|
2396
|
+
return content;
|
|
2447
2397
|
}
|
|
2448
2398
|
});
|
|
2449
2399
|
ABConvert.factory({
|
|
@@ -2575,9 +2525,7 @@ ABConvert.factory({
|
|
|
2575
2525
|
const origi_rowCount = origi_rows.length;
|
|
2576
2526
|
const origi_colCount = origi_rows[0].cells.length;
|
|
2577
2527
|
const trans_table = document.createElement("table");
|
|
2578
|
-
|
|
2579
|
-
origi_table.classList.add("ab-transposition");
|
|
2580
|
-
origi_table.classList.add("ab-table");
|
|
2528
|
+
origi_table.classList.add("ab-transposition", "ab-table");
|
|
2581
2529
|
origi_table.classList.forEach((className) => {
|
|
2582
2530
|
trans_table.classList.add(className);
|
|
2583
2531
|
});
|
|
@@ -2592,7 +2540,7 @@ ABConvert.factory({
|
|
|
2592
2540
|
newCell.innerHTML = oldCell.innerHTML;
|
|
2593
2541
|
}
|
|
2594
2542
|
}
|
|
2595
|
-
origi_table.
|
|
2543
|
+
origi_table.innerHTML = trans_table.innerHTML;
|
|
2596
2544
|
return content;
|
|
2597
2545
|
}
|
|
2598
2546
|
});
|
|
@@ -2682,9 +2630,7 @@ ABConvert.factory({
|
|
|
2682
2630
|
}
|
|
2683
2631
|
}
|
|
2684
2632
|
const trans_table = document.createElement("table");
|
|
2685
|
-
|
|
2686
|
-
origi_table.classList.add("ab-transposition");
|
|
2687
|
-
origi_table.classList.add("ab-table");
|
|
2633
|
+
origi_table.classList.add("ab-transposition", "ab-table");
|
|
2688
2634
|
origi_table.classList.forEach((className) => {
|
|
2689
2635
|
trans_table.classList.add(className);
|
|
2690
2636
|
});
|
|
@@ -2704,7 +2650,7 @@ ABConvert.factory({
|
|
|
2704
2650
|
newCell.setAttribute("colIndex", String(cell.colIndex));
|
|
2705
2651
|
}
|
|
2706
2652
|
}
|
|
2707
|
-
origi_table.
|
|
2653
|
+
origi_table.innerHTML = trans_table.innerHTML;
|
|
2708
2654
|
return content;
|
|
2709
2655
|
}
|
|
2710
2656
|
});
|
|
@@ -2800,9 +2746,7 @@ ABConvert.factory({
|
|
|
2800
2746
|
}
|
|
2801
2747
|
const map_table2 = map_table;
|
|
2802
2748
|
const trans_table = document.createElement("table");
|
|
2803
|
-
|
|
2804
|
-
origi_table.classList.add("ab-transposition");
|
|
2805
|
-
origi_table.classList.add("ab-table");
|
|
2749
|
+
origi_table.classList.add("ab-transposition", "ab-table");
|
|
2806
2750
|
origi_table.classList.forEach((className) => {
|
|
2807
2751
|
trans_table.classList.add(className);
|
|
2808
2752
|
});
|
|
@@ -2822,7 +2766,7 @@ ABConvert.factory({
|
|
|
2822
2766
|
newCell.setAttribute("colIndex", String(cell.colIndex));
|
|
2823
2767
|
}
|
|
2824
2768
|
}
|
|
2825
|
-
origi_table.
|
|
2769
|
+
origi_table.innerHTML = trans_table.innerHTML;
|
|
2826
2770
|
return content;
|
|
2827
2771
|
}
|
|
2828
2772
|
});
|
|
@@ -42552,19 +42496,63 @@ function abSelector_squareInline(md, options) {
|
|
|
42552
42496
|
}
|
|
42553
42497
|
});
|
|
42554
42498
|
}
|
|
42555
|
-
function
|
|
42556
|
-
md.
|
|
42557
|
-
|
|
42558
|
-
|
|
42559
|
-
|
|
42560
|
-
|
|
42561
|
-
|
|
42562
|
-
|
|
42563
|
-
|
|
42564
|
-
|
|
42565
|
-
|
|
42499
|
+
function abSelector_container(md, options) {
|
|
42500
|
+
md.block.ruler.before("fence", "AnyBlockMditContainer", (state, startLine, endLine, silent) => {
|
|
42501
|
+
const typeNames = ["mditABDemo"];
|
|
42502
|
+
let start = state.bMarks[startLine];
|
|
42503
|
+
let max = state.eMarks[startLine];
|
|
42504
|
+
if (state.src[start] !== ":") return false;
|
|
42505
|
+
let pos = start + 1;
|
|
42506
|
+
while (pos <= max) {
|
|
42507
|
+
if (state.src[pos] !== ":") break;
|
|
42508
|
+
pos++;
|
|
42509
|
+
}
|
|
42510
|
+
const markerCount = pos - start;
|
|
42511
|
+
if (markerCount < 3) return false;
|
|
42512
|
+
const markup = state.src.slice(start, pos);
|
|
42513
|
+
const ab_mdit_header = state.src.slice(pos, max);
|
|
42514
|
+
if (!typeNames.includes(ab_mdit_header.split("|")[0].trim())) return false;
|
|
42515
|
+
if (silent) return true;
|
|
42516
|
+
const ab_startLine = startLine;
|
|
42517
|
+
let nextLine = startLine;
|
|
42518
|
+
let autoClosed = false;
|
|
42519
|
+
let ab_content = "";
|
|
42520
|
+
while (
|
|
42521
|
+
// unclosed block should be auto closed by end of document.
|
|
42522
|
+
// also block seems to be auto closed by end of parent
|
|
42523
|
+
nextLine < endLine
|
|
42524
|
+
) {
|
|
42525
|
+
nextLine++;
|
|
42526
|
+
start = state.bMarks[nextLine];
|
|
42527
|
+
max = state.eMarks[nextLine];
|
|
42528
|
+
if (start < max && state.sCount[nextLine] < state.blkIndent)
|
|
42529
|
+
break;
|
|
42530
|
+
if (
|
|
42531
|
+
// match start
|
|
42532
|
+
state.src[start] === ":" && // closing fence should be indented less than 4 spaces
|
|
42533
|
+
state.sCount[nextLine] - state.blkIndent < 4
|
|
42534
|
+
) {
|
|
42535
|
+
for (pos = start + 1; pos <= max; pos++)
|
|
42536
|
+
if (state.src[pos] !== ":") break;
|
|
42537
|
+
if (pos - start >= markerCount) {
|
|
42538
|
+
pos = state.skipSpaces(pos);
|
|
42539
|
+
if (pos >= max) {
|
|
42540
|
+
autoClosed = true;
|
|
42541
|
+
break;
|
|
42542
|
+
}
|
|
42543
|
+
}
|
|
42566
42544
|
}
|
|
42545
|
+
ab_content += "\n" + state.src.substring(start, max);
|
|
42567
42546
|
}
|
|
42547
|
+
state.line = nextLine + (autoClosed ? 1 : 0);
|
|
42548
|
+
const token = state.push("fence", "code", 0);
|
|
42549
|
+
token.info = "AnyBlock";
|
|
42550
|
+
token.content = `[${ab_mdit_header}]
|
|
42551
|
+
${ab_content}`;
|
|
42552
|
+
token.map = [ab_startLine, nextLine];
|
|
42553
|
+
token.markup = markup;
|
|
42554
|
+
token.nesting = 0;
|
|
42555
|
+
return true;
|
|
42568
42556
|
});
|
|
42569
42557
|
}
|
|
42570
42558
|
function abRender_fence(md, options) {
|
|
@@ -42628,7 +42616,7 @@ function ab_mdit(md, options) {
|
|
|
42628
42616
|
});
|
|
42629
42617
|
ABCSetting.env = "vuepress";
|
|
42630
42618
|
md.use(abSelector_squareInline);
|
|
42631
|
-
md.use(
|
|
42619
|
+
md.use(abSelector_container);
|
|
42632
42620
|
md.use(abRender_fence);
|
|
42633
42621
|
}
|
|
42634
42622
|
export {
|