Files
Trilium/src/public/app/services/render.ts

31 lines
875 B
TypeScript
Raw Normal View History

2019-10-05 10:55:29 +02:00
import server from "./server.js";
2024-12-21 19:26:12 +02:00
import bundleService, { Bundle } from "./bundle.js";
2024-12-19 22:20:57 +02:00
import FNote from "../entities/fnote.js";
2019-10-05 10:55:29 +02:00
2024-12-19 22:20:57 +02:00
async function render(note: FNote, $el: JQuery<HTMLElement>) {
const relations = note.getRelations('renderNote');
2020-02-02 21:16:20 +01:00
const renderNoteIds = relations
.map(rel => rel.value)
.filter(noteId => noteId);
2019-10-05 10:55:29 +02:00
$el.empty().toggle(renderNoteIds.length > 0);
for (const renderNoteId of renderNoteIds) {
2024-12-19 22:20:57 +02:00
const bundle = await server.post<Bundle>(`script/bundle/${renderNoteId}`);
2019-10-05 10:55:29 +02:00
const $scriptContainer = $('<div>');
$el.append($scriptContainer);
$scriptContainer.append(bundle.html);
2020-02-02 21:16:20 +01:00
// async so that scripts cannot block trilium execution
2020-02-25 19:19:10 +01:00
bundleService.executeBundle(bundle, note, $scriptContainer);
2019-10-05 10:55:29 +02:00
}
return renderNoteIds.length > 0;
}
export default {
render
2021-05-09 11:12:53 +02:00
}