update
This commit is contained in:
parent
fb9e663f31
commit
baec7a0422
@ -5,7 +5,7 @@ services:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: tradus-web:1.3.3
|
||||
image: tradus-web:1.3.4
|
||||
container_name: tradus-web
|
||||
ports:
|
||||
- '6000:80'
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
import { ref, computed, nextTick, watch } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { http } from '../services/api'
|
||||
import { marked } from 'marked'
|
||||
|
||||
// 获取路由参数,确定分析类型
|
||||
const route = useRoute()
|
||||
@ -251,11 +252,8 @@ const copyAnalysis = async () => {
|
||||
if (!analysisContent.value) return
|
||||
|
||||
try {
|
||||
const tempDiv = document.createElement('div')
|
||||
tempDiv.innerHTML = analysisContent.value
|
||||
const textContent = tempDiv.textContent || tempDiv.innerText || ''
|
||||
|
||||
await navigator.clipboard.writeText(textContent)
|
||||
// 复制原始文本内容,而不是渲染后的HTML
|
||||
await navigator.clipboard.writeText(analysisContent.value)
|
||||
copySuccess.value = true
|
||||
setTimeout(() => {
|
||||
copySuccess.value = false
|
||||
@ -278,6 +276,14 @@ watch(
|
||||
resetView()
|
||||
},
|
||||
)
|
||||
|
||||
// 解析markdown内容
|
||||
const parsedContent = computed(() => {
|
||||
if (!analysisContent.value || analysisContent.value.startsWith('错误:')) {
|
||||
return ''
|
||||
}
|
||||
return marked(analysisContent.value)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -408,9 +414,7 @@ watch(
|
||||
<div v-if="analysisContent.startsWith('错误:')" class="error-message">
|
||||
{{ analysisContent.substring(4) }}
|
||||
</div>
|
||||
<div v-else class="analysis-content">
|
||||
{{ analysisContent }}
|
||||
</div>
|
||||
<div v-else class="analysis-content markdown-content" v-html="parsedContent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -996,3 +1000,190 @@ watch(
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
/* Markdown 样式 */
|
||||
.markdown-content {
|
||||
white-space: normal !important;
|
||||
}
|
||||
|
||||
.markdown-content h1,
|
||||
.markdown-content h2,
|
||||
.markdown-content h3,
|
||||
.markdown-content h4,
|
||||
.markdown-content h5,
|
||||
.markdown-content h6 {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
font-weight: 600;
|
||||
line-height: 1.25;
|
||||
color: var(--color-text-primary);
|
||||
font-size: 1.2rem; /* 统一所有标题的字体大小 */
|
||||
}
|
||||
|
||||
.markdown-content h1 {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
padding-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.markdown-content h2 {
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
padding-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.markdown-content h3 {
|
||||
}
|
||||
|
||||
.markdown-content h4 {
|
||||
}
|
||||
|
||||
.markdown-content h5 {
|
||||
}
|
||||
|
||||
.markdown-content h6 {
|
||||
color: var(--color-text-secondary);
|
||||
}
|
||||
|
||||
.markdown-content p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1.5rem;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.markdown-content ul,
|
||||
.markdown-content ol {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1.5rem;
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
.markdown-content li {
|
||||
margin-bottom: 0.5rem;
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
.markdown-content li p {
|
||||
margin-bottom: 0.7rem;
|
||||
}
|
||||
|
||||
.markdown-content li:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.markdown-content blockquote {
|
||||
padding: 0.5rem 1.5rem;
|
||||
color: var(--color-text-secondary);
|
||||
border-left: 0.3rem solid var(--color-border);
|
||||
margin: 0 0 1.5rem;
|
||||
}
|
||||
|
||||
.markdown-content blockquote p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.markdown-content pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
padding: 1rem;
|
||||
overflow: auto;
|
||||
font-size: 85%;
|
||||
line-height: 1.45;
|
||||
background-color: var(--color-bg-secondary);
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.markdown-content code {
|
||||
font-family:
|
||||
SFMono-Regular,
|
||||
Consolas,
|
||||
Liberation Mono,
|
||||
Menlo,
|
||||
monospace;
|
||||
font-size: 85%;
|
||||
padding: 0.2em 0.4em;
|
||||
margin: 0;
|
||||
background-color: var(--color-bg-secondary);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.markdown-content pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.markdown-content table {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.markdown-content table th,
|
||||
.markdown-content table td {
|
||||
padding: 0.5rem 1rem;
|
||||
border: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.markdown-content table th {
|
||||
font-weight: 600;
|
||||
background-color: var(--color-bg-secondary);
|
||||
}
|
||||
|
||||
.markdown-content table tr:nth-child(2n) {
|
||||
background-color: var(--color-bg-secondary);
|
||||
}
|
||||
|
||||
.markdown-content a {
|
||||
color: var(--color-accent);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.markdown-content a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.markdown-content img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin: 1rem auto;
|
||||
}
|
||||
|
||||
.markdown-content hr {
|
||||
height: 0.25em;
|
||||
padding: 0;
|
||||
margin: 1.5rem 0;
|
||||
background-color: var(--color-border);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* 响应式样式 */
|
||||
@media (max-width: 768px) {
|
||||
.markdown-content h1,
|
||||
.markdown-content h2,
|
||||
.markdown-content h3,
|
||||
.markdown-content h4,
|
||||
.markdown-content h5,
|
||||
.markdown-content h6 {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.markdown-content h1,
|
||||
.markdown-content h2,
|
||||
.markdown-content h3,
|
||||
.markdown-content h4,
|
||||
.markdown-content h5,
|
||||
.markdown-content h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.markdown-content h1,
|
||||
.markdown-content h2 {
|
||||
padding-bottom: 0.2em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user