From ce644a5dc22b56226479a4c8dd5fc4fd4a8d6a21 Mon Sep 17 00:00:00 2001
From: valentine195 <38669521+valentine195@users.noreply.github.com>
Date: Mon, 14 Mar 2022 15:37:09 -0400
Subject: [PATCH] fix: Significant improvements to the publish feature for code
blocks.
---
esbuild.publish.mjs | 41 ++++
package.json | 1 +
publish/publish.admonition.css | 264 +-------------------------
publish/publish.admonition.txt | 301 +-----------------------------
src/publish/publish.admonition.ts | 132 +++++++++++--
src/settings.ts | 21 ++-
6 files changed, 173 insertions(+), 587 deletions(-)
create mode 100644 esbuild.publish.mjs
diff --git a/esbuild.publish.mjs b/esbuild.publish.mjs
new file mode 100644
index 0000000..8e7cb39
--- /dev/null
+++ b/esbuild.publish.mjs
@@ -0,0 +1,41 @@
+import esbuild from "esbuild";
+import process from "process";
+import builtins from "builtin-modules";
+import { config } from "dotenv";
+import { sassPlugin } from "esbuild-sass-plugin";
+
+config();
+
+const banner = `/*
+THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
+if you want to view the source, please visit the github repository of this plugin
+*/
+`;
+
+const prod = process.argv[2] === "production";
+
+const dir = prod ? "./" : process.env.OUTDIR;
+
+esbuild
+ .build({
+ banner: {
+ js: banner
+ },
+ entryPoints: ["src/publish/publish.admonition.ts"],
+ bundle: true,
+ external: ["obsidian", "electron"],
+ format: "cjs",
+ watch: !prod,
+ minify: prod,
+ target: "es2020",
+ logLevel: "info",
+ sourcemap: !prod ? "inline" : false,
+ treeShaking: true,
+ outfile: "./publish/publish.admonition.txt",
+ define: {
+ ADMONITION_ICON_MAP: "ADMONITION_ICON_MAP"
+ },
+ tsconfig: "./src/publish/tsconfig.json",
+ plugins: [sassPlugin()]
+ })
+ .catch(() => process.exit(1));
diff --git a/package.json b/package.json
index d823872..8a404e9 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,7 @@
"scripts": {
"dev": "node ./esbuild.config.mjs",
"build": "node ./esbuild.config.mjs production",
+ "publish": "node ./esbuild.publish.mjs production",
"release": "standard-version"
},
"standard-version": {
diff --git a/publish/publish.admonition.css b/publish/publish.admonition.css
index a785185..d89a64b 100644
--- a/publish/publish.admonition.css
+++ b/publish/publish.admonition.css
@@ -1,263 +1 @@
-/** Constants */
-:root {
- --admonition-details-icon: url("data:image/svg+xml;charset=utf-8,");
-}
-
-.admonition {
- margin: 1.5625em 0;
- padding: 0;
- overflow: hidden;
- color: var(--text-normal);
- page-break-inside: avoid;
- background-color: var(--background-secondary);
- border-left: 0.2rem solid rgb(var(--admonition-color));
- border-radius: 0.1rem;
- box-shadow: 0 0.2rem 0.5rem var(--background-modifier-box-shadow);
-}
-
-.admonition-title {
- position: relative;
- padding: 0.6rem 0.25em;
- font-weight: 700;
- background-color: rgba(var(--admonition-color), 0.1);
-}
-
-.admonition-title-content {
- display: flex;
- justify-content: flex-start;
- margin-top: 0 !important;
- margin-bottom: 0 !important;
-}
-
-.admonition-title-icon {
- color: rgb(var(--admonition-color));
- display: flex;
- align-items: center;
- justify-content: center;
- margin: 0 0.5em 0 0.25em;
- min-width: 1em;
- width: min-content;
-}
-
-.admonition-title-markdown {
- display: block;
-}
-
-.admonition-title.no-title {
- display: none;
-}
-
-.admonition > .admonition-title.no-title + .admonition-content-holder {
- margin-top: 1rem;
- margin-bottom: 1rem;
-}
-
-.admonition-content-holder {
- position: relative;
-}
-
-.admonition-content {
- margin: 10px 15px;
- position: relative;
- overflow-x: auto;
-}
-
-.admonition-content-copy {
- color: var(--text-faint);
- cursor: pointer;
- opacity: 0;
- position: absolute;
- right: 0.375rem;
- top: -5px;
- transition: 0.3s opacity ease-in;
-}
-
-.admonition-content-copy:hover {
- color: var(--text-normal);
-}
-
-.admonition:hover .admonition-content-copy,
-.admonition-content-copy:hover {
- opacity: 1;
-}
-.admonition-title:hover + .admonition-content .admonition-content-copy {
- opacity: 0;
-}
-
-details.admonition:not([open]) {
- padding-bottom: 0;
-}
-
-details.admonition > summary {
- outline: none;
- display: block !important;
- list-style: none !important;
- list-style-type: none !important;
- min-height: 1rem;
- border-top-left-radius: 0.1rem;
- border-top-right-radius: 0.1rem;
- cursor: pointer;
-}
-
-details.admonition > summary::-webkit-details-marker,
-details.admonition > summary::marker {
- display: none !important;
-}
-
-details.admonition > summary > .collapser {
- position: absolute;
- top: 50%;
- right: 8px;
- transform: translateY(-50%);
- content: "";
-}
-
-details.admonition > summary > .collapser > .handle {
- transform: rotate(0deg);
- transition: transform 0.25s;
- background-color: currentColor;
- -webkit-mask-repeat: no-repeat;
- mask-repeat: no-repeat;
- -webkit-mask-size: contain;
- mask-size: contain;
- -webkit-mask-image: var(--admonition-details-icon);
- mask-image: var(--admonition-details-icon);
- width: 20px;
- height: 20px;
-}
-
-details.admonition[open] > summary > .collapser > .handle {
- transform: rotate(90deg);
-}
-
-/** Settings */
-.admonition-setting-additional-container
- > .setting-item:not(.setting-item-heading) {
- border: 0px;
-}
-
-.admonition-setting-additional-container {
- border-bottom: 1px solid var(--background-modifier-border);
- border-top: 1px solid var(--background-modifier-border);
- padding: 18px 0 0 0;
-}
-
-.admonition-setting-additional-container > .setting-item-heading:only-child {
- padding-bottom: 18px;
-}
-
-.admonition-setting-additional-container > .additional {
- margin: 6px 12px;
-}
-.admonition-setting-additional-container > .additional > .setting-item {
- border-top: 0;
- padding-top: 9px;
-}
-.admonition-setting-additional-container
- > .additional
- > .setting-item
- > .setting-item-control
- > *:first-child {
- margin: 0 6px;
-}
-
-.setting-item > .admonition {
- width: 50%;
- margin: 0;
-}
-
-.unset-align-items {
- align-items: unset;
-}
-
-.has-invalid-message {
- display: grid;
- grid-template-columns: 1fr 1fr;
- grid-template-rows: 1fr 1fr;
- grid-template-areas:
- "text image"
- "inv inv";
-}
-
-input.is-invalid {
- border-color: #dc3545 !important;
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
- background-repeat: no-repeat;
- background-position: right calc(0.375em + 0.1875rem) center;
- background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
-}
-
-.admonition-type-setting input {
- grid-column: span 2;
-}
-
-.invalid-feedback {
- display: block;
- grid-area: inv;
- width: 100%;
- margin-top: 0.25rem;
- font-size: 0.875em;
- color: #dc3545;
-}
-
-.suggestion-content.admonition-icon {
- display: flex;
- align-items: center;
- justify-content: space-between;
- flex-flow: row wrap;
-}
-
-.suggestion-content.admonition-icon > .suggestion-text.admonition-text {
- width: fit-content;
-}
-
-.suggestion-content.admonition-icon
- > .suggestion-flair.admonition-suggester-icon {
- width: min-content;
- position: relative;
- top: unset;
- left: unset;
- right: unset;
- bottom: unset;
- display: flex;
- align-items: center;
-}
-
-.suggestion-content.admonition-icon > .suggestion-note {
- width: 100%;
-}
-
-.admonition-suggester-icon svg {
- width: 1em;
-}
-
-/** Internal */
-
-.admonition li.task-list-item.is-checked p {
- text-decoration: line-through;
-}
-
-.admonition-settings .coffee {
- width: 60%;
- color: var(--text-faint);
- margin: 1rem auto;
- text-align: center;
-}
-.admonition-settings .coffee img {
- height: 30px;
-}
-
-.admonition-file-upload {
- margin-right: 0;
- margin-left: 12px;
-}
-.admonition-file-upload > input[type="file"] {
- display: none;
-}
-
-.insert-admonition-modal button:focus,
-.insert-admonition-modal .clickable-icon:focus {
- box-shadow: 0px 0px 5px rgb(0 0 0 / 50%);
- border-color: var(--background-modifier-border-focus);
-}
-
+:root{--admonition-details-icon: url("data:image/svg+xml;charset=utf-8,");--admonition-margin-top: 1.5625em;--admonition-margin-bottom: var(--admonition-margin-top);--admonition-margin-top-lp: 0px;--admonition-margin-bottom-lp: 12px}.admonition{margin-top:var(--admonition-margin-top);margin-bottom:var(--admonition-margin-bottom);margin-left:0;margin-right:0;padding:0;overflow:hidden;color:var(--text-normal);page-break-inside:avoid;background-color:var(--background-secondary);border-left:.2rem solid rgb(var(--admonition-color));border-radius:.1rem;box-shadow:0 .2rem .5rem var(--background-modifier-box-shadow)}*:not(.is-live-preview) .admonition.no-content{display:none}.is-live-preview .admonition.no-content{opacity:.1}.admonition-title{position:relative;padding:.6rem .25em;font-weight:700;background-color:rgba(var(--admonition-color),.1)}.admonition-title-content{display:flex;justify-content:flex-start;margin-top:0!important;margin-bottom:0!important}.admonition-title-icon{color:rgb(var(--admonition-color));display:flex;align-items:center;justify-content:center;margin:0 .5em 0 .25em;min-width:1em;width:min-content}.admonition-title-markdown{display:block}.admonition-title.no-title{display:none}.admonition-plugin.no-title .admonition-content-holder,.admonition-plugin.no-title .admonition-content-holder>.admonition-content{margin-top:0;margin-bottom:0}.admonition-content-holder{position:relative}.admonition-content{margin:10px 15px;position:relative;overflow-x:auto}.admonition-content-copy{color:var(--text-faint);cursor:pointer;opacity:0;position:absolute;right:.375rem;top:-5px;transition:.3s opacity ease-in}.admonition-content-copy:hover{color:var(--text-normal)}.admonition:hover .admonition-content-copy,.admonition-content-copy:hover{opacity:1}.admonition-title:hover+.admonition-content .admonition-content-copy{opacity:0}details.admonition:not([open]){padding-bottom:0}details.admonition>summary{outline:none;display:block!important;list-style:none!important;list-style-type:none!important;min-height:1rem;border-top-left-radius:.1rem;border-top-right-radius:.1rem;cursor:pointer}details.admonition>summary::-webkit-details-marker,details.admonition>summary::marker{display:none!important}details.admonition>summary>.collapser{position:absolute;top:50%;right:8px;transform:translateY(-50%);content:""}details.admonition>summary>.collapser>.handle{transform:rotate(0);transition:transform .25s;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-image:var(--admonition-details-icon);mask-image:var(--admonition-details-icon);width:20px;height:20px}details.admonition[open]>summary>.collapser>.handle{transform:rotate(90deg)}.admonition-settings .additional{margin:6px 12px}.admonition-settings .additional>.setting-item{border-top:0;padding-top:9px}.setting-item>.admonition{width:50%;margin:0}.unset-align-items{align-items:unset}.has-invalid-message{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;grid-template-areas:"text image" "inv inv"}input.is-invalid{border-color:#dc3545!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.admonition-type-setting input{grid-column:span 2}.invalid-feedback{display:block;grid-area:inv;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.suggestion-content.admonition-icon{display:flex;align-items:center;justify-content:space-between;flex-flow:row wrap}.suggestion-content.admonition-icon>.suggestion-text.admonition-text{width:fit-content}.suggestion-content.admonition-icon>.suggestion-flair.admonition-suggester-icon{width:min-content;position:relative;top:unset;left:unset;right:unset;bottom:unset;display:flex;align-items:center}.suggestion-content.admonition-icon>.suggestion-note{width:100%}.admonition-suggester-icon svg{width:1em}.admonition-color-settings .setting-item-control{gap:1rem}.admonition-color-settings input[type=color]:disabled{opacity:.75;cursor:not-allowed}.admonition-convert{display:flex;align-items:center;gap:.25rem}.admonition-convert-icon{display:flex;align-items:center}.admonition-convert-icon .admonition-spin{animation:admonition-convert 1s ease-in-out infinite;fill:currentColor}@keyframes admonition-convert{0%{transform:rotate(-45deg)}to{transform:rotate(315deg)}}.admonition-settings .admonition-convert{color:var(--text-error)}.notice-container .admonition-convert{justify-content:space-between;gap:1rem}.admonition li.task-list-item.is-checked p{text-decoration:line-through}.admonition-settings .coffee{width:60%;color:var(--text-faint);margin:1rem auto;text-align:center}.admonition-settings .coffee img{height:30px}.admonition-file-upload{margin-right:0;margin-left:12px}.admonition-file-upload>input[type=file]{display:none}.insert-admonition-modal button:focus,.insert-admonition-modal .clickable-icon:focus{box-shadow:0 0 5px #0000007f;border-color:var(--background-modifier-border-focus)}.admonition-settings details>summary{outline:none;display:block!important;list-style:none!important;list-style-type:none!important;min-height:1rem;border-top-left-radius:.1rem;border-top-right-radius:.1rem;cursor:pointer;position:relative}.admonition-settings details>summary::-webkit-details-marker,.admonition-settings details>summary::marker{display:none!important}.admonition-settings details>summary>.collapser{position:absolute;top:50%;right:8px;transform:translateY(-50%);content:""}.admonition-settings details>summary>.collapser>.handle{transform:rotate(0);transition:transform .25s;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-image:var(--admonition-details-icon);mask-image:var(--admonition-details-icon);width:20px;height:20px}.admonition-settings details[open]>summary>.collapser>.handle{transform:rotate(90deg)}.admonition-setting-warning{display:flex;gap:.25rem;align-items:center}.admonition-setting-warning.text-warning{color:var(--text-error)}.admonitions-nested-settings .setting-item{border:0px;padding-bottom:0}.admonitions-nested-settings{padding-bottom:18px}.admonitions-nested-settings[open] .setting-item-heading,.admonitions-nested-settings:not(details) .setting-item-heading{border-top:0px;border-bottom:1px solid var(--background-modifier-border)}.admonition.no-drop{box-shadow:none}.admonition.no-drop>.admonition-title.no-title+.admonition-content-holder{margin-top:0;margin-bottom:0}.admonition.no-drop .admonition .admonition-content-holder{border-right:1px solid rgba(var(--admonition-color),.2);border-bottom:1px solid rgba(var(--admonition-color),.2)}.admonition.no-drop .admonition .admonition-title.no-title+.admonition-content-holder{border-top:1px solid rgba(var(--admonition-color),.2);margin-top:0;margin-bottom:0}.is-live-preview .admonition{margin-top:var(--admonition-margin-top-lp);margin-bottom:var(--admonition-margin-bottom-lp)}.is-live-preview .admonition-content>*{margin-top:0;margin-bottom:0}.is-live-preview .admonition-content>* br{display:none}.is-live-preview .admonition-content>*:first-child{margin-top:16px}.is-live-preview .admonition-content>*:last-child{margin-bottom:16px}.is-live-preview .admonition-content ul,.is-live-preview .admonition-content ol{white-space:normal}.is-live-preview .admonition-content .math-block>mjx-container{padding:0}
diff --git a/publish/publish.admonition.txt b/publish/publish.admonition.txt
index 67e6fa9..7b1b7f7 100644
--- a/publish/publish.admonition.txt
+++ b/publish/publish.admonition.txt
@@ -1,295 +1,8 @@
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else {
- var a = factory();
- for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
- }
-})(self, function() {
-return /******/ (() => { // webpackBootstrap
-/******/ "use strict";
-/******/ // The require scope
-/******/ var __webpack_require__ = {};
-/******/
-/************************************************************************/
-/******/ /* webpack/runtime/make namespace object */
-/******/ (() => {
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = (exports) => {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/ })();
-/******/
-/************************************************************************/
-var __webpack_exports__ = {};
-__webpack_require__.r(__webpack_exports__);
+/*
+THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
+if you want to view the source, please visit the github repository of this plugin
+*/
-function createEl(tag, t, e) {
- const i = document.createElement(tag);
- "string" == typeof t &&
- (t = {
- cls: t
- });
- const r = t || {}, o = r.cls, s = r.text, a = r.attr, l = r.title, c = r.value, u = r.type, h = e ? e : r.parent, p = r.prepend, d = r.href;
- return (o &&
- (Array.isArray(o)
- ? (i.className = o.join(" "))
- : (i.className = o)),
- s && (i.textContent = s),
- a &&
- Object.keys(a).forEach((t) => {
- const n = a[t];
- null !== n && i.setAttribute(t, String(n));
- }),
- l && (i.title = l),
- c &&
- (i instanceof HTMLInputElement ||
- i instanceof HTMLSelectElement ||
- i instanceof HTMLOptionElement) &&
- (i.value = c),
- /* u && i instanceof HTMLInputElement && (i.type = u), */
- u && i instanceof HTMLStyleElement && i.setAttribute("type", u),
- d &&
- (i instanceof HTMLAnchorElement || i instanceof HTMLLinkElement) &&
- (i.href = d),
- h && (p ? h.insertBefore(i, h.firstChild) : h.appendChild(i)),
- i);
-}
-//@ts-ignore-line
-const createDiv = function (o, e) {
- return createEl("div", o, e);
-};
-Node.prototype.createDiv = function (o, cb) {
- return createDiv(o, this);
-};
-Node.prototype.createEl = function (tag, o, cb) {
- return createEl(tag, o, this);
-};
-Element.prototype.addClass = function (...args) {
- const e = [];
- for (let t = 0; t < args.length; t++)
- e[t] = args[t];
- this.addClasses(e);
-};
-Element.prototype.addClasses = function (e) {
- for (let t = 0; t < e.length; t++)
- this.classList.add(e[t]);
-};
-function getAdmonitionElement(type, title, icon, color, collapse, id) {
- var _a;
- let admonition, titleEl, attrs = {
- style: `--admonition-color: ${color};`
- };
- if (collapse && collapse != "none") {
- if (collapse === "open") {
- attrs.open = "open";
- }
- admonition = createEl("details", {
- cls: `admonition admonition-${type} admonition-plugin`,
- attr: attrs
- });
- titleEl = admonition.createEl("summary", {
- cls: `admonition-title ${!(title === null || title === void 0 ? void 0 : title.trim().length) ? "no-title" : ""}`
- });
- }
- else {
- admonition = createDiv({
- cls: `admonition admonition-${type} admonition-plugin`,
- attr: attrs
- });
- titleEl = admonition.createDiv({
- cls: `admonition-title ${!(title === null || title === void 0 ? void 0 : title.trim().length) ? "no-title" : ""}`
- });
- }
- if (id) {
- admonition.id = id;
- }
- if (title && title.trim().length) {
- /**
- * Title structure
- *
.admonition-title
- * .admonition-title-content - Rendered Markdown top-level element (e.g. H1/2/3 etc, p)
- * div.admonition-title-icon
- * svg
- * div.admonition-title-markdown - Container of rendered markdown
- * ...rendered markdown children...
- */
- //get markdown
- const markdownHolder = createDiv();
- //MarkdownRenderer.renderMarkdown(title, markdownHolder, "", null);
- //admonition-title-content is first child of rendered markdown
- const admonitionTitleContent =
- /* markdownHolder?.children[0]?.tagName === "P"
- ? createDiv()
- : markdownHolder.children[0] ?? */ createDiv();
- //get children of markdown element, then remove them
- const markdownElements = Array.from(((_a = markdownHolder.children[0]) === null || _a === void 0 ? void 0 : _a.childNodes) || []);
- admonitionTitleContent.innerHTML = "";
- admonitionTitleContent.addClass("admonition-title-content");
- //build icon element
- const iconEl = admonitionTitleContent.createDiv("admonition-title-icon");
- if (icon) {
- iconEl.innerHTML = icon;
- }
- //add markdown children back
- const admonitionTitleMarkdown = admonitionTitleContent.createDiv("admonition-title-markdown");
- admonitionTitleMarkdown.innerText = title;
- /* for (let i = 0; i < markdownElements.length; i++) {
- admonitionTitleMarkdown.appendChild(markdownElements[i]);
- } */
- titleEl.appendChild(admonitionTitleContent || createDiv());
- }
- //add them to title element
- if (collapse) {
- titleEl.createDiv("collapser").createDiv("handle");
- }
- return admonition;
-}
-function startsWithAny(str, needles) {
- for (let i = 0; i < needles.length; i++) {
- if (str.startsWith(needles[i])) {
- return i;
- }
- }
- return false;
-}
-function getParametersFromSource(type, src) {
- const keywordTokens = ["title:", "collapse:", "icon:", "color:"];
- const keywords = ["title", "collapse", "icon", "color"];
- let lines = src.split("\n");
- let skipLines = 0;
- let params = {};
- for (let i = 0; i < lines.length; i++) {
- let keywordIndex = startsWithAny(lines[i], keywordTokens);
- if (keywordIndex === false) {
- break;
- }
- let foundKeyword = keywords[keywordIndex];
- if (params[foundKeyword] !== undefined) {
- break;
- }
- params[foundKeyword] = lines[i]
- .substr(keywordTokens[keywordIndex].length)
- .trim();
- ++skipLines;
- }
- let { title = type[0].toUpperCase() + type.slice(1).toLowerCase(), collapse, icon, color } = params;
- let content = lines.slice(skipLines).join("\n");
- /**
- * If the admonition should collapse, but something other than open or closed was provided, set to closed.
- */
- if (collapse !== undefined &&
- collapse !== "none" &&
- collapse !== "open" &&
- collapse !== "closed") {
- collapse = "closed";
- }
- /**
- * If the admonition should collapse, but title was blanked, set the default title.
- */
- if (title.trim() === "" && collapse !== undefined && collapse !== "none") {
- title = type[0].toUpperCase() + type.slice(1).toLowerCase();
- return;
- }
- return { title, collapse, content, icon, color };
-}
-const blockSet = new Set();
-const ADMONITION_ICON_MAP = {};
-if (document.readyState === "complete") {
- postprocess();
- registerToProcess();
-}
-else {
- window.onload = () => {
- postprocess();
- registerToProcess();
- };
-}
-function registerToProcess() {
- const sizer = document.querySelector(".markdown-preview-sizer");
- const observer = new MutationObserver((mutations) => {
- mutations.forEach((mutation) => {
- if (mutation.type == "childList" && mutation.addedNodes.length) {
- mutation.addedNodes.forEach((node) => {
- var _a;
- if (node &&
- node instanceof Element &&
- node.children.length &&
- ((_a = node.firstElementChild) === null || _a === void 0 ? void 0 : _a.tagName) === "PRE") {
- //postprocess(node);
- preObserver.observe(node.firstChild, {
- attributes: true,
- childList: false,
- characterData: false,
- subtree: false
- });
- }
- });
- }
- });
- });
- observer.observe(sizer, {
- attributes: false,
- childList: true,
- subtree: false
- });
- const preObserver = new MutationObserver((mutations) => {
- mutations.forEach((mutation) => {
- if (mutation.target instanceof HTMLPreElement &&
- !blockSet.has(mutation.target) &&
- mutation.type === "attributes" &&
- mutation.attributeName === "class" &&
- Array.from(mutation.target.classList).some((cls) => /language-ad-(\w+)/.test(cls))) {
- blockSet.add(mutation.target);
- processAdmonitionBlock(mutation.target);
- }
- });
- });
-}
-function processAdmonitionBlock(admonitionBlock) {
- const [, type] = admonitionBlock.classList
- .toString()
- .match(/language-ad-(\w+)/);
- if (!type)
- return;
- if (!(type in ADMONITION_ICON_MAP))
- return;
- let { title = type[0].toUpperCase() + type.slice(1).toLowerCase(), collapse, content, icon = ADMONITION_ICON_MAP[type].icon, color = ADMONITION_ICON_MAP[type].color } = getParametersFromSource(type, admonitionBlock.innerText);
- let admonition = getAdmonitionElement(type, title, icon, color, collapse);
- const contentHolder = admonition.createDiv("admonition-content-holder");
- const admonitionContent = contentHolder.createDiv("admonition-content");
- admonitionContent.innerText = content;
- admonitionBlock.replaceWith(admonition);
-}
-function postprocess() {
- //do work
- const admonitions = document.querySelectorAll("pre[class*='language-ad']");
- if (!admonitions.length)
- return;
- for (let admonitionBlock of Array.from(admonitions)) {
- blockSet.add(admonitionBlock);
- const [, type] = admonitionBlock.classList
- .toString()
- .match(/language-ad-(\w+)/);
- if (!type)
- continue;
- if (!(type in ADMONITION_ICON_MAP))
- continue;
- let { title = type[0].toUpperCase() + type.slice(1).toLowerCase(), collapse, content, icon = ADMONITION_ICON_MAP[type].icon, color = ADMONITION_ICON_MAP[type].color } = getParametersFromSource(type, admonitionBlock.innerText);
- let admonition = getAdmonitionElement(type, title, icon, color, collapse);
- const contentHolder = admonition.createDiv("admonition-content-holder");
- const admonitionContent = contentHolder.createDiv("admonition-content");
- admonitionContent.innerText = content;
- admonitionBlock.replaceWith(admonition);
- }
-}
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC5hZG1vbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHVibGlzaC5hZG1vbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sb0JBQW9CLENBQUM7QUFFNUIsU0FBUyxRQUFRLENBQ2IsR0FBTSxFQUNOLENBQTJCLEVBQzNCLENBQWU7SUFFZixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDaEIsQ0FBQyxDQUFDLEdBQUc7WUFDRCxHQUFHLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQ2IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQ1QsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQ1YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFDYixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNmLE9BQU8sQ0FDSCxDQUFDO1FBQ0csQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxX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QUFJLEVBQ3JDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQzFDLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RCxJQUFJLFVBQVUsR0FBRyxvQkFBb0IsQ0FDakMsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLFFBQVEsQ0FDWCxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRXhFLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXhFLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFFdEMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMzQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuLi9hc3NldHMvbWFpbi5jc3NcIjtcclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUVsPEsgZXh0ZW5kcyBrZXlvZiBIVE1MRWxlbWVudFRhZ05hbWVNYXA+KFxyXG4gICAgdGFnOiBLLFxyXG4gICAgdD86IHN0cmluZyB8IERvbUVsZW1lbnRJbmZvLFxyXG4gICAgZT86IEhUTUxFbGVtZW50XHJcbik6IEhUTUxFbGVtZW50VGFnTmFtZU1hcFtLXSB7XHJcbiAgICBjb25zdCBpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xyXG4gICAgXCJzdHJpbmdcIiA9PSB0eXBlb2YgdCAmJlxyXG4gICAgICAgICh0ID0ge1xyXG4gICAgICAgICAgICBjbHM6IHRcclxuICAgICAgICB9KTtcclxuICAgIGNvbnN0IHIgPSB0IHx8IHt9LFxyXG4gICAgICAgIG8gPSByLmNscyxcclxuICAgICAgICBzID0gci50ZXh0LFxyXG4gICAgICAgIGEgPSByLmF0dHIsXHJcbiAgICAgICAgbCA9IHIudGl0bGUsXHJcbiAgICAgICAgYyA9IHIudmFsdWUsXHJcbiAgICAgICAgdSA9IHIudHlwZSxcclxuICAgICAgICBoID0gZSA/IGUgOiByLnBhcmVudCxcclxuICAgICAgICBwID0gci5wcmVwZW5kLFxyXG4gICAgICAgIGQgPSByLmhyZWY7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIG8gJiZcclxuICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkobylcclxuICAgICAgICAgICAgICAgID8gKGkuY2xhc3NOYW1lID0gby5qb2luKFwiIFwiKSlcclxuICAgICAgICAgICAgICAgIDogKGkuY2xhc3NOYW1lID0gbykpLFxyXG4gICAgICAgIHMgJiYgKGkudGV4dENvbnRlbnQgPSBzKSxcclxuICAgICAgICBhICYmXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGEpLmZvckVhY2goKHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBhW3RdO1xyXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gbiAmJiBpLnNldEF0dHJpYnV0ZSh0LCBTdHJpbmcobikpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBsICYmIChpLnRpdGxlID0gbCksXHJcbiAgICAgICAgYyAmJlxyXG4gICAgICAgICAgICAoaSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHxcclxuICAgICAgICAgICAgICAgIGkgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCB8fFxyXG4gICAgICAgICAgICAgICAgaSBpbnN0YW5jZW9mIEhUTUxPcHRpb25FbGVtZW50KSAmJlxyXG4gICAgICAgICAgICAoaS52YWx1ZSA9IGMpLFxyXG4gICAgICAgIC8qIHUgJiYgaSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgKGkudHlwZSA9IHUpLCAqL1xyXG4gICAgICAgIHUgJiYgaSBpbnN0YW5jZW9mIEhUTUxTdHlsZUVsZW1lbnQgJiYgaS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIHUpLFxyXG4gICAgICAgIGQgJiZcclxuICAgICAgICAgICAgKGkgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCB8fCBpIGluc3RhbmNlb2YgSFRNTExpbmtFbGVtZW50KSAmJlxyXG4gICAgICAgICAgICAoaS5ocmVmID0gZCksXHJcbiAgICAgICAgaCAmJiAocCA/IGguaW5zZXJ0QmVmb3JlKGksIGguZmlyc3RDaGlsZCkgOiBoLmFwcGVuZENoaWxkKGkpKSxcclxuICAgICAgICBpXHJcbiAgICApO1xyXG59XHJcbi8vQHRzLWlnbm9yZS1saW5lXHJcbmNvbnN0IGNyZWF0ZURpdiA9IGZ1bmN0aW9uIChcclxuICAgIG8/OiBzdHJpbmcgfCBEb21FbGVtZW50SW5mbyxcclxuICAgIGU/OiBIVE1MRWxlbWVudFxyXG4pOiBIVE1MRGl2RWxlbWVudCB7XHJcbiAgICByZXR1cm4gY3JlYXRlRWwoXCJkaXZcIiwgbywgZSk7XHJcbn07XHJcblxyXG5Ob2RlLnByb3RvdHlwZS5jcmVhdGVEaXYgPSBmdW5jdGlvbiAoXHJcbiAgICBvPzogc3RyaW5nIHwgRG9tRWxlbWVudEluZm8sXHJcbiAgICBjYj86IChlbDogSFRNTERpdkVsZW1lbnQpID0+IHZvaWRcclxuKTogSFRNTERpdkVsZW1lbnQge1xyXG4gICAgcmV0dXJuIGNyZWF0ZURpdihvLCB0aGlzKTtcclxufTtcclxuTm9kZS5wcm90b3R5cGUuY3JlYXRlRWwgPSBmdW5jdGlvbiA8SyBleHRlbmRzIGtleW9mIEhUTUxFbGVtZW50VGFnTmFtZU1hcD4oXHJcbiAgICB0YWc6IEssXHJcbiAgICBvPzogc3RyaW5nIHwgRG9tRWxlbWVudEluZm8sXHJcbiAgICBjYj86IChlbDogSFRNTEVsZW1lbnRUYWdOYW1lTWFwW0tdKSA9PiB2b2lkXHJcbik6IEhUTUxFbGVtZW50VGFnTmFtZU1hcFtLXSB7XHJcbiAgICByZXR1cm4gY3JlYXRlRWwodGFnLCBvLCB0aGlzKTtcclxufTtcclxuXHJcbkVsZW1lbnQucHJvdG90eXBlLmFkZENsYXNzID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICAgIGNvbnN0IGUgPSBbXTtcclxuICAgIGZvciAobGV0IHQgPSAwOyB0IDwgYXJncy5sZW5ndGg7IHQrKykgZVt0XSA9IGFyZ3NbdF07XHJcbiAgICB0aGlzLmFkZENsYXNzZXMoZSk7XHJcbn07XHJcblxyXG5FbGVtZW50LnByb3RvdHlwZS5hZGRDbGFzc2VzID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIGZvciAobGV0IHQgPSAwOyB0IDwgZS5sZW5ndGg7IHQrKykgdGhpcy5jbGFzc0xpc3QuYWRkKGVbdF0pO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gZ2V0QWRtb25pdGlvbkVsZW1lbnQoXHJcbiAgICB0eXBlOiBzdHJpbmcsXHJcbiAgICB0aXRsZTogc3RyaW5nLFxyXG4gICAgaWNvbjogc3RyaW5nLFxyXG4gICAgY29sb3I6IHN0cmluZyxcclxuICAgIGNvbGxhcHNlPzogc3RyaW5nLFxyXG4gICAgaWQ/OiBzdHJpbmdcclxuKTogSFRNTEVsZW1lbnQge1xyXG4gICAgbGV0IGFkbW9uaXRpb24sXHJcbiAgICAgICAgdGl0bGVFbCxcclxuICAgICAgICBhdHRyczogeyBzdHlsZTogc3RyaW5nOyBvcGVuPzogc3RyaW5nIH0gPSB7XHJcbiAgICAgICAgICAgIHN0eWxlOiBgLS1hZG1vbml0aW9uLWNvbG9yOiAke2NvbG9yfTtgXHJcbiAgICAgICAgfTtcclxuICAgIGlmIChjb2xsYXBzZSAmJiBjb2xsYXBzZSAhPSBcIm5vbmVcIikge1xyXG4gICAgICAgIGlmIChjb2xsYXBzZSA9PT0gXCJvcGVuXCIpIHtcclxuICAgICAgICAgICAgYXR0cnMub3BlbiA9IFwib3BlblwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZG1vbml0aW9uID0gY3JlYXRlRWwoXCJkZXRhaWxzXCIsIHtcclxuICAgICAgICAgICAgY2xzOiBgYWRtb25pdGlvbiBhZG1vbml0aW9uLSR7dHlwZX0gYWRtb25pdGlvbi1wbHVnaW5gLFxyXG4gICAgICAgICAgICBhdHRyOiBhdHRyc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRpdGxlRWwgPSBhZG1vbml0aW9uLmNyZWF0ZUVsKFwic3VtbWFyeVwiLCB7XHJcbiAgICAgICAgICAgIGNsczogYGFkbW9uaXRpb24tdGl0bGUgJHshdGl0bGU/LnRyaW0oKS5sZW5ndGggPyBcIm5vLXRpdGxlXCIgOiBcIlwifWBcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRtb25pdGlvbiA9IGNyZWF0ZURpdih7XHJcbiAgICAgICAgICAgIGNsczogYGFkbW9uaXRpb24gYWRtb25pdGlvbi0ke3R5cGV9IGFkbW9uaXRpb24tcGx1Z2luYCxcclxuICAgICAgICAgICAgYXR0cjogYXR0cnNcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aXRsZUVsID0gYWRtb25pdGlvbi5jcmVhdGVEaXYoe1xyXG4gICAgICAgICAgICBjbHM6IGBhZG1vbml0aW9uLXRpdGxlICR7IXRpdGxlPy50cmltKCkubGVuZ3RoID8gXCJuby10aXRsZVwiIDogXCJcIn1gXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgICAgYWRtb25pdGlvbi5pZCA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aXRsZSAmJiB0aXRsZS50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGl0bGUgc3RydWN0dXJlXHJcbiAgICAgICAgICogPGRpdnxzdW1tYXJ5Pi5hZG1vbml0aW9uLXRpdGxlXHJcbiAgICAgICAgICogICAgICA8ZWxlbWVudD4uYWRtb25pdGlvbi10aXRsZS1jb250ZW50IC0gUmVuZGVyZWQgTWFya2Rvd24gdG9wLWxldmVsIGVsZW1lbnQgKGUuZy4gSDEvMi8zIGV0YywgcClcclxuICAgICAgICAgKiAgICAgICAgICBkaXYuYWRtb25pdGlvbi10aXRsZS1pY29uXHJcbiAgICAgICAgICogICAgICAgICAgICAgIHN2Z1xyXG4gICAgICAgICAqICAgICAgICAgIGRpdi5hZG1vbml0aW9uLXRpdGxlLW1hcmtkb3duIC0gQ29udGFpbmVyIG9mIHJlbmRlcmVkIG1hcmtkb3duXHJcbiAgICAgICAgICogICAgICAgICAgICAgIC4uLnJlbmRlcmVkIG1hcmtkb3duIGNoaWxkcmVuLi4uXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8vZ2V0IG1hcmtkb3duXHJcbiAgICAgICAgY29uc3QgbWFya2Rvd25Ib2xkZXIgPSBjcmVhdGVEaXYoKTtcclxuICAgICAgICAvL01hcmtkb3duUmVuZGVyZXIucmVuZGVyTWFya2Rvd24odGl0bGUsIG1hcmtkb3duSG9sZGVyLCBcIlwiLCBudWxsKTtcclxuXHJcbiAgICAgICAgLy9hZG1vbml0aW9uLXRpdGxlLWNvbnRlbnQgaXMgZmlyc3QgY2hpbGQgb2YgcmVuZGVyZWQgbWFya2Rvd25cclxuXHJcbiAgICAgICAgY29uc3QgYWRtb25pdGlvblRpdGxlQ29udGVudCA9XHJcbiAgICAgICAgICAgIC8qIG1hcmtkb3duSG9sZGVyPy5jaGlsZHJlblswXT8udGFnTmFtZSA9PT0gXCJQXCJcclxuICAgICAgICA/IGNyZWF0ZURpdigpXHJcbiAgICAgICAgOiBtYXJrZG93bkhvbGRlci5jaGlsZHJlblswXSA/PyAgKi8gY3JlYXRlRGl2KCk7XHJcblxyXG4gICAgICAgIC8vZ2V0IGNoaWxkcmVuIG9mIG1hcmtkb3duIGVsZW1lbnQsIHRoZW4gcmVtb3ZlIHRoZW1cclxuICAgICAgICBjb25zdCBtYXJrZG93bkVsZW1lbnRzID0gQXJyYXkuZnJvbShcclxuICAgICAgICAgICAgbWFya2Rvd25Ib2xkZXIuY2hpbGRyZW5bMF0/LmNoaWxkTm9kZXMgfHwgW11cclxuICAgICAgICApO1xyXG4gICAgICAgIGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICBhZG1vbml0aW9uVGl0bGVDb250ZW50LmFkZENsYXNzKFwiYWRtb25pdGlvbi10aXRsZS1jb250ZW50XCIpO1xyXG5cclxuICAgICAgICAvL2J1aWxkIGljb24gZWxlbWVudFxyXG4gICAgICAgIGNvbnN0IGljb25FbCA9IGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuY3JlYXRlRGl2KFxyXG4gICAgICAgICAgICBcImFkbW9uaXRpb24tdGl0bGUtaWNvblwiXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaWNvbikge1xyXG4gICAgICAgICAgICBpY29uRWwuaW5uZXJIVE1MID0gaWNvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vYWRkIG1hcmtkb3duIGNoaWxkcmVuIGJhY2tcclxuICAgICAgICBjb25zdCBhZG1vbml0aW9uVGl0bGVNYXJrZG93biA9IGFkbW9uaXRpb25UaXRsZUNvbnRlbnQuY3JlYXRlRGl2KFxyXG4gICAgICAgICAgICBcImFkbW9uaXRpb24tdGl0bGUtbWFya2Rvd25cIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYWRtb25pdGlvblRpdGxlTWFya2Rvd24uaW5uZXJUZXh0ID0gdGl0bGU7XHJcbiAgICAgICAgLyogZm9yIChsZXQgaSA9IDA7IGkgPCBtYXJrZG93bkVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGFkbW9uaXRpb25UaXRsZU1hcmtkb3duLmFwcGVuZENoaWxkKG1hcmtkb3duRWxlbWVudHNbaV0pO1xyXG4gICAgICAgIH0gKi9cclxuICAgICAgICB0aXRsZUVsLmFwcGVuZENoaWxkKGFkbW9uaXRpb25UaXRsZUNvbnRlbnQgfHwgY3JlYXRlRGl2KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vYWRkIHRoZW0gdG8gdGl0bGUgZWxlbWVudFxyXG5cclxuICAgIGlmIChjb2xsYXBzZSkge1xyXG4gICAgICAgIHRpdGxlRWwuY3JlYXRlRGl2KFwiY29sbGFwc2VyXCIpLmNyZWF0ZURpdihcImhhbmRsZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBhZG1vbml0aW9uO1xyXG59XHJcbmZ1bmN0aW9uIHN0YXJ0c1dpdGhBbnkoc3RyOiBzdHJpbmcsIG5lZWRsZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5lZWRsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoc3RyLnN0YXJ0c1dpdGgobmVlZGxlc1tpXSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyc0Zyb21Tb3VyY2UodHlwZTogc3RyaW5nLCBzcmM6IHN0cmluZykge1xyXG4gICAgY29uc3Qga2V5d29yZFRva2VucyA9IFtcInRpdGxlOlwiLCBcImNvbGxhcHNlOlwiLCBcImljb246XCIsIFwiY29sb3I6XCJdO1xyXG5cclxuICAgIGNvbnN0IGtleXdvcmRzID0gW1widGl0bGVcIiwgXCJjb2xsYXBzZVwiLCBcImljb25cIiwgXCJjb2xvclwiXTtcclxuXHJcbiAgICBsZXQgbGluZXMgPSBzcmMuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gICAgbGV0IHNraXBMaW5lcyA9IDA7XHJcblxyXG4gICAgbGV0IHBhcmFtczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGtleXdvcmRJbmRleCA9IHN0YXJ0c1dpdGhBbnkobGluZXNbaV0sIGtleXdvcmRUb2tlbnMpO1xyXG5cclxuICAgICAgICBpZiAoa2V5d29yZEluZGV4ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBmb3VuZEtleXdvcmQgPSBrZXl3b3Jkc1trZXl3b3JkSW5kZXhdO1xyXG5cclxuICAgICAgICBpZiAocGFyYW1zW2ZvdW5kS2V5d29yZF0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBhcmFtc1tmb3VuZEtleXdvcmRdID0gbGluZXNbaV1cclxuICAgICAgICAgICAgLnN1YnN0cihrZXl3b3JkVG9rZW5zW2tleXdvcmRJbmRleF0ubGVuZ3RoKVxyXG4gICAgICAgICAgICAudHJpbSgpO1xyXG4gICAgICAgICsrc2tpcExpbmVzO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7XHJcbiAgICAgICAgdGl0bGUgPSB0eXBlWzBdLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgY29sbGFwc2UsXHJcbiAgICAgICAgaWNvbixcclxuICAgICAgICBjb2xvclxyXG4gICAgfSA9IHBhcmFtcztcclxuXHJcbiAgICBsZXQgY29udGVudCA9IGxpbmVzLnNsaWNlKHNraXBMaW5lcykuam9pbihcIlxcblwiKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSBhZG1vbml0aW9uIHNob3VsZCBjb2xsYXBzZSwgYnV0IHNvbWV0aGluZyBvdGhlciB0aGFuIG9wZW4gb3IgY2xvc2VkIHdhcyBwcm92aWRlZCwgc2V0IHRvIGNsb3NlZC5cclxuICAgICAqL1xyXG4gICAgaWYgKFxyXG4gICAgICAgIGNvbGxhcHNlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJub25lXCIgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJvcGVuXCIgJiZcclxuICAgICAgICBjb2xsYXBzZSAhPT0gXCJjbG9zZWRcIlxyXG4gICAgKSB7XHJcbiAgICAgICAgY29sbGFwc2UgPSBcImNsb3NlZFwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlIGFkbW9uaXRpb24gc2hvdWxkIGNvbGxhcHNlLCBidXQgdGl0bGUgd2FzIGJsYW5rZWQsIHNldCB0aGUgZGVmYXVsdCB0aXRsZS5cclxuICAgICAqL1xyXG4gICAgaWYgKHRpdGxlLnRyaW0oKSA9PT0gXCJcIiAmJiBjb2xsYXBzZSAhPT0gdW5kZWZpbmVkICYmIGNvbGxhcHNlICE9PSBcIm5vbmVcIikge1xyXG4gICAgICAgIHRpdGxlID0gdHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyB0aXRsZSwgY29sbGFwc2UsIGNvbnRlbnQsIGljb24sIGNvbG9yIH07XHJcbn1cclxuXHJcbmludGVyZmFjZSBBZG1vbml0aW9uUHVibGlzaERlZmluaXRpb24ge1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgY29sb3I6IHN0cmluZztcclxufVxyXG5cclxuY29uc3QgYmxvY2tTZXQ6IFNldDxIVE1MUHJlRWxlbWVudD4gPSBuZXcgU2V0KCk7XHJcbmNvbnN0IEFETU9OSVRJT05fSUNPTl9NQVA6IHtcclxuICAgIFthZG1vbml0aW9uVHlwZTogc3RyaW5nXTogQWRtb25pdGlvblB1Ymxpc2hEZWZpbml0aW9uO1xyXG59ID0ge307XHJcbmlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSBcImNvbXBsZXRlXCIpIHtcclxuICAgIHBvc3Rwcm9jZXNzKCk7XHJcbiAgICByZWdpc3RlclRvUHJvY2VzcygpO1xyXG59IGVsc2Uge1xyXG4gICAgd2luZG93Lm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICBwb3N0cHJvY2VzcygpO1xyXG4gICAgICAgIHJlZ2lzdGVyVG9Qcm9jZXNzKCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiByZWdpc3RlclRvUHJvY2VzcygpIHtcclxuICAgIGNvbnN0IHNpemVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5tYXJrZG93bi1wcmV2aWV3LXNpemVyXCIpO1xyXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09IFwiY2hpbGRMaXN0XCIgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIG11dGF0aW9uLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlIGluc3RhbmNlb2YgRWxlbWVudCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLmZpcnN0RWxlbWVudENoaWxkPy50YWdOYW1lID09PSBcIlBSRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vcG9zdHByb2Nlc3Mobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZU9ic2VydmVyLm9ic2VydmUobm9kZS5maXJzdENoaWxkLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRMaXN0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlckRhdGE6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidHJlZTogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShzaXplciwge1xyXG4gICAgICAgIGF0dHJpYnV0ZXM6IGZhbHNlLFxyXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICBzdWJ0cmVlOiBmYWxzZVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcHJlT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIG11dGF0aW9uLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxQcmVFbGVtZW50ICYmXHJcbiAgICAgICAgICAgICAgICAhYmxvY2tTZXQuaGFzKG11dGF0aW9uLnRhcmdldCkgJiZcclxuICAgICAgICAgICAgICAgIG11dGF0aW9uLnR5cGUgPT09IFwiYXR0cmlidXRlc1wiICYmXHJcbiAgICAgICAgICAgICAgICBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSBcImNsYXNzXCIgJiZcclxuICAgICAgICAgICAgICAgIEFycmF5LmZyb20obXV0YXRpb24udGFyZ2V0LmNsYXNzTGlzdCkuc29tZSgoY2xzKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIC9sYW5ndWFnZS1hZC0oXFx3KykvLnRlc3QoY2xzKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGJsb2NrU2V0LmFkZChtdXRhdGlvbi50YXJnZXQpO1xyXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0FkbW9uaXRpb25CbG9jayhtdXRhdGlvbi50YXJnZXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJvY2Vzc0FkbW9uaXRpb25CbG9jayhhZG1vbml0aW9uQmxvY2s6IEhUTUxQcmVFbGVtZW50KSB7XHJcbiAgICBjb25zdCBbLCB0eXBlXSA9IGFkbW9uaXRpb25CbG9jay5jbGFzc0xpc3RcclxuICAgICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAgIC5tYXRjaCgvbGFuZ3VhZ2UtYWQtKFxcdyspLyk7XHJcbiAgICBpZiAoIXR5cGUpIHJldHVybjtcclxuICAgIGlmICghKHR5cGUgaW4gQURNT05JVElPTl9JQ09OX01BUCkpIHJldHVybjtcclxuXHJcbiAgICBsZXQge1xyXG4gICAgICAgIHRpdGxlID0gdHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpLFxyXG4gICAgICAgIGNvbGxhcHNlLFxyXG4gICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgaWNvbiA9IEFETU9OSVRJT05fSUNPTl9NQVBbdHlwZV0uaWNvbixcclxuICAgICAgICBjb2xvciA9IEFETU9OSVRJT05fSUNPTl9NQVBbdHlwZV0uY29sb3JcclxuICAgIH0gPSBnZXRQYXJhbWV0ZXJzRnJvbVNvdXJjZSh0eXBlLCBhZG1vbml0aW9uQmxvY2suaW5uZXJUZXh0KTtcclxuXHJcbiAgICBsZXQgYWRtb25pdGlvbiA9IGdldEFkbW9uaXRpb25FbGVtZW50KHR5cGUsIHRpdGxlLCBpY29uLCBjb2xvciwgY29sbGFwc2UpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnRIb2xkZXIgPSBhZG1vbml0aW9uLmNyZWF0ZURpdihcImFkbW9uaXRpb24tY29udGVudC1ob2xkZXJcIik7XHJcblxyXG4gICAgY29uc3QgYWRtb25pdGlvbkNvbnRlbnQgPSBjb250ZW50SG9sZGVyLmNyZWF0ZURpdihcImFkbW9uaXRpb24tY29udGVudFwiKTtcclxuXHJcbiAgICBhZG1vbml0aW9uQ29udGVudC5pbm5lclRleHQgPSBjb250ZW50O1xyXG5cclxuICAgIGFkbW9uaXRpb25CbG9jay5yZXBsYWNlV2l0aChhZG1vbml0aW9uKTtcclxufVxyXG5cclxuZnVuY3Rpb24gcG9zdHByb2Nlc3MoKSB7XHJcbiAgICAvL2RvIHdvcmtcclxuICAgIGNvbnN0IGFkbW9uaXRpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MUHJlRWxlbWVudD4oXHJcbiAgICAgICAgXCJwcmVbY2xhc3MqPSdsYW5ndWFnZS1hZCddXCJcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFhZG1vbml0aW9ucy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBmb3IgKGxldCBhZG1vbml0aW9uQmxvY2sgb2YgQXJyYXkuZnJvbShhZG1vbml0aW9ucykpIHtcclxuICAgICAgICBibG9ja1NldC5hZGQoYWRtb25pdGlvbkJsb2NrKTtcclxuICAgICAgICBjb25zdCBbLCB0eXBlXSA9IGFkbW9uaXRpb25CbG9jay5jbGFzc0xpc3RcclxuICAgICAgICAgICAgLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgLm1hdGNoKC9sYW5ndWFnZS1hZC0oXFx3KykvKTtcclxuICAgICAgICBpZiAoIXR5cGUpIGNvbnRpbnVlO1xyXG4gICAgICAgIGlmICghKHR5cGUgaW4gQURNT05JVElPTl9JQ09OX01BUCkpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICBsZXQge1xyXG4gICAgICAgICAgICB0aXRsZSA9IHR5cGVbMF0udG9VcHBlckNhc2UoKSArIHR5cGUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICAgICAgY29sbGFwc2UsXHJcbiAgICAgICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgICAgIGljb24gPSBBRE1PTklUSU9OX0lDT05fTUFQW3R5cGVdLmljb24sXHJcbiAgICAgICAgICAgIGNvbG9yID0gQURNT05JVElPTl9JQ09OX01BUFt0eXBlXS5jb2xvclxyXG4gICAgICAgIH0gPSBnZXRQYXJhbWV0ZXJzRnJvbVNvdXJjZSh0eXBlLCBhZG1vbml0aW9uQmxvY2suaW5uZXJUZXh0KTtcclxuXHJcbiAgICAgICAgbGV0IGFkbW9uaXRpb24gPSBnZXRBZG1vbml0aW9uRWxlbWVudChcclxuICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgIGljb24sXHJcbiAgICAgICAgICAgIGNvbG9yLFxyXG4gICAgICAgICAgICBjb2xsYXBzZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRIb2xkZXIgPSBhZG1vbml0aW9uLmNyZWF0ZURpdihcImFkbW9uaXRpb24tY29udGVudC1ob2xkZXJcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IGFkbW9uaXRpb25Db250ZW50ID0gY29udGVudEhvbGRlci5jcmVhdGVEaXYoXCJhZG1vbml0aW9uLWNvbnRlbnRcIik7XHJcblxyXG4gICAgICAgIGFkbW9uaXRpb25Db250ZW50LmlubmVyVGV4dCA9IGNvbnRlbnQ7XHJcblxyXG4gICAgICAgIGFkbW9uaXRpb25CbG9jay5yZXBsYWNlV2l0aChhZG1vbml0aW9uKTtcclxuICAgIH1cclxufVxyXG4iXX0=
-/******/ return __webpack_exports__;
-/******/ })()
-;
-});
\ No newline at end of file
+function T(n,e,o){let t=document.createElement(n);typeof e=="string"&&(e={cls:e});let i=e||{},l=i.cls,a=i.text,s=i.attr,r=i.title,d=i.value,c=i.type,g=o||i.parent,f=i.prepend,m=i.href;return l&&(Array.isArray(l)?t.className=l.join(" "):t.className=l),a&&(t.textContent=a),s&&Object.keys(s).forEach(p=>{let E=s[p];E!==null&&t.setAttribute(p,String(E))}),r&&(t.title=r),d&&(t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLOptionElement)&&(t.value=d),c&&t instanceof HTMLStyleElement&&t.setAttribute("type",c),m&&(t instanceof HTMLAnchorElement||t instanceof HTMLLinkElement)&&(t.href=m),g&&(f?g.insertBefore(t,g.firstChild):g.appendChild(t)),t}var h=function(n,e){return T("div",n,e)};Node.prototype.createDiv=function(n,e){return h(n,this)};Node.prototype.createEl=function(n,e,o){return T(n,e,this)};Element.prototype.addClass=function(...n){let e=[];for(let o=0;o{y(),b()};function w(){return new Promise((n,e)=>{let o=document.querySelector(".markdown-preview-sizer");if(o)n(o);else{let t=new MutationObserver(i=>{for(let l of i)if(l.type=="childList"&&l.addedNodes.length){for(let a of Array.from(l.addedNodes))if(a instanceof HTMLDivElement){if(a.hasClass("publish-renderer")){let s=a.querySelector(".markdown-preview-sizer");s&&(t.disconnect(),console.log(s),n(s))}a.hasClass("markdown-preview-sizer")&&(t.disconnect(),console.log(o),n(o))}}});t.observe(document.body,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}})}async function b(){let n=await w();new MutationObserver(o=>{o.forEach(t=>{t.type=="childList"&&t.addedNodes.length&&t.addedNodes.forEach(i=>{if(i&&i instanceof HTMLDivElement&&!i.childElementCount){let l=new MutationObserver(a=>{for(let s of a)if(s.type=="childList"&&s.addedNodes.length)for(let r of Array.from(s.addedNodes))r instanceof HTMLPreElement&&(!M.has(r)&&Array.from(r.classList).some(d=>/language-ad-(\w+)/.test(d))?(l.disconnect(),M.add(r),v(r)):(l.disconnect(),H(r)))});l.observe(i,{attributes:!1,childList:!0,characterData:!1,subtree:!1})}i&&i instanceof HTMLElement&&i.children.length&&i.firstElementChild instanceof HTMLPreElement&&H(i.firstElementChild)})})}).observe(n,{attributes:!1,childList:!0,subtree:!1})}function H(n){let e=new MutationObserver(o=>{o.forEach(t=>{t.target instanceof HTMLPreElement&&!M.has(t.target)&&t.type==="attributes"&&t.attributeName==="class"&&Array.from(t.target.classList).some(i=>/language-ad-(\w+)/.test(i))&&(e.disconnect(),M.add(t.target),v(t.target))})});e.observe(n,{attributes:!0,childList:!1,characterData:!1,subtree:!1})}function v(n){let[,e]=n.classList.toString().match(/language-ad-(\w+)/);if(!e||!(e in u.ADMONITION_ICON_MAP))return;let{title:o=e[0].toUpperCase()+e.slice(1).toLowerCase(),collapse:t,content:i,icon:l=u.ADMONITION_ICON_MAP[e].icon,color:a=u.ADMONITION_ICON_MAP[e].color}=N(e,n.innerText),s=L(e,o,l,a,t),d=s.createDiv("admonition-content-holder").createDiv("admonition-content");d.innerText=i,n.replaceWith(s)}function y(){let n=document.querySelectorAll("pre[class*='language-ad']");if(!!n.length)for(let e of Array.from(n)){M.add(e);let[,o]=e.classList.toString().match(/language-ad-(\w+)/);if(!o||!(o in u.ADMONITION_ICON_MAP))continue;let{title:t=o[0].toUpperCase()+o.slice(1).toLowerCase(),collapse:i,content:l,icon:a=u.ADMONITION_ICON_MAP[o].icon,color:s=u.ADMONITION_ICON_MAP[o].color}=N(o,e.innerText),r=L(o,t,a,s,i),c=r.createDiv("admonition-content-holder").createDiv("admonition-content");c.innerText=l,e.replaceWith(r)}}
diff --git a/src/publish/publish.admonition.ts b/src/publish/publish.admonition.ts
index aad1299..191a074 100644
--- a/src/publish/publish.admonition.ts
+++ b/src/publish/publish.admonition.ts
@@ -25,7 +25,7 @@ function createEl(
(Array.isArray(o)
? (i.className = o.join(" "))
: (i.className = o)),
- s && (i.textContent = s),
+ s && (i.textContent = s as string),
a &&
Object.keys(a).forEach((t) => {
const n = a[t];
@@ -249,9 +249,11 @@ interface AdmonitionPublishDefinition {
}
const blockSet: Set = new Set();
-const ADMONITION_ICON_MAP: {
- [admonitionType: string]: AdmonitionPublishDefinition;
-} = {};
+class AdmonitionIcons {
+ static ADMONITION_ICON_MAP: {
+ [admonitionType: string]: AdmonitionPublishDefinition;
+ } = {};
+}
if (document.readyState === "complete") {
postprocess();
registerToProcess();
@@ -261,27 +263,108 @@ if (document.readyState === "complete") {
registerToProcess();
};
}
-
-function registerToProcess() {
- const sizer = document.querySelector(".markdown-preview-sizer");
+function findSizer(): Promise {
+ return new Promise((resolve, reject) => {
+ const sizer = document.querySelector(
+ ".markdown-preview-sizer"
+ );
+ if (sizer) {
+ resolve(sizer);
+ } else {
+ const observer = new MutationObserver((mutations) => {
+ for (const mutation of mutations) {
+ if (
+ mutation.type == "childList" &&
+ mutation.addedNodes.length
+ ) {
+ for (const node of Array.from(mutation.addedNodes)) {
+ if (!(node instanceof HTMLDivElement)) continue;
+ if (node.hasClass("publish-renderer")) {
+ let sizer = node.querySelector(
+ ".markdown-preview-sizer"
+ );
+ if (sizer) {
+ observer.disconnect();
+ console.log(sizer);
+ resolve(sizer);
+ }
+ }
+ if (node.hasClass("markdown-preview-sizer")) {
+ observer.disconnect();
+ console.log(sizer);
+ resolve(sizer);
+ }
+ }
+ }
+ }
+ });
+ observer.observe(document.body, {
+ attributes: false,
+ childList: true,
+ characterData: false,
+ subtree: true
+ });
+ }
+ });
+}
+async function registerToProcess() {
+ const sizer = await findSizer();
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.type == "childList" && mutation.addedNodes.length) {
mutation.addedNodes.forEach((node) => {
if (
node &&
- node instanceof Element &&
- node.children.length &&
- node.firstElementChild?.tagName === "PRE"
+ node instanceof HTMLDivElement &&
+ !node.childElementCount
) {
- //postprocess(node);
- preObserver.observe(node.firstChild, {
- attributes: true,
- childList: false,
+ const observer = new MutationObserver((mutations) => {
+ for (const mutation of mutations) {
+ if (
+ mutation.type == "childList" &&
+ mutation.addedNodes.length
+ ) {
+ for (const node of Array.from(
+ mutation.addedNodes
+ )) {
+ if (!(node instanceof HTMLPreElement)) {
+ continue;
+ }
+ if (
+ !blockSet.has(node) &&
+ Array.from(node.classList).some(
+ (cls) =>
+ /language-ad-(\w+)/.test(
+ cls
+ )
+ )
+ ) {
+ observer.disconnect();
+ blockSet.add(node);
+ processAdmonitionBlock(node);
+ } else {
+ observer.disconnect();
+ createPreObserver(node);
+ }
+ }
+ }
+ }
+ });
+ observer.observe(node, {
+ attributes: false,
+ childList: true,
characterData: false,
subtree: false
});
}
+ if (
+ node &&
+ node instanceof HTMLElement &&
+ node.children.length &&
+ node.firstElementChild instanceof HTMLPreElement
+ ) {
+ createPreObserver(node.firstElementChild);
+ }
});
}
});
@@ -291,7 +374,9 @@ function registerToProcess() {
childList: true,
subtree: false
});
+}
+function createPreObserver(node: HTMLPreElement) {
const preObserver = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (
@@ -303,11 +388,18 @@ function registerToProcess() {
/language-ad-(\w+)/.test(cls)
)
) {
+ preObserver.disconnect();
blockSet.add(mutation.target);
processAdmonitionBlock(mutation.target);
}
});
});
+ preObserver.observe(node, {
+ attributes: true,
+ childList: false,
+ characterData: false,
+ subtree: false
+ });
}
function processAdmonitionBlock(admonitionBlock: HTMLPreElement) {
@@ -315,14 +407,14 @@ function processAdmonitionBlock(admonitionBlock: HTMLPreElement) {
.toString()
.match(/language-ad-(\w+)/);
if (!type) return;
- if (!(type in ADMONITION_ICON_MAP)) return;
+ if (!(type in AdmonitionIcons.ADMONITION_ICON_MAP)) return;
let {
title = type[0].toUpperCase() + type.slice(1).toLowerCase(),
collapse,
content,
- icon = ADMONITION_ICON_MAP[type].icon,
- color = ADMONITION_ICON_MAP[type].color
+ icon = AdmonitionIcons.ADMONITION_ICON_MAP[type].icon,
+ color = AdmonitionIcons.ADMONITION_ICON_MAP[type].color
} = getParametersFromSource(type, admonitionBlock.innerText);
let admonition = getAdmonitionElement(type, title, icon, color, collapse);
@@ -350,14 +442,14 @@ function postprocess() {
.toString()
.match(/language-ad-(\w+)/);
if (!type) continue;
- if (!(type in ADMONITION_ICON_MAP)) continue;
+ if (!(type in AdmonitionIcons.ADMONITION_ICON_MAP)) continue;
let {
title = type[0].toUpperCase() + type.slice(1).toLowerCase(),
collapse,
content,
- icon = ADMONITION_ICON_MAP[type].icon,
- color = ADMONITION_ICON_MAP[type].color
+ icon = AdmonitionIcons.ADMONITION_ICON_MAP[type].icon,
+ color = AdmonitionIcons.ADMONITION_ICON_MAP[type].color
} = getParametersFromSource(type, admonitionBlock.innerText);
let admonition = getAdmonitionElement(
diff --git a/src/settings.ts b/src/settings.ts
index 0180d12..264a8e7 100644
--- a/src/settings.ts
+++ b/src/settings.ts
@@ -564,20 +564,21 @@ export default class AdmonitionSetting extends PluginSettingTab {
}
const js = CONTENT.replace(
- "const ADMONITION_ICON_MAP = {}",
- "const ADMONITION_ICON_MAP = " +
+ /ADMONITION_ICON_MAP\s?=\s?\{\}/,
+ "ADMONITION_ICON_MAP=" +
JSON.stringify(admonition_icons)
);
- let csvFile = new Blob([js], {
+ const file = new Blob([js], {
type: "text/javascript"
});
- let downloadLink = document.createElement("a");
- downloadLink.download = "publish.admonition.js";
- downloadLink.href = window.URL.createObjectURL(csvFile);
- downloadLink.style.display = "none";
- document.body.appendChild(downloadLink);
- downloadLink.click();
- document.body.removeChild(downloadLink);
+ const link = createEl("a", {
+ href: URL.createObjectURL(file),
+ attr: {
+ download: "publish.admonition.js"
+ }
+ });
+ link.click();
+ link.detach();
});
});
}