Skip to content

Commit

Permalink
fix: add admonition copy button to MS syntax style admonitions
Browse files Browse the repository at this point in the history
  • Loading branch information
valentine195 committed Jan 11, 2022
1 parent 0db5297 commit 7a1fc6c
Showing 1 changed file with 39 additions and 31 deletions.
70 changes: 39 additions & 31 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -390,11 +390,15 @@ export default class ObsidianAdmonition extends Plugin {
.join("\n")
.replace(/> /g, "");

const contentEl = this.getAdmonitionContentElement(
type,
admonition,
content
);

MarkdownRenderer.renderMarkdown(
content,
admonition
.createDiv("admonition-content-holder")
.createDiv("admonition-content"),
contentEl,
ctx.sourcePath,
null
);
Expand Down Expand Up @@ -454,14 +458,14 @@ export default class ObsidianAdmonition extends Plugin {
});
};

MarkdownRenderer.renderMarkdown(
this.content.replace(/^> /gm, ""),
admonitionElement
.createDiv("admonition-content-holder")
.createDiv("admonition-content"),
"",
null
const content = this.content.replace(/^> /gm, "");
const contentEl = self.getAdmonitionContentElement(
this.type,
admonitionElement,
content
);

MarkdownRenderer.renderMarkdown(content, contentEl, "", null);
return parent;
}
}
Expand Down Expand Up @@ -1064,13 +1068,11 @@ ${editor.getDoc().getSelection()}\n--- admonition\n`
}

if (content && content.length) {
const contentHolder = admonitionElement.createDiv(
"admonition-content-holder"
const admonitionContent = this.getAdmonitionContentElement(
type,
admonitionElement,
content
);

const admonitionContent =
contentHolder.createDiv("admonition-content");

/**
* Render the content as markdown and append it to the admonition.
*/
Expand Down Expand Up @@ -1104,21 +1106,6 @@ ${editor.getDoc().getSelection()}\n--- admonition\n`
);
}

if (admonition.copy ?? this.data.copyButton) {
let copy = contentHolder
.createDiv("admonition-content-copy")
.appendChild(COPY_BUTTON_ICON.cloneNode(true));
copy.addEventListener("click", () => {
navigator.clipboard
.writeText(content.trim())
.then(async () => {
new Notice(
"Admonition content copied to clipboard."
);
});
});
}

const taskLists =
admonitionContent.querySelectorAll<HTMLInputElement>(
".task-list-item-checkbox"
Expand Down Expand Up @@ -1313,6 +1300,27 @@ ${editor.getDoc().getSelection()}\n--- admonition\n`
}
return admonition;
}
getAdmonitionContentElement(
type: string,
admonitionElement: HTMLElement,
content: string
) {
const contentHolder = admonitionElement.createDiv(
"admonition-content-holder"
);
const contentEl = contentHolder.createDiv("admonition-content");
if (this.admonitions[type].copy ?? this.data.copyButton) {
let copy = contentHolder
.createDiv("admonition-content-copy")
.appendChild(COPY_BUTTON_ICON.cloneNode(true));
copy.addEventListener("click", () => {
navigator.clipboard.writeText(content.trim()).then(async () => {
new Notice("Admonition content copied to clipboard.");
});
});
}
return contentEl;
}
async getAdmonitionElementAsync(
type: string,
title: string,
Expand Down

0 comments on commit 7a1fc6c

Please sign in to comment.