refactor(renderer): configure the Markdown image renderer at startup

renderMarkdown ran the marked configuration on every call and leaned on a
module-level flag to make that cheap. It belongs next to the custom element
registration, which already runs once, before anything renders.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
tommy0103
2026-08-03 02:10:50 +08:00
co-authored by Claude Opus 5
parent 1124758b6b
commit 5f7f6d7cd5
2 changed files with 4 additions and 3 deletions
+3
View File
@@ -7,6 +7,7 @@ import { commitInitialData, fetchInitialData } from './data.js';
import { noteSessionUpdated, sessionLiveState } from './session-live.mjs';
import { createGlobalDataRefreshCoordinator } from './session-global-refresh.mjs';
import { registerSessionImageElement } from './session-image-element.js';
import { configureMarkdownImages } from './markdown-image-renderer.js';
import { installFileReferenceHandler } from './file-references.mjs';
// Import shared renderer CSS globally
@@ -17,6 +18,8 @@ import '../styles/list.css';
import '../styles/detail.css';
registerSessionImageElement();
// marked is loaded globally via CDN in index.html, ahead of this module.
configureMarkdownImages(window.marked);
const app = createApp(App);
+1 -3
View File
@@ -2,7 +2,6 @@
// Pure helpers with no side-effects on global state (except formatProjectLabel which reads store).
import { state } from './store.js';
import { configureMarkdownImages } from './markdown-image-renderer.js';
import { markFileReferences, mayContainFileReference } from './file-references.mjs';
// --- Time / formatting ---
@@ -96,8 +95,7 @@ export function highlightTextNodes(rootEl, query) {
export function renderMarkdown(text, opts = {}) {
if (text == null) return '';
// marked is loaded globally via CDN in index.html
configureMarkdownImages(window.marked);
// marked is loaded globally via CDN in index.html and configured at startup.
const html = sanitizeMarkdown(window.marked.parse(text));
const cls = opts.variant === 'msg' ? 'markdown-msg'
: opts.variant === 'compact' ? 'markdown-compact'