README.MD
快速开始
在项目域名前加 ide 进入:https://idegitcode.net/t1019256391/1024
项目会自动加载,python镜像会被首先创建,可直接使用。其他语言会在后台异步创建,创建完成后即可使用。
首次启动视网络情况,加载时间可能比较长,请耐心等待。
项目介绍
基于docker环境的在线代码编辑运行工具,项目不算特别复杂,前端不太熟悉所以做的也比较简陋。整体代码是10.29~10.30周末两天完成的。
功能
-
支持多种语言在线编辑运行,目前已支持:
python
golang
java
nodejs
lua
-
各语言代码初始化模版来自斐波那契数列递归算法(一般情况可用作语言benchmark),代码未改动时切换语言才会切换模版
-
代码执行超时功能(默认10s)
-
接口限流(默认5 QPS)
-
java不用固定类名(正则匹配类名后生成对应的文件名)
-
支持标准输入
以leetcode 1题 两数之和为例:
如何添加想要支持的语言
非常简单,仅需2步
- 在
config
目录下创建该语言的Dockerfile文件以及example文件(尽量注意镜像size) - 在common.py中增加该语言的名字、代码文件生成命令、代码运行命令、前端编辑器模式
language_list = [
Language("python",
"python -u run.py",
"cat > run.py << EOF\n",
"python"),
Language("golang",
"go run run.go",
"cat > run.go << EOF\n",
"golang"),
Language("java",
Language.java_run_way, # 支持特殊的代码文件生成方式
Language.java_file_way,
"java"),
Language("nodejs",
"FORCE_COLOR=0 node run.js",
"cat > run.js << EOF\n",
"javascript"),
Language("lua",
"lua run.lua",
"cat > run.lua << EOF\n",
"lua")
]
项目结构
.
├── build.sh // 启动脚本,安装docker,pip依赖等
├── common.py // 语言相关,各语言的启动方式等
├── config
│ └── python
│ ├── Dockerfile
│ └── example.py // 初始化代码示例
├── preview.yml
├── requirements
├── router.py // 路由
├── server.py // 代码运行相关
├── static
│ └── styles.css
└── templates
└── index.html
项目简介
云 IDE 应用挑战赛是由 CSDN 自主策划的轻量级挑战赛事。参赛者可在云 IDE 上自动拉取代码并在线运行、预览、提交代码,赛事所有的事项都可以在云 IDE 内一站式完成。比赛不对作品提交形式作限制,参赛者可以尽情发挥自己的想象力。
具体参赛要求及赛事安排,详见左侧大赛介绍。