feat(ck-mermaid): use default mermaid config

pull/900/head
Elian Doran 2025-01-07 18:24:14 +07:00
parent 4b35f8174c
commit 19c90445fa
No known key found for this signature in database
4 changed files with 27 additions and 19 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -16,13 +16,13 @@ const TPL = `<div class="mermaid-widget">
margin-bottom: 10px; margin-bottom: 10px;
flex-basis: 0; flex-basis: 0;
} }
.mermaid-render { .mermaid-render {
overflow: auto; overflow: auto;
height: 100%; height: 100%;
text-align: center; text-align: center;
} }
.mermaid-render svg { .mermaid-render svg {
width: 95%; /* https://github.com/zadam/trilium/issues/4340 */ width: 95%; /* https://github.com/zadam/trilium/issues/4340 */
} }
@ -58,22 +58,10 @@ export default class MermaidWidget extends NoteContextAwareWidget {
this.$errorContainer.hide(); this.$errorContainer.hide();
await libraryLoader.requireLibrary(libraryLoader.MERMAID); await libraryLoader.requireLibrary(libraryLoader.MERMAID);
const documentStyle = window.getComputedStyle(document.documentElement);
const mermaidTheme = documentStyle.getPropertyValue('--mermaid-theme');
mermaid.mermaidAPI.initialize({ mermaid.mermaidAPI.initialize({
startOnLoad: false, startOnLoad: false,
theme: mermaidTheme.trim(), ...getMermaidConfig()
securityLevel: 'antiscript',
flow: { useMaxWidth: false },
sequence: { useMaxWidth: false },
gantt: { useMaxWidth: false },
"class": { useMaxWidth: false },
state: { useMaxWidth: false },
pie: { useMaxWidth: true },
journey: { useMaxWidth: false },
git: { useMaxWidth: false },
}); });
this.$display.empty(); this.$display.empty();
@ -146,3 +134,21 @@ export default class MermaidWidget extends NoteContextAwareWidget {
utils.downloadSvg(this.note.title, svg); utils.downloadSvg(this.note.title, svg);
} }
} }
export function getMermaidConfig() {
const documentStyle = window.getComputedStyle(document.documentElement);
const mermaidTheme = documentStyle.getPropertyValue('--mermaid-theme');
return {
theme: mermaidTheme.trim(),
securityLevel: 'antiscript',
flow: { useMaxWidth: false },
sequence: { useMaxWidth: false },
gantt: { useMaxWidth: false },
"class": { useMaxWidth: false },
state: { useMaxWidth: false },
pie: { useMaxWidth: true },
journey: { useMaxWidth: false },
git: { useMaxWidth: false },
};
}

@ -13,6 +13,7 @@ import dialogService from "../../services/dialog.js";
import { initSyntaxHighlighting } from "./ckeditor/syntax_highlight.js"; import { initSyntaxHighlighting } from "./ckeditor/syntax_highlight.js";
import options from "../../services/options.js"; import options from "../../services/options.js";
import toast from "../../services/toast.js"; import toast from "../../services/toast.js";
import { getMermaidConfig } from "../mermaid.js";
const ENABLE_INSPECTOR = false; const ENABLE_INSPECTOR = false;
@ -259,7 +260,8 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget {
enablePreview: true // Enable preview view enablePreview: true // Enable preview view
}, },
mermaid: { mermaid: {
lazyLoad: async () => await libraryLoader.requireLibrary(libraryLoader.MERMAID) lazyLoad: async () => await libraryLoader.requireLibrary(libraryLoader.MERMAID),
config: getMermaidConfig()
} }
}); });
} }