diff --git a/web/src/components/AgentFilePreview.vue b/web/src/components/AgentFilePreview.vue index 9da2651a..daa5fd9f 100644 --- a/web/src/components/AgentFilePreview.vue +++ b/web/src/components/AgentFilePreview.vue @@ -327,14 +327,16 @@ const fullscreenPreviewVisible = ref(false) const htmlPreviewRenderKey = ref(0) const isMarkdown = computed(() => isMarkdownPreview(props.filePath, props.file?.previewType)) -const canEdit = computed( - () => +const canEdit = computed(() => { + const previewType = props.file?.previewType + return ( props.editable && props.file?.supported !== false && typeof props.file?.content === 'string' && - props.file?.previewType === 'text' && + (previewType === 'text' || previewType === 'markdown') && (props.editAllText || EDITABLE_EXTENSIONS.has(getPreviewFileExtension(props.filePath))) -) + ) +}) const savedContent = computed(() => formatContent(props.file?.content)) const draftChanged = computed(() => draftContent.value !== savedContent.value) const isHtmlFile = computed( diff --git a/web/src/utils/markdown_preview.js b/web/src/utils/markdown_preview.js index e048c93d..e80e829a 100644 --- a/web/src/utils/markdown_preview.js +++ b/web/src/utils/markdown_preview.js @@ -145,7 +145,13 @@ const ensureLanguages = async (highlighter, languages) => { await Promise.all( languages .filter((language) => !loaded.has(language)) - .map((language) => highlighter.loadLanguage(language).catch(() => null)) + .map((language) => { + try { + return highlighter.loadLanguage(language).catch(() => null) + } catch { + return null + } + }) ) }