mirror of
https://github.com/limpido/obsidian-tree-diagram.git
synced 2026-07-22 05:49:29 +00:00
have obsidian manage component lifecycle
This commit is contained in:
parent
4d0d3ade4a
commit
c59085f5fd
2 changed files with 39 additions and 20 deletions
35
src/TreeDiagramMarkdownRenderChild.ts
Normal file
35
src/TreeDiagramMarkdownRenderChild.ts
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import { MarkdownPostProcessorContext, MarkdownRenderChild } from "obsidian";
|
||||
import { parseInput, treeView } from './util';
|
||||
import { MarkdownRenderer } from 'obsidian';
|
||||
import TreeDiagramPlugin from "./main";
|
||||
|
||||
export class TreeDiagramMarkdownRenderChild extends MarkdownRenderChild {
|
||||
plugin: TreeDiagramPlugin;
|
||||
source: string;
|
||||
ctx: MarkdownPostProcessorContext;
|
||||
|
||||
constructor(
|
||||
plugin: TreeDiagramPlugin,
|
||||
source: string,
|
||||
containerEl: HTMLElement,
|
||||
ctx: MarkdownPostProcessorContext
|
||||
) {
|
||||
super(containerEl);
|
||||
this.plugin = plugin;
|
||||
this.source = source;
|
||||
this.ctx = ctx;
|
||||
}
|
||||
|
||||
async onload() {
|
||||
let root;
|
||||
let output: string[] = [];
|
||||
let markdown: string;
|
||||
|
||||
root = parseInput(this.source);
|
||||
if (root != null) {
|
||||
output = treeView(root);
|
||||
}
|
||||
markdown = ["```", "\n", output.join("\n").trim(), "\n```"].join("");
|
||||
await MarkdownRenderer.render(this.plugin.app, markdown, this.containerEl, this.ctx.sourcePath, this);
|
||||
}
|
||||
}
|
||||
24
src/main.ts
24
src/main.ts
|
|
@ -1,29 +1,13 @@
|
|||
import { Plugin, MarkdownRenderer, Component } from 'obsidian';
|
||||
import { parseInput, treeView } from './util';
|
||||
import { Plugin } from 'obsidian';
|
||||
import { TreeDiagramMarkdownRenderChild } from './TreeDiagramMarkdownRenderChild';
|
||||
|
||||
export default class TreeDiagramPlugin extends Plugin {
|
||||
component: Component;
|
||||
|
||||
async onload() {
|
||||
console.log("tree load");
|
||||
this.component = new Component();
|
||||
|
||||
this.registerMarkdownCodeBlockProcessor("tree", async (source, el, ctx) => {
|
||||
let root;
|
||||
let output: string[] = [];
|
||||
let markdown: string;
|
||||
|
||||
root = parseInput(source);
|
||||
if (root != null) {
|
||||
output = treeView(root);
|
||||
}
|
||||
markdown = ["```", "\n", output.join("\n").trim(), "\n```"].join("");
|
||||
|
||||
await MarkdownRenderer.render(this.app, markdown, el, ctx.sourcePath, this.component);
|
||||
ctx.addChild(new TreeDiagramMarkdownRenderChild(this, source, el, ctx));
|
||||
});
|
||||
}
|
||||
|
||||
onunload() {
|
||||
console.log("tree unload");
|
||||
}
|
||||
onunload() { }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue