|
8 | 8 |
|
9 | 9 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"
|
10 | 10 | integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
|
11 |
| - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.12/themes/default/style.min.css"/> |
| 11 | + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.12/themes/default/style.min.css" /> |
12 | 12 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/theme/darcula.min.css"
|
13 | 13 | integrity="sha512-kqCOYFDdyQF4JM8RddA6rMBi9oaLdR0aEACdB95Xl1EgaBhaXMIe8T4uxmPitfq4qRmHqo+nBU2d1l+M4zUx1g=="
|
14 |
| - crossorigin="anonymous" referrerpolicy="no-referrer"/> |
| 14 | + crossorigin="anonymous" referrerpolicy="no-referrer" /> |
15 | 15 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/codemirror.min.css"
|
16 | 16 | integrity="sha512-CCnciBUnVXwa6IQT9q8EmGcarNit9GdKI5nJnj56B1iu0LuD13Qn/GZ+IUkrZROZaBdutN718NK6mIXdUjZGqg=="
|
17 |
| - crossorigin="anonymous" referrerpolicy="no-referrer"/> |
| 17 | + crossorigin="anonymous" referrerpolicy="no-referrer" /> |
18 | 18 | <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
|
19 | 19 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/xterm/2.9.2/xterm.min.css"
|
20 | 20 | integrity="sha512-yqkIsVYKEsENpXQX0zLrKj6n50rmX5X1j0cclmCnETFoWG2PKMZjvDEp6do28gGLxIvMnihpERBGRa8Ck0Ls8g=="
|
21 |
| - crossorigin="anonymous" referrerpolicy="no-referrer"/> |
| 21 | + crossorigin="anonymous" referrerpolicy="no-referrer" /> |
22 | 22 |
|
23 | 23 | <script src="https://code.jquery.com/jquery-3.6.0.min.js"
|
24 | 24 | integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
|
|
32 | 32 | <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/codemirror.min.js"
|
33 | 33 | integrity="sha512-4DlmQ+aBOfYTZ3uzRKCDXdyL7y8IlopnVChhXG0pRFgyvhwONVQW3JX8e5DYoXUNr3evQpLZz7S3O1XxMH4WKA=="
|
34 | 34 | crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
35 |
| - <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/clike/clike.min.js" |
36 |
| - integrity="sha512-GAled7oA9WlRkBaUQlUEgxm37hf43V2KEMaEiWlvBO/ueP2BLvBLKN5tIJu4VZOTwo6Z4XvrojYngoN9dJw2ug==" |
37 |
| - crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
38 | 35 | <script type='text/javascript' src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
39 | 36 | <script src="https://cdnjs.cloudflare.com/ajax/libs/xterm/2.9.2/xterm.min.js"
|
40 | 37 | integrity="sha512-S1ITNcRgtLq/tVnMcX7Qcss09kJ5Lu7dZbtXw/dBDjxYJSdyucbYKOYI1nSbb9EtrjEK3h7Kxekkbg4gVLr8gg=="
|
|
43 | 40 | integrity="sha512-PyTGariw9ceX9zejvpqCikObn0A3cwR3LoDQY1/L+NET1LZBMYi/IPIn6pvfRt02etYhRw4zJ2iU3yGyEH5+8A=="
|
44 | 41 | crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
45 | 42 |
|
46 |
| - <link rel="stylesheet" href="/css/darkly.css"/> |
| 43 | + <!-- 语法高亮 --> |
| 44 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/clike/clike.min.js" |
| 45 | + integrity="sha512-GAled7oA9WlRkBaUQlUEgxm37hf43V2KEMaEiWlvBO/ueP2BLvBLKN5tIJu4VZOTwo6Z4XvrojYngoN9dJw2ug==" |
| 46 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 47 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/xml/xml.min.js" |
| 48 | + integrity="sha512-UWfBe6aiZInvbBlm91IURVHHTwigTPtM3M4B73a8AykmxhDWq4EC/V2rgUNiLgmd/i0y0KWHolqmVQyJ35JsNA==" |
| 49 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 50 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/javascript/javascript.min.js" |
| 51 | + integrity="sha512-DJ/Flq7rxJDDhgkO49H/rmidX44jmxWot/ku3c+XXEF9XFal78KIpu7w6jEaQhK4jli1U3/yOH+Rp3cIIEYFPQ==" |
| 52 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 53 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/yaml/yaml.min.js" |
| 54 | + integrity="sha512-+aXDZ93WyextRiAZpsRuJyiAZ38ztttUyO/H3FZx4gOAOv4/k9C6Um1CvHVtaowHZ2h7kH0d+orWvdBLPVwb4g==" |
| 55 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 56 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/css/css.min.js" |
| 57 | + integrity="sha512-5jz5G7Fn6Xbc3YA/5KYXYwxSkyKEh7oEFNwc7cCnMs48diTBh24gKxcbt7r8Do+xFK6pJgr+BFfcKnUne+XUvA==" |
| 58 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 59 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/htmlmixed/htmlmixed.min.js" |
| 60 | + integrity="sha512-IC+qg9ITjo2CLFOTQcO6fBbvisTeJmiT5D5FnXsCptqY8t7/UxWhOorn2X+GHkoD1FNkyfnMJujt5PcB7qutyA==" |
| 61 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 62 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/htmlembedded/htmlembedded.min.js" |
| 63 | + integrity="sha512-nZlYJlXg6ZqhEdMELUCY9QpeUZHLZh9JUUe2wnHmEvFSWer2gxmDO4xeQ4QlRM1zMzeZsTdm5oFw2IGhsmmLlA==" |
| 64 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 65 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/sql/sql.min.js" |
| 66 | + integrity="sha512-kBoE9Dbn6VAppk/B1tqI04cc/3hvR/tDEjoEntUMt8YU3INy/+xDyUpi7aNmjLIqgHHAMYOvDLR+/v1pOaA5ZA==" |
| 67 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 68 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/markdown/markdown.min.js" |
| 69 | + integrity="sha512-M1xCxP7Cdf+uWhKzPWcI1rMEXDiEyxTyVqRfzGVGoim93W+IWPaJL3gni6aGuE9HJcIMUFqLtLY5ypeNtguQPg==" |
| 70 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 71 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.64.0/mode/shell/shell.min.js" |
| 72 | + integrity="sha512-hPxGlSDYCFC8zXHIbOSD/Qo5DDCxyrfWnMvwVi1TutjhPOsf9Sgo6bu5SRDXIbuWfi22YRr+RpKwJ4XOzj7mnw==" |
| 73 | + crossorigin="anonymous" referrerpolicy="no-referrer"></script> |
| 74 | + |
| 75 | + <link rel="stylesheet" href="/css/darkly.css" /> |
47 | 76 |
|
48 | 77 | <title>Web IDE</title>
|
49 | 78 | </head>
|
|
64 | 93 | <a class="dropdown-item" href="#">Import Project From Zip</a>
|
65 | 94 | <a class="dropdown-item" href="#">Export Project To Zip</a>
|
66 | 95 | <div class="dropdown-divider"></div>
|
67 |
| - <a class="dropdown-item" href="#">Save File</a> |
| 96 | + <a class="dropdown-item" href="#" onclick="saveFile()">Save File</a> |
68 | 97 | <a class="dropdown-item" href="#">Save All</a>
|
69 | 98 | </div>
|
70 | 99 | </li>
|
|
79 | 108 | </div>
|
80 | 109 | </li>
|
81 | 110 | <li class="nav-item dropdown">
|
82 |
| - <a class="nav-link" data-toggle="dropdown" href="#" role="button" aria-expanded="false">Tools</a> |
| 111 | + <a class="nav-link" data-toggle="dropdown" href="#" role="button" |
| 112 | + aria-expanded="false">Tools</a> |
83 | 113 | <div class="dropdown-menu">
|
84 | 114 | <a class="dropdown-item" href="#" onClick="getBytecode()">Show Bytecode</a>
|
85 | 115 | <a class="dropdown-item" href="#" onClick="getHexStrByFilePath()">View in HEX</a>
|
86 | 116 | </div>
|
87 | 117 | </li>
|
88 | 118 | <li class="nav-item dropdown">
|
89 |
| - <a class="nav-link" data-toggle="dropdown" href="#" role="button" aria-expanded="false">Build</a> |
| 119 | + <a class="nav-link" data-toggle="dropdown" href="#" role="button" |
| 120 | + aria-expanded="false">Build</a> |
90 | 121 | <div class="dropdown-menu">
|
91 | 122 | <a class="dropdown-item" href="#" onclick="projectClean()">Clean Project</a>
|
92 | 123 | <a class="dropdown-item" href="#" onclick="projectCompile()">Compile Project</a>
|
93 | 124 | <a class="dropdown-item" href="#" onclick="projectBuild()">Build Project</a>
|
94 |
| - <a class="dropdown-item" href="#" onclick="projectCleanAndBuild()">Clean and Build Project</a> |
| 125 | + <a class="dropdown-item" href="#" onclick="projectCleanAndBuild()">Clean and Build |
| 126 | + Project</a> |
95 | 127 | </div>
|
96 | 128 | </li>
|
97 | 129 | <li class="nav-item dropdown">
|
|
140 | 172 | <ul class="nav nav-tabs card-header-tabs">
|
141 | 173 | <li class="nav-item">
|
142 | 174 | <a class="nav-link active" href="#">
|
143 |
| - <span id="fileName">HelloWorld.java</span> |
| 175 | + <span id="fileName">项目简介</span> |
144 | 176 | <span id="dot" class="dot" style="display: none"></span>
|
145 | 177 | </a>
|
146 | 178 | </li>
|
147 | 179 | </ul>
|
148 | 180 | </div>
|
149 | 181 | <div class="card-body" style="padding:0px;">
|
150 | 182 | <div class="editor_control">
|
151 |
| - <textarea class="form-control" id="code" name="code"> |
152 |
| -/** |
153 |
| - * 简单示例 |
154 |
| - * |
155 |
| - * @author jiazhifeng |
156 |
| - * @date 2021/12/07 10:14 |
157 |
| - */ |
158 |
| -public class HelloWorld { |
159 |
| - public static void main(String[] args) { |
160 |
| - System.out.println("HelloWorld"); |
161 |
| - } |
162 |
| -} |
| 183 | + <textarea class="form-control" id="code" name="code"> |
| 184 | +项目目标 |
| 185 | +1. 项目的目标是建立一种基于云的集成开发环境 (IDE),您只需要一个浏览器,即可编写、运行和调试代码。它包括一个代码编辑器、控制台和终端。 |
| 186 | +您无需安装文件或配置开发计算机,即可开始新的项目。项目基于云,因此您可以从办公室、家中或任何地方使用已连接互联网的计算机完成项目。 |
| 187 | + |
| 188 | +优势 |
| 189 | +1. 只需一个浏览器即可进行代码编码、运行。 |
| 190 | + |
| 191 | +一分钟短视频介绍 |
| 192 | +1. 【YouTube】https://youtu.be/Z6aumPttg6o |
| 193 | +2. 【哔哩哔哩】https://b23.tv/zZve2g2 |
| 194 | + |
| 195 | +目前已实现功能: |
| 196 | +1. 文件树生成 |
| 197 | +2. 代码编辑 |
| 198 | +3. 代码云端编译,运行 |
| 199 | +4. 控制台输出 |
| 200 | +5. 支持暗黑模式 |
| 201 | +6. 增加反编译工具 |
| 202 | +7. 增加项目构建功能 |
| 203 | +8. 增加web终端(借鉴https://github.com/NoCortY/WebSSH) |
| 204 | +9. 增加十六进制转换工具 |
| 205 | + |
| 206 | +## 项目开发中,敬请期待。 |
163 | 207 | </textarea>
|
164 | 208 | </div>
|
165 | 209 | </div>
|
@@ -238,8 +282,7 @@ <h5 class="modal-title" id="cloneFromGithubLabel">Clone Project From GitHub</h5>
|
238 | 282 | </div>
|
239 | 283 |
|
240 | 284 | <!-- Modal -->
|
241 |
| - <div class="modal fade" id="sshInfo" tabindex="-1" aria-labelledby="sshInfoLabel" |
242 |
| - aria-hidden="true"> |
| 285 | + <div class="modal fade" id="sshInfo" tabindex="-1" aria-labelledby="sshInfoLabel" aria-hidden="true"> |
243 | 286 | <div class="modal-dialog modal-dialog-centered">
|
244 | 287 | <div class="modal-content">
|
245 | 288 | <div class="modal-header">
|
@@ -275,7 +318,8 @@ <h5 class="modal-title" id="sshInfoLabel">配置ssh连接信息</h5>
|
275 | 318 | </div>
|
276 | 319 | </div>
|
277 | 320 | <div class="modal-footer">
|
278 |
| - <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="connectSSH()">Connect |
| 321 | + <button type="button" class="btn btn-primary" data-dismiss="modal" |
| 322 | + onclick="connectSSH()">Connect |
279 | 323 | </button>
|
280 | 324 | <button type="button" class="btn btn-secondary" data-dismiss="modal">Cannel</button>
|
281 | 325 | </div>
|
|
0 commit comments