diff --git a/README.md b/README.md index cc5d75f8..58e72b1a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
1、 安装node v6.9.x;此安装包含了node和npm。
+1、 安装node v12.10.x;此安装包含了node和npm。
2、 安装cnpm(命令行): npm install -g cnpm --registry=https://registry.npm.taobao.org
3、 安装依赖的js库(public/react目录下<即项目package.json所在目录>,开启命令行): cnpm install
4、 如果你的ruby服务使用的是3000端口,则需要在package.json中修改"port"参数的值
diff --git a/add.txt b/add.txt deleted file mode 100644 index 8bd5bb1d..00000000 --- a/add.txt +++ /dev/null @@ -1,34 +0,0 @@ - -新版tpi改动的文件: -Index.js -contex/TPIContextProvider.js -page/main/LeftViewContainer.js -taskList/TaskList.js -TPMIndexHOC.js -App.js -CodeRepositoryViewContainer.js - -Index.js - choose={context.chooses} - - -TPIContextProvider.js - -LeftViewContainer.js - -TaskList.js - -TPMIndexHOC.js - -MainContentContainer - 新:rep_content返回值多了一层 {content: '...'} - - - - -TODO - 待同步 - 1、timer图标样式更换 - index.html - WebSSHTimer.css - WebSSHTimer.js \ No newline at end of file diff --git a/config/webpack.config.prod.js b/config/webpack.config.prod.js index c0ba2bc7..467771a5 100644 --- a/config/webpack.config.prod.js +++ b/config/webpack.config.prod.js @@ -19,8 +19,7 @@ const getClientEnvironment = require("./env"); let publicPath = "/react/build/"; const publicUrl = publicPath.slice(0, -1); -// const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; -const shouldUseSourceMap = process.env.NODE_ENV !== "production"; +const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; const env = getClientEnvironment(publicPath); // This is the production configuration. @@ -55,8 +54,7 @@ module.exports = { }, bail: true, mode: "production", - // devtool: false, //测试版 - devtool: shouldUseSourceMap?'source-map':false, + devtool: false, //测试版 entry: [require.resolve("./polyfills"), paths.appIndexJs], output: { path: paths.appBuild, diff --git a/package-lock.json b/package-lock.json index 8ed419ba..da6baa38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4071,16 +4071,18 @@ }, "cross-env": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "resolved": "https://registry.nlark.com/cross-env/download/cross-env-7.0.3.tgz", + "integrity": "sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=", + "dev": true, "requires": { "cross-spawn": "^7.0.1" }, "dependencies": { "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4089,26 +4091,30 @@ }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved": "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "resolved": "https://registry.nlark.com/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/package.json b/package.json index e5d24473..2d378ad2 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "code-prettify": "^0.1.0", "codemirror": "^5.64.0", "connected-react-router": "4.4.1", - "cross-env": "^7.0.3", "css-loader": "^3.5.2", "dompurify": "^2.3.3", "dotenv": "4.0.0", diff --git a/readme.txt b/readme.txt deleted file mode 100644 index e813d22a..00000000 --- a/readme.txt +++ /dev/null @@ -1,172 +0,0 @@ -其他的文档位置: -/educoder/public/react/public/js/readme.txt 关于js_min_all -/educoder/educoder/public/react/scripts/readme-cdn.txt 关于CDN -/educoder/public/react/src/modules/page/readme.txt 关于TPI -/educoder/public/editormd/lib/readme-marked.txt 关于md编辑器 marked.js - -1、 安装node v6.9.x;此安装包含了node和npm。 - -2、 安装cnpm(命令行): npm install -g cnpm --registry=https://registry.npm.taobao.org - -3、 安装依赖的js库(public/react目录下<即项目package.json所在目录>,开启命令行): cnpm install - -4、 如果你的ruby服务使用的是3000端口,则需要在package.json中修改"port"参数的值 - -5、 启动服务(命令行-目录同3): npm start - -6、 build初始化 npm run build - -注意: -1、cnpm install 之前先需要修改下ruby mine的一个settings,防止ruby mine对node_modules目录里的内容建索引(详情见线上文档-react开发环境搭建) - - -线上文档-react开发环境搭建 地址: https://www.trustie.net/boards/6862/topics/46425 - -2、package.json中配置: -"proxy": "http://localhost:3000", -"port": "3007" - -目前暂时必须写为和上面的一样,ruby服务端口为3000,node服务端口为3007;当当前端口为3007时,程序会将axios发出的请求转到localhost:3000上,进行跨域请求。 - -3、静态js加载问题: - editormd源码改动,注释掉了564行 加载codemirror/codemirror.min的js代码。因为codemirror 已经加载了,codemirror对象会带有插件,重复加载会覆盖全局codemirror对象,使得之前加载的插件失效 - ----------------------------------------------------------------------------------------------- - -React开发相关知识点 - 需要了解的ES6的知识 https://www.trustie.net/boards/6862/topics/46427 - ----------------------------------------------------------------------------------------------- - -新加入的lib有: axios、material-ui、lodash、classnames、moment、immutability-helper - rc-tree、rc-form 、rc-rate、rc-pagination、rc-select 、showdown -考虑替代删除确认弹出框的组件http://react-component.github.io/tooltip/examples/onVisibleChange.html - - ----------------------------------------------------------------------------------------------- -TPI State整理 START ----------------------------------------------------------------------------------------------- -TPIContextProvider 详情接口的所有state - - Index.js - taskListLoading - challenges - challengesDrawerOpen - - MainContentContainer.js - repositoryCode: '', - currentPath: '', // 当前所选的path,可能是一个只读的path(只读path的话,challenge.athIndex为-1) - isEditablePath // 是否是可以编辑的path() - - open: false, // 繁忙等级等提示用Dialog, TODO 考虑重构封装到根组件 - gameBuilding: false, // 评测中标志 - codeStatus: 2, // 0 已修改 1 保存中 2 已保存 3 保存失败 - - codeLoading: false, // code加载中 - resetCodeDialogOpen: false, // TODO考虑重构封装到根组件 - resetPassedCodeDialogOpen: false, // TODO考虑重构封装到根组件 - - - LeftViewContainer.js - tabIndex: 0, 页签index - dialogOpen: false, - gameAnswer: '', 答案 - snackbarOpen: false, - comments: [], 评论 - comment_count_without_reply: 0, 评论数量 TODO 和详情接口字段重复 - // 默认pageSize为10 - currentPage: 1, 评论分页 - loadingComments: true, 评论加载中 - gotNewReply: false, 新的回复 - - CodeRepositoryViewContainer.js - drawerOpen: false, - loadingFirstRepoFiles: false, drawer里的loading状态 - fileTreeData: "", 文件树 - codeRepositoryViewExpanded: false, 展开状态 - - - CodeEvaluateView.js - testSetsInitedArray: testSetsExpandedArrayInitVal.slice(0), 测试集是否初始化标志 - evaluateViewExpanded: false, - tabIndex: 1, 页签index ----------------------------------------------------------------------------------------------- -TPI State整理 END ----------------------------------------------------------------------------------------------- - ----------------------------------------------------------------------------------------------- -重要:TPI实现时修改的js库的记录 START ----------------------------------------------------------------------------------------------- - ----------------------------------------------------------------------------------------------- -重要:TPI实现时修改的js库的记录 END ----------------------------------------------------------------------------------------------- -create_kindeditor.js __isR 表示是react环境,react环境下采用事件通知react组件来处理 - if (window['__isR'] === true) { - $(document).trigger("onReply", { commentContent:tContents, id:id, editor:params.editor } ); - } else { - params.form.submit(); - } - -editormd.min.js 直接注释掉了codemirror.min的加载,应该改成有codeMirror了则不加载 - // codemirror 已经加载了,codemirror会有插件,重复加载会使得之前加载的插件失效 - // editormd.loadScript(loadPath + "codemirror/codemirror.min", function() { -对应提交项 -Revision: 73d95ce266d5d7e55a3a88d08d1247b3a08c7caf -Date: 2018/4/2 16:12:21 -Message: 切下一题时更新左侧editormd里的内容,更新右侧codemirror内容。 - -js_min_all.js 最后面手动加入了若干js代码,还没做分离、再合并处理 date:180507 - is_cdn_link tpi_html_show方法 - - - - ----------------------------------------------------------------------------------------------- -TPM使用react实现的利弊 START ----------------------------------------------------------------------------------------------- -1、全部使用react重写 - 做法:第一屏使用新接口,之前的js脚本还是继续使用,有必要的话(需要局部刷新的),将部分jquery实现改为react实现 -利: - tpi中评论组件、文件树组件方便复用 - js、css库管理方便 - - 暂时不依赖于react的状态管理 - 之前的ajax请求还是可以暂时复用 - - -弊: - 接口评估? - rails模板要改成jsx语法 - 头部功能区域、底部静态链接区域会存在重复代码 : react版和非react版 - codemirror等组件的使用会不会有问题? - - 学习成本 - - !!目前决定,新页面或者评论组件所在页面使用react实现 ----------------------------------------------------------------------------------------------- -TPM使用react实现的利弊 END ----------------------------------------------------------------------------------------------- - - -其他方式:comments组件build到新入口后,将代码copy到rails页面 ----------------------------------------------------------------------------------------------- -不错的库 START ----------------------------------------------------------------------------------------------- -https://livicons.com/icons-original -- 收费 动画icon -https://github.com/maxwellito/vivus -- 让SVG标签动起来 -http://ianlunn.github.io/Hover/ -- hover 动画 -https://github.com/legomushroom/mojs -https://github.com/juliangarnier/anime --js动画 -https://codepen.io/juliangarnier/pen/gmOwJX -https://github.com/daneden/animate.css - - -A responsive tour snippet, with a step-by-step guide(onboarding) to help users understand how to use your website. - -https://github.com/sorich87/bootstrap-tour -https://github.com/linkedin/hopscotch -https://github.com/Robophil/Product-Tour - -code editor -https://microsoft.github.io/monaco-editor/ \ No newline at end of file diff --git a/src/App.js b/src/App.js index 17527094..d3bca0ba 100644 --- a/src/App.js +++ b/src/App.js @@ -104,7 +104,7 @@ const ProjectIndex = Loadable({ }); const Home = Loadable({ - loader: () => import('./home/Index'), + loader: () => import('./home/index'), loading: Loading, }) diff --git a/src/home/FifthEdition.jsx b/src/home/FifthEdition.jsx deleted file mode 100644 index 09096de2..00000000 --- a/src/home/FifthEdition.jsx +++ /dev/null @@ -1,161 +0,0 @@ -import React , { useEffect } from 'react'; -import Slider from 'react-slick'; -import Beijing from './Img/unit/beijing.png'; -import SHJT from './Img/unit/SHJT.png'; -import DD from './Img/unit/DD.png'; -import HW from './Img/unit/HW.png'; -import ML from './Img/unit/ML.png'; -import QH from './Img/unit/QH.png'; -import QZ from './Img/unit/QZ.png'; -import TX from './Img/unit/TX.png'; -import XH from './Img/unit/XH.png'; -import XJY from './Img/unit/XJY.png'; -import ZC from './Img/unit/ZC.png'; -import GFKJ from './Img/unit/GFKJ.png'; -import BJHKHT from './Img/unit/BJHKHT.png'; -import ISCAS from './Img/unit/ISCAS.png'; -import NJDX from './Img/unit/NJDX.png'; -import CEC from './Img/unit/CEC.png'; -import KYRJLM from './Img/unit/KYRJLM.png'; -import WXYJY from './Img/unit/WXYJY.png'; -import HSKY from './Img/unit/HSKY.png'; -import LSLM from './Img/unit/LSLM.png'; -import TG from './Img/unit/TG.png'; -import LC from './Img/unit/LC.png'; -import YKD from './Img/unit/YKD.png'; -import Axios from 'axios'; -import { useState } from 'react'; -import { getImageUrl } from 'educoder'; - -const list = [ - {image_url:GFKJ, name:"国防科技大学",src:"https://www.nudt.edu.cn/"}, - {image_url:TG, name:"头歌",src:"https://www.educoder.net/"}, - {image_url:XJY, name:"长沙先进技术研究院",src:"https://www.hnjmrh.gov.cn/newweb/service/detail/305/"}, - {image_url:Beijing, name:"北京大学",src:"https://www.pku.edu.cn/"}, - {image_url:BJHKHT, name:"北京航空航天",src:"https://www.buaa.edu.cn/"}, - {image_url:ISCAS, name:"ISCAS",src:"http://www.iscas.ac.cn/"}, - {image_url:NJDX, name:"南京大学",src:"https://www.nju.edu.cn/"}, - {image_url:DD, name:"滴滴",src:"https://www.didiglobal.com/"}, - {image_url:CEC, name:"CEC",src:"https://www.cec.com.cn/"}, - {image_url:HW, name:"华为",src:"https://www.huawei.com/"}, - {image_url:ML, name:"木兰开源社区",src:"https://www.mulanos.cn/"}, - {image_url:TX, name:"腾讯",src:"https://www.tencent.com/zh-cn"}, - {image_url:KYRJLM, name:"中国开源软件推进联盟",src:"http://www.copu.org.cn/"}, - {image_url:XH, name:"中国计算机学会",src:"https://www.ccf.org.cn/"}, - {image_url:QZ, name:"openi启智",src:"https://www.openi.org.cn/"}, - {image_url:HSKY, name:"红山开源",src:"https://osredm.com/"}, - {image_url:LSLM, name:"绿色产业联盟",src:"https://www.opengcc.org/"}, - {image_url:ZC, name:"中创软件",src:"http://www.cvicse.com/"}, - {image_url:LC, name:"浪潮",src:"https://cloud.inspur.com/"}, - {image_url:YKD, name:"ucloud",src:"https://www.ucloud.cn/"} -] - -const settings = { - dots: false, - infinite: true, - slidesToShow: 1, - slidesToScroll: 1, - vertical: true, - verticalSwiping: true, - autoplay:true, - arrows:false -}; -function FifthEdition() { - const [ topics ,setTopics ] = useState(undefined); - - useEffect(()=>{ - // if(list.length>10){ - // Init(); - // } - getUnit(); - },[]) - - function getUnit(){ - const url =`/topics.json`; - Axios.get(url,{params:{ - topic_type:"cooperator", - limit:20, - group_size:5 - }}).then(result=>{ - if(result){ - setTopics(result.data.topics); - } - }).catch(error=>{}) - } - - function Init() { - let box = document.getElementById('scrollBox1'); - scrollUp(); - var myTimer = setInterval(scrollUp, 10); - // 鼠标移入container 元素上 清除定时器 停止滚动 - box.onmouseover = () => { - clearInterval(myTimer); - } - // 鼠标移出container 元素上 继续滚动 - // 60表示每隔60毫秒向上滚动一次 - box.onmouseout = () => { - myTimer = setInterval(scrollUp, 10); - } - } - - function scrollUp() { - let box = document.getElementById('scrollBox1'); - if(box){ - let con1 = document.getElementById('box1'); - if (box.scrollLeft >= con1.clientWidth) { - box.scrollLeft = 0; - } else { - box.scrollLeft++; - } - } - } - - return( -(确实开源)
-©Copyright 2007~2021 国防科技大学GitLink团队 & IntelliDE
湘ICP备 17009477号
分布式协作开发
-基于Git打造分布式代码托管环境,提供免费公、私有代码仓库;
-支持在线文件编辑、代码分支管理、协作贡献统计、代码仓库复刻(Fork)、贡献合并请求(PR)、群智贡献审阅等功能;
-{k+1}{i.str}让您的项目在这里健康、快速的成长!
-一站式过程管理
-提供疑修(Issue)、里程碑、通知提醒、标签归档等多样化任务管理工具,支持各类开发任务的发布、指派与跟踪;
-同时提供在线Wiki文档、组织多粒度管理等功能,为您搭建一站式的项目过程管理环境;
-让您的团队协作更高效、过程更透明!
-{k+1}{i.str}让您的代码更加快速、可靠地形成高质量的产品!
-提供软件软代码和芯片RTL代码的溯源分析、文件级和组件级许可证识别及风险分析、输入性开源漏洞检测和加固建议,支持分析结果的多层次可视化展示。
-多维度用户画像
-实时采集和分析平台中的各类开源资源数据,搭建多维度用户画像评估系统;
-提供开发活动统计、贡献度日历、用户能力建模、角色与专业定位分析等功能。
-让您在个人主页展示开发动态与创新能力!
-开发者的家园
-一个实现群智激发与汇聚,产学研联合面向协同创新的开源社区
-- {active === 1 ? "GitLink分享最新平台资讯、社区活动通知、开源竞赛信息,把握开源生态发展脉搏" - : active===2 ? "GitLink汇聚精英企业仓库、前沿技术仓库、人气热门仓库,孵化优质开源创新成果" - :active===3 ? "GitLink集萃社区精选项目介绍、平台使用技巧等优秀文章,助力开源开放协同创新" - :"GitLink甄选技术研究、心得体会、经验交流等高质量内容,推动社区健康稳定发展"} -
-GitLink,新一代开源创新服务平台
- { - flag && -加入GitLink,和社区伙伴们一起踏上开源创新的辉煌旅程!
-开源生态
-GitLink与各大企业、高校、科研机构开展广泛的技术合作,推动我国开源软件生态的快速构建与发展
-