@diplodoc/transform 4.58.1 → 4.59.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/css/_yfm-only.css +73 -0
- package/dist/css/_yfm-only.css.map +3 -3
- package/dist/css/_yfm-only.min.css +1 -1
- package/dist/css/_yfm-only.min.css.map +3 -3
- package/dist/css/base.css +11 -0
- package/dist/css/base.css.map +3 -3
- package/dist/css/base.min.css +1 -1
- package/dist/css/base.min.css.map +3 -3
- package/dist/css/print.css.map +1 -1
- package/dist/css/yfm.css +84 -0
- package/dist/css/yfm.css.map +3 -3
- package/dist/css/yfm.min.css +1 -1
- package/dist/css/yfm.min.css.map +3 -3
- package/dist/js/_yfm-only.js.map +2 -2
- package/dist/js/_yfm-only.min.js.map +2 -2
- package/dist/js/base.js +233 -18
- package/dist/js/base.js.map +3 -3
- package/dist/js/base.min.js +1 -1
- package/dist/js/base.min.js.map +4 -4
- package/dist/js/yfm.js +213 -18
- package/dist/js/yfm.js.map +4 -4
- package/dist/js/yfm.min.js +1 -1
- package/dist/js/yfm.min.js.map +4 -4
- package/lib/frontmatter.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/plugins/changelog/index.js +2 -1
- package/lib/plugins/changelog/index.js.map +1 -1
- package/lib/plugins/images/collect.js +1 -1
- package/lib/plugins/images/collect.js.map +1 -1
- package/lib/plugins/images/index.js +3 -3
- package/lib/plugins/images/index.js.map +1 -1
- package/lib/plugins/inline-code/constant.d.ts +4 -0
- package/lib/plugins/inline-code/constant.js +58 -0
- package/lib/plugins/inline-code/constant.js.map +1 -0
- package/lib/plugins/inline-code/index.d.ts +3 -0
- package/lib/plugins/inline-code/index.js +45 -0
- package/lib/plugins/inline-code/index.js.map +1 -0
- package/lib/plugins.js +2 -0
- package/lib/plugins.js.map +1 -1
- package/lib/sanitize.js +1 -0
- package/lib/sanitize.js.map +1 -1
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +11 -1
- package/lib/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/js/base.ts +1 -0
- package/src/js/code.ts +32 -26
- package/src/js/inline-code/constant.ts +3 -0
- package/src/js/inline-code/index.ts +76 -0
- package/src/js/inline-code/utils.ts +190 -0
- package/src/js/term/utils.ts +1 -1
- package/src/scss/_code.scss +9 -0
- package/src/scss/_inline-code.scss +59 -0
- package/src/scss/_table.scss +31 -0
- package/src/scss/_yfm-only.scss +1 -0
- package/src/scss/brand.scss +2 -0
- package/src/scss/private.scss +2 -0
- package/src/transform/frontmatter.ts +1 -1
- package/src/transform/index.ts +0 -1
- package/src/transform/plugins/changelog/index.ts +3 -1
- package/src/transform/plugins/images/collect.ts +2 -2
- package/src/transform/plugins/images/index.ts +4 -4
- package/src/transform/plugins/inline-code/constant.ts +58 -0
- package/src/transform/plugins/inline-code/index.ts +58 -0
- package/src/transform/plugins.ts +2 -0
- package/src/transform/sanitize.ts +1 -0
- package/src/transform/utils.ts +10 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LANG_TOKEN_LABEL = exports.LANG_TOKEN_DESCRIPTION = exports.LANG_TOKEN = void 0;
|
|
4
|
+
exports.LANG_TOKEN = {
|
|
5
|
+
ru: 'Скопировано',
|
|
6
|
+
en: 'Copied',
|
|
7
|
+
ar: 'تم النسخ',
|
|
8
|
+
cs: 'Zkopírováno',
|
|
9
|
+
fr: 'Copié',
|
|
10
|
+
es: 'Copiado',
|
|
11
|
+
he: 'הועתק',
|
|
12
|
+
bg: 'Копирано',
|
|
13
|
+
et: 'Kopeeritud',
|
|
14
|
+
el: 'Αντιγράφηκε',
|
|
15
|
+
pt: 'Copiado',
|
|
16
|
+
zh: '已复制',
|
|
17
|
+
'zh-tw': '已複製',
|
|
18
|
+
kk: 'Көшірілді',
|
|
19
|
+
tr: 'Kopyalandı',
|
|
20
|
+
uz: 'Nusxalandi',
|
|
21
|
+
};
|
|
22
|
+
exports.LANG_TOKEN_DESCRIPTION = {
|
|
23
|
+
ru: 'Чтобы скопировать текст внутри блока нажмите на блок',
|
|
24
|
+
en: 'To copy the text inside the block, click on the block',
|
|
25
|
+
ar: 'لنسخ النص داخل المربع، انقر على المربع',
|
|
26
|
+
cs: 'Chcete-li zkopírovat text uvnitř bloku, klikněte na blok',
|
|
27
|
+
fr: "Pour copier le texte à l'intérieur du bloc, cliquez sur le bloc",
|
|
28
|
+
es: 'Para copiar el texto dentro del bloque, haga clic en el bloque',
|
|
29
|
+
he: 'כדי להעתיק את הטקסט בתוך הבלוק, לחץ על הבלוק',
|
|
30
|
+
bg: 'За да копирате текста във блока, кликнете върху блока',
|
|
31
|
+
et: 'Teksti kopeerimiseks plokis klõpsake plokil',
|
|
32
|
+
el: 'Για να αντιγράψετε το κείμενο μέσα στο μπλοκ, κάντε κλικ στο μπλοκ',
|
|
33
|
+
pt: 'Para copiar o texto dentro do bloco, clique no bloco',
|
|
34
|
+
zh: '要复制块内的文本,请点击该块',
|
|
35
|
+
'zh-tw': '要複製區塊內的文字,請點擊該區塊',
|
|
36
|
+
kk: 'Блок ішіндегі мәтінді көшіру үшін блокты басыңыз',
|
|
37
|
+
tr: 'Blok içindeki metni kopyalamak için bloğa tıklayın',
|
|
38
|
+
uz: 'Blok ichidagi matnni nusxalash uchun blokni bosing',
|
|
39
|
+
};
|
|
40
|
+
exports.LANG_TOKEN_LABEL = {
|
|
41
|
+
ru: 'Блок кода',
|
|
42
|
+
en: 'Code block',
|
|
43
|
+
ar: 'كتلة التعليمات البرمجية',
|
|
44
|
+
cs: 'Blok kódu',
|
|
45
|
+
fr: 'Bloc de code',
|
|
46
|
+
es: 'Bloque de código',
|
|
47
|
+
he: 'בלוק קוד',
|
|
48
|
+
bg: 'Блок с код',
|
|
49
|
+
et: 'Koodiplokk',
|
|
50
|
+
el: 'Μπλοκ κώδικα',
|
|
51
|
+
pt: 'Bloco de código',
|
|
52
|
+
zh: '代码块',
|
|
53
|
+
'zh-tw': '代碼區塊',
|
|
54
|
+
kk: 'Код блогы',
|
|
55
|
+
tr: 'Kod bloğu',
|
|
56
|
+
uz: 'Kod bloki',
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../src/transform/plugins/inline-code/constant.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAyB;IAC5C,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,KAAK;IACT,OAAO,EAAE,KAAK;IACd,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;CACnB,CAAC;AAEW,QAAA,sBAAsB,GAAyB;IACxD,EAAE,EAAE,sDAAsD;IAC1D,EAAE,EAAE,uDAAuD;IAC3D,EAAE,EAAE,wCAAwC;IAC5C,EAAE,EAAE,0DAA0D;IAC9D,EAAE,EAAE,iEAAiE;IACrE,EAAE,EAAE,gEAAgE;IACpE,EAAE,EAAE,8CAA8C;IAClD,EAAE,EAAE,uDAAuD;IAC3D,EAAE,EAAE,6CAA6C;IACjD,EAAE,EAAE,oEAAoE;IACxE,EAAE,EAAE,sDAAsD;IAC1D,EAAE,EAAE,gBAAgB;IACpB,OAAO,EAAE,kBAAkB;IAC3B,EAAE,EAAE,kDAAkD;IACtD,EAAE,EAAE,oDAAoD;IACxD,EAAE,EAAE,oDAAoD;CAC3D,CAAC;AAEW,QAAA,gBAAgB,GAAyB;IAClD,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,KAAK;IACT,OAAO,EAAE,MAAM;IACf,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;CAClB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const utils_1 = require("../utils");
|
|
3
|
+
const constant_1 = require("./constant");
|
|
4
|
+
const inlineCode = (md, options) => {
|
|
5
|
+
const lang = options.lang;
|
|
6
|
+
md.renderer.rules.code_inline = function (tokens, idx) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const id = (0, utils_1.generateID)();
|
|
9
|
+
const description = (_a = constant_1.LANG_TOKEN_DESCRIPTION[lang]) !== null && _a !== void 0 ? _a : constant_1.LANG_TOKEN_DESCRIPTION.en;
|
|
10
|
+
const label = (_b = constant_1.LANG_TOKEN_LABEL[lang]) !== null && _b !== void 0 ? _b : constant_1.LANG_TOKEN_LABEL.en;
|
|
11
|
+
return `<code class="yfm-clipboard-inline-code" role="button" aria-label="${label}" aria-description="${description}" tabindex='0' id="${id}">${tokens[idx].content}</code>`;
|
|
12
|
+
};
|
|
13
|
+
md.core.ruler.after('inline', 'tooltip_code_inline', (state) => {
|
|
14
|
+
var _a;
|
|
15
|
+
const tokens = state.tokens;
|
|
16
|
+
for (let i = 0; i !== tokens.length; i++) {
|
|
17
|
+
const token = tokens[i];
|
|
18
|
+
if (token.type !== 'inline') {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (!token.children || token.children.every((e) => e.type !== 'code_inline')) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const child = token.children.find((e) => e.type === 'code_inline');
|
|
25
|
+
if (!child) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const dialog = new state.Token('tooltip_open', 'div', 1);
|
|
29
|
+
dialog.attrSet('class', 'yfm inline_code_tooltip');
|
|
30
|
+
dialog.attrSet('id', `tooltip_inline_clipboard_dialog`);
|
|
31
|
+
dialog.attrSet('role', 'dialog');
|
|
32
|
+
dialog.attrSet('aria-live', 'polite');
|
|
33
|
+
dialog.attrSet('aria-modal', 'true');
|
|
34
|
+
tokens.push(dialog);
|
|
35
|
+
const text = new state.Token('text', '', 0);
|
|
36
|
+
text.content = (_a = constant_1.LANG_TOKEN[lang]) !== null && _a !== void 0 ? _a : constant_1.LANG_TOKEN.en;
|
|
37
|
+
tokens.push(text);
|
|
38
|
+
const closeDialog = new state.Token('tooltip_close', 'div', -1);
|
|
39
|
+
tokens.push(closeDialog);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
module.exports = inlineCode;
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/inline-code/index.ts"],"names":[],"mappings":";AACA,oCAAoC;AAEpC,yCAAgF;AAEhF,MAAM,UAAU,GAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,MAAM,EAAE,GAAG;;QACjD,MAAM,EAAE,GAAG,IAAA,kBAAU,GAAE,CAAC;QAExB,MAAM,WAAW,GAAG,MAAA,iCAAsB,CAAC,IAAI,CAAC,mCAAI,iCAAsB,CAAC,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,MAAA,2BAAgB,CAAC,IAAI,CAAC,mCAAI,2BAAgB,CAAC,EAAE,CAAC;QAE5D,OAAO,qEAAqE,KAAK,uBAAuB,WAAW,sBAAsB,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC;IACjL,CAAC,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,EAAE,CAAC,KAAgB,EAAE,EAAE;;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,SAAS;aACZ;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE;gBAC1E,SAAS;aACZ;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YAEnE,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO;aACV;YAED,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAErC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpB,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,GAAG,MAAA,qBAAU,CAAC,IAAI,CAAC,mCAAI,qBAAU,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElB,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,MAAM;SACT;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,iBAAS,UAAU,CAAC"}
|
package/lib/plugins.js
CHANGED
|
@@ -17,6 +17,7 @@ const file_1 = __importDefault(require("./plugins/file"));
|
|
|
17
17
|
const imsize_1 = __importDefault(require("./plugins/imsize"));
|
|
18
18
|
const term_1 = __importDefault(require("./plugins/term"));
|
|
19
19
|
const block_anchor_1 = __importDefault(require("./plugins/block-anchor"));
|
|
20
|
+
const inline_code_1 = __importDefault(require("./plugins/inline-code"));
|
|
20
21
|
const defaultPlugins = [
|
|
21
22
|
meta_1.default,
|
|
22
23
|
deflist_1.default,
|
|
@@ -33,6 +34,7 @@ const defaultPlugins = [
|
|
|
33
34
|
imsize_1.default,
|
|
34
35
|
term_1.default,
|
|
35
36
|
block_anchor_1.default,
|
|
37
|
+
inline_code_1.default,
|
|
36
38
|
];
|
|
37
39
|
module.exports = defaultPlugins;
|
|
38
40
|
//# sourceMappingURL=plugins.js.map
|
package/lib/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/transform/plugins.ts"],"names":[],"mappings":";;;;AAEA,0DAAkC;AAClC,gEAAwC;AACxC,wDAAgC;AAChC,4DAAoC;AACpC,gEAAwC;AACxC,0DAAkC;AAClC,0DAAkC;AAClC,wDAAgC;AAChC,4DAAoC;AACpC,oEAA4C;AAC5C,4DAAuC;AACvC,0DAAkC;AAClC,8DAAsC;AACtC,0DAAkC;AAClC,0EAAiD;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/transform/plugins.ts"],"names":[],"mappings":";;;;AAEA,0DAAkC;AAClC,gEAAwC;AACxC,wDAAgC;AAChC,4DAAoC;AACpC,gEAAwC;AACxC,0DAAkC;AAClC,0DAAkC;AAClC,wDAAgC;AAChC,4DAAoC;AACpC,oEAA4C;AAC5C,4DAAuC;AACvC,0DAAkC;AAClC,8DAAsC;AACtC,0DAAkC;AAClC,0EAAiD;AACjD,wEAA+C;AAE/C,MAAM,cAAc,GAAG;IACnB,cAAI;IACJ,iBAAO;IACP,aAAG;IACH,eAAK;IACL,iBAAO;IACP,cAAI;IACJ,cAAI;IACJ,aAAG;IACH,eAAK;IACL,mBAAS;IACT,eAAQ;IACR,cAAI;IACJ,gBAAM;IACN,cAAI;IACJ,sBAAW;IACX,qBAAU;CACW,CAAC;AAE1B,iBAAS,cAAc,CAAC"}
|
package/lib/sanitize.js
CHANGED
package/lib/sanitize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/transform/sanitize.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/transform/sanitize.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.d.ts
CHANGED
|
@@ -11,5 +11,6 @@ export declare function transformLinkToOriginalArticle(opts: {
|
|
|
11
11
|
currentPath: string;
|
|
12
12
|
}): string;
|
|
13
13
|
export declare function getHrefTokenAttr(token: Token): string;
|
|
14
|
+
export declare function getSrcTokenAttr(token: Token): string;
|
|
14
15
|
export declare const PAGE_LINK_REGEXP: RegExp;
|
|
15
16
|
export declare function defaultTransformLink(href: string): string;
|
package/lib/utils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.defaultTransformLink = exports.PAGE_LINK_REGEXP = exports.getHrefTokenAttr = exports.transformLinkToOriginalArticle = exports.isExternalHref = exports.headingInfo = exports.findBlockTokens = exports.isLocalUrl = void 0;
|
|
6
|
+
exports.defaultTransformLink = exports.PAGE_LINK_REGEXP = exports.getSrcTokenAttr = exports.getHrefTokenAttr = exports.transformLinkToOriginalArticle = exports.isExternalHref = exports.headingInfo = exports.findBlockTokens = exports.isLocalUrl = void 0;
|
|
7
7
|
const url_1 = __importDefault(require("url"));
|
|
8
8
|
function isLocalUrl(url) {
|
|
9
9
|
return !/^(?:[a-z]+:)?\/\//i.test(url);
|
|
@@ -80,6 +80,16 @@ function getHrefTokenAttr(token) {
|
|
|
80
80
|
return href;
|
|
81
81
|
}
|
|
82
82
|
exports.getHrefTokenAttr = getHrefTokenAttr;
|
|
83
|
+
function getSrcTokenAttr(token) {
|
|
84
|
+
let src = token.attrGet('src') || '';
|
|
85
|
+
try {
|
|
86
|
+
// decodeURI can throw an error https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError
|
|
87
|
+
src = decodeURI(src);
|
|
88
|
+
}
|
|
89
|
+
catch (e) { }
|
|
90
|
+
return src;
|
|
91
|
+
}
|
|
92
|
+
exports.getSrcTokenAttr = getSrcTokenAttr;
|
|
83
93
|
exports.PAGE_LINK_REGEXP = /\.(md|ya?ml)$/i;
|
|
84
94
|
function defaultTransformLink(href) {
|
|
85
95
|
var _a;
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/transform/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/transform/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/js/base.ts
CHANGED
package/src/js/code.ts
CHANGED
|
@@ -18,39 +18,45 @@ function notifySuccess(svgButton: HTMLElement | null) {
|
|
|
18
18
|
icon.beginElement();
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
function buttonCopyFn(target: HTMLElement) {
|
|
22
|
+
const parent = target.parentNode;
|
|
23
|
+
|
|
24
|
+
if (!parent) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const code = parent.querySelector<HTMLElement>('pre code');
|
|
29
|
+
if (!code) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Get all text nodes and filter out line numbers
|
|
34
|
+
const textContent = Array.from(code.childNodes)
|
|
35
|
+
.filter((node) => {
|
|
36
|
+
// Skip line number spans
|
|
37
|
+
if (node instanceof HTMLElement && node.classList.contains('yfm-line-number')) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
})
|
|
42
|
+
.map((node) => node.textContent)
|
|
43
|
+
.join('');
|
|
44
|
+
|
|
45
|
+
copyToClipboard(textContent).then(() => {
|
|
46
|
+
notifySuccess(parent.querySelector('.yfm-clipboard-icon'));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
21
50
|
if (typeof document !== 'undefined') {
|
|
22
51
|
document.addEventListener('click', (event) => {
|
|
23
52
|
const target = getEventTarget(event) as HTMLElement;
|
|
24
53
|
|
|
25
|
-
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const parent = target.parentNode;
|
|
30
|
-
|
|
31
|
-
if (!parent) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
54
|
+
const button = target.matches(BUTTON_SELECTOR);
|
|
34
55
|
|
|
35
|
-
|
|
36
|
-
if (!code) {
|
|
56
|
+
if (isCustom(event) || !button) {
|
|
37
57
|
return;
|
|
38
58
|
}
|
|
39
59
|
|
|
40
|
-
|
|
41
|
-
const textContent = Array.from(code.childNodes)
|
|
42
|
-
.filter((node) => {
|
|
43
|
-
// Skip line number spans
|
|
44
|
-
if (node instanceof HTMLElement && node.classList.contains('yfm-line-number')) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
return true;
|
|
48
|
-
})
|
|
49
|
-
.map((node) => node.textContent)
|
|
50
|
-
.join('');
|
|
51
|
-
|
|
52
|
-
copyToClipboard(textContent.trim()).then(() => {
|
|
53
|
-
notifySuccess(parent.querySelector('.yfm-clipboard-icon'));
|
|
54
|
-
});
|
|
60
|
+
buttonCopyFn(target);
|
|
55
61
|
});
|
|
56
62
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import {copyToClipboard, getEventTarget, isCustom} from '../utils';
|
|
2
|
+
|
|
3
|
+
import {INLINE_CODE, OPEN_CLASS} from './constant';
|
|
4
|
+
import {
|
|
5
|
+
closeTooltip,
|
|
6
|
+
getInlineCodeByTooltip,
|
|
7
|
+
getTooltipElement,
|
|
8
|
+
setTooltipPosition,
|
|
9
|
+
tooltipWorker,
|
|
10
|
+
} from './utils';
|
|
11
|
+
|
|
12
|
+
export function inlineCopyFn(target: HTMLElement) {
|
|
13
|
+
const innerText = target.innerText;
|
|
14
|
+
|
|
15
|
+
if (!innerText) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
copyToClipboard(innerText).then(() => {
|
|
20
|
+
tooltipWorker(target);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (typeof document !== 'undefined') {
|
|
25
|
+
document.addEventListener('click', (event) => {
|
|
26
|
+
const target = getEventTarget(event) as HTMLElement;
|
|
27
|
+
|
|
28
|
+
const inline = target.matches(INLINE_CODE);
|
|
29
|
+
|
|
30
|
+
if (isCustom(event) || !inline) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
inlineCopyFn(target);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
document.addEventListener('keydown', (event) => {
|
|
38
|
+
if (event.key === 'Enter' && document.activeElement) {
|
|
39
|
+
const activeElement = document.activeElement as HTMLElement;
|
|
40
|
+
|
|
41
|
+
const innerText = activeElement.innerText;
|
|
42
|
+
|
|
43
|
+
if (!innerText) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
copyToClipboard(innerText).then(() => {
|
|
48
|
+
tooltipWorker(activeElement);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const inlineTooltip = getTooltipElement();
|
|
53
|
+
|
|
54
|
+
if (event.key === 'Escape' && inlineTooltip) {
|
|
55
|
+
closeTooltip(inlineTooltip);
|
|
56
|
+
getInlineCodeByTooltip(inlineTooltip)?.focus(); // Set focus back to open button after closing popup
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
window.addEventListener('resize', () => {
|
|
61
|
+
const inlineTooltip = getTooltipElement();
|
|
62
|
+
if (!inlineTooltip) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const inlineId = inlineTooltip.getAttribute('inline-id') || '';
|
|
67
|
+
const inlineCodeElement = document.getElementById(inlineId);
|
|
68
|
+
|
|
69
|
+
if (!inlineCodeElement) {
|
|
70
|
+
inlineTooltip.classList.toggle(OPEN_CLASS);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
setTooltipPosition(inlineTooltip, inlineCodeElement);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import {getCoords} from '../term/utils';
|
|
2
|
+
|
|
3
|
+
import {OPEN_CLASS} from './constant';
|
|
4
|
+
|
|
5
|
+
export let timer: ReturnType<typeof setTimeout> | null = null;
|
|
6
|
+
|
|
7
|
+
let isListenerNeeded = true;
|
|
8
|
+
|
|
9
|
+
export function getTooltipElement(): HTMLElement | null {
|
|
10
|
+
return document.querySelector('.yfm-inline-code-tooltip');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function setTooltipAriaAttributes(tooltipElement: HTMLElement, targetElement: HTMLElement): void {
|
|
14
|
+
const ariaLive = targetElement.getAttribute('aria-live') || 'polite';
|
|
15
|
+
tooltipElement?.setAttribute('aria-live', ariaLive);
|
|
16
|
+
tooltipElement?.setAttribute('aria-modal', 'true');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function checkTimerAndClear() {
|
|
20
|
+
if (timer) {
|
|
21
|
+
clearTimeout(timer);
|
|
22
|
+
timer = null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function tooltipParentElement(target: HTMLElement | null) {
|
|
27
|
+
if (!target) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const closestScrollableParent = target.closest('table') || target.closest('code');
|
|
32
|
+
|
|
33
|
+
return closestScrollableParent || target.parentElement;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function tooltipOnResize() {
|
|
37
|
+
const openedDefinition = getTooltipElement();
|
|
38
|
+
|
|
39
|
+
if (!openedDefinition) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const inlineId = openedDefinition.getAttribute('inline-id') || '';
|
|
43
|
+
const targetElement = document.getElementById(inlineId);
|
|
44
|
+
|
|
45
|
+
if (!targetElement) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
setTooltipPosition(openedDefinition, targetElement);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function setTooltipPosition(tooltipElement: HTMLElement, targetElement: HTMLElement): void {
|
|
53
|
+
const {
|
|
54
|
+
x: inlineX,
|
|
55
|
+
y: inlineY,
|
|
56
|
+
right: inlineRight,
|
|
57
|
+
left: inlineLeft,
|
|
58
|
+
width: inlineWidth,
|
|
59
|
+
height: inlineHeight,
|
|
60
|
+
} = targetElement.getBoundingClientRect();
|
|
61
|
+
|
|
62
|
+
const tooltipParent = tooltipParentElement(targetElement);
|
|
63
|
+
|
|
64
|
+
if (!tooltipParent) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const {right: tooltipParentRight, left: tooltipParentLeft} =
|
|
69
|
+
tooltipParent.getBoundingClientRect();
|
|
70
|
+
|
|
71
|
+
if ((tooltipParentRight < inlineLeft || tooltipParentLeft > inlineRight) && !isListenerNeeded) {
|
|
72
|
+
closeTooltip(tooltipElement);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (isListenerNeeded && tooltipParent) {
|
|
77
|
+
tooltipParent.addEventListener('scroll', tooltipOnResize);
|
|
78
|
+
isListenerNeeded = false;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const relativeX = Number(tooltipElement.getAttribute('relativeX'));
|
|
82
|
+
const relativeY = Number(tooltipElement.getAttribute('relativeY'));
|
|
83
|
+
|
|
84
|
+
if (relativeX === inlineX && relativeY === inlineY) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
tooltipElement.setAttribute('relativeX', String(inlineX));
|
|
89
|
+
tooltipElement.setAttribute('relativeY', String(inlineY));
|
|
90
|
+
|
|
91
|
+
const offsetTop = inlineHeight + 5;
|
|
92
|
+
const definitionParent = tooltipElement.parentElement;
|
|
93
|
+
|
|
94
|
+
if (!definitionParent) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const {width: definitionWidth} = tooltipElement.getBoundingClientRect();
|
|
99
|
+
const {left: definitionParentLeft} = definitionParent.getBoundingClientRect();
|
|
100
|
+
|
|
101
|
+
// If definition not fit document change base alignment
|
|
102
|
+
const definitionLeftCoordinate = Number(getCoords(targetElement).left);
|
|
103
|
+
const definitionRightCoordinate = definitionWidth + definitionLeftCoordinate;
|
|
104
|
+
|
|
105
|
+
const definitionOutOfScreenOnLeft = definitionLeftCoordinate - definitionWidth < 0;
|
|
106
|
+
const definitionOutOfScreenOnRight = definitionRightCoordinate > document.body.clientWidth;
|
|
107
|
+
|
|
108
|
+
const isAlignSwapped = definitionOutOfScreenOnRight || document.dir === 'rtl';
|
|
109
|
+
const fitDefinitionDocument =
|
|
110
|
+
isAlignSwapped && !definitionOutOfScreenOnLeft ? definitionWidth - inlineWidth : 0;
|
|
111
|
+
const customHeaderTop = getCoords(definitionParent).top - definitionParent.offsetTop;
|
|
112
|
+
const offsetRight = 5;
|
|
113
|
+
const shiftLeft = definitionOutOfScreenOnRight
|
|
114
|
+
? definitionRightCoordinate - document.body.clientWidth + offsetRight
|
|
115
|
+
: 0;
|
|
116
|
+
const offsetLeft =
|
|
117
|
+
getCoords(targetElement).left -
|
|
118
|
+
definitionParentLeft +
|
|
119
|
+
definitionParent.offsetLeft -
|
|
120
|
+
fitDefinitionDocument;
|
|
121
|
+
|
|
122
|
+
const isShiftLeftNeeded = offsetLeft + definitionWidth >= document.body.clientWidth;
|
|
123
|
+
|
|
124
|
+
tooltipElement.style.top =
|
|
125
|
+
Number(getCoords(targetElement).top + offsetTop - customHeaderTop) + 'px';
|
|
126
|
+
tooltipElement.style.left = Number(offsetLeft - (isShiftLeftNeeded ? shiftLeft : 0)) + 'px';
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export function getInlineCodeByTooltip(definition: HTMLElement) {
|
|
130
|
+
const inlineId = definition.getAttribute('inline-id');
|
|
131
|
+
|
|
132
|
+
return inlineId ? document.getElementById(inlineId) : null;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function closeTooltipFn(definition: HTMLElement) {
|
|
136
|
+
definition.classList.remove(OPEN_CLASS);
|
|
137
|
+
const inline = getInlineCodeByTooltip(definition);
|
|
138
|
+
const tooltipParent = tooltipParentElement(inline);
|
|
139
|
+
|
|
140
|
+
definition.removeAttribute('inline-id');
|
|
141
|
+
|
|
142
|
+
if (!tooltipParent) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
tooltipParent.removeEventListener('scroll', tooltipOnResize);
|
|
147
|
+
isListenerNeeded = true;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export function openTooltip(target: HTMLElement) {
|
|
151
|
+
const tooltipElement = document.getElementById('tooltip_inline_clipboard_dialog');
|
|
152
|
+
|
|
153
|
+
if (!target.matches('.yfm-clipboard-inline-code') || !tooltipElement) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
tooltipElement.setAttribute('inline-id', target.getAttribute('id') || '');
|
|
158
|
+
setTooltipAriaAttributes(tooltipElement, target);
|
|
159
|
+
setTooltipPosition(tooltipElement, target);
|
|
160
|
+
|
|
161
|
+
// In order not to get rid of the smooth appearance effect, I had to do this
|
|
162
|
+
if (tooltipElement.classList.contains(OPEN_CLASS)) {
|
|
163
|
+
tooltipElement.classList.remove(OPEN_CLASS);
|
|
164
|
+
requestAnimationFrame(() => {
|
|
165
|
+
tooltipElement.classList.add(OPEN_CLASS);
|
|
166
|
+
});
|
|
167
|
+
} else {
|
|
168
|
+
tooltipElement.classList.add(OPEN_CLASS);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return tooltipElement;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export function closeTooltip(target: HTMLElement) {
|
|
175
|
+
checkTimerAndClear();
|
|
176
|
+
closeTooltipFn(target);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export function tooltipWorker(target: HTMLElement) {
|
|
180
|
+
const definition = openTooltip(target);
|
|
181
|
+
|
|
182
|
+
if (!definition) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
checkTimerAndClear();
|
|
186
|
+
timer = setTimeout(() => {
|
|
187
|
+
closeTooltip(definition);
|
|
188
|
+
timer = null;
|
|
189
|
+
}, 1000);
|
|
190
|
+
}
|
package/src/js/term/utils.ts
CHANGED
|
@@ -172,7 +172,7 @@ export function closeDefinition(definition: HTMLElement) {
|
|
|
172
172
|
isListenerNeeded = true;
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
function getCoords(elem: HTMLElement) {
|
|
175
|
+
export function getCoords(elem: HTMLElement) {
|
|
176
176
|
const box = elem.getBoundingClientRect();
|
|
177
177
|
|
|
178
178
|
const body = document.body;
|