mirror of
https://github.com/kotaindah55/extended-markdown-syntax.git
synced 2026-07-22 12:00:23 +00:00
fix: use built-in span element for spoiler
Defining custom element on global causing error when reenable the plugin. Hence, using regular span is more appropriate way.
This commit is contained in:
parent
e371b7904d
commit
22618ae0e0
5 changed files with 11 additions and 25 deletions
|
|
@ -1,19 +0,0 @@
|
|||
export class SpoilerSpanElement extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
clickListener = (evt: MouseEvent) => {
|
||||
let curTarget = evt.currentTarget as HTMLElement;
|
||||
if (curTarget.getAttribute("revealed") === null) {
|
||||
curTarget.setAttribute("revealed", "");
|
||||
} else {
|
||||
curTarget.removeAttribute("revealed");
|
||||
}
|
||||
}
|
||||
connectedCallback() {
|
||||
this.addEventListener("click", this.clickListener);
|
||||
}
|
||||
disconnectedCallback() {
|
||||
this.removeEventListener("click", this.clickListener);
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
export * from "./SpoilerSpanElement";
|
||||
|
|
@ -1,11 +1,9 @@
|
|||
import { MarkdownPostProcessor } from "obsidian";
|
||||
import { PreviewModeParser } from "src/preview-mode/parser";
|
||||
import { CustomAlign, CustomHighlight } from "src/preview-mode/post-processor";
|
||||
import { SpoilerSpanElement } from "src/preview-mode/custom-element";
|
||||
|
||||
export class PreviewExtendedSyntax {
|
||||
constructor() {
|
||||
customElements.define("spoiler-span", SpoilerSpanElement);
|
||||
}
|
||||
private readonly query = "p, h1, h2, h3, h4, h5, h6, td, th, li:not(:has(p)), .callout-title-inner";
|
||||
private customAlign = new CustomAlign();
|
||||
|
|
|
|||
|
|
@ -14,7 +14,15 @@ export const FormatRules: { [P in MainFormat]: {char: string, length: number, ex
|
|||
length: 2,
|
||||
exactLen: true,
|
||||
allowSpace: true,
|
||||
getEl: () => document.createElement("spoiler-span")
|
||||
getEl: () => {
|
||||
return document.createSpan({ cls: "spoiler" }, (el) => {
|
||||
el.addEventListener("click", (evt) => {
|
||||
let spoiler = evt.currentTarget as Element,
|
||||
isHidden = !spoiler.hasClass("spoiler-revealed");
|
||||
spoiler.toggleClass("spoiler-revealed", isHidden);
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
[Format.SUPERSCRIPT]: {
|
||||
char: "^",
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ mark {
|
|||
}
|
||||
}
|
||||
|
||||
spoiler-span {
|
||||
span.spoiler {
|
||||
border-radius: 2px;
|
||||
transition-duration: 0.1s;
|
||||
transition-property: color;
|
||||
|
|
@ -125,7 +125,7 @@ spoiler-span {
|
|||
.theme-light & {
|
||||
background-color: var(--color-base-40);
|
||||
}
|
||||
&:not([revealed]) {
|
||||
&:not(.spoiler-revealed) {
|
||||
color: transparent;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue