Skip to content

Instantly share code, notes, and snippets.

View brianrodri's full-sized avatar
😎

Brian Rodriguez brianrodri

😎
View GitHub Profile
import { Component, MarkdownView, Plugin, TFile, WorkspaceLeaf } from "obsidian";
import { render, unmountComponentAtNode } from "preact/compat";
export default class MyPlugin extends Plugin {
private components: PreactComponent[] = [];
public override onload() {
this.app.workspace.onLayoutReady(() => {
this.loadAllComponents();
this.registerEvent(
export interface ObsidianMarkdownProps {
markdown: string;
}
export function ObsidianMarkdown({ markdown }: ObsidianMarkdownProps) {
const { plugin, notePath } = usePluginContext();
const [html, setHTML] = useState("");
useEffect(() => {
let mounted = true;