Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
水玉婷
ai-wechat
Commits
8dd97c5a
Commit
8dd97c5a
authored
Apr 23, 2026
by
水玉婷
Browse files
feat:修复md中图片被转译bug
parent
9d56c460
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/views/components/utils/markdownTemplate.ts
View file @
8dd97c5a
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
*/
*/
const
processMarkdownFormat
=
(
text
:
string
):
string
=>
{
const
processMarkdownFormat
=
(
text
:
string
):
string
=>
{
let
processedText
=
text
;
let
processedText
=
text
;
// 处理标题(支持1-6级)
// 处理标题(支持1-6级)
processedText
=
processedText
.
replace
(
/^######
\s
+
(
.*
)
$/gim
,
'
<h6>$1</h6>
'
);
processedText
=
processedText
.
replace
(
/^######
\s
+
(
.*
)
$/gim
,
'
<h6>$1</h6>
'
);
processedText
=
processedText
.
replace
(
/^#####
\s
+
(
.*
)
$/gim
,
'
<h5>$1</h5>
'
);
processedText
=
processedText
.
replace
(
/^#####
\s
+
(
.*
)
$/gim
,
'
<h5>$1</h5>
'
);
...
@@ -16,17 +17,28 @@ const processMarkdownFormat = (text: string): string => {
...
@@ -16,17 +17,28 @@ const processMarkdownFormat = (text: string): string => {
processedText
=
processedText
.
replace
(
/^###
\s
+
(
.*
)
$/gim
,
'
<h3>$1</h3>
'
);
processedText
=
processedText
.
replace
(
/^###
\s
+
(
.*
)
$/gim
,
'
<h3>$1</h3>
'
);
processedText
=
processedText
.
replace
(
/^##
\s
+
(
.*
)
$/gim
,
'
<h2>$1</h2>
'
);
processedText
=
processedText
.
replace
(
/^##
\s
+
(
.*
)
$/gim
,
'
<h2>$1</h2>
'
);
processedText
=
processedText
.
replace
(
/^#
\s
+
(
.*
)
$/gim
,
'
<h1>$1</h1>
'
);
processedText
=
processedText
.
replace
(
/^#
\s
+
(
.*
)
$/gim
,
'
<h1>$1</h1>
'
);
// 处理粗体和斜体
processedText
=
processedText
.
replace
(
/
\*\*(
.*
?)\*\*
/gim
,
'
<strong>$1</strong>
'
);
// 处理粗体和斜体 - 使用更智能的方法避免处理HTML标签内的内容
processedText
=
processedText
.
replace
(
/
\*(
.*
?)\*
/gim
,
'
<em>$1</em>
'
);
processedText
=
processedText
.
replace
(
/__
(
.*
?)
__/gim
,
'
<strong>$1</strong>
'
);
// 先处理双星号粗体(避免处理HTML标签内的内容)
processedText
=
processedText
.
replace
(
/_
(
.*
?)
_/gim
,
'
<em>$1</em>
'
);
processedText
=
processedText
.
replace
(
/
\*\*([^
<>
]
*
?)\*\*
/g
,
'
<strong>$1</strong>
'
);
// 处理单星号斜体
processedText
=
processedText
.
replace
(
/
\*([^
<>
]
*
?)\*
/g
,
'
<em>$1</em>
'
);
// 处理双下划线粗体 - 使用更简单但有效的方法
// 只处理单词周围的下划线,避免处理URL中的下划线
processedText
=
processedText
.
replace
(
/
\b
__
(\w[\w\s]
*
?\w)
__
\b
/g
,
'
<strong>$1</strong>
'
);
// 处理单下划线斜体 - 使用更简单但有效的方法
// 只处理单词周围的下划线,避免处理URL中的下划线
processedText
=
processedText
.
replace
(
/
\b
_
(\w[\w\s]
*
?\w)
_
\b
/g
,
'
<em>$1</em>
'
);
// 处理删除线
// 处理删除线
processedText
=
processedText
.
replace
(
/~~
(
.
*
?)
~~/g
im
,
'
<del>$1</del>
'
);
processedText
=
processedText
.
replace
(
/~~
(
[^
<>
]
*
?)
~~/g
,
'
<del>$1</del>
'
);
// 处理行内代码
// 处理行内代码
processedText
=
processedText
.
replace
(
/`
([^
`
\n]
+
)
`/g
im
,
'
<code>$1</code>
'
);
processedText
=
processedText
.
replace
(
/`
([^
`
\n
<>
]
+
)
`/g
,
'
<code>$1</code>
'
);
return
processedText
;
return
processedText
;
};
};
...
@@ -101,6 +113,7 @@ export const parseMarkdown = (text: string): string => {
...
@@ -101,6 +113,7 @@ export const parseMarkdown = (text: string): string => {
});
});
// 处理基本的Markdown格式(在表格解析之前处理,确保表格单元格中的格式也能被处理)
// 处理基本的Markdown格式(在表格解析之前处理,确保表格单元格中的格式也能被处理)
// 使用改进的Markdown格式处理函数,避免处理HTML标签内的内容
text
=
processMarkdownFormat
(
text
);
text
=
processMarkdownFormat
(
text
);
// 对于完整文本,使用简单的表格处理逻辑
// 对于完整文本,使用简单的表格处理逻辑
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment