Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.

Commit a4949a6

Browse files
committed
stoling code from kanban plugin =O
1 parent 3572f94 commit a4949a6

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

src/components/markdown/MarkdownRenderer.tsx

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ function handleEmbeds(dom: HTMLDivElement, view: DatabaseView, depth: number) {
4949
}
5050

5151
if (MediaExtensions.AUDIO.contains(target.extension)) {
52-
//return handleAudio(el, target, view);
52+
return handleAudio(el, target, view);
5353
}
5454

5555
if (MediaExtensions.VIDEO.contains(target.extension)) {
56-
//return handleVideo(el, target, view);
56+
return handleVideo(el, target, view);
5757
}
5858

5959
// if (target.extension === "md") {
@@ -88,3 +88,34 @@ function handleImage(el: HTMLElement, file: TFile, view: DatabaseView) {
8888

8989
el.addClasses(["image-embed", "is-loaded"]);
9090
}
91+
92+
function handleAudio(el: HTMLElement, file: TFile, view: DatabaseView) {
93+
el.empty();
94+
el.createEl("audio", {
95+
attr: { controls: "", src: view.app.vault.getResourcePath(file) },
96+
});
97+
el.addClasses(["media-embed", "is-loaded"]);
98+
}
99+
100+
function handleVideo(el: HTMLElement, file: TFile, view: DatabaseView) {
101+
el.empty();
102+
103+
el.createEl(
104+
"video",
105+
{ attr: { controls: "", src: view.app.vault.getResourcePath(file) } },
106+
(video) => {
107+
const handleLoad = () => {
108+
video.removeEventListener("loadedmetadata", handleLoad);
109+
110+
if (video.videoWidth === 0 && video.videoHeight === 0) {
111+
el.empty();
112+
handleAudio(el, file, view);
113+
}
114+
};
115+
116+
video.addEventListener("loadedmetadata", handleLoad);
117+
}
118+
);
119+
120+
el.addClasses(["media-embed", "is-loaded"]);
121+
}

0 commit comments

Comments
 (0)