Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zui
提交
e12ff167
Z
zui
项目概览
易企天创
/
zui
大约 1 年 前同步成功
通知
6
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
37
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
37
Issue
37
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e12ff167
编写于
5月 09, 2018
作者:
C
Catouse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
+ add markdoc js component.
上级
227c0ebe
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
133 addition
and
0 deletion
+133
-0
src/js/markdoc.js
src/js/markdoc.js
+133
-0
未找到文件。
src/js/markdoc.js
0 → 100644
浏览文件 @
e12ff167
/* ========================================================================
* ZUI: markdoc.js
* http://zui.sexy
* ========================================================================
* Copyright (c) 2017-2018 cnezsoft.com; Licensed MIT
* ======================================================================== */
(
function
(
$
)
{
'
use strict
'
;
$
.
zui
.
marked
=
window
.
marked
;
var
NAME
=
'
zui.markdoc
'
;
// model name
// The markdoc model class
var
MarkDoc
=
function
(
element
,
options
)
{
var
that
=
this
;
that
.
name
=
NAME
;
that
.
$
=
$
(
element
);
that
.
options
=
$
.
extend
({},
MarkDoc
.
DEFAULTS
,
this
.
$
.
data
(),
options
);
that
.
$
.
data
(
'
originContent
'
,
that
.
$
.
text
());
that
.
render
();
};
MarkDoc
.
prototype
.
render
=
function
(
extraOptions
)
{
var
that
=
this
;
if
(
extraOptions
&&
typeof
extraOptions
!==
'
object
'
)
{
extraOptions
=
{
content
:
extraOptions
};
}
var
options
=
$
.
extend
({},
that
.
options
,
extraOptions
);
var
$ele
=
that
.
$
;
if
(
$ele
.
hasClass
(
'
load-indicator
'
))
{
$ele
.
addClass
(
'
loading
'
);
}
if
(
that
.
remoteRequest
)
{
that
.
remoteRequest
.
abort
();
}
that
.
getContent
(
function
(
content
)
{
$ele
.
empty
();
if
(
content
)
{
var
htmlContent
=
options
.
markdown
(
content
);
if
(
options
.
contentConverter
)
{
htmlContent
=
options
.
contentConverter
(
htmlContent
);
}
$ele
.
append
(
htmlContent
);
if
(
window
.
prettyPrint
)
{
$ele
.
find
(
'
pre
'
).
addClass
(
'
prettyprint
'
);
window
.
prettyPrint
();
}
}
$ele
.
removeClass
(
'
loading
'
);
},
options
);
};
MarkDoc
.
prototype
.
getContent
=
function
(
callback
,
options
)
{
var
that
=
this
;
options
=
options
||
that
.
options
;;
var
content
=
options
.
content
;
if
(
content
)
{
callback
(
$
.
isFunction
(
content
)
?
content
(
that
)
:
content
);
}
else
if
(
options
.
remote
)
{
var
ajaxOptions
=
$
.
isPlainObject
(
options
.
remote
)
?
options
.
remote
:
{
url
:
options
.
remote
};
that
.
remoteRequest
=
$
.
ajax
(
$
.
extend
({},
ajaxOptions
,
{
success
:
function
(
data
)
{
callback
(
data
);
},
error
:
function
(
data
)
{
callback
(
null
);
},
complete
:
function
()
{
that
.
remoteRequest
=
null
;
}
}));
}
else
if
(
options
.
source
)
{
var
$source
=
$
.
isFunction
(
options
.
source
)
?
options
.
source
(
that
)
:
$
(
options
.
source
);
if
(
$source
.
is
(
'
textarea,input
'
))
{
callback
(
$source
.
val
());
}
else
{
callback
(
$source
.
text
());
}
}
else
{
callback
(
this
.
$
.
data
(
'
originContent
'
));
}
};
// default options
MarkDoc
.
DEFAULTS
=
{
markdown
:
$
.
zui
.
marked
};
// Extense jquery element
$
.
fn
.
markdoc
=
function
(
option
,
param
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
);
var
data
=
$this
.
data
(
NAME
);
var
options
=
typeof
option
==
'
object
'
&&
option
;
if
(
!
data
)
$this
.
data
(
NAME
,
(
data
=
new
MarkDoc
(
this
,
options
)));
if
(
typeof
option
==
'
string
'
)
data
[
option
](
param
);
});
};
MarkDoc
.
NAME
=
NAME
;
$
.
fn
.
markdoc
.
Constructor
=
MarkDoc
;
// Auto call markdoc after document load complete
$
(
function
()
{
$
(
'
[data-render="markdoc"]
'
).
markdoc
();
});
$
(
document
).
on
(
'
click
'
,
'
[data-toggle="markdoc"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
);
var
options
=
$this
.
data
();
var
$target
=
$
(
options
.
target
);
if
(
!
$target
.
length
)
{
return
;
}
if
(
!
$target
.
data
(
NAME
))
{
$target
.
markdoc
();
}
$target
.
markdoc
(
'
render
'
,
$
.
extend
(
options
,
{
remote
:
$this
.
attr
(
'
href
'
)
}));
if
(
$this
.
is
(
'
a
'
))
{
e
.
preventDefault
();
}
});
}(
jQuery
));
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录