Commit b108971a57792dc56ebdbd06e99aef8b523894a1
1 parent
1ddd2900
fix bug
Showing
8 changed files
with
110 additions
and
124 deletions
src/gxb-ide/CodingEditer.js
| @@ -13,6 +13,7 @@ | @@ -13,6 +13,7 @@ | ||
| 13 | firstPlay: 1, // 第一次播放 | 13 | firstPlay: 1, // 第一次播放 |
| 14 | pauseValue: [], | 14 | pauseValue: [], |
| 15 | isRecordPage: 1, | 15 | isRecordPage: 1, |
| 16 | + flag: true, // 解决多次点击 | ||
| 16 | init: function(){ | 17 | init: function(){ |
| 17 | console.log('CodingEditer'); | 18 | console.log('CodingEditer'); |
| 18 | }, | 19 | }, |
| @@ -95,7 +96,7 @@ | @@ -95,7 +96,7 @@ | ||
| 95 | */ | 96 | */ |
| 96 | playCoding: function(){ | 97 | playCoding: function(){ |
| 97 | CodingEditer.editable(1); | 98 | CodingEditer.editable(1); |
| 98 | - | 99 | + CodingEditer.flag = false; |
| 99 | if (CodingEditer.firstPlay == 0) { | 100 | if (CodingEditer.firstPlay == 0) { |
| 100 | CodingEditer.setCodeMirrorValue(); | 101 | CodingEditer.setCodeMirrorValue(); |
| 101 | Dir.showEdite({'treeNode': CodingEditer.treeSelectNode}); | 102 | Dir.showEdite({'treeNode': CodingEditer.treeSelectNode}); |
| @@ -360,7 +361,7 @@ | @@ -360,7 +361,7 @@ | ||
| 360 | }; | 361 | }; |
| 361 | 362 | ||
| 362 | CodingEditer.records.push(recordobj); // 添加每次输入对象 | 363 | CodingEditer.records.push(recordobj); // 添加每次输入对象 |
| 363 | - | 364 | + console.log(CodingEditer.records) |
| 364 | CodingEditer.record_startime = currenttime; //设定起始时间 | 365 | CodingEditer.record_startime = currenttime; //设定起始时间 |
| 365 | } | 366 | } |
| 366 | 367 | ||
| @@ -384,7 +385,7 @@ | @@ -384,7 +385,7 @@ | ||
| 384 | record.playTime = new Date().getTime(); // 播放开始时间 | 385 | record.playTime = new Date().getTime(); // 播放开始时间 |
| 385 | 386 | ||
| 386 | console.log("==================++======================"); | 387 | console.log("==================++======================"); |
| 387 | - console.log(record); | 388 | + console.log(record.runtimeArgus); |
| 388 | 389 | ||
| 389 | if (record.code == 0 || record.code == 1) { | 390 | if (record.code == 0 || record.code == 1) { |
| 390 | var iterm = new Iterm(); | 391 | var iterm = new Iterm(); |
| @@ -395,13 +396,20 @@ | @@ -395,13 +396,20 @@ | ||
| 395 | error: record.error || '', | 396 | error: record.error || '', |
| 396 | code: record.code || '' | 397 | code: record.code || '' |
| 397 | }; | 398 | }; |
| 398 | - iterm.compileResult(resultData) | 399 | + iterm.compileResult(resultData, record.runtimeArgus) |
| 400 | + }else if (record.runtimeArgus){ | ||
| 401 | + var iterm = new Iterm(); | ||
| 402 | + iterm.compileResult(resultData, record.runtimeArgus) | ||
| 399 | } | 403 | } |
| 400 | 404 | ||
| 405 | + | ||
| 406 | + | ||
| 407 | + | ||
| 401 | CodingEditer.triggertotal += 1; | 408 | CodingEditer.triggertotal += 1; |
| 402 | 409 | ||
| 403 | if (CodingEditer.triggertotal === CodingEditer.records.length && !replay_type) { | 410 | if (CodingEditer.triggertotal === CodingEditer.records.length && !replay_type) { |
| 404 | CodingEditer.editable(0); | 411 | CodingEditer.editable(0); |
| 412 | + CodingEditer.flag = true | ||
| 405 | if (CodingEditer.isRecordPage) { | 413 | if (CodingEditer.isRecordPage) { |
| 406 | $('#recordertab a:first').tab('show'); | 414 | $('#recordertab a:first').tab('show'); |
| 407 | } | 415 | } |
src/gxb-ide/Dir.js
| @@ -55,7 +55,7 @@ | @@ -55,7 +55,7 @@ | ||
| 55 | }, | 55 | }, |
| 56 | initIdePage: function(el, id, isPlayPage, role){ | 56 | initIdePage: function(el, id, isPlayPage, role){ |
| 57 | var _url = "../data/" + id + ".json"; | 57 | var _url = "../data/" + id + ".json"; |
| 58 | - var _lang = getLangName(id); | 58 | + var _lang = Dir.getLangName(id); |
| 59 | 59 | ||
| 60 | console.log('======================='); | 60 | console.log('======================='); |
| 61 | console.log('isPlayPage ----- ' + isPlayPage); | 61 | console.log('isPlayPage ----- ' + isPlayPage); |
| @@ -69,6 +69,7 @@ | @@ -69,6 +69,7 @@ | ||
| 69 | contentType: "application/json", | 69 | contentType: "application/json", |
| 70 | success: function(res) { | 70 | success: function(res) { |
| 71 | console.log(res); | 71 | console.log(res); |
| 72 | + setTitle(res.languageid); | ||
| 72 | Dir.treeData = res[_lang]; | 73 | Dir.treeData = res[_lang]; |
| 73 | Dir.treeObj = $.fn.zTree.init($(el), setting, Dir.treeData); | 74 | Dir.treeObj = $.fn.zTree.init($(el), setting, Dir.treeData); |
| 74 | addTextareaPage(Dir.treeData); | 75 | addTextareaPage(Dir.treeData); |
| @@ -293,10 +294,43 @@ | @@ -293,10 +294,43 @@ | ||
| 293 | // $('.CodeMirror').height(recordHeight); | 294 | // $('.CodeMirror').height(recordHeight); |
| 294 | // $('.CodeMirror-lines').height(recordHeight); | 295 | // $('.CodeMirror-lines').height(recordHeight); |
| 295 | // $('.CodeMirror-gutter').height(recordHeight); | 296 | // $('.CodeMirror-gutter').height(recordHeight); |
| 297 | + }, | ||
| 298 | + getLangName: function(langid){ | ||
| 299 | + var langid = parseInt(langid); | ||
| 300 | + var _langName; | ||
| 301 | + switch (langid) { | ||
| 302 | + case 10: | ||
| 303 | + _langName = "java"; | ||
| 304 | + break; | ||
| 305 | + case 35: | ||
| 306 | + _langName = "html"; | ||
| 307 | + break; | ||
| 308 | + case 43: | ||
| 309 | + _langName = "Objective-C"; | ||
| 310 | + break; | ||
| 311 | + case 11: | ||
| 312 | + _langName = "C"; | ||
| 313 | + break; | ||
| 314 | + case 82: | ||
| 315 | + _langName = "C++"; | ||
| 316 | + break; | ||
| 317 | + case 29: | ||
| 318 | + _langName = "php"; | ||
| 319 | + break; | ||
| 320 | + case 4: | ||
| 321 | + _langName = "python"; | ||
| 322 | + break; | ||
| 323 | + case 40: | ||
| 324 | + _langName = "SQL"; | ||
| 325 | + break; | ||
| 326 | + case 117: | ||
| 327 | + _langName = "R"; | ||
| 328 | + break; | ||
| 329 | + default: | ||
| 330 | + break; | ||
| 331 | + } | ||
| 296 | 332 | ||
| 297 | - | ||
| 298 | - | ||
| 299 | - | 333 | + return _langName; |
| 300 | } | 334 | } |
| 301 | } | 335 | } |
| 302 | 336 | ||
| @@ -468,43 +502,7 @@ | @@ -468,43 +502,7 @@ | ||
| 468 | 502 | ||
| 469 | } | 503 | } |
| 470 | 504 | ||
| 471 | - // 获取编程语言 | ||
| 472 | - function getLangName(langid){ | ||
| 473 | - var _langName; | ||
| 474 | - switch (langid) { | ||
| 475 | - case 10: | ||
| 476 | - _langName = "java"; | ||
| 477 | - break; | ||
| 478 | - case 35: | ||
| 479 | - _langName = "html"; | ||
| 480 | - break; | ||
| 481 | - case 43: | ||
| 482 | - _langName = "Objective-C"; | ||
| 483 | - break; | ||
| 484 | - case 11: | ||
| 485 | - _langName = "C"; | ||
| 486 | - break; | ||
| 487 | - case 82: | ||
| 488 | - _langName = "C++"; | ||
| 489 | - break; | ||
| 490 | - case 29: | ||
| 491 | - _langName = "php"; | ||
| 492 | - break; | ||
| 493 | - case 4: | ||
| 494 | - _langName = "python"; | ||
| 495 | - break; | ||
| 496 | - case 40: | ||
| 497 | - _langName = "SQL"; | ||
| 498 | - break; | ||
| 499 | - case 117: | ||
| 500 | - _langName = "R"; | ||
| 501 | - break; | ||
| 502 | - default: | ||
| 503 | - break; | ||
| 504 | - } | ||
| 505 | 505 | ||
| 506 | - return _langName; | ||
| 507 | - } | ||
| 508 | 506 | ||
| 509 | var isPlayDataError = false; | 507 | var isPlayDataError = false; |
| 510 | function programFileListToTreeJson(arr, lang){ | 508 | function programFileListToTreeJson(arr, lang){ |
| @@ -587,8 +585,8 @@ | @@ -587,8 +585,8 @@ | ||
| 587 | dataType: "json", | 585 | dataType: "json", |
| 588 | contentType: "application/json", | 586 | contentType: "application/json", |
| 589 | success: function(res) { | 587 | success: function(res) { |
| 590 | - console.log('++++++++--------'); | ||
| 591 | console.log(res) | 588 | console.log(res) |
| 589 | + setTitle(res.languageid); | ||
| 592 | 590 | ||
| 593 | var coderecords = res.codeRecordList | 591 | var coderecords = res.codeRecordList |
| 594 | var audioUrl = res.audioUrl; | 592 | var audioUrl = res.audioUrl; |
| @@ -645,6 +643,12 @@ | @@ -645,6 +643,12 @@ | ||
| 645 | }); | 643 | }); |
| 646 | } | 644 | } |
| 647 | 645 | ||
| 646 | + // 设置 title | ||
| 647 | + function setTitle(languageid){ | ||
| 648 | + var languageName = Dir.getLangName(languageid); | ||
| 649 | + $("title").html(languageName); | ||
| 650 | + } | ||
| 651 | + | ||
| 648 | 652 | ||
| 649 | $(window).resize(function() { | 653 | $(window).resize(function() { |
| 650 | console.log('重置屏幕') | 654 | console.log('重置屏幕') |
src/gxb-ide/Iterm.js
| @@ -25,6 +25,7 @@ | @@ -25,6 +25,7 @@ | ||
| 25 | $('#cancel_compile').on('click', function(){ _this.cancelCompile(); }) | 25 | $('#cancel_compile').on('click', function(){ _this.cancelCompile(); }) |
| 26 | $('#full-screen').on('click', function(){ _this.fullScreen(); }) | 26 | $('#full-screen').on('click', function(){ _this.fullScreen(); }) |
| 27 | $('#back-screen').on('click', function(){ _this.exitFullscreen(); }) | 27 | $('#back-screen').on('click', function(){ _this.exitFullscreen(); }) |
| 28 | + $(document).on('focus', '#runtimeArgus', function(){ }) | ||
| 28 | }, | 29 | }, |
| 29 | compile: function(){ | 30 | compile: function(){ |
| 30 | var _this = this; | 31 | var _this = this; |
| @@ -68,7 +69,6 @@ | @@ -68,7 +69,6 @@ | ||
| 68 | } | 69 | } |
| 69 | 70 | ||
| 70 | compileResult(data, value) | 71 | compileResult(data, value) |
| 71 | - | ||
| 72 | }, | 72 | }, |
| 73 | saveCompile: function(){ | 73 | saveCompile: function(){ |
| 74 | console.log(this.compileStatus) | 74 | console.log(this.compileStatus) |
| @@ -85,7 +85,6 @@ | @@ -85,7 +85,6 @@ | ||
| 85 | CodingEditer.records[length].error = CodingEditer.compileResultData.error; | 85 | CodingEditer.records[length].error = CodingEditer.compileResultData.error; |
| 86 | CodingEditer.records[length].compilerInfo = CodingEditer.compileResultData.compilerInfo; | 86 | CodingEditer.records[length].compilerInfo = CodingEditer.compileResultData.compilerInfo; |
| 87 | CodingEditer.records[length].code = CodingEditer.compileResultData.code; | 87 | CodingEditer.records[length].code = CodingEditer.compileResultData.code; |
| 88 | - | ||
| 89 | }, | 88 | }, |
| 90 | cancelCompile: function(){ | 89 | cancelCompile: function(){ |
| 91 | console.log(this.compileStatus) | 90 | console.log(this.compileStatus) |
| @@ -110,6 +109,7 @@ | @@ -110,6 +109,7 @@ | ||
| 110 | $('.pause-shodow').hide() | 109 | $('.pause-shodow').hide() |
| 111 | $('.compile-reslut').hide(); | 110 | $('.compile-reslut').hide(); |
| 112 | $('.contrl-shodow').hide(); | 111 | $('.contrl-shodow').hide(); |
| 112 | + $('.contrl-shodow').hide(); | ||
| 113 | 113 | ||
| 114 | Hourglass.pauseTimer(); | 114 | Hourglass.pauseTimer(); |
| 115 | recorder.pause(); | 115 | recorder.pause(); |
src/gxb-ide/ToolBox.js
| @@ -75,7 +75,7 @@ | @@ -75,7 +75,7 @@ | ||
| 75 | $('#stop-recording').show() | 75 | $('#stop-recording').show() |
| 76 | var _this = this; | 76 | var _this = this; |
| 77 | _this.readOnly(0) | 77 | _this.readOnly(0) |
| 78 | - | 78 | + |
| 79 | setTimeout(function(){ | 79 | setTimeout(function(){ |
| 80 | Dir.treeObj.setting.edit.showRenameBtn = false; | 80 | Dir.treeObj.setting.edit.showRenameBtn = false; |
| 81 | Dir.treeObj.setting.edit.enable = false; | 81 | Dir.treeObj.setting.edit.enable = false; |
| @@ -166,10 +166,14 @@ | @@ -166,10 +166,14 @@ | ||
| 166 | }, | 166 | }, |
| 167 | playCode: function(){ | 167 | playCode: function(){ |
| 168 | console.log('播放代码=-------------------------'); | 168 | console.log('播放代码=-------------------------'); |
| 169 | - $('#audio')[0].play(); | ||
| 170 | - Hourglass.init() | ||
| 171 | - CodingEditer.playCoding() | ||
| 172 | - console.log('播放代码=-------------------------'); | 169 | + if (CodingEditer.flag) { |
| 170 | + $('#audio')[0].play(); | ||
| 171 | + Hourglass.init() | ||
| 172 | + CodingEditer.playCoding() | ||
| 173 | + }else{ | ||
| 174 | + console.log('播放代码=-------------------------'); | ||
| 175 | + return false; | ||
| 176 | + } | ||
| 173 | }, | 177 | }, |
| 174 | uploadAudio: function(){ | 178 | uploadAudio: function(){ |
| 175 | console.log('uploadAudio'); | 179 | console.log('uploadAudio'); |
src/js/c.js
| @@ -5,8 +5,6 @@ $(function(){ | @@ -5,8 +5,6 @@ $(function(){ | ||
| 5 | var _languageid = getQuery('languageid'); | 5 | var _languageid = getQuery('languageid'); |
| 6 | var _userId = getQuery('userId'); | 6 | var _userId = getQuery('userId'); |
| 7 | var _role = getQuery('role'); | 7 | var _role = getQuery('role'); |
| 8 | - | ||
| 9 | - // $("title").html("C 语言"); | ||
| 10 | 8 | ||
| 11 | // new一个基本IDE结构 | 9 | // new一个基本IDE结构 |
| 12 | var ide = new GxbIde({ | 10 | var ide = new GxbIde({ |
| @@ -58,6 +56,42 @@ $(function(){ | @@ -58,6 +56,42 @@ $(function(){ | ||
| 58 | $('#studentCompileBtn').show(); | 56 | $('#studentCompileBtn').show(); |
| 59 | } | 57 | } |
| 60 | 58 | ||
| 59 | + | ||
| 60 | + // 插入标准输入 | ||
| 61 | + $(document).on('focus', '#runtimeArgus', function(){ | ||
| 62 | + console.log('focus'); | ||
| 63 | + CodingEditer.input_focus_time = new Date().getTime(); // 获取焦点的时间 | ||
| 64 | + console.log(CodingEditer.records); | ||
| 65 | + }) | ||
| 66 | + $(document).on('blur', '#runtimeArgus', function(){ | ||
| 67 | + console.log('blur'); | ||
| 68 | + console.log('blur'); | ||
| 69 | + console.log('blur'); | ||
| 70 | + var recordobj = { | ||
| 71 | + intervaltime: CodingEditer.input_focus_time - CodingEditer.record_startime, | ||
| 72 | + editor: 'runtimeArgus', | ||
| 73 | + changeobj: { | ||
| 74 | + from: { | ||
| 75 | + ch: 0, | ||
| 76 | + line: 0, | ||
| 77 | + }, | ||
| 78 | + text: '', | ||
| 79 | + to: { | ||
| 80 | + ch: 0, | ||
| 81 | + line: 0, | ||
| 82 | + } | ||
| 83 | + }, | ||
| 84 | + runtimeArgus: $(this).val(), | ||
| 85 | + trigger: 0, | ||
| 86 | + playTime: 0 | ||
| 87 | + }; | ||
| 88 | + | ||
| 89 | + CodingEditer.record_startime = CodingEditer.input_focus_time; // 获取焦点的时间 | ||
| 90 | + CodingEditer.records.push(recordobj); | ||
| 91 | + console.log(CodingEditer.records); | ||
| 92 | + }) | ||
| 93 | + | ||
| 94 | + | ||
| 61 | function recordReady(){ | 95 | function recordReady(){ |
| 62 | var seconds = 0; | 96 | var seconds = 0; |
| 63 | var countdown = setInterval(function() { | 97 | var countdown = setInterval(function() { |
src/js/player.js
| @@ -5,7 +5,9 @@ $(function(){ | @@ -5,7 +5,9 @@ $(function(){ | ||
| 5 | var _codeReplayId = getQuery('codeReplayId'); | 5 | var _codeReplayId = getQuery('codeReplayId'); |
| 6 | var player = $.AudioPlayer; | 6 | var player = $.AudioPlayer; |
| 7 | 7 | ||
| 8 | - $("title").html("C 语言"); | 8 | + var languageName = Dir.getLangName(_languageid); |
| 9 | + $("title").html(languageName); | ||
| 10 | + | ||
| 9 | // new一个基本IDE结构 | 11 | // new一个基本IDE结构 |
| 10 | var ide = new GxbIde({ | 12 | var ide = new GxbIde({ |
| 11 | el: '#folder', | 13 | el: '#folder', |
| @@ -21,73 +23,9 @@ $(function(){ | @@ -21,73 +23,9 @@ $(function(){ | ||
| 21 | }); | 23 | }); |
| 22 | 24 | ||
| 23 | console.log(_role) | 25 | console.log(_role) |
| 24 | - // if (_role == 0) { | ||
| 25 | - // playUrl = gxb_api + "/programming/codeReplay/" + _codeReplayId + "/api"; | ||
| 26 | - // getCodeData(playUrl) | ||
| 27 | - // } else if (_role == 1) { | ||
| 28 | - // playUrl = gxb_api + "/programming/student/studentReplay/" + _codeReplayId + "/api"; | ||
| 29 | - // getCodeData(playUrl) | ||
| 30 | - // } | ||
| 31 | - | ||
| 32 | - CodingEditer.isRecordPage = 0; | ||
| 33 | - | ||
| 34 | - // // 获取code | ||
| 35 | - // function getCodeData(url){ | ||
| 36 | - // console.log(url) | ||
| 37 | - // $.ajax({ | ||
| 38 | - // type: "get", | ||
| 39 | - // url: url, | ||
| 40 | - // dataType: "json", | ||
| 41 | - // contentType: "application/json", | ||
| 42 | - // success: function(res) { | ||
| 43 | - // console.log('++++++++--------'); | ||
| 44 | - // console.log(res) | ||
| 45 | - // var coderecords = res.codeRecordList | ||
| 46 | - // var audioUrl = res.audioUrl; | ||
| 47 | 26 | ||
| 48 | - // initTrigger(coderecords) | ||
| 49 | - // AudioPlayer(audioUrl) | ||
| 50 | - // }, | ||
| 51 | - // error: function(error) { | ||
| 52 | - // console.log(error) | ||
| 53 | - // } | ||
| 54 | - // }); | ||
| 55 | - // } | ||
| 56 | - | ||
| 57 | - // // 初始化tigger | ||
| 58 | - // function initTrigger(records){ | ||
| 59 | - // var records = records | ||
| 60 | - // for (var i = 0, leg = records.length; i < leg; i++) { | ||
| 61 | - // if (!records[i].trigger) records[i].trigger = 0; | ||
| 62 | - // records[i].changeobj = jQuery.parseJSON(records[i].changeobj); | ||
| 63 | - // records[i].treefile = jQuery.parseJSON(records[i].treefile); | ||
| 64 | - // } | ||
| 65 | - // CodingEditer.records = records; | ||
| 66 | - // } | 27 | + CodingEditer.isRecordPage = 0; |
| 67 | 28 | ||
| 68 | - // // 初始化播放音频控制条 | ||
| 69 | - // function AudioPlayer(audioUrl){ | ||
| 70 | - // player.init({ | ||
| 71 | - // container: '#audioWrap', | ||
| 72 | - // source: "https://gxb-file.oss-cn-beijing.aliyuncs.com" + audioUrl, | ||
| 73 | - // imagePath: '../js/audioPlayer/image', | ||
| 74 | - // debuggers: false, | ||
| 75 | - // allowSeek: false, | ||
| 76 | - // playCallback: function() { // 播放 | ||
| 77 | - // console.log('++++++++'); | ||
| 78 | - // CodingEditer.playCoding(); | ||
| 79 | - // }, | ||
| 80 | - // pauseCallback: function() { // 暂停 | ||
| 81 | - // CodingEditer.audioTime = parseInt(player.elements.audioDom.currentTime*1000); | ||
| 82 | - // CodingEditer.pauseCode(); | ||
| 83 | - // }, | ||
| 84 | - // seekedCallback: function() { // 拖拽 | ||
| 85 | - // }, | ||
| 86 | - // endedCallback: function() { // 结束播放 | ||
| 87 | - // playEnd() | ||
| 88 | - // } | ||
| 89 | - // }); | ||
| 90 | - // } | ||
| 91 | 29 | ||
| 92 | 30 | ||
| 93 | }) | 31 | }) |
| 94 | \ No newline at end of file | 32 | \ No newline at end of file |
src/v1.1/index.html
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | <html lang="en"> | 2 | <html lang="en"> |
| 3 | <head> | 3 | <head> |
| 4 | <meta charset="UTF-8"> | 4 | <meta charset="UTF-8"> |
| 5 | - <title>JAVA</title> | 5 | + <title></title> |
| 6 | <link rel="stylesheet" href="../css/responsive/css/bootstrap.min.css"> | 6 | <link rel="stylesheet" href="../css/responsive/css/bootstrap.min.css"> |
| 7 | <link href="../css/codemirror.css" rel="stylesheet"> | 7 | <link href="../css/codemirror.css" rel="stylesheet"> |
| 8 | <link href="../css/reset.css" rel="stylesheet"> | 8 | <link href="../css/reset.css" rel="stylesheet"> |
| @@ -25,9 +25,7 @@ | @@ -25,9 +25,7 @@ | ||
| 25 | // $('.my-button').click(function(){ | 25 | // $('.my-button').click(function(){ |
| 26 | // var l = Ladda.create(this); | 26 | // var l = Ladda.create(this); |
| 27 | // l.start(); | 27 | // l.start(); |
| 28 | - | ||
| 29 | // }) | 28 | // }) |
| 30 | - | ||
| 31 | // }) | 29 | // }) |
| 32 | </script> | 30 | </script> |
| 33 | 31 |
src/v1.1/player.html
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | <html lang="en"> | 2 | <html lang="en"> |
| 3 | <head> | 3 | <head> |
| 4 | <meta charset="UTF-8"> | 4 | <meta charset="UTF-8"> |
| 5 | - <title>JAVA</title> | 5 | + <title></title> |
| 6 | <link rel="stylesheet" href="../css/responsive/css/bootstrap.min.css"> | 6 | <link rel="stylesheet" href="../css/responsive/css/bootstrap.min.css"> |
| 7 | <link href="../css/codemirror.css" rel="stylesheet"> | 7 | <link href="../css/codemirror.css" rel="stylesheet"> |
| 8 | <link href="../css/reset.css" rel="stylesheet"> | 8 | <link href="../css/reset.css" rel="stylesheet"> |