Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
519eb369
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
519eb369
编写于
5月 22, 2019
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extract duplicated escaping code
上级
150b3d98
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
6 deletion
+10
-6
extensions/markdown-language-features/src/features/previewContentProvider.ts
...-language-features/src/features/previewContentProvider.ts
+10
-6
未找到文件。
extensions/markdown-language-features/src/features/previewContentProvider.ts
浏览文件 @
519eb369
...
...
@@ -35,6 +35,10 @@ const previewStrings = {
'
Content Disabled Security Warning
'
)
};
function
escapeAttribute
(
value
:
string
):
string
{
return
value
.
replace
(
/"/g
,
'
"
'
);
}
export
class
MarkdownContentProvider
{
constructor
(
private
readonly
engine
:
MarkdownEngine
,
...
...
@@ -75,9 +79,9 @@ export class MarkdownContentProvider {
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
${
csp
}
<meta id="vscode-markdown-preview-data"
data-settings="
${
JSON
.
stringify
(
initialData
).
replace
(
/"/g
,
'
"
'
)}
"
data-strings="
${
JSON
.
stringify
(
previewStrings
).
replace
(
/"/g
,
'
"
'
)}
"
data-state="
${
JSON
.
stringify
(
state
||
{}).
replace
(
/"/g
,
'
"
'
)}
">
data-settings="
${
escapeAttribute
(
JSON
.
stringify
(
initialData
)
)}
"
data-strings="
${
escapeAttribute
(
JSON
.
stringify
(
previewStrings
)
)}
"
data-state="
${
escapeAttribute
(
JSON
.
stringify
(
state
||
{})
)}
">
<script src="
${
this
.
extensionResourcePath
(
'
pre.js
'
)}
" nonce="
${
nonce
}
"></script>
${
this
.
getStyles
(
sourceUri
,
nonce
,
config
,
state
)}
<base href="
${
markdownDocument
.
uri
.
with
({
scheme
:
'
vscode-resource
'
}).
toString
(
true
)}
">
...
...
@@ -142,7 +146,7 @@ export class MarkdownContentProvider {
private
computeCustomStyleSheetIncludes
(
resource
:
vscode
.
Uri
,
config
:
MarkdownPreviewConfiguration
):
string
{
if
(
Array
.
isArray
(
config
.
styles
))
{
return
config
.
styles
.
map
(
style
=>
{
return
`<link rel="stylesheet" class="code-user-style" data-source="
${
style
.
replace
(
/"/g
,
'
"
'
)}
" href="
${
this
.
fixHref
(
resource
,
style
).
replace
(
/"/g
,
'
"
'
)}
" type="text/css" media="screen">`
;
return
`<link rel="stylesheet" class="code-user-style" data-source="
${
escapeAttribute
(
style
)}
" href="
${
escapeAttribute
(
this
.
fixHref
(
resource
,
style
)
)}
" type="text/css" media="screen">`
;
}).
join
(
'
\n
'
);
}
return
''
;
...
...
@@ -175,7 +179,7 @@ export class MarkdownContentProvider {
private
getStyles
(
resource
:
vscode
.
Uri
,
nonce
:
string
,
config
:
MarkdownPreviewConfiguration
,
state
?:
any
):
string
{
const
baseStyles
=
this
.
contributionProvider
.
contributions
.
previewStyles
.
map
(
resource
=>
`<link rel="stylesheet" type="text/css" href="
${
resource
.
toString
(
)}
">`
)
.
map
(
resource
=>
`<link rel="stylesheet" type="text/css" href="
${
escapeAttribute
(
resource
.
toString
()
)}
">`
)
.
join
(
'
\n
'
);
return
`
${
baseStyles
}
...
...
@@ -186,7 +190,7 @@ export class MarkdownContentProvider {
private
getScripts
(
nonce
:
string
):
string
{
return
this
.
contributionProvider
.
contributions
.
previewScripts
.
map
(
resource
=>
`<script async src="
${
resource
.
toString
(
)}
" nonce="
${
nonce
}
" charset="UTF-8"></script>`
)
.
map
(
resource
=>
`<script async src="
${
escapeAttribute
(
resource
.
toString
()
)}
" nonce="
${
nonce
}
" charset="UTF-8"></script>`
)
.
join
(
'
\n
'
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录