Compare commits

..

159 Commits

Author SHA1 Message Date
xxq250 2841428680 refactor: .devops/dev_nanda测试环境.yml 2023-02-20 10:25:22 +08:00
xxq250 3400183b4f refactor: .devops/dev_nanda测试环境.yml 2023-02-20 09:57:00 +08:00
xxq250 88f9441dc5 修正DevOps通知信息文案 2023-02-20 09:54:51 +08:00
xxq250 d79f3de8ff refactor: .devops/dev_nanda测试环境.yml 2023-02-20 09:54:02 +08:00
xxq250 adbe952fd7 Update 1.txt 2023-02-20 09:50:17 +08:00
xxq250 b7361390f1 refactor: .devops/dev_nanda测试环境.yml 2023-02-20 09:49:45 +08:00
xxq250 0a8adaa779 Update 1.txt 2023-02-20 09:48:47 +08:00
xxq250 7ea3623b96 refactor: .devops/dev_nanda测试环境.yml 2023-02-20 09:48:15 +08:00
xxq250 5d25231d91 Update 1.txt 2023-02-20 09:46:15 +08:00
xxq250 516c232053 refactor: .devops/dev_nanda测试环境.yml 2023-02-20 09:43:32 +08:00
xxq250 25e7c12508 refactor: .devops/dev_nanda测试环境.yml 2023-02-20 09:43:20 +08:00
xxq250 6ebf62a2b0 refactor: .devops/dev_nanda测试环境.yml 2023-02-20 09:40:21 +08:00
xxq250 33165e2eef Update 1.txt 2023-02-07 15:42:19 +08:00
xxq250 1d7a2ff843 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 15:39:19 +08:00
xxq250 1491616520 Update 1.txt 2023-02-07 15:36:42 +08:00
xxq250 2f4fbb3b47 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 15:32:44 +08:00
xxq250 54c1f36cb7 Update 1.txt 2023-02-07 14:42:45 +08:00
xxq250 cc68a3ad10 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:39:52 +08:00
xxq250 0f5aedd5bd Update 1.txt 2023-02-07 14:40:37 +08:00
xxq250 2956392bd5 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:37:42 +08:00
xxq250 0f6d857468 Update 1.txt 2023-02-07 14:37:57 +08:00
xxq250 431188761d refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:34:32 +08:00
xxq250 a8643724d8 Update 1.txt 2023-02-07 14:31:30 +08:00
xxq250 daf1b18946 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:28:36 +08:00
xxq250 29ee8d6f4d Update 1.txt 2023-02-07 14:26:51 +08:00
xxq250 af9b665483 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:24:02 +08:00
xxq250 ea19f6881f Update 1.txt 2023-02-07 14:22:51 +08:00
xxq250 9758d168c3 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:20:02 +08:00
xxq250 530fc5d26d Update 1.txt 2023-02-07 14:18:56 +08:00
xxq250 c1535111f9 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:16:06 +08:00
xxq250 6317369053 Update 1.txt 2023-02-07 14:16:20 +08:00
xxq250 64dbe68257 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:13:29 +08:00
xxq250 94e69c5fbe Update 1.txt 2023-02-07 14:11:17 +08:00
xxq250 fe17a4f523 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:07:53 +08:00
xxq250 7743f63661 Update 1.txt 2023-02-07 14:07:40 +08:00
xxq250 2bfd4c133e refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:04:46 +08:00
xxq250 f318d3dc29 Update 1.txt 2023-02-07 14:04:55 +08:00
xxq250 2e8155fc18 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:02:04 +08:00
xxq250 4edac8cd55 Update 1.txt 2023-02-07 14:03:38 +08:00
xxq250 4a285a2429 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 14:00:34 +08:00
xxq250 81cf403b8d Update 1.txt 2023-02-07 10:00:26 +08:00
xxq250 1d2702eb9f refactor: .devops/dev_nanda测试环境.yml 2023-02-07 09:57:15 +08:00
xxq250 3677c047c9 Update 1.txt 2023-02-07 09:53:07 +08:00
xxq250 da9c2c2329 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 09:50:16 +08:00
xxq250 b92aaae895 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 09:48:50 +08:00
xxq250 030c2acdfe refactor: .devops/dev_nanda测试环境.yml 2023-02-07 09:43:05 +08:00
xxq250 89e7126bdd Update 1.txt 2023-02-07 09:44:00 +08:00
xxq250 7637e8a012 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 09:41:00 +08:00
xxq250 064deb3078 Update 1.txt 2023-02-07 09:38:09 +08:00
xxq250 97deb89054 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 09:34:11 +08:00
xxq250 b98783cc14 Update 1.txt 2023-02-07 09:32:44 +08:00
xxq250 40f4298ea6 Update 1.txt 2023-02-07 09:31:47 +08:00
xxq250 f6aa5e9bb3 Update 1.txt 2023-02-07 09:28:04 +08:00
xxq250 6a371716f4 refactor: .devops/dev_nanda测试环境.yml 2023-02-07 09:24:47 +08:00
xxq250 bd74b08e99 Update 1.txt 2023-02-06 16:28:09 +08:00
xxq250 0f7fd1eab4 refactor: .devops/dev_nanda测试环境.yml 2023-02-06 16:25:22 +08:00
xxq250 a92027e4b7 Update 1.txt 2023-02-06 16:24:24 +08:00
xxq250 85bbd4f6ec refactor: .devops/dev_nanda测试环境.yml 2023-02-06 16:21:37 +08:00
xxq250 e638e331ff Update 1.txt 2023-02-06 16:21:14 +08:00
xxq250 8c9d168496 refactor: .devops/dev_nanda测试环境.yml 2023-02-06 16:18:25 +08:00
xxq250 a26abe175d Update 1.txt 2023-02-06 16:18:49 +08:00
xxq250 366e5e6a0f refactor: .devops/dev_nanda测试环境.yml 2023-02-06 16:16:00 +08:00
xxq250 b06253fbb6 Update 1.txt 2023-02-06 15:53:11 +08:00
xxq250 7b71145f53 refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:50:15 +08:00
xxq250 62e24dccdb Update 1.txt 2023-02-06 15:51:02 +08:00
xxq250 b4f0d84d84 refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:48:15 +08:00
xxq250 31d55f8445 Update 1.txt 2023-02-06 15:48:53 +08:00
xxq250 d944f6c347 refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:45:58 +08:00
xxq250 34f778a1c4 Update 1.txt 2023-02-06 15:46:17 +08:00
xxq250 f4f3ded64f refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:43:27 +08:00
xxq250 86cc1e0bde Update 1.txt 2023-02-06 15:43:33 +08:00
xxq250 01755aaa62 refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:40:45 +08:00
xxq250 e1a757c76f Update 1.txt 2023-02-06 15:41:07 +08:00
xxq250 62af80283e refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:38:16 +08:00
xxq250 5915182eb7 Update 1.txt 2023-02-06 15:38:13 +08:00
xxq250 387bb455e9 refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:34:46 +08:00
xxq250 ccbbace7a7 Update 1.txt 2023-02-06 15:35:38 +08:00
xxq250 31b3f7ce0d refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:32:42 +08:00
xxq250 4cf40cebf5 Update 1.txt 2023-02-06 15:20:09 +08:00
xxq250 dd6873f88d refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:17:00 +08:00
xxq250 2cd22865d2 ADD file via upload 2023-02-06 15:16:20 +08:00
xxq250 4b8e174e1d refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:11:07 +08:00
xxq250 3cbe8f819a refactor: .devops/dev_nanda测试环境.yml 2023-02-06 15:06:33 +08:00
xxq250 b7cc6bf71b refactor: .devops/dev_nanda测试环境.yml 2023-02-06 09:49:43 +08:00
xxq250 0eeb4fee62 feat: .devops/dev_nanda测试环境.yml 2023-02-06 09:39:02 +08:00
xxq250 19ff3aeec9 refactor: delete .devops/未命名项目.yml 2023-02-06 09:39:02 +08:00
xxq250 b3efb8a19b refactor: .devops/未命名项目.yml 2023-02-06 09:36:20 +08:00
xxq250 ed2e0ad7d9 feat: .devops/未命名项目.yml 2023-02-06 09:36:14 +08:00
zhangxunhui 1cb4693d10 更新了区块链前端的支持 2023-02-04 11:14:07 +08:00
zhangxunhui 1b693b61eb 删除了修改个人赞助信息的设置链接 2023-02-02 21:39:44 +08:00
zhangxunhui 2ff769f131 创建issue页面获取blockchain剩余token api有误 2023-02-02 20:50:07 +08:00
zhangxunhui 01be508966 修改了对显示用户贡献度的支持 2023-02-02 17:05:11 +08:00
zhangxunhui dfef25cbe1 更新了贡献确权相关前端代码 2023-01-31 00:07:03 +08:00
xxq250 598e446d89 nanda版本 2023-01-12 21:42:46 +08:00
xxq250 51578f1d2d Merge pull request '临时隐藏reposyncer入口' (#236) from durian/build:dev_trustie into dev_trustie 2023-01-04 15:05:15 +08:00
谢思 1f23fed214 临时隐藏reposyncer入口 2023-01-04 14:57:35 +08:00
xxq250 3597b1579d Merge pull request '针对个人主页简介显示重新发版' (#233) from caishi/build:dev_trustie into dev_trustie 2022-12-30 15:25:33 +08:00
caishi 8c9ccaa01d build-同上 2022-12-30 15:19:00 +08:00
xxq250 d9816ffbc3 Merge pull request '2022-12-30正式版build上线' (#232) from caishi/build:dev_trustie into dev_trustie 2022-12-30 12:09:42 +08:00
caishi b32620c998 build 2022-12-30 12:04:32 +08:00
caishi bb7801fea8 2022-12-30 2022-12-30 12:03:26 +08:00
xxq250 fe04b415c5 Merge pull request '优化项目css加载、react资源使用cdn等' (#231) from tongChong/build:dev_trustie into dev_trustie 2022-12-28 17:09:18 +08:00
何童崇 8e3431a0f0 优化项目css加载、react资源使用cdn 2022-12-28 16:00:04 +08:00
xxq250 e5b118e041 Merge pull request '注册panel的样式影响到登录panel的位置' (#224) from caishi/build:dev_trustie into dev_trustie 2022-12-09 15:26:48 +08:00
caishi 6a9cc3d49f register style‘ 2022-12-09 15:23:05 +08:00
xxq250 45af65f8c5 Merge pull request '紧急issue上线' (#223) from caishi/build:dev_trustie into dev_trustie 2022-12-09 15:15:17 +08:00
caishi fd5699bd91 build 2022-12-09 15:11:29 +08:00
xxq250 26e1744fc6 Merge pull request '更新' (#222) from durian/build:dev_trustie into dev_trustie 2022-12-09 14:57:45 +08:00
谢思 73cc144f61 更新 2022-12-09 14:36:50 +08:00
xxq250 baa78782f0 Merge pull request '2021-12-8正式版build上线' (#221) from caishi/build:dev_trustie into dev_trustie 2022-12-08 18:21:42 +08:00
caishi 726e98bd93 20221208 2022-12-08 18:18:24 +08:00
xxq250 536ddef2fb Merge pull request '网页标题修改' (#220) from durian/build:dev_trustie into dev_trustie 2022-12-08 11:47:55 +08:00
谢思 178cb7bb18 网页标题修改 2022-12-08 11:06:23 +08:00
xxq250 09f21b6727 Merge pull request '更新' (#219) from durian/build:dev_trustie into dev_trustie 2022-12-02 15:10:24 +08:00
谢思 40b6bc4d50 代码库文件上传放开文件类型限制 2022-12-02 11:46:53 +08:00
xxq250 53d45699f1 Merge pull request '代码库上传文件限制文件类型' (#217) from durian/build:dev_trustie into dev_trustie 2022-11-29 16:39:41 +08:00
谢思 b557b59748 代码库上传文件限制文件类型 2022-11-29 16:33:17 +08:00
xxq250 28cdb64acd Merge pull request '2022-11-25update' (#214) from caishi/build:dev_trustie into dev_trustie 2022-11-25 16:31:27 +08:00
caishi 19b570beba update 2022-11-25 16:27:26 +08:00
xxq250 c9ead71036 Merge pull request '2022-11-25周上线任务' (#213) from caishi/build:dev_trustie into dev_trustie 2022-11-25 16:16:29 +08:00
caishi 4af7c98daf 20221125 2022-11-25 16:09:12 +08:00
caishi 600b8bf596 empty 2022-11-25 16:08:28 +08:00
caishi ffba080025 chongtu 2022-11-25 16:08:14 +08:00
caishi 7536ee144f save 2022-11-25 16:07:43 +08:00
caishi 982dee626c build 20221125 2022-11-25 16:07:03 +08:00
caishi 265a5d4700 1125周上线任务 2022-11-25 16:01:24 +08:00
xxq250 773c52645d Merge pull request '修复邀请403问题' (#211) from tongChong/build:dev_trustie into dev_trustie 2022-11-19 15:56:49 +08:00
何童崇 37913a7aff 修复邀请问题 2022-11-19 15:49:28 +08:00
xxq250 1e91090967 Merge pull request '更新' (#209) from durian/build:dev_trustie into dev_trustie 2022-11-17 16:24:25 +08:00
谢思 647b3b606f 更新1117 2022-11-17 16:12:19 +08:00
xxq250 721ccacf73 Merge pull request '更新' (#208) from durian/build:dev_trustie into dev_trustie 2022-11-11 14:55:31 +08:00
谢思 ed803cab7f 更改 2022-11-11 14:42:17 +08:00
xxq250 e44b7df1ef Merge pull request '更新' (#205) from durian/build:dev_trustie into dev_trustie 2022-11-03 15:34:01 +08:00
谢思 3fe4ffe4d1 更新 2022-11-03 15:19:08 +08:00
xxq250 dd4595bd28 Merge pull request '更新个人设置页以及其他issue' (#200) from durian/build:dev_trustie into dev_trustie 2022-10-28 16:09:52 +08:00
谢思 1e315d10ba 更新个人设置页以及其他issue 2022-10-28 16:02:03 +08:00
xxq250 bfb3fa0b98 Merge pull request 'glcc延长导师评分时间至24号24点' (#197) from durian/build:dev_trustie into dev_trustie 2022-10-24 10:58:53 +08:00
谢思 db26449174 glcc延长导师评分时间至24号24点 2022-10-24 10:50:44 +08:00
yystopf c899f48e7c Merge pull request '应建木要求修改devops样式' (#195) from durian/build:dev_trustie into dev_trustie 2022-10-19 16:22:21 +08:00
谢思 dc05a088b8 应建木要求修改devops页面样式 2022-10-19 16:02:43 +08:00
yystopf 96b4ebbf37 Merge pull request 'pull未合并的代码更新' (#194) from durian/build:dev_trustie into dev_trustie 2022-10-19 15:12:45 +08:00
谢思 1ed878c6a6 pull未合并的代码 2022-10-19 14:58:31 +08:00
xxq250 bdd6770d3f Merge pull request 'glcc学生提交考核材料时间延长至17号' (#193) from durian/build:dev_trustie into dev_trustie 2022-10-14 19:30:44 +08:00
谢思 55ac250a80 glcc学生提交考核材料时间延长至17号 2022-10-14 19:16:57 +08:00
xxq250 f59fea3b8a Merge pull request '更新' (#191) from durian/build:dev_trustie into dev_trustie 2022-10-11 17:16:46 +08:00
谢思 5c953a262d glc 2022-10-11 17:07:19 +08:00
xxq250 eea11428d8 Merge pull request '首页新增banner' (#190) from durian/build:dev_trustie into dev_trustie 2022-10-11 09:43:14 +08:00
谢思 73036739eb 首页新增banner 2022-10-11 09:28:09 +08:00
xxq250 ec293ff555 Merge pull request '更新glcc' (#187) from durian/build:dev_trustie into dev_trustie 2022-09-30 14:46:08 +08:00
谢思 5456938b9e 修改public/index.html文件 2022-09-30 14:38:30 +08:00
谢思 8c0bfc0ffa glcc+issue 2022-09-30 14:29:45 +08:00
xxq250 da8cecffe3 Merge pull request '增加WebIDE' (#182) from tongChong/build:dev_trustie into dev_trustie 2022-09-23 16:29:36 +08:00
何童崇 1546eed445 增加WebIDE 2022-09-23 16:23:53 +08:00
xxq250 5ecd815c8e Merge pull request '新增new提示,回归删除不了其他分支文件、文件路径跳转a标签的问题' (#179) from tongChong/build:dev_trustie into dev_trustie 2022-09-09 10:46:58 +08:00
何童崇 b46960c719 新增new提示,回归删除不了其他分支文件、文件路径跳转a标签的问题 2022-09-09 10:34:01 +08:00
xxq250 1c8fe628df Merge pull request '团队项目批量操作+webhook总数限制调整+跨平台代码同步新建同步分支样式优化' (#178) from durian/build:dev_trustie into dev_trustie 2022-09-08 17:33:08 +08:00
谢思 9575162110 更新环境 2022-09-08 17:24:22 +08:00
xxq250 459402206b Merge pull request 'nps用户调研系统' (#177) from durian/build:dev_trustie into dev_trustie 2022-09-02 16:02:29 +08:00
谢思 e87af7a5f1 nps用户调研系统 2022-09-02 15:58:31 +08:00
1265 changed files with 9659 additions and 22237 deletions

View File

@ -0,0 +1,49 @@
version: 2
name: dev_nanda测试环境
description: https://pre.gitlink.org.cn
global:
concurrent: 1
trigger:
webhook: gitlink@1.0.0
event:
- ref: push
ruleset:
- param-ref: branch
operator: EQ
value: '"dev_nanda"'
ruleset-operator: AND
workflow:
- ref: start
name: 开始
task: start
- ref: ssh_cmd_0
name: ssh执行命令
task: ssh_cmd@1.1.0
input:
ssh_pass: ((secret.forge))
ssh_ip: '"123.59.135.93"'
ssh_port: '"30122"'
ssh_user: '"root"'
ssh_cmd: '"pwd && ssh pdl@10.9.151.72 -p1130 \"./build_update.sh && ./update.sh
&& echo done\""'
needs:
- start
- ref: end
name: 结束
task: end
needs:
- dingtalk_notice_text_0
- ref: dingtalk_notice_text_0
name: 钉钉通知-文本
task: dingtalk_notice_text@1.0.2
input:
boot_webhook_url: ((dingding.dingtalk_url))
secret: ((dingding.dingtalk_sercet))
msg_text: '"【"+((trigger.pusher)) +
"】在分支("+((trigger.branch))+")提交信息:"+((trigger.last_commit_message)) +
"更新成功"'
at_user_ids: '"[]"'
at_mobiles: '"[]"'
needs:
- ssh_cmd_0

88
.gitignore vendored
View File

@ -1,88 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
yarn.lock
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Ignore master key for decrypting credentials and more.
/config/master.key
/config/database.yml
/.idea/*
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
#DynamoDB Local files
.dynamodb/
.DS_Store
.idea/*

29
1.txt Normal file
View File

@ -0,0 +1,29 @@
123456789
123
1234
12345
123456
1234567
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

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;

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

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%;
@ -3374,8 +3373,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 +3382,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;
@ -3962,37 +3962,36 @@ 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{
overflow: hidden;
white-space: nowrap;
overflow-x: auto;
display: flex;
}
.head-nav ul#header-nav li{
height: 58px;
line-height: 58px;
cursor: pointer;
font-size: 16px;
padding-right:40px;
}
.head-nav a {
.head-nav ul#header-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;
}
@ -6635,6 +6634,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;

6324
css/gitlink.min.css vendored

File diff suppressed because one or more lines are too long

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="gitLink,GitLink,gitlink,trustie,trustieforge,forge,开源,确实开源,代码托管,Git,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务,确实让创建更美好,协同开发平台"><meta name="”Description”" content="”GitLink,新一代开源创新服务平台" 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于git打造分布式代码托管环境><meta property="og:title" content="GitLink | 确实开源"/><meta property="og:type" content="Object"/><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:site_name" content="GitLink"/><meta property="og:description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境"/><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 href="https://gw.alipayobjects.com/os/lib/alipay/alex/2.0.19/bundle/alex.all.global.min.css" rel="stylesheet"/><link rel="stylesheet" href="/react/build/css/iconfont.css"><link rel="stylesheet" href="/react/build/css/editormd.min.css"><link rel="stylesheet" href="/react/build/css/gitlink.min.css"><link href="/react/build/static/css/main.79ecd38a.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="/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="https://gw.alipayobjects.com/os/lib/moment/2.29.4/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="/react/build/./static/js/runtime~main.a75bc1d0.js"></script><script src="/react/build/./static/js/main.8e2780a7.chunk.js"></script><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?7e2def1fe918f15f9f1c5c061f69b256";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</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

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

@ -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.6em");
});
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.6em");
});
};
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

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