Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2301_76812819
Awesome-Markdown-Editor
提交
8039f5e4
Awesome-Markdown-Editor
项目概览
2301_76812819
/
Awesome-Markdown-Editor
与 Fork 源项目一致
Fork自
gitcode_dev / Awesome-Markdown-Editor
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Awesome-Markdown-Editor
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8039f5e4
编写于
6月 06, 2022
作者:
璃白.
🌻
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
🐛
过滤img onerror事件
上级
7aa51ca6
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
28 addition
and
22 deletion
+28
-22
public/.DS_Store
public/.DS_Store
+0
-0
public/index.html
public/index.html
+1
-0
public/package.json
public/package.json
+5
-0
src/App.vue
src/App.vue
+3
-3
src/assets/js/utils.js
src/assets/js/utils.js
+15
-14
src/assets/jupyter-render
src/assets/jupyter-render
+0
-1
src/assets/style/global.less
src/assets/style/global.less
+1
-2
src/components/content/mixins/render-mixins.js
src/components/content/mixins/render-mixins.js
+3
-2
未找到文件。
public/.DS_Store
浏览文件 @
8039f5e4
无法预览此类型文件
public/index.html
浏览文件 @
8039f5e4
...
...
@@ -147,6 +147,7 @@
// console.log(res);
},
onUpload
:
function
(
file
,
type
,
callback
)
{
debugger
if
(
type
===
"
video
"
||
type
===
"
img
"
)
{
let
time
=
0
;
const
timeObj
=
setInterval
(()
=>
{
...
...
public/package.json
0 → 100644
浏览文件 @
8039f5e4
{
"devDependencies"
:
{
"http-server"
:
"^14.1.0"
}
}
src/App.vue
浏览文件 @
8039f5e4
...
...
@@ -535,9 +535,9 @@ export default {
item
.
linkType
=
linkEl
.
getAttribute
(
"
data-type
"
);
linkEl
.
setAttribute
(
"
target
"
,
"
_blank
"
);
linkEl
.
setAttribute
(
"
href
"
,
url
);
if
(
item
.
url
.
includes
(
"
.ipynb
"
))
{
linkEl
.
className
=
"
jupyterEl
"
;
}
//
if (item.url.includes(".ipynb")) {
//
linkEl.className = "jupyterEl";
//
}
const
title
=
getLinkTitle
(
linkEl
,
item
);
linkEl
.
innerHTML
=
renderLinkCard
(
title
,
item
);
});
...
...
src/assets/js/utils.js
浏览文件 @
8039f5e4
// 获取选中文本信息
import
DOMPurify
from
"
dompurify
"
;
export
function
getSelectionInfo
(
selectorId
)
{
const
selector
=
document
.
getElementById
(
selectorId
);
if
(
!
selector
)
return
;
...
...
@@ -224,21 +225,21 @@ export function removeBlankLine(val) {
}
// 获取被过滤掉的标签
export
function
getFilteredTags
(
oldStr
,
newStr
)
{
// if (oldStr.length - newStr.length === 0) return [];
// const filteredStr = oldStr.replace(newStr.trim(), "");
// console.log(11, filteredStr);
const
virtualDom
=
document
.
createElement
(
"
div
"
);
virtualDom
.
innerHTML
=
oldStr
;
const
oldTags
=
Array
.
from
(
virtualDom
.
getElementsByTagName
(
"
*
"
));
virtualDom
.
innerHTML
=
newStr
;
const
newTags
=
Array
.
from
(
virtualDom
.
getElementsByTagName
(
"
*
"
));
//
export function getFilteredTags(oldStr, newStr) {
//
// if (oldStr.length - newStr.length === 0) return [];
//
// const filteredStr = oldStr.replace(newStr.trim(), "");
//
// console.log(11, filteredStr);
//
const virtualDom = document.createElement("div");
// virtualDom.innerHTML =
oldStr;
//
const oldTags = Array.from(virtualDom.getElementsByTagName("*"));
//
virtualDom.innerHTML = newStr;
//
const newTags = Array.from(virtualDom.getElementsByTagName("*"));
// 待优化
const
filteredTags
=
new
Array
(
oldTags
.
length
-
newTags
.
length
).
fill
(
0
);
//
// 待优化
//
const filteredTags = new Array(oldTags.length - newTags.length).fill(0);
return
filteredTags
;
}
//
return filteredTags;
//
}
// 格式刷的规则
export
function
copyFormatRules
(
selection
)
{
if
(
!
selection
)
return
""
;
...
...
@@ -348,7 +349,7 @@ export function copyFormatRules(selection) {
export
function
addLanguageClass
(
html
)
{
const
virtualDom
=
document
.
createElement
(
"
div
"
);
virtualDom
.
innerHTML
=
html
;
virtualDom
.
innerHTML
=
DOMPurify
.
sanitize
(
html
)
;
virtualDom
.
querySelectorAll
(
"
code
"
).
forEach
(
item
=>
{
if
(
!
/language-/
.
test
(
item
.
className
))
{
item
.
className
=
"
language-javascript
"
;
...
...
jupyter-render
@
9a1cda54
Subproject commit 9a1cda54eb91de46852797e1d4ddb66c667d6747
src/assets/style/global.less
浏览文件 @
8039f5e4
...
...
@@ -12,8 +12,7 @@
}
html,
body,
#app {
body {
padding: 0;
margin: 0;
min-height: 100vh;
...
...
src/components/content/mixins/render-mixins.js
浏览文件 @
8039f5e4
import
{
getFilteredTags
,
//
getFilteredTags,
getLinkTags
,
addLanguageClass
,
formatElements
,
...
...
@@ -36,7 +36,8 @@ export default {
],
FORBID_ATTR
:
[
"
style
"
]
});
// 去除标签
const
filteredTags
=
getFilteredTags
(
html
,
cleanHtml
);
// 计算是否有标签被过滤
const
filteredTags
=
DOMPurify
.
removed
;
// 计算是否有标签被过滤
// const filteredTags = getFilteredTags(html, cleanHtml); // 计算是否有标签被过滤
// 链接转换为卡片
// 获取标题列表
const
{
vDom
,
links
,
dirTags
}
=
getLinkTags
(
this
.
id
,
cleanHtml
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录