Compare commits

..

111 Commits

Author SHA1 Message Date
caishi 72f027e283 build 2023-02-13 11:44:36 +08:00
caishi 717fce340e build 2022-12-08 16:50:44 +08:00
caishi 22fb90c02c build 2022-12-08 15:51:31 +08:00
xiaoxiaoqiong b30111385e fixed 质量分析显示数量 2022-07-12 15:27:14 +08:00
xiaoxiaoqiong 4c8c8fce44 fixed 质量分析显示数量 2022-07-12 15:21:36 +08:00
xiaoxiaoqiong 1caa4ddf55 fixed 代码质量分析 2022-07-12 14:54:37 +08:00
xiaoxiaoqiong 827b8cef45 代码质量分析 2022-07-12 10:22:56 +08:00
xiaoxiaoqiong e5a57c1156 reset 2022-07-12 10:22:34 +08:00
xiaoxiaoqiong 1b845fdd80 Merge branch 'dev_educoder' of https://git.trustie.net/Gitlink/build into dev_educoder 2022-07-12 10:22:08 +08:00
xiaoxiaoqiong bb9cc8ecca reset 2022-07-12 10:20:32 +08:00
xiaoxiaoqiong 8625b302c3 代码质量分析 2022-07-12 10:19:04 +08:00
xiaoxiaoqiong 2e85a6968b 清空文件 2022-07-12 10:18:41 +08:00
xiaoxiaoqiong 3364b80a88 代码质量分析 2022-07-12 10:16:35 +08:00
caishi 3da658ddff merge gitlink 上传头像透明背景变成了黑色背景 2022-05-30 10:06:06 +08:00
caishi e539666232 merge gitlink code 2022-05-25 18:04:59 +08:00
caishi f100e065d9 build 2022-04-24 18:27:13 +08:00
caishi c980c5fff1 build 2022-04-24 18:19:14 +08:00
caishi 37818baf9a 新建团队点击报错 2022-04-24 15:41:00 +08:00
caishi 707970399d build 2022-04-24 11:41:12 +08:00
caishi 9d846c9423 build 2022-04-18 10:01:56 +08:00
caishi 4dd1568cdc build 2022-04-14 18:36:24 +08:00
caishi 8f1d41797c build 2022-04-14 18:27:07 +08:00
caishi 6726e670a4 build-新建项目、加入项目要判断是否登录 2022-04-14 17:23:01 +08:00
caishi f683104f81 build 2022-04-14 15:32:50 +08:00
caishi 48553a264b image url 2022-04-14 15:22:07 +08:00
caishi af844014e0 image url 2022-04-14 15:17:50 +08:00
caishi a5d14b3cb5 banner内容定制 2022-04-14 14:26:06 +08:00
caishi be1109a928 header-link都在当前页打开 2022-04-14 10:51:15 +08:00
caishi f68c82bbda build 2022-04-13 09:58:02 +08:00
caishi be0edb34e0 merge gitlink code 2022-04-12 17:11:00 +08:00
caishi c649499688 build-列表筛选 2021-12-21 14:22:06 +08:00
caishi 957d949869 build 2021-03-10 10:39:27 +08:00
caishi 69c732d4a9 build 2021-03-09 11:46:12 +08:00
caishi f4202fe6f7 build 2021-03-08 10:27:52 +08:00
caishi 1bdf95d72a build 2021-03-05 18:35:19 +08:00
caishi a3bc7e13e4 build 2021-03-05 15:28:35 +08:00
caishi 2cb4e5233f build 2021-03-05 14:39:21 +08:00
caishi 347c2af7ec build 2021-03-05 10:46:52 +08:00
caishi cd1382957a build 2021-03-05 09:57:06 +08:00
caishi 8d80c3fd63 build 2021-03-04 17:07:16 +08:00
caishi 8a35eae887 build 2021-03-04 14:05:19 +08:00
caishi 22d7c5135b build 2021-03-02 11:40:29 +08:00
caishi 48f789c9c4 build 2021-03-02 10:50:52 +08:00
caishi 3e6a0a59a4 build 2021-02-26 11:59:14 +08:00
caishi c8ab76e342 build 2021-02-25 17:10:48 +08:00
caishi 43501c5d50 build 2021-02-25 14:12:01 +08:00
caishi d3cc2e5632 build 2021-02-24 15:47:49 +08:00
caishi f665ff41e5 build 2021-02-24 15:29:04 +08:00
caishi 7815796945 build 2021-02-24 10:54:12 +08:00
caishi 8dd35b86c8 build 2021-02-23 17:26:24 +08:00
caishi c60eb554be build 2021-02-23 14:46:43 +08:00
caishi 2e7c3a2a83 build 2021-02-23 10:31:45 +08:00
caishi e282eb1389 build 2021-02-22 17:53:15 +08:00
caishi 867e519de1 build 2021-02-22 15:29:44 +08:00
caishi 8c46b5d1b2 build 2021-02-07 16:48:21 +08:00
caishi ab29e9ed6f build 2021-02-06 15:32:01 +08:00
caishi 8f44a43618 build 2021-02-06 10:43:49 +08:00
caishi 11e01b00b4 build 2021-02-05 16:52:18 +08:00
caishi 7e6599d5e4 build 2021-02-05 16:29:41 +08:00
caishi 2af3da658d build 2021-02-05 16:17:21 +08:00
caishi 440babb558 build 2021-02-05 16:15:52 +08:00
caishi 5c5e970590 build 2021-02-04 18:32:29 +08:00
caishi 84db4d911e build 2021-02-04 18:11:43 +08:00
caishi 3fce63c23b build 2021-02-04 18:10:09 +08:00
caishi fd08bca35f build 2021-02-04 17:51:47 +08:00
caishi c059a0e3a4 build 2021-02-03 18:42:28 +08:00
caishi e7b69422bc build 2021-02-03 17:02:27 +08:00
caishi e5ee276cc9 build-组织上线测试版- 2021-02-03 15:56:29 +08:00
caishi 1c48324b7a build 2021-02-02 12:27:19 +08:00
caishi f37e4b8624 build 2021-02-02 10:03:03 +08:00
caishi b697998069 build 2021-02-02 09:50:50 +08:00
caishi b6c72132be build 2021-02-01 16:55:04 +08:00
caishi 0909caa523 build 2021-02-01 15:30:20 +08:00
caishi b9af24b9ab build 2021-02-01 11:12:35 +08:00
caishi 39a5148db2 build 2021-01-29 14:21:05 +08:00
caishi a206f315b8 build 2021-01-25 16:03:54 +08:00
caishi c5d4f2453e build-ifon 2021-01-20 20:18:04 +08:00
caishi 172363cc30 build 2021-01-20 15:02:25 +08:00
caishi 8c818d6a84 build 2021-01-20 14:00:03 +08:00
caishi 60793b6a69 build 2021-01-20 11:37:59 +08:00
caishi c0dd287be2 build 2021-01-20 11:15:31 +08:00
caishi 57de1b0d27 build 2021-01-20 10:39:34 +08:00
caishi 8138159569 build 2021-01-20 10:15:54 +08:00
caishi 79748a98d4 build-新版工作流配置 2021-01-19 18:27:45 +08:00
caishi a7227035b3 build 2021-01-13 15:53:54 +08:00
caishi 2e46102cc1 build 2021-01-13 14:13:27 +08:00
caishi e74283bfc4 build 2021-01-12 17:38:20 +08:00
caishi 9b6caf5519 build 2021-01-06 16:23:22 +08:00
caishi e1669d1be8 build-为0时不显示 2021-01-05 15:33:38 +08:00
caishi 01eec4a3eb build 2020-12-31 15:57:23 +08:00
caishi 18c92ad896 build 2020-12-24 10:21:59 +08:00
caishi c14dcfa68d build 2020-12-24 09:48:32 +08:00
caishi b991a9cdda build 2020-12-23 17:41:59 +08:00
caishi c34918ae0c build 2020-12-22 14:11:24 +08:00
caishi 12574bdef1 build 2020-12-18 14:09:14 +08:00
caishi 7ca2389c7c build 2020-12-15 18:40:11 +08:00
caishi 1e21915287 build 2020-12-15 18:02:17 +08:00
caishi 5f9f52e0a5 build 2020-12-14 17:06:55 +08:00
caishi 248484dfe2 build 2020-12-11 18:21:51 +08:00
caishi 0d33a7062b build 2020-12-08 14:33:33 +08:00
caishi e0eb0c6115 build 2020-12-04 20:34:06 +08:00
caishi f69c6faca4 build 2020-12-01 16:53:22 +08:00
caishi f9fdd6cacc build 2020-11-30 16:16:47 +08:00
caishi 9d0ed52ceb build 2020-11-27 16:36:53 +08:00
caishi fd48c2197b build 2020-11-27 12:01:44 +08:00
caishi 6deff875d3 build 2020-11-26 15:48:18 +08:00
caishi 68fd54c3a2 build 2020-11-26 15:21:22 +08:00
caishi 44629b2609 build-branchroute 2020-11-24 10:25:10 +08:00
caishi 611ce1a53f build-lou 2020-11-16 16:21:13 +08:00
caishi 6887ebc079 build-root 2020-11-16 15:59:52 +08:00
caishi 4a78faedd4 build-update 2020-11-12 14:46:41 +08:00
1034 changed files with 9511 additions and 50943 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,239 +1,239 @@
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.lang({
imagedirectupload:'本地图片',
more: '切换到更多功能',
less: '切换到简单功能',
source : 'HTML代码',
preview : '预览',
undo : '后退(Ctrl+Z)',
redo : '前进(Ctrl+Y)',
cut : '剪切(Ctrl+X)',
copy : '复制(Ctrl+C)',
paste : '粘贴(Ctrl+V)',
plainpaste : '粘贴为无格式文本',
wordpaste : '从Word粘贴',
selectall : '全选(Ctrl+A)',
justifyleft : '左对齐',
justifycenter : '居中',
justifyright : '右对齐',
justifyfull : '两端对齐',
insertorderedlist : '编号',
insertunorderedlist : '项目符号',
indent : '增加缩进',
outdent : '减少缩进',
subscript : '下标',
superscript : '上标',
formatblock : '段落',
fontname : '字体',
fontsize : '文字大小',
forecolor : '文字颜色',
hilitecolor : '文字背景',
bold : '粗体(Ctrl+B)',
italic : '斜体(Ctrl+I)',
underline : '下划线(Ctrl+U)',
strikethrough : '删除线',
removeformat : '删除格式',
image : '图片',
multiimage : '批量图片上传',
flash : 'Flash',
media : '视音频',
table : '表格',
tablecell : '单元格',
hr : '插入横线',
emoticons : '插入表情',
link : '超级链接',
unlink : '取消超级链接',
fullscreen : '全屏显示',
about : '关于',
print : '打印(Ctrl+P)',
filemanager : '文件空间',
code : '插入程序代码',
map : 'Google地图',
baidumap : '百度地图',
lineheight : '行距',
clearhtml : '清理HTML代码',
pagebreak : '插入分页符',
quickformat : '一键排版',
insertfile : '插入文件',
template : '插入模板',
anchor : '锚点',
yes : '确定',
no : '取消',
close : '关闭',
editImage : '图片属性',
deleteImage : '删除图片',
editFlash : 'Flash属性',
deleteFlash : '删除Flash',
editMedia : '视音频属性',
deleteMedia : '删除视音频',
editLink : '超级链接属性',
deleteLink : '取消超级链接',
editAnchor : '锚点属性',
deleteAnchor : '删除锚点',
tableprop : '表格属性',
tablecellprop : '单元格属性',
tableinsert : '插入表格',
tabledelete : '删除表格',
tablecolinsertleft : '左侧插入列',
tablecolinsertright : '右侧插入列',
tablerowinsertabove : '上方插入行',
tablerowinsertbelow : '下方插入行',
tablerowmerge : '向下合并单元格',
tablecolmerge : '向右合并单元格',
tablerowsplit : '拆分行',
tablecolsplit : '拆分列',
tablecoldelete : '删除列',
tablerowdelete : '删除行',
noColor : '无颜色',
pleaseSelectFile : '请选择文件。',
invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。",
invalidMedia : "请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",
invalidWidth : "宽度必须为数字。",
invalidHeight : "高度必须为数字。",
invalidBorder : "边框必须为数字。",
invalidUrl : "请输入有效的URL地址。",
invalidRows : '行数为必选项只允许输入大于0的数字。',
invalidCols : '列数为必选项只允许输入大于0的数字。',
invalidPadding : '边距必须为数字。',
invalidSpacing : '间距必须为数字。',
invalidJson : '服务器发生故障。',
uploadSuccess : '上传成功。',
cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',
copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',
pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。',
ajaxLoading : '加载中,请稍候 ...',
uploadLoading : '上传中,请稍候 ...',
uploadError : '上传错误',
'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'code.pleaseInput' : '请输入程序代码。',
'link.url' : 'URL',
'link.linkType' : '打开类型',
'link.newWindow' : '新窗口',
'link.selfWindow' : '当前窗口',
'flash.url' : 'URL',
'flash.width' : '宽度',
'flash.height' : '高度',
'flash.upload' : '上传',
'flash.viewServer' : '文件空间',
'media.url' : 'URL',
'media.width' : '宽度',
'media.height' : '高度',
'media.autostart' : '自动播放',
'media.upload' : '上传',
'media.viewServer' : '文件空间',
'image.remoteImage' : '网络图片',
'image.localImage' : '本地上传',
'image.remoteUrl' : '图片地址',
'image.localUrl' : '上传文件',
'image.size' : '图片大小',
'image.width' : '宽',
'image.height' : '高',
'image.resetSize' : '重置大小',
'image.align' : '对齐方式',
'image.defaultAlign' : '默认方式',
'image.leftAlign' : '左对齐',
'image.rightAlign' : '右对齐',
'image.imgTitle' : '图片说明',
'image.upload' : '浏览...',
'image.viewServer' : '图片空间',
'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>',
'multiimage.startUpload' : '开始上传',
'multiimage.clearAll' : '全部清空',
'multiimage.insertAll' : '全部插入',
'multiimage.queueLimitExceeded' : '文件数量超过限制。',
'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。',
'multiimage.zeroByteFile' : '无法上传空文件。',
'multiimage.invalidFiletype' : '文件类型不正确。',
'multiimage.unknownError' : '发生异常,无法上传。',
'multiimage.pending' : '等待上传',
'multiimage.uploadError' : '上传失败',
'filemanager.emptyFolder' : '空文件夹',
'filemanager.moveup' : '移到上一级文件夹',
'filemanager.viewType' : '显示方式:',
'filemanager.viewImage' : '缩略图',
'filemanager.listImage' : '详细信息',
'filemanager.orderType' : '排序方式:',
'filemanager.fileName' : '名称',
'filemanager.fileSize' : '大小',
'filemanager.fileType' : '类型',
'insertfile.url' : 'URL',
'insertfile.title' : '文件说明',
'insertfile.upload' : '上传',
'insertfile.viewServer' : '文件空间',
'table.cells' : '单元格数',
'table.rows' : '行数',
'table.cols' : '列数',
'table.size' : '大小',
'table.width' : '宽度',
'table.height' : '高度',
'table.percent' : '%',
'table.px' : 'px',
'table.space' : '边距间距',
'table.padding' : '边距',
'table.spacing' : '间距',
'table.align' : '对齐方式',
'table.textAlign' : '水平对齐',
'table.verticalAlign' : '垂直对齐',
'table.alignDefault' : '默认',
'table.alignLeft' : '左对齐',
'table.alignCenter' : '居中',
'table.alignRight' : '右对齐',
'table.alignTop' : '顶部',
'table.alignMiddle' : '中部',
'table.alignBottom' : '底部',
'table.alignBaseline' : '基线',
'table.border' : '边框',
'table.borderWidth' : '边框',
'table.borderColor' : '颜色',
'table.backgroundColor' : '背景颜色',
'map.address' : '地址: ',
'map.search' : '搜索',
'baidumap.address' : '地址: ',
'baidumap.search' : '搜索',
'baidumap.insertDynamicMap' : '插入动态地图',
'anchor.name' : '锚点名称',
'formatblock.formatBlock' : {
h1 : '标题 1',
h2 : '标题 2',
h3 : '标题 3',
h4 : '标题 4',
p : '正 文'
},
'fontname.fontName' : {
'SimSun' : '宋体',
'NSimSun' : '新宋体',
'FangSong_GB2312' : '仿宋_GB2312',
'KaiTi_GB2312' : '楷体_GB2312',
'SimHei' : '黑体',
'Microsoft YaHei' : '微软雅黑',
'Arial' : 'Arial',
'Arial Black' : 'Arial Black',
'Times New Roman' : 'Times New Roman',
'Courier New' : 'Courier New',
'Tahoma' : 'Tahoma',
'Verdana' : 'Verdana'
},
'lineheight.lineHeight' : [
{'1' : '单倍行距'},
{'1.5' : '1.5倍行距'},
{'2' : '2倍行距'},
{'2.5' : '2.5倍行距'},
{'3' : '3倍行距'}
],
'template.selectTemplate' : '可选模板',
'template.replaceContent' : '替换当前内容',
'template.fileList' : {
'1.html' : '图片和文字',
'2.html' : '表格',
'3.html' : '项目编号'
}
}, 'zh_CN');
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.lang({
imagedirectupload:'本地图片',
more: '切换到更多功能',
less: '切换到简单功能',
source : 'HTML代码',
preview : '预览',
undo : '后退(Ctrl+Z)',
redo : '前进(Ctrl+Y)',
cut : '剪切(Ctrl+X)',
copy : '复制(Ctrl+C)',
paste : '粘贴(Ctrl+V)',
plainpaste : '粘贴为无格式文本',
wordpaste : '从Word粘贴',
selectall : '全选(Ctrl+A)',
justifyleft : '左对齐',
justifycenter : '居中',
justifyright : '右对齐',
justifyfull : '两端对齐',
insertorderedlist : '编号',
insertunorderedlist : '项目符号',
indent : '增加缩进',
outdent : '减少缩进',
subscript : '下标',
superscript : '上标',
formatblock : '段落',
fontname : '字体',
fontsize : '文字大小',
forecolor : '文字颜色',
hilitecolor : '文字背景',
bold : '粗体(Ctrl+B)',
italic : '斜体(Ctrl+I)',
underline : '下划线(Ctrl+U)',
strikethrough : '删除线',
removeformat : '删除格式',
image : '图片',
multiimage : '批量图片上传',
flash : 'Flash',
media : '视音频',
table : '表格',
tablecell : '单元格',
hr : '插入横线',
emoticons : '插入表情',
link : '超级链接',
unlink : '取消超级链接',
fullscreen : '全屏显示',
about : '关于',
print : '打印(Ctrl+P)',
filemanager : '文件空间',
code : '插入程序代码',
map : 'Google地图',
baidumap : '百度地图',
lineheight : '行距',
clearhtml : '清理HTML代码',
pagebreak : '插入分页符',
quickformat : '一键排版',
insertfile : '插入文件',
template : '插入模板',
anchor : '锚点',
yes : '确定',
no : '取消',
close : '关闭',
editImage : '图片属性',
deleteImage : '删除图片',
editFlash : 'Flash属性',
deleteFlash : '删除Flash',
editMedia : '视音频属性',
deleteMedia : '删除视音频',
editLink : '超级链接属性',
deleteLink : '取消超级链接',
editAnchor : '锚点属性',
deleteAnchor : '删除锚点',
tableprop : '表格属性',
tablecellprop : '单元格属性',
tableinsert : '插入表格',
tabledelete : '删除表格',
tablecolinsertleft : '左侧插入列',
tablecolinsertright : '右侧插入列',
tablerowinsertabove : '上方插入行',
tablerowinsertbelow : '下方插入行',
tablerowmerge : '向下合并单元格',
tablecolmerge : '向右合并单元格',
tablerowsplit : '拆分行',
tablecolsplit : '拆分列',
tablecoldelete : '删除列',
tablerowdelete : '删除行',
noColor : '无颜色',
pleaseSelectFile : '请选择文件。',
invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。",
invalidMedia : "请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",
invalidWidth : "宽度必须为数字。",
invalidHeight : "高度必须为数字。",
invalidBorder : "边框必须为数字。",
invalidUrl : "请输入有效的URL地址。",
invalidRows : '行数为必选项只允许输入大于0的数字。',
invalidCols : '列数为必选项只允许输入大于0的数字。',
invalidPadding : '边距必须为数字。',
invalidSpacing : '间距必须为数字。',
invalidJson : '服务器发生故障。',
uploadSuccess : '上传成功。',
cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',
copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',
pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。',
ajaxLoading : '加载中,请稍候 ...',
uploadLoading : '上传中,请稍候 ...',
uploadError : '上传错误',
'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'code.pleaseInput' : '请输入程序代码。',
'link.url' : 'URL',
'link.linkType' : '打开类型',
'link.newWindow' : '新窗口',
'link.selfWindow' : '当前窗口',
'flash.url' : 'URL',
'flash.width' : '宽度',
'flash.height' : '高度',
'flash.upload' : '上传',
'flash.viewServer' : '文件空间',
'media.url' : 'URL',
'media.width' : '宽度',
'media.height' : '高度',
'media.autostart' : '自动播放',
'media.upload' : '上传',
'media.viewServer' : '文件空间',
'image.remoteImage' : '网络图片',
'image.localImage' : '本地上传',
'image.remoteUrl' : '图片地址',
'image.localUrl' : '上传文件',
'image.size' : '图片大小',
'image.width' : '宽',
'image.height' : '高',
'image.resetSize' : '重置大小',
'image.align' : '对齐方式',
'image.defaultAlign' : '默认方式',
'image.leftAlign' : '左对齐',
'image.rightAlign' : '右对齐',
'image.imgTitle' : '图片说明',
'image.upload' : '浏览...',
'image.viewServer' : '图片空间',
'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>',
'multiimage.startUpload' : '开始上传',
'multiimage.clearAll' : '全部清空',
'multiimage.insertAll' : '全部插入',
'multiimage.queueLimitExceeded' : '文件数量超过限制。',
'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。',
'multiimage.zeroByteFile' : '无法上传空文件。',
'multiimage.invalidFiletype' : '文件类型不正确。',
'multiimage.unknownError' : '发生异常,无法上传。',
'multiimage.pending' : '等待上传',
'multiimage.uploadError' : '上传失败',
'filemanager.emptyFolder' : '空文件夹',
'filemanager.moveup' : '移到上一级文件夹',
'filemanager.viewType' : '显示方式:',
'filemanager.viewImage' : '缩略图',
'filemanager.listImage' : '详细信息',
'filemanager.orderType' : '排序方式:',
'filemanager.fileName' : '名称',
'filemanager.fileSize' : '大小',
'filemanager.fileType' : '类型',
'insertfile.url' : 'URL',
'insertfile.title' : '文件说明',
'insertfile.upload' : '上传',
'insertfile.viewServer' : '文件空间',
'table.cells' : '单元格数',
'table.rows' : '行数',
'table.cols' : '列数',
'table.size' : '大小',
'table.width' : '宽度',
'table.height' : '高度',
'table.percent' : '%',
'table.px' : 'px',
'table.space' : '边距间距',
'table.padding' : '边距',
'table.spacing' : '间距',
'table.align' : '对齐方式',
'table.textAlign' : '水平对齐',
'table.verticalAlign' : '垂直对齐',
'table.alignDefault' : '默认',
'table.alignLeft' : '左对齐',
'table.alignCenter' : '居中',
'table.alignRight' : '右对齐',
'table.alignTop' : '顶部',
'table.alignMiddle' : '中部',
'table.alignBottom' : '底部',
'table.alignBaseline' : '基线',
'table.border' : '边框',
'table.borderWidth' : '边框',
'table.borderColor' : '颜色',
'table.backgroundColor' : '背景颜色',
'map.address' : '地址: ',
'map.search' : '搜索',
'baidumap.address' : '地址: ',
'baidumap.search' : '搜索',
'baidumap.insertDynamicMap' : '插入动态地图',
'anchor.name' : '锚点名称',
'formatblock.formatBlock' : {
h1 : '标题 1',
h2 : '标题 2',
h3 : '标题 3',
h4 : '标题 4',
p : '正 文'
},
'fontname.fontName' : {
'SimSun' : '宋体',
'NSimSun' : '新宋体',
'FangSong_GB2312' : '仿宋_GB2312',
'KaiTi_GB2312' : '楷体_GB2312',
'SimHei' : '黑体',
'Microsoft YaHei' : '微软雅黑',
'Arial' : 'Arial',
'Arial Black' : 'Arial Black',
'Times New Roman' : 'Times New Roman',
'Courier New' : 'Courier New',
'Tahoma' : 'Tahoma',
'Verdana' : 'Verdana'
},
'lineheight.lineHeight' : [
{'1' : '单倍行距'},
{'1.5' : '1.5倍行距'},
{'2' : '2倍行距'},
{'2.5' : '2.5倍行距'},
{'3' : '3倍行距'}
],
'template.selectTemplate' : '可选模板',
'template.replaceContent' : '替换当前内容',
'template.fileList' : {
'1.html' : '图片和文字',
'2.html' : '表格',
'3.html' : '项目编号'
}
}, 'zh_CN');

View File

@ -1,71 +1,71 @@
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.plugin('autoheight', function(K) {
var self = this;
//self.autoHeightMode = true;
if (!self.autoHeightMode) {
return;
}
var minHeight;
function hideScroll() {
var edit = self.edit;
var body = edit.doc.body;
edit.iframe[0].scroll = 'no';
body.style.overflowY = 'hidden';
}
function resetHeight() {
var edit = self.edit;
var body = edit.doc.body;
edit.iframe.height(minHeight);
//最高418 超过用滚动条
self.resize(null, Math.max(
(K.IE ? body.scrollHeight : body.offsetHeight) > 385 ? 385+33 : (K.IE ? body.scrollHeight : body.offsetHeight)
+ 33, minHeight));
if( self.height == "418px" ){
edit.iframe[0].scroll = 'yes';
body.style.overflowY = 'auto';
}
else{
hideScroll();
}
}
function init() {
minHeight = K.removeUnit(self.height);
self.edit.afterChange(resetHeight);
hideScroll();
var edit = self.edit;
var body = edit.doc.body;
edit.iframe.height(minHeight);
self.resize(null, Math.max(
((K.IE ? body.scrollHeight : body.offsetHeight) > 250 ? 250 : (K.IE ? body.scrollHeight : body.offsetHeight)) //限制初始化太高的情况
+ 33, minHeight));
}
if (self.isCreated) {
init();
} else {
self.afterCreate(init);
}
});
/*
* 如何实现真正的自动高度
* 修改编辑器高度之后再次获取body内容高度时最小值只会是当前iframe的设置高度这样就导致高度只增不减
* 所以每次获取body内容高度之前先将iframe的高度重置为最小高度这样就能获取body的实际高度
* 由此就实现了真正的自动高度
* 测试chromefirefoxIE9IE8
* */
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.plugin('autoheight', function(K) {
var self = this;
//self.autoHeightMode = true;
if (!self.autoHeightMode) {
return;
}
var minHeight;
function hideScroll() {
var edit = self.edit;
var body = edit.doc.body;
edit.iframe[0].scroll = 'no';
body.style.overflowY = 'hidden';
}
function resetHeight() {
var edit = self.edit;
var body = edit.doc.body;
edit.iframe.height(minHeight);
//最高418 超过用滚动条
self.resize(null, Math.max(
(K.IE ? body.scrollHeight : body.offsetHeight) > 385 ? 385+33 : (K.IE ? body.scrollHeight : body.offsetHeight)
+ 33, minHeight));
if( self.height == "418px" ){
edit.iframe[0].scroll = 'yes';
body.style.overflowY = 'auto';
}
else{
hideScroll();
}
}
function init() {
minHeight = K.removeUnit(self.height);
self.edit.afterChange(resetHeight);
hideScroll();
var edit = self.edit;
var body = edit.doc.body;
edit.iframe.height(minHeight);
self.resize(null, Math.max(
((K.IE ? body.scrollHeight : body.offsetHeight) > 250 ? 250 : (K.IE ? body.scrollHeight : body.offsetHeight)) //限制初始化太高的情况
+ 33, minHeight));
}
if (self.isCreated) {
init();
} else {
self.afterCreate(init);
}
});
/*
* 如何实现真正的自动高度
* 修改编辑器高度之后再次获取body内容高度时最小值只会是当前iframe的设置高度这样就导致高度只增不减
* 所以每次获取body内容高度之前先将iframe的高度重置为最小高度这样就能获取body的实际高度
* 由此就实现了真正的自动高度
* 测试chromefirefoxIE9IE8
* */

View File

@ -1,56 +1,56 @@
.ke-content {
font-family: "微软雅黑","宋体";
}
.ke-content pre {
font-size:9pt;
font-family:Courier New,Arial;
border:1px solid #ddd;
border-left:5px solid #6CE26C;
background:#f6f6f6;
padding:5px;
}
.ke-content code {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #DDD;
background-color: #F6F6F6;
border-radius: 3px;
}
.ke-content pre>code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}
.ke-content pre code {
background-color: transparent;
border: none;
}
.ke-content p {
/*margin: 0 0 15px 0;*/
/*margin-bottom:15pt;*/
line-height:1.5;
/*letter-spacing: 1px;*/
}
.ke-content div.ref {border:1px solid #ddd;margin:0 0 10px 0;padding:2px;font-size:9pt;background:#ffe;}
.ke-content div.ref h4 {margin:0;padding:1px 3px;background:#CC9966;color:#fff;font-size:9pt;font-weight:normal;}
.ke-content div.ref .ref_body {margin:0;padding:2px;line-height:20px;color:#666;font-size:9pt;}
.ke-content blockquote{background: none;border: none;padding: 0px;margin: 0 0 0 40px;}
span.at {color:#269ac9;}
span.at a{color:#269ac9;text-decoration: none;}
/*yk*/
.ke-content ol li{list-style-type: decimal;}
.ke-content ul li{list-style-type: disc;}
.ke-content ol,.ke-content ul,.ke-content h1,.ke-content h2,.ke-content h3,.ke-content h4{margin-top:0;margin-bottom: 0;}
.ke-content a{color: #136ec2;}
.ke-content a:link,.ke-content a:visited{text-decoration:none;}
.ke-content {
font-family: "微软雅黑","宋体";
}
.ke-content pre {
font-size:9pt;
font-family:Courier New,Arial;
border:1px solid #ddd;
border-left:5px solid #6CE26C;
background:#f6f6f6;
padding:5px;
}
.ke-content code {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #DDD;
background-color: #F6F6F6;
border-radius: 3px;
}
.ke-content pre>code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}
.ke-content pre code {
background-color: transparent;
border: none;
}
.ke-content p {
/*margin: 0 0 15px 0;*/
/*margin-bottom:15pt;*/
line-height:1.5;
/*letter-spacing: 1px;*/
}
.ke-content div.ref {border:1px solid #ddd;margin:0 0 10px 0;padding:2px;font-size:9pt;background:#ffe;}
.ke-content div.ref h4 {margin:0;padding:1px 3px;background:#CC9966;color:#fff;font-size:9pt;font-weight:normal;}
.ke-content div.ref .ref_body {margin:0;padding:2px;line-height:20px;color:#666;font-size:9pt;}
.ke-content blockquote{background: none;border: none;padding: 0px;margin: 0 0 0 40px;}
span.at {color:#269ac9;}
span.at a{color:#269ac9;text-decoration: none;}
/*yk*/
.ke-content ol li{list-style-type: decimal;}
.ke-content ul li{list-style-type: disc;}
.ke-content ol,.ke-content ul,.ke-content h1,.ke-content h2,.ke-content h3,.ke-content h4{margin-top:0;margin-bottom: 0;}
.ke-content a{color: #136ec2;}
.ke-content a:link,.ke-content a:visited{text-decoration:none;}

View File

@ -1,361 +1,361 @@
// Generated by CoffeeScript 1.9.0
/*
paste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.
https://github.com/layerssss/paste.js
*/
(function() {
var $, Paste, createHiddenEditable, dataURLtoBlob;
$ = window.jQuery;
$.paste = function(pasteContainer) {
var pm;
if (typeof console !== "undefined" && console !== null) {
console.log("DEPRECATED: This method is deprecated. Please use $.fn.pastableNonInputable() instead.");
}
pm = Paste.mountNonInputable(pasteContainer);
return pm._container;
};
$.fn.pastableNonInputable = function() {
var el, _i, _len;
for (_i = 0, _len = this.length; _i < _len; _i++) {
el = this[_i];
Paste.mountNonInputable(el);
}
return this;
};
$.fn.pastableTextarea = function() {
var el, _i, _len;
for (_i = 0, _len = this.length; _i < _len; _i++) {
el = this[_i];
Paste.mountTextarea(el);
}
return this;
};
$.fn.pastableContenteditable = function() {
var el, _i, _len;
for (_i = 0, _len = this.length; _i < _len; _i++) {
el = this[_i];
Paste.mountContenteditable(el);
}
return this;
};
dataURLtoBlob = function(dataURL, sliceSize) {
var b64Data, byteArray, byteArrays, byteCharacters, byteNumbers, contentType, i, m, offset, slice, _ref;
if (sliceSize == null) {
sliceSize = 512;
}
if (!(m = dataURL.match(/^data\:([^\;]+)\;base64\,(.+)$/))) {
return null;
}
_ref = m, m = _ref[0], contentType = _ref[1], b64Data = _ref[2];
byteCharacters = atob(b64Data);
byteArrays = [];
offset = 0;
while (offset < byteCharacters.length) {
slice = byteCharacters.slice(offset, offset + sliceSize);
byteNumbers = new Array(slice.length);
i = 0;
while (i < slice.length) {
byteNumbers[i] = slice.charCodeAt(i);
i++;
}
byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
offset += sliceSize;
}
return new Blob(byteArrays, {
type: contentType
});
};
createHiddenEditable = function() {
return $(document.createElement('div')).attr('contenteditable', true).css({
width: 1,
height: 1,
position: 'fixed',
left: -100,
overflow: 'hidden'
});
};
Paste = (function() {
Paste.prototype._target = null;
Paste.prototype._container = null;
Paste.mountNonInputable = function(nonInputable) {
var paste;
paste = new Paste(createHiddenEditable().appendTo(nonInputable), nonInputable);
$(nonInputable).on('click', (function(_this) {
return function() {
return paste._container.focus();
};
})(this));
paste._container.on('focus', (function(_this) {
return function() {
return $(nonInputable).addClass('pastable-focus');
};
})(this));
return paste._container.on('blur', (function(_this) {
return function() {
return $(nonInputable).removeClass('pastable-focus');
};
})(this));
};
Paste.mountTextarea = function(textarea) {
var ctlDown, paste;
if (-1 !== navigator.userAgent.toLowerCase().indexOf('chrome')) {
return this.mountContenteditable(textarea);
}
paste = new Paste(createHiddenEditable().insertBefore(textarea), textarea);
ctlDown = false;
$(textarea).on('keyup', function(ev) {
var _ref;
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
return ctlDown = false;
}
});
$(textarea).on('keydown', function(ev) {
var _ref;
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
ctlDown = true;
}
if (ctlDown && ev.keyCode === 86) {
return paste._container.focus();
}
});
$(paste._target).on('pasteImage', (function(_this) {
return function() {
return $(textarea).focus();
};
})(this));
$(paste._target).on('pasteText', (function(_this) {
return function() {
return $(textarea).focus();
};
})(this));
$(textarea).on('focus', (function(_this) {
return function() {
return $(textarea).addClass('pastable-focus');
};
})(this));
return $(textarea).on('blur', (function(_this) {
return function() {
return $(textarea).removeClass('pastable-focus');
};
})(this));
};
Paste.mountContenteditable = function(contenteditable) {
var paste;
paste = new Paste(contenteditable, contenteditable);
$(contenteditable).on('focus', (function(_this) {
return function() {
return $(contenteditable).addClass('pastable-focus');
};
})(this));
return $(contenteditable).on('blur', (function(_this) {
return function() {
return $(contenteditable).removeClass('pastable-focus');
};
})(this));
};
function Paste(_at__container, _at__target) {
this._container = _at__container;
this._target = _at__target;
this._container = $(this._container);
this._target = $(this._target).addClass('pastable');
this._container.on('paste', (function(_this) {
return function(ev) {
var clipboardData, file, item, reader, text, _i, _j, _len, _len1, _ref, _ref1, _ref2, _ref3, _results;
if (((_ref = ev.originalEvent) != null ? _ref.clipboardData : void 0) != null) {
clipboardData = ev.originalEvent.clipboardData;
if (clipboardData.items) {
_ref1 = clipboardData.items;
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
item = _ref1[_i];
if (item.type.match(/^image\//)) {
reader = new FileReader();
reader.onload = function(event) {
return _this._handleImage(event.target.result);
};
reader.readAsDataURL(item.getAsFile());
}
if (item.type === 'text/plain') {
item.getAsString(function(string) {
return _this._target.trigger('pasteText', {
text: string
});
});
}
}
} else {
if (-1 !== Array.prototype.indexOf.call(clipboardData.types, 'text/plain')) {
text = clipboardData.getData('Text');
_this._target.trigger('pasteText', {
text: text
});
}
_this._checkImagesInContainer(function(src) {
return _this._handleImage(src);
});
}
}
if (clipboardData = window.clipboardData) {
if ((_ref2 = (text = clipboardData.getData('Text'))) != null ? _ref2.length : void 0) {
return _this._target.trigger('pasteText', {
text: text
});
} else {
_ref3 = clipboardData.files;
_results = [];
for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
file = _ref3[_j];
_this._handleImage(URL.createObjectURL(file));
_results.push(_this._checkImagesInContainer(function() {}));
}
return _results;
}
}
};
})(this));
}
Paste.prototype._handleImage = function(src) {
var loader;
loader = new Image();
loader.onload = (function(_this) {
return function() {
var blob, canvas, ctx, dataURL;
canvas = document.createElement('canvas');
canvas.width = loader.width;
canvas.height = loader.height;
ctx = canvas.getContext('2d');
ctx.drawImage(loader, 0, 0, canvas.width, canvas.height);
dataURL = null;
try {
dataURL = canvas.toDataURL('image/png');
blob = dataURLtoBlob(dataURL);
} catch (_error) {}
if (dataURL) {
return _this._target.trigger('pasteImage', {
blob: blob,
dataURL: dataURL,
width: loader.width,
height: loader.height
});
}
};
})(this);
return loader.src = src;
};
Paste.prototype._checkImagesInContainer = function(cb) {
var img, timespan, _i, _len, _ref;
timespan = Math.floor(1000 * Math.random());
_ref = this._container.find('img');
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
img = _ref[_i];
img["_paste_marked_" + timespan] = true;
}
return setTimeout((function(_this) {
return function() {
var _j, _len1, _ref1, _results;
_ref1 = _this._container.find('img');
_results = [];
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
img = _ref1[_j];
if (!img["_paste_marked_" + timespan]) {
cb(img.src);
}
//firefox问题处理因为采用了 pastableContenteditable 模式,故只需要删除默认的粘贴
if ($(img).attr('src').startsWith('data:image/')) {
_results.push($(img).remove());
};
}
return _results;
};
})(this), 1);
};
return Paste;
})();
}).call(this);
KindEditor.plugin('paste', function(K) {
var editor = this,
name = 'paste';
if(editor.edit == undefined || editor.edit.iframe == undefined){
return;
}
var contentWindow = editor.edit.iframe[0].contentWindow;
//var contentWindow = editor.iframeDoc;
//var contentWindow = document.getElementsByTagName('iframe')[0].contentWindow;
var nodeBody = contentWindow.document.getElementsByTagName('body')[0];
console.log(nodeBody);
$(nodeBody).pastableContenteditable();
dataURItoBlob = function(dataURI) {
// convert base64/URLEncoded data component to raw binary data held in a string
var byteString;
if (dataURI.split(',')[0].indexOf('base64') >= 0)
byteString = atob(dataURI.split(',')[1]);
else
byteString = unescape(dataURI.split(',')[1]);
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
// write the bytes of the string to a typed array
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], {type:mimeString});
};
$(nodeBody).on('pasteImage', function(ev, data) {
console.log('pasteImage');
console.log("dataURL: " + data.dataURL);
console.log("width: " + data.width);
console.log("height: " + data.height);
var blob = dataURItoBlob(data.dataURL);
if (data.blob !== null) {
var data = new FormData();
// data.append("imgFile",blob, "imageFilename.png");
data.append("file",blob, "imageFilename.png");
console.log(data);
$.ajax({
url: '/kindeditor/upload?dir=image',
url: '/api/attachments.json',
contentType: false,
type: 'POST',
data: data,
processData: false,
success: function(data) {
console.log(data);
// editor.exec('insertimage', JSON.parse(data).url);
// /api/attachments/227362
editor.exec('insertimage', '/api/attachments/' + data.id);
}
});
}
});
return;
});
// Generated by CoffeeScript 1.9.0
/*
paste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.
https://github.com/layerssss/paste.js
*/
(function() {
var $, Paste, createHiddenEditable, dataURLtoBlob;
$ = window.jQuery;
$.paste = function(pasteContainer) {
var pm;
if (typeof console !== "undefined" && console !== null) {
console.log("DEPRECATED: This method is deprecated. Please use $.fn.pastableNonInputable() instead.");
}
pm = Paste.mountNonInputable(pasteContainer);
return pm._container;
};
$.fn.pastableNonInputable = function() {
var el, _i, _len;
for (_i = 0, _len = this.length; _i < _len; _i++) {
el = this[_i];
Paste.mountNonInputable(el);
}
return this;
};
$.fn.pastableTextarea = function() {
var el, _i, _len;
for (_i = 0, _len = this.length; _i < _len; _i++) {
el = this[_i];
Paste.mountTextarea(el);
}
return this;
};
$.fn.pastableContenteditable = function() {
var el, _i, _len;
for (_i = 0, _len = this.length; _i < _len; _i++) {
el = this[_i];
Paste.mountContenteditable(el);
}
return this;
};
dataURLtoBlob = function(dataURL, sliceSize) {
var b64Data, byteArray, byteArrays, byteCharacters, byteNumbers, contentType, i, m, offset, slice, _ref;
if (sliceSize == null) {
sliceSize = 512;
}
if (!(m = dataURL.match(/^data\:([^\;]+)\;base64\,(.+)$/))) {
return null;
}
_ref = m, m = _ref[0], contentType = _ref[1], b64Data = _ref[2];
byteCharacters = atob(b64Data);
byteArrays = [];
offset = 0;
while (offset < byteCharacters.length) {
slice = byteCharacters.slice(offset, offset + sliceSize);
byteNumbers = new Array(slice.length);
i = 0;
while (i < slice.length) {
byteNumbers[i] = slice.charCodeAt(i);
i++;
}
byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
offset += sliceSize;
}
return new Blob(byteArrays, {
type: contentType
});
};
createHiddenEditable = function() {
return $(document.createElement('div')).attr('contenteditable', true).css({
width: 1,
height: 1,
position: 'fixed',
left: -100,
overflow: 'hidden'
});
};
Paste = (function() {
Paste.prototype._target = null;
Paste.prototype._container = null;
Paste.mountNonInputable = function(nonInputable) {
var paste;
paste = new Paste(createHiddenEditable().appendTo(nonInputable), nonInputable);
$(nonInputable).on('click', (function(_this) {
return function() {
return paste._container.focus();
};
})(this));
paste._container.on('focus', (function(_this) {
return function() {
return $(nonInputable).addClass('pastable-focus');
};
})(this));
return paste._container.on('blur', (function(_this) {
return function() {
return $(nonInputable).removeClass('pastable-focus');
};
})(this));
};
Paste.mountTextarea = function(textarea) {
var ctlDown, paste;
if (-1 !== navigator.userAgent.toLowerCase().indexOf('chrome')) {
return this.mountContenteditable(textarea);
}
paste = new Paste(createHiddenEditable().insertBefore(textarea), textarea);
ctlDown = false;
$(textarea).on('keyup', function(ev) {
var _ref;
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
return ctlDown = false;
}
});
$(textarea).on('keydown', function(ev) {
var _ref;
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
ctlDown = true;
}
if (ctlDown && ev.keyCode === 86) {
return paste._container.focus();
}
});
$(paste._target).on('pasteImage', (function(_this) {
return function() {
return $(textarea).focus();
};
})(this));
$(paste._target).on('pasteText', (function(_this) {
return function() {
return $(textarea).focus();
};
})(this));
$(textarea).on('focus', (function(_this) {
return function() {
return $(textarea).addClass('pastable-focus');
};
})(this));
return $(textarea).on('blur', (function(_this) {
return function() {
return $(textarea).removeClass('pastable-focus');
};
})(this));
};
Paste.mountContenteditable = function(contenteditable) {
var paste;
paste = new Paste(contenteditable, contenteditable);
$(contenteditable).on('focus', (function(_this) {
return function() {
return $(contenteditable).addClass('pastable-focus');
};
})(this));
return $(contenteditable).on('blur', (function(_this) {
return function() {
return $(contenteditable).removeClass('pastable-focus');
};
})(this));
};
function Paste(_at__container, _at__target) {
this._container = _at__container;
this._target = _at__target;
this._container = $(this._container);
this._target = $(this._target).addClass('pastable');
this._container.on('paste', (function(_this) {
return function(ev) {
var clipboardData, file, item, reader, text, _i, _j, _len, _len1, _ref, _ref1, _ref2, _ref3, _results;
if (((_ref = ev.originalEvent) != null ? _ref.clipboardData : void 0) != null) {
clipboardData = ev.originalEvent.clipboardData;
if (clipboardData.items) {
_ref1 = clipboardData.items;
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
item = _ref1[_i];
if (item.type.match(/^image\//)) {
reader = new FileReader();
reader.onload = function(event) {
return _this._handleImage(event.target.result);
};
reader.readAsDataURL(item.getAsFile());
}
if (item.type === 'text/plain') {
item.getAsString(function(string) {
return _this._target.trigger('pasteText', {
text: string
});
});
}
}
} else {
if (-1 !== Array.prototype.indexOf.call(clipboardData.types, 'text/plain')) {
text = clipboardData.getData('Text');
_this._target.trigger('pasteText', {
text: text
});
}
_this._checkImagesInContainer(function(src) {
return _this._handleImage(src);
});
}
}
if (clipboardData = window.clipboardData) {
if ((_ref2 = (text = clipboardData.getData('Text'))) != null ? _ref2.length : void 0) {
return _this._target.trigger('pasteText', {
text: text
});
} else {
_ref3 = clipboardData.files;
_results = [];
for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
file = _ref3[_j];
_this._handleImage(URL.createObjectURL(file));
_results.push(_this._checkImagesInContainer(function() {}));
}
return _results;
}
}
};
})(this));
}
Paste.prototype._handleImage = function(src) {
var loader;
loader = new Image();
loader.onload = (function(_this) {
return function() {
var blob, canvas, ctx, dataURL;
canvas = document.createElement('canvas');
canvas.width = loader.width;
canvas.height = loader.height;
ctx = canvas.getContext('2d');
ctx.drawImage(loader, 0, 0, canvas.width, canvas.height);
dataURL = null;
try {
dataURL = canvas.toDataURL('image/png');
blob = dataURLtoBlob(dataURL);
} catch (_error) {}
if (dataURL) {
return _this._target.trigger('pasteImage', {
blob: blob,
dataURL: dataURL,
width: loader.width,
height: loader.height
});
}
};
})(this);
return loader.src = src;
};
Paste.prototype._checkImagesInContainer = function(cb) {
var img, timespan, _i, _len, _ref;
timespan = Math.floor(1000 * Math.random());
_ref = this._container.find('img');
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
img = _ref[_i];
img["_paste_marked_" + timespan] = true;
}
return setTimeout((function(_this) {
return function() {
var _j, _len1, _ref1, _results;
_ref1 = _this._container.find('img');
_results = [];
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
img = _ref1[_j];
if (!img["_paste_marked_" + timespan]) {
cb(img.src);
}
//firefox问题处理因为采用了 pastableContenteditable 模式,故只需要删除默认的粘贴
if ($(img).attr('src').startsWith('data:image/')) {
_results.push($(img).remove());
};
}
return _results;
};
})(this), 1);
};
return Paste;
})();
}).call(this);
KindEditor.plugin('paste', function(K) {
var editor = this,
name = 'paste';
if(editor.edit == undefined || editor.edit.iframe == undefined){
return;
}
var contentWindow = editor.edit.iframe[0].contentWindow;
//var contentWindow = editor.iframeDoc;
//var contentWindow = document.getElementsByTagName('iframe')[0].contentWindow;
var nodeBody = contentWindow.document.getElementsByTagName('body')[0];
console.log(nodeBody);
$(nodeBody).pastableContenteditable();
dataURItoBlob = function(dataURI) {
// convert base64/URLEncoded data component to raw binary data held in a string
var byteString;
if (dataURI.split(',')[0].indexOf('base64') >= 0)
byteString = atob(dataURI.split(',')[1]);
else
byteString = unescape(dataURI.split(',')[1]);
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
// write the bytes of the string to a typed array
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], {type:mimeString});
};
$(nodeBody).on('pasteImage', function(ev, data) {
console.log('pasteImage');
console.log("dataURL: " + data.dataURL);
console.log("width: " + data.width);
console.log("height: " + data.height);
var blob = dataURItoBlob(data.dataURL);
if (data.blob !== null) {
var data = new FormData();
// data.append("imgFile",blob, "imageFilename.png");
data.append("file",blob, "imageFilename.png");
console.log(data);
$.ajax({
url: '/kindeditor/upload?dir=image',
url: '/api/attachments.json',
contentType: false,
type: 'POST',
data: data,
processData: false,
success: function(data) {
console.log(data);
// editor.exec('insertimage', JSON.parse(data).url);
// /api/attachments/227362
editor.exec('insertimage', '/api/attachments/' + data.id);
}
});
}
});
return;
});

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
css/editormd.min.css vendored Normal file → Executable file

File diff suppressed because one or more lines are too long

View File

@ -7854,6 +7854,12 @@ a.singlepublishtwo {
.markdown-body {
text-align: justify;
word-break: break-all;
}
.RightPaneDrawer .ant-drawer-content {
background: #070f1a;
overflow: hidden !important;

3
css/edu-common.css Normal file → Executable file
View File

@ -25,9 +25,6 @@ html {
min-width: 1200px
}
.newFooter {
max-height: 110px;
}
.newFooter {
position: absolute;

View File

@ -3268,7 +3268,6 @@ a.user_greybg_btn {
.markdown-body ul>li {
list-style-type: disc !important;
margin-bottom: 0 !important;
}
.new_li .markdown-body ol>li,
@ -4200,6 +4199,10 @@ html>body #ajax-indicator {
color: #898989 !important;
}
.markdown-body {
text-align: justify;
word-break: break-all;
}
.RightPaneDrawer .ant-drawer-content {
background: #070f1a;

0
css/edu-public.css Normal file → Executable file
View File

View File

@ -1,5 +1,4 @@
@charset "utf-8";
/* 头部 */
.header {
width: 100%;
@ -1081,20 +1080,7 @@ a.shixun-task-btn {
word-wrap: break-word;
word-break: break-word;
}
.markdown_anchors{
position: relative;
}
.markdown_anchors:hover .anchors{
display: inline-block;
}
.markdown_anchors .anchors:hover{
text-decoration: none;
}
.markdown_anchors .anchors {
color: inherit;
margin-left: -14px;
display: none;
}
.markdown code {
padding: 0;
line-height: 23px;
@ -1283,7 +1269,7 @@ a.shixun-task-btn {
/*-----------实训配置、评测脚本-------------*/
@font-face {
font-family: "iconfont";
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1631773579834') format('woff2'),
url('iconfont.woff?t=1631773579834') format('woff'),
url('iconfont.ttf?t=1631773579834') format('truetype');
@ -1379,12 +1365,12 @@ table {
border: 0;
}
a:link,a:visited{
a:link,
a:visited {
text-decoration: none;
color: #05101a;
}
ol,
ul,
li {
@ -2480,7 +2466,7 @@ a.hoverLine:hover{
}
a:hover{
color: #6684FE;
color: #466AFF !important;
}
.color-grey-98 {
@ -3374,8 +3360,8 @@ a.edu-greyline-btn:hover {
.defalutSubmitbtn {
display: block;
border: 1px solid #466aff;
background-color: #466aff;
border: 1px solid #4CACFF;
background-color: #4CACFF;
color: #fff !important;
width: 120px;
text-align: center;
@ -3383,6 +3369,7 @@ a.edu-greyline-btn:hover {
border-radius: 2px;
width: 130px;
height: 40px;
background: rgba(76, 172, 255, 1);
border-radius: 4px;
font-size: 16px;
font-family: MicrosoftYaHei;
@ -3623,7 +3610,6 @@ a.user_bluebg_btn {
margin-right: 5px;
}
/***** loading ******/
/*****载入中******/
#ajax-indicator {
@ -3962,40 +3948,90 @@ html>body #ajax-indicator {
color: #FF6832;
border:1px solid #FF6832;
}
.head-nav::-webkit-scrollbar {
display: none;
}
.head-nav {
text-align: center;
height: 58px;
box-sizing: border-box;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1;
white-space: nowrap;
overflow-y: auto;
display: flex;
align-self: flex-start;
}
.head-nav li{
.head-nav ul#header-nav {
position: absolute;
top: 0px;
z-index: 3;
height: 58px;
box-sizing: border-box;
}
.head-nav ul#header-nav li {
float: left;
height: 58px;
line-height: 58px;
cursor: pointer;
position: relative;
font-size: 16px;
padding-right:40px;
}
.head-nav ul#header-nav li a {
display: block;
height: 100%;
width: 100%;
color: #fff;
font-size: 16px;
}
.head-nav a {
color: #fff;
margin: 0 20px;
}
.head-nav li a:hover,.head-nav li.active a {
.head-nav ul#header-nav li a:hover,.head-nav ul#header-nav li.active a {
color: #5091FF;
}
.head-nav ul#header-nav li:last-child {
margin-right: 0px
}
.head-nav ul#header-nav li p:hover {
color: #cccccc;
}
.head-nav ul#header-nav li p {
display: block;
height: 100%;
width: 100%;
color: #fff
}
/* .head-nav ul#header-nav li.active div ul li a {
color: #000 !important;
} */
/* .head-nav ul#header-nav li.active div ul li a:hover {
color: #FFF !important;
}
.head-nav ul#header-nav li.active ul li a {
color: #000 !important;
} */
/* .head-nav ul#header-nav li.active ul li a:hover {
color: #FFF !important;
} */
/* .head-nav ul#header-nav li.active:after {
content: '';
position: absolute;
left: 0px;
top: auto;
bottom: 10px;
right: auto;
height: 2px;
width: 32px;
background-color: #459be5;
} */
.head-right {
box-sizing: border-box;
height: 60px;
@ -6635,6 +6671,13 @@ ul.count_ul li:not(:last-child):after {
}
.markdown-body {
text-align: justify;
word-break: break-all;
}
.RightPaneDrawer .ant-drawer-content {
background: #070f1a;
overflow: hidden !important;

6323
css/gitlink.min.css vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1727340588188') format('woff2'),
url('iconfont.woff?t=1727340588188') format('woff'),
url('iconfont.ttf?t=1727340588188') format('truetype');
src: url('iconfont.woff2?t=1653550272457') format('woff2'),
url('iconfont.woff?t=1653550272457') format('woff'),
url('iconfont.ttf?t=1653550272457') format('truetype');
}
.iconfont {
@ -13,278 +13,6 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-gongxianquequan:before {
content: "\e979";
}
.icon-xuanzhong5:before {
content: "\e97a";
}
.icon-big-circle:before {
content: "\e978";
}
.icon-gitee:before {
content: "\e974";
}
.icon-gitea:before {
content: "\e975";
}
.icon-coding:before {
content: "\e976";
}
.icon-github1:before {
content: "\e977";
}
.icon-gitlab:before {
content: "\e973";
}
.icon-a-lianhe6:before {
content: "\e972";
}
.icon-a-22ziliaoshouce-xianxing:before {
content: "\e971";
}
.icon-changjiantou:before {
content: "\e970";
}
.icon-bangzhuzhongxinicon2:before {
content: "\e96f";
}
.icon-liulan1:before {
content: "\e96e";
}
.icon-a-zu2044:before {
content: "\e96d";
}
.icon-cuo:before {
content: "\e96c";
}
.icon-dui:before {
content: "\e96b";
}
.icon-zanting:before {
content: "\e96a";
}
.icon-cangkuyuyanicon:before {
content: "\e962";
}
.icon-dongtaiicon1:before {
content: "\e963";
}
.icon-jingxuanxiangmu:before {
content: "\e964";
}
.icon-zuzhichengyuan1:before {
content: "\e965";
}
.icon-zuzhijieshao:before {
content: "\e966";
}
.icon-zuzhituandui:before {
content: "\e967";
}
.icon-shezhi6:before {
content: "\e968";
}
.icon-zidingyi:before {
content: "\e969";
}
.icon-a-zu37:before {
content: "\e961";
}
.icon-guanzhuicon:before {
content: "\e95b";
}
.icon-yidianzan_icon:before {
content: "\e95c";
}
.icon-morenfuke_icon1:before {
content: "\e95d";
}
.icon-yiguanzhuicon:before {
content: "\e95e";
}
.icon-yifuke_icon:before {
content: "\e95f";
}
.icon-xingzhuang:before {
content: "\e960";
}
.icon-kaiqi:before {
content: "\e95a";
}
.icon-a-31shijian:before {
content: "\e944";
}
.icon-chengyuan2:before {
content: "\e945";
}
.icon-a-bianji12:before {
content: "\e946";
}
.icon-fuzhi-shanchu:before {
content: "\e947";
}
.icon-chuangjianqianbao:before {
content: "\e948";
}
.icon-biaoji2:before {
content: "\e949";
}
.icon-lichengbeiicon1:before {
content: "\e94a";
}
.icon-biaoji:before {
content: "\e94b";
}
.icon-fenzhi3:before {
content: "\e94c";
}
.icon-riqi:before {
content: "\e94d";
}
.icon-ruliriqixiao:before {
content: "\e94e";
}
.icon-shanchu8:before {
content: "\e94f";
}
.icon-sousuo6:before {
content: "\e950";
}
.icon-quanxian:before {
content: "\e951";
}
.icon-lichengbeiicon2:before {
content: "\e952";
}
.icon-xinjian3:before {
content: "\e953";
}
.icon-xuanzhong4:before {
content: "\e954";
}
.icon-youxian:before {
content: "\e955";
}
.icon-a-xiaoxi1:before {
content: "\e956";
}
.icon-yixiuicon2:before {
content: "\e957";
}
.icon-xiugaibaobiaomoban:before {
content: "\e958";
}
.icon-a-zu1614:before {
content: "\e959";
}
.icon-BOTpeizhi:before {
content: "\e942";
}
.icon-kaifabot:before {
content: "\e943";
}
.icon-jiqiren:before {
content: "\e940";
}
.icon-a-jiqirenzhineng-02:before {
content: "\e941";
}
.icon-yuyue-lishi-shijian:before {
content: "\e93f";
}
.icon-a-duobianxing1:before {
content: "\e93c";
}
.icon-a-duobianxing2:before {
content: "\e93d";
}
.icon-sousuo5:before {
content: "\e93e";
}
.icon-baogaoppt:before {
content: "\e93b";
}
.icon-gailan2:before {
content: "\e93a";
}
.icon-bianji7:before {
content: "\e939";
}
.icon-ROBOT:before {
content: "\e937";
}
.icon-a-zu1404:before {
content: "\e938";
}
.icon-tuichuicon:before {
content: "\e936";
}
@ -449,10 +177,6 @@
content: "\e90e";
}
.icon-shanchu_important:before {
content: "\f1d8";
}
.icon-shanchu_tc_icon1:before {
content: "\e90c";
}

File diff suppressed because one or more lines are too long

View File

@ -5,482 +5,6 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "41876673",
"name": "贡献确权",
"font_class": "gongxianquequan",
"unicode": "e979",
"unicode_decimal": 59769
},
{
"icon_id": "657556",
"name": "分期-选中",
"font_class": "xuanzhong5",
"unicode": "e97a",
"unicode_decimal": 59770
},
{
"icon_id": "157771",
"name": "细圆",
"font_class": "big-circle",
"unicode": "e978",
"unicode_decimal": 59768
},
{
"icon_id": "41539674",
"name": "gitee",
"font_class": "gitee",
"unicode": "e974",
"unicode_decimal": 59764
},
{
"icon_id": "41539676",
"name": "gitea",
"font_class": "gitea",
"unicode": "e975",
"unicode_decimal": 59765
},
{
"icon_id": "41539677",
"name": "coding",
"font_class": "coding",
"unicode": "e976",
"unicode_decimal": 59766
},
{
"icon_id": "41539675",
"name": "github",
"font_class": "github1",
"unicode": "e977",
"unicode_decimal": 59767
},
{
"icon_id": "41539679",
"name": "gitlab",
"font_class": "gitlab",
"unicode": "e973",
"unicode_decimal": 59763
},
{
"icon_id": "41195024",
"name": "联合 6",
"font_class": "a-lianhe6",
"unicode": "e972",
"unicode_decimal": 59762
},
{
"icon_id": "40333433",
"name": "使用手册",
"font_class": "a-22ziliaoshouce-xianxing",
"unicode": "e971",
"unicode_decimal": 59761
},
{
"icon_id": "40172194",
"name": "长箭头",
"font_class": "changjiantou",
"unicode": "e970",
"unicode_decimal": 59760
},
{
"icon_id": "37836900",
"name": "帮助中心icon",
"font_class": "bangzhuzhongxinicon2",
"unicode": "e96f",
"unicode_decimal": 59759
},
{
"icon_id": "36898536",
"name": "浏览",
"font_class": "liulan1",
"unicode": "e96e",
"unicode_decimal": 59758
},
{
"icon_id": "36020261",
"name": "组 2044",
"font_class": "a-zu2044",
"unicode": "e96d",
"unicode_decimal": 59757
},
{
"icon_id": "5287658",
"name": "错",
"font_class": "cuo",
"unicode": "e96c",
"unicode_decimal": 59756
},
{
"icon_id": "8802648",
"name": "对",
"font_class": "dui",
"unicode": "e96b",
"unicode_decimal": 59755
},
{
"icon_id": "887857",
"name": "暂停",
"font_class": "zanting",
"unicode": "e96a",
"unicode_decimal": 59754
},
{
"icon_id": "34965902",
"name": "仓库语言icon",
"font_class": "cangkuyuyanicon",
"unicode": "e962",
"unicode_decimal": 59746
},
{
"icon_id": "34965903",
"name": "动态icon",
"font_class": "dongtaiicon1",
"unicode": "e963",
"unicode_decimal": 59747
},
{
"icon_id": "34965904",
"name": "精选项目",
"font_class": "jingxuanxiangmu",
"unicode": "e964",
"unicode_decimal": 59748
},
{
"icon_id": "34965905",
"name": "组织成员",
"font_class": "zuzhichengyuan1",
"unicode": "e965",
"unicode_decimal": 59749
},
{
"icon_id": "34965906",
"name": "组织介绍",
"font_class": "zuzhijieshao",
"unicode": "e966",
"unicode_decimal": 59750
},
{
"icon_id": "34965907",
"name": "组织团队",
"font_class": "zuzhituandui",
"unicode": "e967",
"unicode_decimal": 59751
},
{
"icon_id": "34965908",
"name": "设置",
"font_class": "shezhi6",
"unicode": "e968",
"unicode_decimal": 59752
},
{
"icon_id": "34965909",
"name": "自定义",
"font_class": "zidingyi",
"unicode": "e969",
"unicode_decimal": 59753
},
{
"icon_id": "34875122",
"name": "组 37",
"font_class": "a-zu37",
"unicode": "e961",
"unicode_decimal": 59745
},
{
"icon_id": "34819652",
"name": "关注icon",
"font_class": "guanzhuicon",
"unicode": "e95b",
"unicode_decimal": 59739
},
{
"icon_id": "34819653",
"name": "已点赞_icon",
"font_class": "yidianzan_icon",
"unicode": "e95c",
"unicode_decimal": 59740
},
{
"icon_id": "34819654",
"name": "默认复刻_icon",
"font_class": "morenfuke_icon1",
"unicode": "e95d",
"unicode_decimal": 59741
},
{
"icon_id": "34819655",
"name": "已关注icon",
"font_class": "yiguanzhuicon",
"unicode": "e95e",
"unicode_decimal": 59742
},
{
"icon_id": "34819656",
"name": "已复刻_icon",
"font_class": "yifuke_icon",
"unicode": "e95f",
"unicode_decimal": 59743
},
{
"icon_id": "34820092",
"name": "形状",
"font_class": "xingzhuang",
"unicode": "e960",
"unicode_decimal": 59744
},
{
"icon_id": "34197190",
"name": "开启",
"font_class": "kaiqi",
"unicode": "e95a",
"unicode_decimal": 59738
},
{
"icon_id": "33949760",
"name": "3.1 时间",
"font_class": "a-31shijian",
"unicode": "e944",
"unicode_decimal": 59716
},
{
"icon_id": "33949761",
"name": "成员",
"font_class": "chengyuan2",
"unicode": "e945",
"unicode_decimal": 59717
},
{
"icon_id": "33949762",
"name": "编辑 (1)",
"font_class": "a-bianji12",
"unicode": "e946",
"unicode_decimal": 59718
},
{
"icon_id": "33949763",
"name": "复制-删除",
"font_class": "fuzhi-shanchu",
"unicode": "e947",
"unicode_decimal": 59719
},
{
"icon_id": "33949764",
"name": "创建钱包",
"font_class": "chuangjianqianbao",
"unicode": "e948",
"unicode_decimal": 59720
},
{
"icon_id": "33949765",
"name": "标记2",
"font_class": "biaoji2",
"unicode": "e949",
"unicode_decimal": 59721
},
{
"icon_id": "33949766",
"name": "里程碑icon",
"font_class": "lichengbeiicon1",
"unicode": "e94a",
"unicode_decimal": 59722
},
{
"icon_id": "33949767",
"name": "标记",
"font_class": "biaoji",
"unicode": "e94b",
"unicode_decimal": 59723
},
{
"icon_id": "33949768",
"name": "分支",
"font_class": "fenzhi3",
"unicode": "e94c",
"unicode_decimal": 59724
},
{
"icon_id": "33949769",
"name": "日期",
"font_class": "riqi",
"unicode": "e94d",
"unicode_decimal": 59725
},
{
"icon_id": "33949770",
"name": "入离日期小",
"font_class": "ruliriqixiao",
"unicode": "e94e",
"unicode_decimal": 59726
},
{
"icon_id": "33949771",
"name": "删除",
"font_class": "shanchu8",
"unicode": "e94f",
"unicode_decimal": 59727
},
{
"icon_id": "33949772",
"name": "搜索",
"font_class": "sousuo6",
"unicode": "e950",
"unicode_decimal": 59728
},
{
"icon_id": "33949773",
"name": "权限",
"font_class": "quanxian",
"unicode": "e951",
"unicode_decimal": 59729
},
{
"icon_id": "33949774",
"name": "里程碑icon2",
"font_class": "lichengbeiicon2",
"unicode": "e952",
"unicode_decimal": 59730
},
{
"icon_id": "33949775",
"name": "新建",
"font_class": "xinjian3",
"unicode": "e953",
"unicode_decimal": 59731
},
{
"icon_id": "33949776",
"name": "选中",
"font_class": "xuanzhong4",
"unicode": "e954",
"unicode_decimal": 59732
},
{
"icon_id": "33949777",
"name": "优先",
"font_class": "youxian",
"unicode": "e955",
"unicode_decimal": 59733
},
{
"icon_id": "33949778",
"name": "消息 (1)",
"font_class": "a-xiaoxi1",
"unicode": "e956",
"unicode_decimal": 59734
},
{
"icon_id": "33949779",
"name": "易修icon",
"font_class": "yixiuicon2",
"unicode": "e957",
"unicode_decimal": 59735
},
{
"icon_id": "33949780",
"name": "修改报表模版",
"font_class": "xiugaibaobiaomoban",
"unicode": "e958",
"unicode_decimal": 59736
},
{
"icon_id": "33949781",
"name": "组 1614",
"font_class": "a-zu1614",
"unicode": "e959",
"unicode_decimal": 59737
},
{
"icon_id": "33731642",
"name": "BOT配置",
"font_class": "BOTpeizhi",
"unicode": "e942",
"unicode_decimal": 59714
},
{
"icon_id": "33731643",
"name": "开发bot",
"font_class": "kaifabot",
"unicode": "e943",
"unicode_decimal": 59715
},
{
"icon_id": "19591156",
"name": "机器人",
"font_class": "jiqiren",
"unicode": "e940",
"unicode_decimal": 59712
},
{
"icon_id": "25885545",
"name": "机器人、智能-02",
"font_class": "a-jiqirenzhineng-02",
"unicode": "e941",
"unicode_decimal": 59713
},
{
"icon_id": "6978097",
"name": "预约-历史-时间",
"font_class": "yuyue-lishi-shijian",
"unicode": "e93f",
"unicode_decimal": 59711
},
{
"icon_id": "31659662",
"name": "多边形 1",
"font_class": "a-duobianxing1",
"unicode": "e93c",
"unicode_decimal": 59708
},
{
"icon_id": "31659664",
"name": "多边形 2",
"font_class": "a-duobianxing2",
"unicode": "e93d",
"unicode_decimal": 59709
},
{
"icon_id": "31659665",
"name": "搜索",
"font_class": "sousuo5",
"unicode": "e93e",
"unicode_decimal": 59710
},
{
"icon_id": "31424249",
"name": "报告ppt",
"font_class": "baogaoppt",
"unicode": "e93b",
"unicode_decimal": 59707
},
{
"icon_id": "31318120",
"name": "概览",
"font_class": "gailan2",
"unicode": "e93a",
"unicode_decimal": 59706
},
{
"icon_id": "31275425",
"name": "编辑",
"font_class": "bianji7",
"unicode": "e939",
"unicode_decimal": 59705
},
{
"icon_id": "30382389",
"name": "ROBOT",
"font_class": "ROBOT",
"unicode": "e937",
"unicode_decimal": 59703
},
{
"icon_id": "30382697",
"name": "组 1404",
"font_class": "a-zu1404",
"unicode": "e938",
"unicode_decimal": 59704
},
{
"icon_id": "29934961",
"name": "退出icon",
@ -768,13 +292,6 @@
"unicode": "e90e",
"unicode_decimal": 59662
},
{
"icon_id": "41976790",
"name": "shanchu_tc_icon-copy",
"font_class": "shanchu_important",
"unicode": "f1d8",
"unicode_decimal": 61912
},
{
"icon_id": "26470602",
"name": "shanchu_tc_icon",

Binary file not shown.

Binary file not shown.

Binary file not shown.

0
css/merge.css Normal file → Executable file
View File

File diff suppressed because one or more lines are too long

0
fonts/FontAwesome.otf Normal file → Executable file
View File

Binary file not shown.

0
fonts/fontawesome-webfont.eot Normal file → Executable file
View File

0
fonts/fontawesome-webfont.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 434 KiB

After

Width:  |  Height:  |  Size: 434 KiB

0
fonts/fontawesome-webfont.ttf Normal file → Executable file
View File

0
fonts/fontawesome-webfont.woff Normal file → Executable file
View File

0
fonts/fontawesome-webfont.woff2 Normal file → Executable file
View File

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
images/loading@2x.gif Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/share_logo_icon.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -1 +1 @@
<!doctype html><html lang="zh-hans-CN" class="notranslate translated-ltr" translate="no"><head><title>GitLink | 新一代开源创新服务平台</title><meta charset="utf-8"><meta name="Keywords" content="GitLink, git, 开源, 代码托管, 项目管理, 版本控制, 代码分享, 项目协作, 协同开发平台"><meta name="description" content="GitLink 是一个新一代的开源创新服务平台,提供分布式协作开发、流水线运维、代码分析等功能,基于 Git 打造分布式代码托管环境。"><meta property="og:title" content="GitLink | 确实开源"/><meta property="og:type" content="website"/><meta property="og:url" content="https://gitlink.org.cn/"/><meta property="og:image" content="https://www.gitlink.org.cn/images/logo.png"/><meta property="og:image:alt" content="GitLink | 确实开源"/><meta property="og:site_name" content="GitLink"/><meta property="og:description" content="GitLink 是一个新一代的开源创新服务平台,提供分布式协作开发、流水线运维、代码分析等功能,基于 Git 打造分布式代码托管环境。"/><meta name="hostname" content="gitlink.org.cn"><meta name="keyboard-shortcuts-preference" content="all"><meta name="expected-hostname" content="gitlink.org.cn"><meta name="go-import" content="gitlink.org.cn git https://gitlink.org.cn"><meta name="octolytics-dimension-user_login" content="GitLink"><meta name="octolytics-dimension-repository_nwo" content="GitLink"><meta name="octolytics-dimension-repository_network_root_nwo" content="GitLink"><meta name="theme-color" content="#000000"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="referrer" content="always"><meta name="google-site-verification" content="rGWc47_e6dmJlLtT6ngl3WSiXMsY8FCcll2dbdlNHm0"/><meta name="viewport" content=""><link rel="canonical" href="https://gitlink.org.cn" data-turbo-transient=""><link rel="fluid-icon" href="https://www.gitlink.org.cn/images/logo.png" title="GitLink"><link rel="manifest" href="/build//manifest.json"><link rel="stylesheet" href="/build/css/alex/alex.all.global.min.css"><link rel="stylesheet" href="/build/css/iconfont.css"><link rel="stylesheet" href="/build/css/editormd.min.css"><link rel="stylesheet" href="/build/css/gitlink.min.css"><link href="/build/static/css/main.5e25c15e.chunk.css" rel="stylesheet"></head><body><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit widthunit"></div><div id="picture_display" style="display:none"></div><script src="https://gw.alipayobjects.com/os/lib/react/16.14.0/umd/react.production.min.js"></script><script src="https://gw.alipayobjects.com/os/lib/react-dom/16.14.0/umd/react-dom.production.min.js"></script><script src="/build/js/jquery-1.8.3.min.js"></script><script src="/build/js/js_min_all.js"></script><script src="/build/js/codemirror/codemirror.js"></script><script src="/build/js/editormd/editormd.min.js"></script><script src="/build/js/codemirror/merge/merge.js"></script><script src="/build/js/alex/moment.js"></script><script src="https://gw.alipayobjects.com/os/lib/alipay/alex/2.0.19/bundle/alex.all.global.min.js"></script><script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script><script src="/build/./static/js/runtime~main.c7e7343e.js"></script><script src="/build/./static/js/main.7036b156.chunk.js"></script><script>var _hmt=_hmt||[];!function(){var t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?7e2def1fe918f15f9f1c5c061f69b256";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}(),window.onload=function(){$(".newContainer").delegate("a.anchors","click",(function(){let t=$(this).offset().top-180;return $("html,body").animate({scrollTop:t},10),window.location.hash=$(this).attr("name"),!1}))}</script></body></html>
<!doctype html><html lang="zh-CN" class="notranslate translated-ltr" translate="no"><head><meta charset="utf-8"><meta name="”Keywords”" content="”trustie,trustieforge,forge,确实让创建更美好,协同开发平台″"><meta name="”Keywords”" content="”TrustieOpenSourceProject″"><meta name="”Keywords”" content="”issue,bug,tracker,软件工程,课程实践″"><meta name="”Description”" content="”持续构建协同、共享、可信的软件创建生态开源创作与软件生产相结合,支持大规模群体开展软件协同创新活动”"><meta name="theme-color" content="#000000"><meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/><link rel="manifest" href="/react/build//manifest.json"><link rel="stylesheet" href="/react/build/css/iconfont.css"><link rel="stylesheet" href="/react/build/css/edu-purge.css"><link rel="stylesheet" href="/react/build/css/editormd.min.css"><link rel="stylesheet" href="/react/build/css/merge.css"><link href="/react/build/static/css/main.4ba9c42e.chunk.css" rel="stylesheet"></head><body><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit widthunit"></div><div id="picture_display" style="display:none"></div><script src="/react/build/js/jquery-1.8.3.min.js"></script><script src="/react/build/js/js_min_all.js"></script><script src="/react/build/js/codemirror/codemirror.js"></script><script src="/react/build/js/editormd/editormd.min.js"></script><script src="/react/build/js/codemirror/merge/merge.js"></script><script src="/react/build/./static/js/runtime~main.6e7c38e1.js"></script><script src="/react/build/./static/js/main.27f65535.chunk.js"></script></body></html>

2
index.test.html Normal file → Executable file
View File

@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> -->
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<!--

File diff suppressed because it is too large Load Diff

0
js/codemirror/addon/active-line.js vendored Normal file → Executable file
View File

0
js/codemirror/addon/hint/anyword-hint.js vendored Normal file → Executable file
View File

0
js/codemirror/addon/hint/javascript-hint.js vendored Normal file → Executable file
View File

0
js/codemirror/addon/hint/show-hint.css vendored Normal file → Executable file
View File

0
js/codemirror/addon/hint/show-hint.js vendored Normal file → Executable file
View File

0
js/codemirror/codemirror.js Normal file → Executable file
View File

0
js/codemirror/lib/fuzzysort.js vendored Normal file → Executable file
View File

0
js/codemirror/merge/merge.css Normal file → Executable file
View File

0
js/codemirror/merge/merge.js Normal file → Executable file
View File

0
js/codemirror/mode/javascript.js vendored Normal file → Executable file
View File

0
js/diff_match_patch.js Normal file → Executable file
View File

155
js/editormd/editormd.min.js vendored Normal file → Executable file
View File

@ -558,20 +558,20 @@
_this.setToolbar();
// 此处影响公式加载
editormd.loadScript(loadPath + "marked.min", function () {
editormd.$marked = marked;
// editormd.loadScript(loadPath + "marked.min", function () {
// });
if (settings.previewCodeHighlight) {
editormd.loadScript(loadPath + "prettify.min", function () {
loadFlowChartOrSequenceDiagram();
});
}
else {
editormd.$marked = marked;
if (settings.previewCodeHighlight) {
editormd.loadScript(loadPath + "prettify.min", function () {
loadFlowChartOrSequenceDiagram();
}
});
}
else {
loadFlowChartOrSequenceDiagram();
}
});
});
@ -831,7 +831,7 @@
if (scrollTop === 0) {
preview.scrollTop(0);
}
else if (scrollTop + height >= cmScroll.scrollHeight - 30) {
else if (scrollTop + height >= cmScroll.scrollHeight - 16) {
preview.scrollTop(preview[0].scrollHeight);
}
else {
@ -1418,6 +1418,28 @@
return this;
},
/**
* 解析TeX(KaTeX)科学公式
* TeX(KaTeX) Renderer
*
* @returns {editormd} 返回editormd的实例对象
*/
katexRender: function () {
if (timer === null) {
return this;
}
this.previewContainer.find("." + editormd.classNames.tex).each(function () {
var tex = $(this);
editormd.$katex.render(tex.text(), tex[0]);
tex.find(".katex").css("font-size", "1.0em");
});
return this;
},
/**
* 解析和渲染流程图及时序图
* FlowChart and SequenceDiagram Renderer
@ -1449,6 +1471,7 @@
var preview = $this.preview;
var codeMirror = $this.codeMirror;
var codeView = codeMirror.find(".CodeMirror-scroll");
var height = codeView.height();
var scrollTop = codeView.scrollTop();
var percent = (scrollTop / codeView[0].scrollHeight);
@ -1460,11 +1483,11 @@
var tocMenuHeight = preview.find(".editormd-toc-menu").height();
tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;
if (scrollTop === 0) {
preview.scrollTop(0);
}
else if (scrollTop + height >= codeView[0].scrollHeight - 30) {
else if (scrollTop + height >= codeView[0].scrollHeight - 16) {
preview.scrollTop(preview[0].scrollHeight);
}
else {
@ -1572,7 +1595,8 @@
codeMirror.find(".CodeMirror-scroll").bind(mouseOrTouch("scroll", "touchmove"), function (event) {
var height = $(this).height();
var scrollTop = $(this).scrollTop();
var percent = (scrollTop / ($(this)[0].scrollHeight-100));
var percent = (scrollTop / $(this)[0].scrollHeight);
var tocHeight = 0;
preview.find(".markdown-toc-list").each(function () {
@ -1585,7 +1609,7 @@
if (scrollTop === 0) {
preview.scrollTop(0);
}
else if (scrollTop + height >= $(this)[0].scrollHeight - 30) {
else if (scrollTop + height >= $(this)[0].scrollHeight - 16) {
preview.scrollTop(preview[0].scrollHeight);
}
else {
@ -1860,63 +1884,6 @@
}
var marked = editormd.$marked;
const kateX = {
name: 'kateX',
level: 'block', // Is this a block-level or inline-level tokenizer?
start(src) {
// 匹配以 $$ 开头和结尾的 KaTeX 表达式
const startRegex = /^\$\$[^$]+?\$\$(?:\n|$)/;
// 匹配以 $ 开头和结尾的 KaTeX 表达式
const inlineRegex = /^\$[^$]+?\$(?:\n|$)/;
// 检查是否有块级 KaTeX 表达式
const blockMatch = src.match(startRegex);
if (blockMatch) {
return blockMatch.index;
}
// 检查是否有行内 KaTeX 表达式
const inlineMatch = src.match(inlineRegex);
if (inlineMatch) {
return inlineMatch.index;
}
// 如果没有匹配的内容,则返回 null 或 undefined
return null;
},
tokenizer(src, tokens) {
const match = src.match(/^\$([^\$]+)\$/);
if (match) {
return {
type: 'kateX',
raw: match[0],
text: match[1].trim(),
displayMode: false
};
}
const matchDisplay = src.match(/^\$\$([^\$]+)\$\$/);
if (matchDisplay) {
return {
type: 'kateX',
raw: matchDisplay[0],
text: matchDisplay[1].trim(),
displayMode: true
};
}
return false;
},
renderer(token) {
let renderString = ''
try {
renderString = katex.renderToString(token.text, { displayMode: token.displayMode })
} catch (error) {
renderString = `<p style="color:#cc0000" title="${ error.message }">${ token.raw }`
}
return renderString
}
};
var markdownToC = this.markdownToC = [];
var rendererOptions = this.markedRendererOptions = {
toc: settings.toc,
@ -1943,10 +1910,6 @@
smartLists: true,
smartypants: true
};
if (editormd.kaTeXLoaded) {
marked.use({ extensions: [kateX] });
}
marked.setOptions(markedOptions);
@ -1997,12 +1960,12 @@
editormd.loadKaTeX(function () {
editormd.$katex = katex;
editormd.kaTeXLoaded = true;
marked.use({ extensions: [kateX] });
_this.save();
_this.katexRender();
});
}
else {
editormd.$katex = katex;
this.katexRender();
}
}
@ -3457,15 +3420,25 @@
};
markedRenderer.paragraph = function (text) {
var isTeXInline = /\$\$(.*)\$\$/g.test(text);
var isTeXLine = /^\$\$(.*)\$\$$/.test(text);
var isTeXAddClass = (isTeXLine) ? " class=\"" + editormd.classNames.tex + "\"" : "";
var isToC = (settings.tocm) ? /^(\[TOC\]|\[TOCM\])$/.test(text) : /^\[TOC\]$/.test(text);
var isToCMenu = /^\[TOCM\]$/.test(text);
if (!isTeXLine && isTeXInline) {
text = text.replace(/(\$\$([^\$]*)\$\$)+/g, function ($1, $2) {
return "<span class=\"" + editormd.classNames.tex + "\">" + $2.replace(/\$/g, "") + "</span>";
});
}
else {
text = (isTeXLine) ? text.replace(/\$/g, "") : text;
}
var tocHTML = "<div class=\"markdown-toc editormd-markdown-toc\">" + text + "</div>";
return (isToC) ? ((isToCMenu) ? "<div class=\"editormd-toc-menu\">" + tocHTML + "</div><br/>" : tocHTML)
: ((pageBreakReg.test(text)) ? this.pageBreak(text) : this.atLink(this.emoji(text)) + "</p>\n");
: ((pageBreakReg.test(text)) ? this.pageBreak(text) : "<p" + isTeXAddClass + ">" + this.atLink(this.emoji(text)) + "</p>\n");
};
markedRenderer.code = function (code, lang, escaped) {
@ -3832,6 +3805,26 @@
}
}
if (settings.tex) {
var katexHandle = function () {
div.find("." + editormd.classNames.tex).each(function () {
var tex = $(this);
katex.render(tex.text(), tex[0]);
tex.find(".katex").css("font-size", "1.0em");
});
};
if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded) {
this.loadKaTeX(function () {
editormd.$katex = katex;
editormd.kaTeXLoaded = true;
katexHandle();
});
}
else {
katexHandle();
}
}
div.getMarkdown = function () {
return saveTo.val();

0
js/editormd/flowchart.min.js vendored Normal file → Executable file
View File

0
js/editormd/jquery.flowchart.min.js vendored Normal file → Executable file
View File

0
js/editormd/lib/codemirror/addons.min.js vendored Normal file → Executable file
View File

0
js/editormd/lib/codemirror/modes.min.js vendored Normal file → Executable file
View File

11
js/editormd/lib/marked.min.js vendored Normal file → Executable file

File diff suppressed because one or more lines are too long

0
js/editormd/lib/prettify.min.js vendored Normal file → Executable file
View File

0
js/editormd/lib/raphael.min.js vendored Normal file → Executable file
View File

0
js/editormd/lib/underscore.min.js vendored Normal file → Executable file
View File

11
js/editormd/marked.min.js vendored Normal file → Executable file

File diff suppressed because one or more lines are too long

0
js/editormd/prettify.min.js vendored Normal file → Executable file
View File

0
js/editormd/sequence-diagram.min.js vendored Normal file → Executable file
View File

0
js/edu_tpi.js Normal file → Executable file
View File

0
js/jquery-1.8.3.min.js vendored Normal file → Executable file
View File

0
js/jsFromMiddleLayer/formvalid.js Normal file → Executable file
View File

0
js/jsFromMiddleLayer/main.js Normal file → Executable file
View File

0
js/jsFromMiddleLayer/ws.js Normal file → Executable file
View File

0
js/js_min_add.js Normal file → Executable file
View File

0
js/js_min_all.js Normal file → Executable file
View File

0
js/js_min_cm.js Normal file → Executable file
View File

0
js/merge.js Normal file → Executable file
View File

0
js/monaco/vs/base/worker/workerMain.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/apex/apex.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/azcli/azcli.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/bat/bat.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/clojure/clojure.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/coffee/coffee.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/cpp/cpp.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/csharp/csharp.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/csp/csp.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/css/css.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/dockerfile/dockerfile.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/fsharp/fsharp.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/go/go.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/handlebars/handlebars.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/html/html.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/ini/ini.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/java/java.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/javascript/javascript.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/less/less.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/lua/lua.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/markdown/markdown.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/msdax/msdax.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/mysql/mysql.js Normal file → Executable file
View File

View File

0
js/monaco/vs/basic-languages/perl/perl.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/pgsql/pgsql.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/php/php.js Normal file → Executable file
View File

0
js/monaco/vs/basic-languages/postiats/postiats.js Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More