UnisKB/ui/src/main.ts

69 lines
1.5 KiB
TypeScript
Raw Normal View History

2023-09-15 09:40:35 +00:00
import '@/styles/index.scss'
import ElementPlus from 'element-plus'
import * as ElementPlusIcons from '@element-plus/icons-vue'
2023-10-23 09:48:34 +00:00
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
2025-01-20 13:26:51 +00:00
import enUs from 'element-plus/dist/locale/en.mjs'
import zhTW from 'element-plus/dist/locale/zh-tw.mjs'
2023-09-15 09:40:35 +00:00
import { createApp } from 'vue'
import { store } from '@/stores'
import directives from '@/directives'
2023-09-15 09:40:35 +00:00
import App from './App.vue'
import router from '@/router'
2023-10-12 08:36:16 +00:00
import Components from '@/components'
2024-07-01 01:45:59 +00:00
import i18n from './locales'
import { config } from 'md-editor-v3'
import screenfull from 'screenfull'
import katex from 'katex'
import 'katex/dist/katex.min.css'
import Cropper from 'cropperjs'
import 'cropperjs/dist/cropper.css'
import mermaid from 'mermaid'
import highlight from 'highlight.js'
import 'highlight.js/styles/atom-one-dark.css'
config({
editorExtensions: {
highlight: {
instance: highlight
},
screenfull: {
instance: screenfull
},
katex: {
instance: katex
},
cropper: {
instance: Cropper
},
mermaid: {
instance: mermaid
}
}
})
2023-09-15 09:40:35 +00:00
const app = createApp(App)
app.use(store)
app.use(directives)
2023-10-12 08:36:16 +00:00
for (const [key, component] of Object.entries(ElementPlusIcons)) {
app.component(key, component)
}
2025-01-20 13:26:51 +00:00
const locale_map: any = {
'zh-CN': zhCn,
'zh-Hant': zhTW,
'en-US': enUs
}
2023-10-23 09:48:34 +00:00
app.use(ElementPlus, {
locale: locale_map[localStorage.getItem('MaxKB-locale') || navigator.language || 'en-US']
2023-10-23 09:48:34 +00:00
})
2023-09-15 09:40:35 +00:00
app.use(router)
2024-07-01 01:45:59 +00:00
app.use(i18n)
2023-10-12 08:36:16 +00:00
app.use(Components)
2023-09-15 09:40:35 +00:00
app.mount('#app')
2024-07-01 01:45:59 +00:00
export { app }