mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-11-04 04:08:44 +08:00 
			
		
		
		
	将 highlight 代码高亮的全局引入,改成局部引入
This commit is contained in:
		
							
								
								
									
										11
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/main.ts
									
									
									
									
									
								
							@@ -37,9 +37,6 @@ import App from './App.vue'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import './permission'
 | 
					import './permission'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import hljs from 'highlight.js' //导入代码高亮文件
 | 
					 | 
				
			||||||
import 'highlight.js/styles/github.css' //导入代码高亮样式  新版
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import '@/plugins/tongji' // 百度统计
 | 
					import '@/plugins/tongji' // 百度统计
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Logger from '@/utils/Logger'
 | 
					import Logger from '@/utils/Logger'
 | 
				
			||||||
@@ -48,14 +45,6 @@ import Logger from '@/utils/Logger'
 | 
				
			|||||||
const setupAll = async () => {
 | 
					const setupAll = async () => {
 | 
				
			||||||
  const app = createApp(App)
 | 
					  const app = createApp(App)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //自定义一个代码高亮指令
 | 
					 | 
				
			||||||
  app.directive('highlight', function (el) {
 | 
					 | 
				
			||||||
    const blocks = el.querySelectorAll('code')
 | 
					 | 
				
			||||||
    blocks.forEach((block: any) => {
 | 
					 | 
				
			||||||
      hljs.highlightElement(block)
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
  })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  await setupI18n(app)
 | 
					  await setupI18n(app)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setupStore(app)
 | 
					  setupStore(app)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,8 +45,8 @@
 | 
				
			|||||||
            <el-button class="float-right" text type="primary" @click="copy(item.code)">
 | 
					            <el-button class="float-right" text type="primary" @click="copy(item.code)">
 | 
				
			||||||
              {{ t('common.copy') }}
 | 
					              {{ t('common.copy') }}
 | 
				
			||||||
            </el-button>
 | 
					            </el-button>
 | 
				
			||||||
            <div v-highlight>
 | 
					            <div>
 | 
				
			||||||
              <code>{{ item.code }}</code>
 | 
					              <pre><code class="hljs" v-html="highlightedCode(item)"></code></pre>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </el-tab-pane>
 | 
					          </el-tab-pane>
 | 
				
			||||||
        </el-tabs>
 | 
					        </el-tabs>
 | 
				
			||||||
@@ -180,6 +180,34 @@ const copy = async (text: string) => {
 | 
				
			|||||||
    message.success(t('common.copySuccess'))
 | 
					    message.success(t('common.copySuccess'))
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 代码高亮
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import hljs from 'highlight.js' // 导入代码高亮文件
 | 
				
			||||||
 | 
					import 'highlight.js/styles/github.css' // 导入代码高亮样式
 | 
				
			||||||
 | 
					import java from 'highlight.js/lib/languages/java'
 | 
				
			||||||
 | 
					import xml from 'highlight.js/lib/languages/java'
 | 
				
			||||||
 | 
					import javascript from 'highlight.js/lib/languages/javascript'
 | 
				
			||||||
 | 
					import sql from 'highlight.js/lib/languages/sql'
 | 
				
			||||||
 | 
					import typescript from 'highlight.js/lib/languages/typescript'
 | 
				
			||||||
 | 
					const highlightedCode = (item) => {
 | 
				
			||||||
 | 
					  const language = item.filePath.substring(item.filePath.lastIndexOf('.') + 1)
 | 
				
			||||||
 | 
					  const result = hljs.highlight(language, item.code || '', true)
 | 
				
			||||||
 | 
					  return result.value || ' '
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** 初始化 **/
 | 
				
			||||||
 | 
					onMounted(async () => {
 | 
				
			||||||
 | 
					  // 注册代码高亮的各种语言
 | 
				
			||||||
 | 
					  hljs.registerLanguage('java', java)
 | 
				
			||||||
 | 
					  hljs.registerLanguage('xml', xml)
 | 
				
			||||||
 | 
					  hljs.registerLanguage('html', xml)
 | 
				
			||||||
 | 
					  hljs.registerLanguage('vue', xml)
 | 
				
			||||||
 | 
					  hljs.registerLanguage('javascript', javascript)
 | 
				
			||||||
 | 
					  hljs.registerLanguage('sql', sql)
 | 
				
			||||||
 | 
					  hljs.registerLanguage('typescript', typescript)
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
<style lang="scss">
 | 
					<style lang="scss">
 | 
				
			||||||
.app-infra-codegen-preview-container {
 | 
					.app-infra-codegen-preview-container {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user