Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
4d42f3d7
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,发现更多精彩内容 >>
提交
4d42f3d7
编写于
12月 12, 2017
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support extension-less links in the markdown preview
Fixes #39945
上级
40c8d176
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
42 addition
and
13 deletion
+42
-13
extensions/markdown/media/main.js
extensions/markdown/media/main.js
+34
-11
extensions/markdown/src/markdownEngine.ts
extensions/markdown/src/markdownEngine.ts
+6
-1
src/vs/workbench/parts/html/browser/webview-pre.js
src/vs/workbench/parts/html/browser/webview-pre.js
+2
-1
未找到文件。
extensions/markdown/media/main.js
浏览文件 @
4d42f3d7
...
...
@@ -2,7 +2,7 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// @ts-check
'
use strict
'
;
(
function
()
{
...
...
@@ -29,6 +29,13 @@
};
}
function
postMessage
(
command
,
args
)
{
window
.
parent
.
postMessage
({
command
:
'
did-click-link
'
,
data
:
`command:
${
command
}
?
${
encodeURIComponent
(
JSON
.
stringify
(
args
))}
`
},
'
file://
'
);
}
/**
* Find the html elements that map to a specific target line in the editor.
*
...
...
@@ -196,14 +203,34 @@
const
offset
=
event
.
pageY
;
const
line
=
getEditorLineNumberForPageOffset
(
offset
);
if
(
!
isNaN
(
line
))
{
const
args
=
[
settings
.
source
,
line
];
window
.
parent
.
postMessage
({
command
:
"
did-click-link
"
,
data
:
`command:_markdown.didClick?
${
encodeURIComponent
(
JSON
.
stringify
(
args
))}
`
},
"
file://
"
);
postMessage
(
'
_markdown.didClick
'
,
[
settings
.
source
,
line
]);
}
});
document
.
addEventListener
(
'
click
'
,
event
=>
{
if
(
!
event
)
{
return
;
}
const
baseElement
=
document
.
getElementsByTagName
(
'
base
'
)[
0
];
/** @type {any} */
let
node
=
event
.
target
;
while
(
node
)
{
if
(
node
.
tagName
&&
node
.
tagName
.
toLowerCase
()
===
'
a
'
&&
node
.
href
)
{
if
(
node
.
href
.
startsWith
(
'
file://
'
))
{
const
[
path
,
frag
]
=
node
.
href
.
replace
(
/^file:
\/\/
/i
,
''
).
split
(
'
#
'
);
postMessage
(
'
_markdown.openDocumentLink
'
,
{
path
,
frag
});
event
.
preventDefault
();
event
.
stopPropagation
();
break
;
}
break
;
}
node
=
node
.
parentNode
;
}
},
true
);
if
(
settings
.
scrollEditorWithPreview
)
{
window
.
addEventListener
(
'
scroll
'
,
throttle
(()
=>
{
if
(
scrollDisabled
)
{
...
...
@@ -211,11 +238,7 @@
}
else
{
const
line
=
getEditorLineNumberForPageOffset
(
window
.
scrollY
);
if
(
!
isNaN
(
line
))
{
const
args
=
[
settings
.
source
,
line
];
window
.
parent
.
postMessage
({
command
:
'
did-click-link
'
,
data
:
`command:_markdown.revealLine?
${
encodeURIComponent
(
JSON
.
stringify
(
args
))}
`
},
'
file://
'
);
postMessage
(
'
_markdown.revealLine
'
,
[
settings
.
source
,
line
]);
}
}
},
50
));
...
...
extensions/markdown/src/markdownEngine.ts
浏览文件 @
4d42f3d7
...
...
@@ -137,8 +137,9 @@ export class MarkdownEngine {
md
.
normalizeLink
=
(
link
:
string
)
=>
{
try
{
let
uri
=
vscode
.
Uri
.
parse
(
link
);
if
(
!
uri
.
scheme
&&
uri
.
path
&&
!
uri
.
fragment
)
{
if
(
!
uri
.
scheme
&&
uri
.
path
)
{
// Assume it must be a file
const
fragment
=
uri
.
fragment
;
if
(
uri
.
path
[
0
]
===
'
/
'
)
{
const
root
=
vscode
.
workspace
.
getWorkspaceFolder
(
this
.
currentDocument
);
if
(
root
)
{
...
...
@@ -147,6 +148,10 @@ export class MarkdownEngine {
}
else
{
uri
=
vscode
.
Uri
.
file
(
path
.
join
(
path
.
dirname
(
this
.
currentDocument
.
path
),
uri
.
path
));
}
if
(
fragment
)
{
uri
=
uri
.
with
({
fragment
});
}
return
normalizeLink
(
uri
.
toString
(
true
));
}
}
catch
(
e
)
{
...
...
src/vs/workbench/parts/html/browser/webview-pre.js
浏览文件 @
4d42f3d7
...
...
@@ -46,11 +46,12 @@
if
(
!
event
||
!
event
.
view
||
!
event
.
view
.
document
)
{
return
;
}
var
baseElement
=
event
.
view
.
document
.
getElementsByTagName
(
'
base
'
)[
0
];
/** @type {any} */
var
node
=
event
.
target
;
while
(
node
)
{
if
(
node
.
tagName
&&
node
.
tagName
.
toLowerCase
()
===
'
a
'
&&
node
.
href
)
{
var
baseElement
=
event
.
view
.
document
.
getElementsByTagName
(
'
base
'
)[
0
];
if
(
node
.
getAttribute
(
'
href
'
)
===
'
#
'
)
{
event
.
view
.
scrollTo
(
0
,
0
);
}
else
if
(
node
.
hash
&&
(
node
.
getAttribute
(
'
href
'
)
===
node
.
hash
||
(
baseElement
&&
node
.
href
.
indexOf
(
baseElement
.
href
)
>=
0
)))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录