Skip to content

Commit 1b24045

Browse files
save file
1 parent dce1f8b commit 1b24045

1 file changed

Lines changed: 94 additions & 13 deletions

File tree

utils/misc/nodejs-terminal/v2.0/nodejs-terminal-v2.0.html

Lines changed: 94 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
<meta name=description content=''>
2222

23-
<base href='https://ext-code.com/utils/misc/terminal/'>
24-
<link rel=canonical href='https://ext-code.com/utils/misc/terminal/terminal.html'>
23+
<base href='https://ext-code.com/utils/misc/nodejs-terminal/nodejs-terminal.html'>
24+
<link rel=canonical href='https://ext-code.com/utils/misc/nodejs-terminal/nodejs-terminal.html'>
2525

2626
<link rel='shortcut icon' type='image/x-icon' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAcCAMAAABBJv+bAAAAQlBMVEVHcEwyODg0ODkzNzgxNzc0ODk0ODkzODgzODgzNzgyNzgzODg0ODkzODgyNzgzODgzODgzODk0ODk0ODkyNzg0ODmObyvDAAAAFXRSTlMABvaSDbPHe15GL5u9hRxvO6rn2VJXM6DpAAAAxElEQVQoz71TyRbDIAh0Ie6J2fz/Xy3Y2pDktZ5aTiODCAMK0QxAPoFsgNk0JrMEQmEwyU5ndt4K2khQEzLhdNeQTznCWREegNEOOe18fRO8i6ooz+gRw1k9gMkyo/E9zY5yKMX+ihbLq8mjFB5N4UepYLGRmdM7OnLlpYtJXWQQkFCIpHcpfBVpCxeRV/KuodHzmfaNxuTmlpxmoEzc5bs0rnGdQQZeybWxRX6Vxf5rJJ116CxTZxX5Isf7Ive+wadP9AAuFg97y3bd7gAAAABJRU5ErkJggg=='>
2727
<meta name=viewport content='width=device-width, initial-scale=1'>
@@ -63,9 +63,14 @@
6363

6464
var menu;
6565

66-
var hdr;
66+
var misc;
67+
var filemod;
68+
var log;
6769

6870

71+
//:
72+
73+
6974
async function init(){
7075

7176

@@ -74,22 +79,32 @@
7479
mod.base.add({ext,$,datatype,keydown,menu,menumod});
7580

7681

77-
hdr = mod['misc-hdr'];
82+
misc = mod['misc-hdr'];
83+
filemod = mod['file-mod'];
84+
log = mod['log-mod'];
7885

79-
hdr.initmod({ext,$});
86+
misc.initmod({ext,$});
87+
filemod.initmod({ext,$,menumod,menu,complete,source,log});
88+
log.initmod({ext,$});
8089

8190

8291
await Promise.all([
83-
hdr.init(),
92+
misc.init(),
93+
filemod.init(),
94+
log.init(),
8495
]);
8596

8697

8798
initdom();
8899

89100

101+
log.green('ready');
102+
103+
90104
}//init
91105

92106

107+
93108
(async()=>{
94109

95110
mod.stack.add;
@@ -125,11 +140,19 @@
125140
{margin:20px;height:calc(100% - 40px);display:flex;flex-direction:column;gap:10px}
126141

127142

143+
#hdr
144+
{}
145+
146+
#hldr
147+
{padding:10px;border:2px solid lightgray;box-sizing:border-box;flex:1}
148+
128149
#terminal
129-
{flex:1}
150+
{height:100%}
130151

131-
.terminal
132-
{padding:10px;border:2px solid lightgray;box-sizing:border-box}
152+
153+
154+
.icon
155+
{width:32px;height:32px;border:1px solid gray;border-radius:3px;box-sizing:border-box;cursor:pointer}
133156

134157

135158
</style>
@@ -141,29 +164,85 @@
141164

142165

143166
<misc-hdr v2.0 component=grp>
144-
<img slot=title class=title src='images/terminal.png' style='top:-15px;height:50px' alt='Node.js Terminal'>
167+
<img slot=title class=title src='images/nodejs-terminal.png' style='top:-15px;height:80px' alt='Node.js Terminal'>
145168
<time slot=date datetime=2026-04-19>
146169
19 Apr 2026
147170
</time>
148171
</misc-hdr>
149172

173+
<div id=hdr>
174+
175+
<file-mod component></file-mod>
176+
177+
</div>
178+
179+
<div id=hldr>
180+
<div id=terminal>
181+
</div>
182+
</div>
150183

151-
<div id=terminal></div>
152184

185+
<log-mod component></log-mod>
153186

154187
</body>
155188

156189

157190
<script>
158191

159192

193+
var cur = {};
194+
195+
196+
197+
var complete = {};
198+
199+
200+
//:
201+
160202
function initdom(){
161203

204+
205+
misc.initdom();
206+
misc.set.version(version);
207+
208+
filemod.initdom();
209+
210+
211+
212+
$('#hldr').style.background = theme.light.background;
213+
214+
215+
216+
log.initdom();
217+
218+
162219
}//initdom
163220

164221

222+
//:
223+
224+
225+
function source(){
226+
}//source
227+
165228

229+
complete.load = function(file,blob){
166230

231+
232+
cur.file = file;
233+
cur.blob = blob;
234+
235+
236+
}//load
237+
238+
239+
complete.save = function(file,confirm){
240+
}//save
241+
242+
243+
//:
244+
245+
167246
var theme = {};
168247

169248
theme.light = {
@@ -272,20 +351,22 @@
272351
rendererType : 'dom',
273352

274353
});
354+
275355
var fitAddon = new FitAddon();
276356
term.loadAddon(fitAddon);
277357
term.open(terminal);
278358
fitAddon.fit();
279359
term.write('booting container ...\r\n')
280-
var webcontainer = await WebContainer.boot();
360+
webcontainer = await WebContainer.boot();
281361
term.write('spawn jsh ...\r\n')
282-
var shell = await webcontainer.spawn('jsh');
362+
shell = await webcontainer.spawn('jsh');
283363
var output = new WritableStream({write(data){term.write(data)}});
284364
shell.output.pipeTo(output);
285365

286366
var input = shell.input.getWriter();
287367
term.onData(data=>input.write(data));
288368

369+
term.resize();
289370
term.focus();
290371

291372
</script>

0 commit comments

Comments
 (0)