upd: handle render error

This commit is contained in:
purocean
2021-12-08 13:23:32 +08:00
parent c2f210eba9
commit 4700f048e1
+10 -2
View File
@@ -42,7 +42,7 @@
<script lang="ts">
import { debounce } from 'lodash-es'
import { useStore } from 'vuex'
import { computed, defineComponent, nextTick, onBeforeUnmount, onMounted, ref, toRefs, watch } from 'vue'
import { computed, defineComponent, h, nextTick, onBeforeUnmount, onMounted, ref, toRefs, watch } from 'vue'
import { extname } from '@fe/utils/path'
import { isElectron } from '@fe/support/env'
import { markdown } from '@fe/services/markdown'
@@ -164,7 +164,15 @@ export default defineComponent({
const startTime = performance.now()
renderEnv = { source: content, file: currentFile.value }
renderContent.value = markdown.render(content, renderEnv)
try {
renderContent.value = markdown.render(content, renderEnv)
} catch (error: any) {
logger.error('render', error)
renderContent.value = h('div', [
h('h2', { style: 'color: red' }, '渲染出错'),
h('pre', error.stack || error.toString())
])
}
const renderTime = performance.now() - startTime
logger.debug('rendered', 'cost', renderTime)