diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 8df8bed5..2e6c67de 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -32,6 +32,7 @@ declare module 'vue' { Categories: typeof import('./src/components/Settings/Categories.vue')['default'] CertificationLinks: typeof import('./src/components/CertificationLinks.vue')['default'] ChapterModal: typeof import('./src/components/Modals/ChapterModal.vue')['default'] + Code: typeof import('./src/components/Controls/Code.vue')['default'] CodeEditor: typeof import('./src/components/Controls/CodeEditor.vue')['default'] CollapseSidebar: typeof import('./src/components/Icons/CollapseSidebar.vue')['default'] CourseCard: typeof import('./src/components/CourseCard.vue')['default'] diff --git a/frontend/package.json b/frontend/package.json index bb7a91da..a7df7298 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,6 +10,10 @@ "copy-html-entry": "cp ../lms/public/frontend/index.html ../lms/www/lms.html" }, "dependencies": { + "@codemirror/lang-html": "^6.4.9", + "@codemirror/lang-javascript": "^6.2.4", + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-python": "^6.2.1", "@editorjs/checklist": "^1.6.0", "@editorjs/code": "^2.9.0", "@editorjs/editorjs": "^2.29.0", @@ -24,7 +28,7 @@ "ace-builds": "^1.36.2", "apexcharts": "^4.3.0", "chart.js": "^4.4.1", - "codemirror-editor-vue3": "^2.8.0", + "codemirror": "^6.0.1", "dayjs": "^1.11.6", "feather-icons": "^4.28.0", "frappe-ui": "^0.1.147", @@ -35,9 +39,11 @@ "plyr": "^3.7.8", "socket.io-client": "^4.7.2", "tailwindcss": "3.4.15", + "thememirror": "^2.0.1", "typescript": "^5.7.2", "vue": "^3.4.23", "vue-chartjs": "^5.3.0", + "vue-codemirror": "^6.1.1", "vue-draggable-next": "^2.2.1", "vue-router": "^4.0.12", "vue3-apexcharts": "^1.8.0", diff --git a/frontend/src/components/Controls/Code.vue b/frontend/src/components/Controls/Code.vue new file mode 100644 index 00000000..a14060b8 --- /dev/null +++ b/frontend/src/components/Controls/Code.vue @@ -0,0 +1,156 @@ + + + diff --git a/frontend/src/index.css b/frontend/src/index.css index 166ac595..92b6d76d 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -1,2 +1,3 @@ @import './assets/Inter/inter.css'; @import 'frappe-ui/src/style.css'; +@import './styles/codemirror.css'; \ No newline at end of file diff --git a/frontend/src/pages/ProgrammingExercise.vue b/frontend/src/pages/ProgrammingExercise.vue deleted file mode 100644 index d34b999f..00000000 --- a/frontend/src/pages/ProgrammingExercise.vue +++ /dev/null @@ -1,44 +0,0 @@ - - diff --git a/frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue b/frontend/src/pages/ProgrammingExercises/ProgrammingExerciseForm.vue new file mode 100644 index 00000000..e69de29b diff --git a/frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue b/frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue new file mode 100644 index 00000000..d3512ea0 --- /dev/null +++ b/frontend/src/pages/ProgrammingExercises/ProgrammingExerciseSubmission.vue @@ -0,0 +1,307 @@ +