Skip to content

Commit be0d84e

Browse files
authored
Update index.html
1 parent 60e25d8 commit be0d84e

File tree

1 file changed

+50
-39
lines changed

1 file changed

+50
-39
lines changed

docs/index.html

Lines changed: 50 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="UTF-8" />
5-
<title>Python Editor (Pyodide)</title>
5+
<title>Python Code Editor</title>
66
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.10/codemirror.min.css" />
77
<style>
88
body {
@@ -33,16 +33,33 @@
3333
flex-wrap: wrap;
3434
}
3535
.draggable {
36-
flex: 1;
36+
position: relative;
3737
margin: 10px;
3838
padding: 10px;
3939
background-color: #f9f9f9;
4040
border: 1px solid #ccc;
4141
display: flex;
4242
flex-direction: column;
4343
justify-content: flex-start;
44-
min-width: 45%; /* This ensures the sections are at least 45% wide */
45-
height: calc(100vh - 70px); /* Adjust height to the screen */
44+
min-width: 45%;
45+
height: calc(100vh - 70px);
46+
overflow: hidden;
47+
}
48+
.resizable {
49+
overflow: hidden;
50+
resize: both;
51+
max-width: 100%;
52+
max-height: 100%;
53+
background-color: #f4f4f4;
54+
}
55+
.resizer {
56+
width: 10px;
57+
background-color: #ccc;
58+
cursor: se-resize;
59+
position: absolute;
60+
right: 0;
61+
bottom: 0;
62+
height: 10px;
4663
}
4764
#editor {
4865
height: calc(50vh - 20px);
@@ -68,10 +85,10 @@
6885
}
6986
@media screen and (max-width: 768px) {
7087
.container {
71-
flex-direction: column; /* Stack vertically on small screens */
88+
flex-direction: column;
7289
}
7390
.draggable {
74-
width: 100%; /* Make sections full width on small screens */
91+
width: 100%;
7592
}
7693
}
7794
</style>
@@ -83,15 +100,15 @@
83100
Welcome Learner, this is an interactive web Python interpreter by Bit and Pi channel
84101
</div>
85102

86-
<h2>Try Python in Your Browser</h2>
103+
<h2>Interactive Python Code Editor</h2>
87104

88105
<div class="container">
89-
<div id="drag-editor" class="draggable" style="cursor: move;">
106+
<div id="drag-editor" class="draggable resizable">
90107
<h3>Code Editor</h3>
91108
<textarea id="editor">print("Hello from Python!")</textarea><br>
92109
</div>
93110

94-
<div id="drag-output" class="draggable" style="cursor: move;">
111+
<div id="drag-output" class="draggable resizable">
95112
<h3>Output:</h3>
96113
<div id="output">...</div>
97114
</div>
@@ -119,6 +136,7 @@ <h3>Output:</h3>
119136
let pyodideReady = false;
120137
let pyodide = null;
121138

139+
// Load Pyodide and required libraries
122140
async function loadPyodideAndPackages() {
123141
pyodide = await loadPyodide();
124142
pyodideReady = true;
@@ -132,7 +150,7 @@ <h3>Output:</h3>
132150
pyodide.runPython(`
133151
import sys
134152
import io
135-
sys.stdout = io.StringIO() // Redirect stdout to capture print statements
153+
sys.stdout = io.StringIO()
136154
`);
137155
}
138156

@@ -163,38 +181,31 @@ <h3>Output:</h3>
163181
}
164182
});
165183

166-
// Drag functionality (for customizability)
167-
let dragging = null;
168-
let offsetX = 0;
169-
let offsetY = 0;
170-
171-
function makeDraggable(element) {
172-
element.addEventListener('mousedown', (e) => {
173-
dragging = element;
174-
offsetX = e.clientX - element.getBoundingClientRect().left;
175-
offsetY = e.clientY - element.getBoundingClientRect().top;
176-
177-
document.addEventListener('mousemove', dragElement);
178-
document.addEventListener('mouseup', stopDragging);
184+
// Allow users to resize the editor and output areas
185+
const resizableElements = document.querySelectorAll('.resizable');
186+
resizableElements.forEach(element => {
187+
const resizer = document.createElement('div');
188+
resizer.classList.add('resizer');
189+
element.appendChild(resizer);
190+
191+
let isResizing = false;
192+
193+
resizer.addEventListener('mousedown', (e) => {
194+
isResizing = true;
195+
document.addEventListener('mousemove', resizeElement);
196+
document.addEventListener('mouseup', () => {
197+
isResizing = false;
198+
document.removeEventListener('mousemove', resizeElement);
199+
});
179200
});
180-
}
181201

182-
function dragElement(e) {
183-
if (dragging) {
184-
dragging.style.position = 'absolute';
185-
dragging.style.left = (e.clientX - offsetX) + 'px';
186-
dragging.style.top = (e.clientY - offsetY) + 'px';
202+
function resizeElement(e) {
203+
if (isResizing) {
204+
element.style.width = `${e.clientX - element.getBoundingClientRect().left}px`;
205+
element.style.height = `${e.clientY - element.getBoundingClientRect().top}px`;
206+
}
187207
}
188-
}
189-
190-
function stopDragging() {
191-
dragging = null;
192-
document.removeEventListener('mousemove', dragElement);
193-
document.removeEventListener('mouseup', stopDragging);
194-
}
195-
196-
makeDraggable(document.getElementById('drag-editor'));
197-
makeDraggable(document.getElementById('drag-output'));
208+
});
198209
</script>
199210

200211
</body>

0 commit comments

Comments
 (0)