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/README.md
CHANGED
package/dist/mdit-any-block.cjs
CHANGED
|
@@ -46,106 +46,6 @@ async function jsdom_init() {
|
|
|
46
46
|
dom.window.scrollTo = () => {
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
function container_plugin(md, name2, options) {
|
|
50
|
-
function validateDefault(params) {
|
|
51
|
-
return params.trim().split(" ", 2)[0] === name2;
|
|
52
|
-
}
|
|
53
|
-
function renderDefault(tokens, idx, _options, env, slf) {
|
|
54
|
-
if (tokens[idx].nesting === 1) {
|
|
55
|
-
tokens[idx].attrJoin("class", name2);
|
|
56
|
-
}
|
|
57
|
-
return slf.renderToken(tokens, idx, _options, env, slf);
|
|
58
|
-
}
|
|
59
|
-
options = options || {};
|
|
60
|
-
const min_markers = 3;
|
|
61
|
-
const marker_str = options.marker || ":";
|
|
62
|
-
const marker_char = marker_str.charCodeAt(0);
|
|
63
|
-
const marker_len = marker_str.length;
|
|
64
|
-
const validate = options.validate || validateDefault;
|
|
65
|
-
const render2 = options.render || renderDefault;
|
|
66
|
-
function container(state, startLine, endLine, silent) {
|
|
67
|
-
let pos;
|
|
68
|
-
let auto_closed = false;
|
|
69
|
-
let start = state.bMarks[startLine] + state.tShift[startLine];
|
|
70
|
-
let max = state.eMarks[startLine];
|
|
71
|
-
if (marker_char !== state.src.charCodeAt(start)) {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
for (pos = start + 1; pos <= max; pos++) {
|
|
75
|
-
if (marker_str[(pos - start) % marker_len] !== state.src[pos]) {
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const marker_count = Math.floor((pos - start) / marker_len);
|
|
80
|
-
if (marker_count < min_markers) {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
pos -= (pos - start) % marker_len;
|
|
84
|
-
const markup = state.src.slice(start, pos);
|
|
85
|
-
const params = state.src.slice(pos, max);
|
|
86
|
-
if (!validate(params, markup)) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
if (silent) {
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
let nextLine = startLine;
|
|
93
|
-
for (; ; ) {
|
|
94
|
-
nextLine++;
|
|
95
|
-
if (nextLine >= endLine) {
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
start = state.bMarks[nextLine] + state.tShift[nextLine];
|
|
99
|
-
max = state.eMarks[nextLine];
|
|
100
|
-
if (start < max && state.sCount[nextLine] < state.blkIndent) {
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
if (marker_char !== state.src.charCodeAt(start)) {
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
if (state.sCount[nextLine] - state.blkIndent >= 4) {
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
for (pos = start + 1; pos <= max; pos++) {
|
|
110
|
-
if (marker_str[(pos - start) % marker_len] !== state.src[pos]) {
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (Math.floor((pos - start) / marker_len) < marker_count) {
|
|
115
|
-
continue;
|
|
116
|
-
}
|
|
117
|
-
pos -= (pos - start) % marker_len;
|
|
118
|
-
pos = state.skipSpaces(pos);
|
|
119
|
-
if (pos < max) {
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
auto_closed = true;
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
const old_parent = state.parentType;
|
|
126
|
-
const old_line_max = state.lineMax;
|
|
127
|
-
state.parentType = "container";
|
|
128
|
-
state.lineMax = nextLine;
|
|
129
|
-
const token_o = state.push("container_" + name2 + "_open", "div", 1);
|
|
130
|
-
token_o.markup = markup;
|
|
131
|
-
token_o.block = true;
|
|
132
|
-
token_o.info = params;
|
|
133
|
-
token_o.map = [startLine, nextLine];
|
|
134
|
-
state.md.block.tokenize(state, startLine + 1, nextLine);
|
|
135
|
-
const token_c = state.push("container_" + name2 + "_close", "div", -1);
|
|
136
|
-
token_c.markup = state.src.slice(start, pos);
|
|
137
|
-
token_c.block = true;
|
|
138
|
-
state.parentType = old_parent;
|
|
139
|
-
state.lineMax = old_line_max;
|
|
140
|
-
state.line = nextLine + (auto_closed ? 1 : 0);
|
|
141
|
-
return true;
|
|
142
|
-
}
|
|
143
|
-
md.block.ruler.before("fence", "container_" + name2, container, {
|
|
144
|
-
alt: ["paragraph", "reference", "blockquote", "list"]
|
|
145
|
-
});
|
|
146
|
-
md.renderer.rules["container_" + name2 + "_open"] = render2;
|
|
147
|
-
md.renderer.rules["container_" + name2 + "_close"] = render2;
|
|
148
|
-
}
|
|
149
49
|
var ABConvert_IOEnum = /* @__PURE__ */ ((ABConvert_IOEnum2) => {
|
|
150
50
|
ABConvert_IOEnum2["text"] = "string";
|
|
151
51
|
ABConvert_IOEnum2["el"] = "HTMLElement";
|
|
@@ -2033,13 +1933,16 @@ class DirProcess {
|
|
|
2033
1933
|
* 第一列等级为0、没有分叉
|
|
2034
1934
|
*/
|
|
2035
1935
|
static dtdata2dt(list_tableInfo, div, modeT, is_folder = false) {
|
|
1936
|
+
const div2 = document.createElement("div");
|
|
1937
|
+
div.appendChild(div2);
|
|
1938
|
+
div2.classList.add("ab-list-table-parent");
|
|
1939
|
+
let table, thead, tbody;
|
|
2036
1940
|
{
|
|
2037
|
-
|
|
2038
|
-
|
|
1941
|
+
table = document.createElement("table");
|
|
1942
|
+
div2.appendChild(table);
|
|
2039
1943
|
table.classList.add("ab-table", "ab-list-table");
|
|
2040
1944
|
if (is_folder) table.classList.add("ab-table-folder");
|
|
2041
1945
|
if (modeT) table.setAttribute("modeT", "true");
|
|
2042
|
-
let thead, tbody;
|
|
2043
1946
|
{
|
|
2044
1947
|
if (list_tableInfo[0].content.indexOf("< ") == 0) {
|
|
2045
1948
|
thead = document.createElement("thead");
|
|
@@ -2095,10 +1998,12 @@ class DirProcess {
|
|
|
2095
1998
|
td_cell.classList.add("ab-list-table-witharrow");
|
|
2096
1999
|
ABConvertManager.getInstance().m_renderMarkdownFn(cell_item.content, td_cell);
|
|
2097
2000
|
}
|
|
2001
|
+
}
|
|
2002
|
+
{
|
|
2098
2003
|
const l_tr = tbody.querySelectorAll("tr");
|
|
2099
2004
|
for (let i = 0; i < l_tr.length; i++) {
|
|
2100
|
-
|
|
2101
|
-
targetEl =
|
|
2005
|
+
const tr = l_tr[i];
|
|
2006
|
+
const targetEl = tr.querySelector(":scope>td:first-child") ?? tr;
|
|
2102
2007
|
if (ABCSetting.env == "obsidian" || ABCSetting.env == "obsidian-min") {
|
|
2103
2008
|
targetEl.onclick = () => {
|
|
2104
2009
|
const tr_level = Number(tr.getAttribute("tr_level"));
|
|
@@ -2117,57 +2022,106 @@ class DirProcess {
|
|
|
2117
2022
|
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold == "true" ? "false" : "true");
|
|
2118
2023
|
};
|
|
2119
2024
|
} else {
|
|
2120
|
-
targetEl.setAttribute("onclick", `
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2025
|
+
targetEl.setAttribute("onclick", ` const tr = (this.tagName == "TD") ? this.parentNode : this
|
|
2026
|
+
const l_tr = tr.parentNode.querySelectorAll("tr")
|
|
2027
|
+
const i = ${i}
|
|
2028
|
+
|
|
2029
|
+
const tr_level = Number(tr.getAttribute("tr_level"))
|
|
2030
|
+
if (isNaN(tr_level)) return
|
|
2031
|
+
const tr_isfold = tr.getAttribute("is_fold")
|
|
2032
|
+
if (!tr_isfold) return
|
|
2033
|
+
let flag_do_fold = false // 防止折叠最小层
|
|
2034
|
+
for (let j=i+1; j<l_tr.length; j++){
|
|
2035
|
+
const tr2 = l_tr[j]
|
|
2036
|
+
const tr_level2 = Number(tr2.getAttribute("tr_level"))
|
|
2037
|
+
if (isNaN(tr_level2)) break
|
|
2038
|
+
if (tr_level2<=tr_level) break
|
|
2039
|
+
(tr_isfold == "true") ? tr2.style.display = "" : tr2.style.display = "none"
|
|
2040
|
+
flag_do_fold = true
|
|
2041
|
+
}
|
|
2042
|
+
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold=="true"?"false":"true")
|
|
2138
2043
|
`);
|
|
2139
2044
|
}
|
|
2140
2045
|
}
|
|
2046
|
+
}
|
|
2047
|
+
{
|
|
2141
2048
|
const btn = document.createElement("button");
|
|
2142
|
-
|
|
2049
|
+
div2.appendChild(btn);
|
|
2143
2050
|
btn.classList.add("ab-table-fold");
|
|
2144
|
-
|
|
2051
|
+
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>`;
|
|
2052
|
+
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>`;
|
|
2145
2053
|
btn.setAttribute("is_fold", "false");
|
|
2146
|
-
btn.
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
const
|
|
2150
|
-
(
|
|
2151
|
-
const
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2054
|
+
btn.innerHTML = svgStr_fold;
|
|
2055
|
+
if (ABCSetting.env == "obsidian" || ABCSetting.env == "obsidian-min") {
|
|
2056
|
+
btn.onclick = () => {
|
|
2057
|
+
const l_tr = table.querySelectorAll("tr");
|
|
2058
|
+
for (let i = 0; i < l_tr.length; i++) {
|
|
2059
|
+
const tr = l_tr[i];
|
|
2060
|
+
(() => {
|
|
2061
|
+
const tr_level = Number(tr.getAttribute("tr_level"));
|
|
2062
|
+
if (isNaN(tr_level)) return;
|
|
2063
|
+
const tr_isfold = btn.getAttribute("is_fold");
|
|
2064
|
+
if (!tr_isfold) return;
|
|
2065
|
+
let flag_do_fold = false;
|
|
2066
|
+
for (let j = i + 1; j < l_tr.length; j++) {
|
|
2067
|
+
const tr2 = l_tr[j];
|
|
2068
|
+
const tr_level2 = Number(tr2.getAttribute("tr_level"));
|
|
2069
|
+
if (isNaN(tr_level2)) break;
|
|
2070
|
+
if (tr_level2 <= tr_level) break;
|
|
2071
|
+
tr_isfold == "true" ? tr2.style.display = "" : tr2.style.display = "none";
|
|
2072
|
+
flag_do_fold = true;
|
|
2073
|
+
}
|
|
2074
|
+
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold == "true" ? "false" : "true");
|
|
2075
|
+
})();
|
|
2076
|
+
}
|
|
2077
|
+
const is_all_fold = btn.getAttribute("is_fold");
|
|
2078
|
+
if (is_all_fold == "true") {
|
|
2079
|
+
btn.setAttribute("is_fold", "false");
|
|
2080
|
+
btn.innerHTML = svgStr_fold;
|
|
2081
|
+
} else {
|
|
2082
|
+
btn.setAttribute("is_fold", "true");
|
|
2083
|
+
btn.innerHTML = svgStr_unfold;
|
|
2084
|
+
}
|
|
2085
|
+
};
|
|
2086
|
+
} else {
|
|
2087
|
+
btn.setAttribute(
|
|
2088
|
+
"onclick",
|
|
2089
|
+
` const btn = this;
|
|
2090
|
+
const svgStr_fold = \`${svgStr_fold}\`;
|
|
2091
|
+
const svgStr_unfold = \`${svgStr_unfold}\`;
|
|
2092
|
+
const table = btn.parentNode?.querySelector("table");
|
|
2093
|
+
if (!table) return;
|
|
2094
|
+
|
|
2095
|
+
const l_tr = table.querySelectorAll("tr");
|
|
2096
|
+
for (let i=0; i<l_tr.length; i++) {
|
|
2097
|
+
const tr = l_tr[i]
|
|
2098
|
+
;(()=>{
|
|
2099
|
+
const tr_level = Number(tr.getAttribute("tr_level"))
|
|
2100
|
+
if (isNaN(tr_level)) return
|
|
2101
|
+
const tr_isfold = btn.getAttribute("is_fold"); // [!code] tr->btn
|
|
2102
|
+
if (!tr_isfold) return
|
|
2103
|
+
let flag_do_fold = false // 防止折叠最小层
|
|
2104
|
+
for (let j=i+1; j<l_tr.length; j++){
|
|
2105
|
+
const tr2 = l_tr[j]
|
|
2106
|
+
const tr_level2 = Number(tr2.getAttribute("tr_level"))
|
|
2107
|
+
if (isNaN(tr_level2)) break
|
|
2108
|
+
if (tr_level2<=tr_level) break
|
|
2109
|
+
(tr_isfold == "true") ? tr2.style.display = "" : tr2.style.display = "none"
|
|
2110
|
+
flag_do_fold = true
|
|
2111
|
+
}
|
|
2112
|
+
if (flag_do_fold) tr.setAttribute("is_fold", tr_isfold=="true"?"false":"true")
|
|
2113
|
+
})()
|
|
2114
|
+
}
|
|
2115
|
+
const is_all_fold = btn.getAttribute("is_fold")
|
|
2116
|
+
if (is_all_fold=="true") {
|
|
2117
|
+
btn.setAttribute("is_fold", "false"); btn.innerHTML = svgStr_fold;
|
|
2118
|
+
}
|
|
2119
|
+
else {
|
|
2120
|
+
btn.setAttribute("is_fold", "true"); btn.innerHTML = svgStr_unfold;
|
|
2121
|
+
}
|
|
2122
|
+
`
|
|
2123
|
+
);
|
|
2124
|
+
}
|
|
2171
2125
|
}
|
|
2172
2126
|
return div;
|
|
2173
2127
|
}
|
|
@@ -2438,36 +2392,32 @@ ABConvert.factory({
|
|
|
2438
2392
|
const args = matchs[1].split(",").map(
|
|
2439
2393
|
(arg) => /^\d*\.?\d+$/.test(arg.trim()) ? `${arg.trim()}%` : arg.trim()
|
|
2440
2394
|
);
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
sub_el.style.flex = `0 0 auto`;
|
|
2451
|
-
}
|
|
2395
|
+
if (content.children[0].classList.contains("ab-col")) {
|
|
2396
|
+
const sub_els = content.children[0].children;
|
|
2397
|
+
if (sub_els.length == 0) return content;
|
|
2398
|
+
for (let i = 0; i < Math.min(sub_els.length, args.length); i++) {
|
|
2399
|
+
const sub_el = sub_els[i];
|
|
2400
|
+
if (args[i].endsWith("%")) sub_el.style.flex = `0 1 ${args[i]}`;
|
|
2401
|
+
else {
|
|
2402
|
+
sub_el.style.width = args[i];
|
|
2403
|
+
sub_el.style.flex = `0 0 auto`;
|
|
2452
2404
|
}
|
|
2453
|
-
return content;
|
|
2454
|
-
}
|
|
2455
|
-
case content.children[0].querySelector("table") !== null: {
|
|
2456
|
-
const table = content.children[0].querySelector("table");
|
|
2457
|
-
if (!table) return content;
|
|
2458
|
-
table.style.tableLayout = "fixed";
|
|
2459
|
-
table.style.width = args.some((arg) => arg.endsWith("%")) ? "100%" : "fit-content";
|
|
2460
|
-
table.querySelectorAll("tr").forEach((row) => {
|
|
2461
|
-
for (let i = 0; i < Math.min(row.children.length, args.length); i++) {
|
|
2462
|
-
const cell = row.children[i];
|
|
2463
|
-
cell.style.width = cell.style.minWidth = cell.style.maxWidth = args[i];
|
|
2464
|
-
}
|
|
2465
|
-
});
|
|
2466
|
-
return content;
|
|
2467
2405
|
}
|
|
2468
|
-
|
|
2469
|
-
return content;
|
|
2406
|
+
return content;
|
|
2470
2407
|
}
|
|
2408
|
+
const table = content.children[0].querySelector("table");
|
|
2409
|
+
if (table !== null) {
|
|
2410
|
+
table.style.tableLayout = "fixed";
|
|
2411
|
+
table.style.width = args.some((arg) => arg.endsWith("%")) ? "100%" : "fit-content";
|
|
2412
|
+
table.querySelectorAll("tr").forEach((row) => {
|
|
2413
|
+
for (let i = 0; i < Math.min(row.children.length, args.length); i++) {
|
|
2414
|
+
const cell = row.children[i];
|
|
2415
|
+
cell.style.width = cell.style.minWidth = cell.style.maxWidth = args[i];
|
|
2416
|
+
}
|
|
2417
|
+
});
|
|
2418
|
+
return content;
|
|
2419
|
+
}
|
|
2420
|
+
return content;
|
|
2471
2421
|
}
|
|
2472
2422
|
});
|
|
2473
2423
|
ABConvert.factory({
|
|
@@ -2599,9 +2549,7 @@ ABConvert.factory({
|
|
|
2599
2549
|
const origi_rowCount = origi_rows.length;
|
|
2600
2550
|
const origi_colCount = origi_rows[0].cells.length;
|
|
2601
2551
|
const trans_table = document.createElement("table");
|
|
2602
|
-
|
|
2603
|
-
origi_table.classList.add("ab-transposition");
|
|
2604
|
-
origi_table.classList.add("ab-table");
|
|
2552
|
+
origi_table.classList.add("ab-transposition", "ab-table");
|
|
2605
2553
|
origi_table.classList.forEach((className) => {
|
|
2606
2554
|
trans_table.classList.add(className);
|
|
2607
2555
|
});
|
|
@@ -2616,7 +2564,7 @@ ABConvert.factory({
|
|
|
2616
2564
|
newCell.innerHTML = oldCell.innerHTML;
|
|
2617
2565
|
}
|
|
2618
2566
|
}
|
|
2619
|
-
origi_table.
|
|
2567
|
+
origi_table.innerHTML = trans_table.innerHTML;
|
|
2620
2568
|
return content;
|
|
2621
2569
|
}
|
|
2622
2570
|
});
|
|
@@ -2706,9 +2654,7 @@ ABConvert.factory({
|
|
|
2706
2654
|
}
|
|
2707
2655
|
}
|
|
2708
2656
|
const trans_table = document.createElement("table");
|
|
2709
|
-
|
|
2710
|
-
origi_table.classList.add("ab-transposition");
|
|
2711
|
-
origi_table.classList.add("ab-table");
|
|
2657
|
+
origi_table.classList.add("ab-transposition", "ab-table");
|
|
2712
2658
|
origi_table.classList.forEach((className) => {
|
|
2713
2659
|
trans_table.classList.add(className);
|
|
2714
2660
|
});
|
|
@@ -2728,7 +2674,7 @@ ABConvert.factory({
|
|
|
2728
2674
|
newCell.setAttribute("colIndex", String(cell.colIndex));
|
|
2729
2675
|
}
|
|
2730
2676
|
}
|
|
2731
|
-
origi_table.
|
|
2677
|
+
origi_table.innerHTML = trans_table.innerHTML;
|
|
2732
2678
|
return content;
|
|
2733
2679
|
}
|
|
2734
2680
|
});
|
|
@@ -2824,9 +2770,7 @@ ABConvert.factory({
|
|
|
2824
2770
|
}
|
|
2825
2771
|
const map_table2 = map_table;
|
|
2826
2772
|
const trans_table = document.createElement("table");
|
|
2827
|
-
|
|
2828
|
-
origi_table.classList.add("ab-transposition");
|
|
2829
|
-
origi_table.classList.add("ab-table");
|
|
2773
|
+
origi_table.classList.add("ab-transposition", "ab-table");
|
|
2830
2774
|
origi_table.classList.forEach((className) => {
|
|
2831
2775
|
trans_table.classList.add(className);
|
|
2832
2776
|
});
|
|
@@ -2846,7 +2790,7 @@ ABConvert.factory({
|
|
|
2846
2790
|
newCell.setAttribute("colIndex", String(cell.colIndex));
|
|
2847
2791
|
}
|
|
2848
2792
|
}
|
|
2849
|
-
origi_table.
|
|
2793
|
+
origi_table.innerHTML = trans_table.innerHTML;
|
|
2850
2794
|
return content;
|
|
2851
2795
|
}
|
|
2852
2796
|
});
|
|
@@ -42576,19 +42520,63 @@ function abSelector_squareInline(md, options) {
|
|
|
42576
42520
|
}
|
|
42577
42521
|
});
|
|
42578
42522
|
}
|
|
42579
|
-
function
|
|
42580
|
-
md.
|
|
42581
|
-
|
|
42582
|
-
|
|
42583
|
-
|
|
42584
|
-
|
|
42585
|
-
|
|
42586
|
-
|
|
42587
|
-
|
|
42588
|
-
|
|
42589
|
-
|
|
42523
|
+
function abSelector_container(md, options) {
|
|
42524
|
+
md.block.ruler.before("fence", "AnyBlockMditContainer", (state, startLine, endLine, silent) => {
|
|
42525
|
+
const typeNames = ["mditABDemo"];
|
|
42526
|
+
let start = state.bMarks[startLine];
|
|
42527
|
+
let max = state.eMarks[startLine];
|
|
42528
|
+
if (state.src[start] !== ":") return false;
|
|
42529
|
+
let pos = start + 1;
|
|
42530
|
+
while (pos <= max) {
|
|
42531
|
+
if (state.src[pos] !== ":") break;
|
|
42532
|
+
pos++;
|
|
42533
|
+
}
|
|
42534
|
+
const markerCount = pos - start;
|
|
42535
|
+
if (markerCount < 3) return false;
|
|
42536
|
+
const markup = state.src.slice(start, pos);
|
|
42537
|
+
const ab_mdit_header = state.src.slice(pos, max);
|
|
42538
|
+
if (!typeNames.includes(ab_mdit_header.split("|")[0].trim())) return false;
|
|
42539
|
+
if (silent) return true;
|
|
42540
|
+
const ab_startLine = startLine;
|
|
42541
|
+
let nextLine = startLine;
|
|
42542
|
+
let autoClosed = false;
|
|
42543
|
+
let ab_content = "";
|
|
42544
|
+
while (
|
|
42545
|
+
// unclosed block should be auto closed by end of document.
|
|
42546
|
+
// also block seems to be auto closed by end of parent
|
|
42547
|
+
nextLine < endLine
|
|
42548
|
+
) {
|
|
42549
|
+
nextLine++;
|
|
42550
|
+
start = state.bMarks[nextLine];
|
|
42551
|
+
max = state.eMarks[nextLine];
|
|
42552
|
+
if (start < max && state.sCount[nextLine] < state.blkIndent)
|
|
42553
|
+
break;
|
|
42554
|
+
if (
|
|
42555
|
+
// match start
|
|
42556
|
+
state.src[start] === ":" && // closing fence should be indented less than 4 spaces
|
|
42557
|
+
state.sCount[nextLine] - state.blkIndent < 4
|
|
42558
|
+
) {
|
|
42559
|
+
for (pos = start + 1; pos <= max; pos++)
|
|
42560
|
+
if (state.src[pos] !== ":") break;
|
|
42561
|
+
if (pos - start >= markerCount) {
|
|
42562
|
+
pos = state.skipSpaces(pos);
|
|
42563
|
+
if (pos >= max) {
|
|
42564
|
+
autoClosed = true;
|
|
42565
|
+
break;
|
|
42566
|
+
}
|
|
42567
|
+
}
|
|
42590
42568
|
}
|
|
42569
|
+
ab_content += "\n" + state.src.substring(start, max);
|
|
42591
42570
|
}
|
|
42571
|
+
state.line = nextLine + (autoClosed ? 1 : 0);
|
|
42572
|
+
const token = state.push("fence", "code", 0);
|
|
42573
|
+
token.info = "AnyBlock";
|
|
42574
|
+
token.content = `[${ab_mdit_header}]
|
|
42575
|
+
${ab_content}`;
|
|
42576
|
+
token.map = [ab_startLine, nextLine];
|
|
42577
|
+
token.markup = markup;
|
|
42578
|
+
token.nesting = 0;
|
|
42579
|
+
return true;
|
|
42592
42580
|
});
|
|
42593
42581
|
}
|
|
42594
42582
|
function abRender_fence(md, options) {
|
|
@@ -42652,7 +42640,7 @@ function ab_mdit(md, options) {
|
|
|
42652
42640
|
});
|
|
42653
42641
|
ABCSetting.env = "vuepress";
|
|
42654
42642
|
md.use(abSelector_squareInline);
|
|
42655
|
-
md.use(
|
|
42643
|
+
md.use(abSelector_container);
|
|
42656
42644
|
md.use(abRender_fence);
|
|
42657
42645
|
}
|
|
42658
42646
|
exports.abConvertEvent = abConvertEvent;
|