Skip to content

Commit 4a67e9a

Browse files
save file
1 parent 5f47e63 commit 4a67e9a

File tree

1 file changed

+227
-6
lines changed

1 file changed

+227
-6
lines changed

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

Lines changed: 227 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,261 @@
66
-->
77

88

9+
<!DOCTYPE html>
10+
11+
912
<html>
1013

1114
<head>
12-
15+
<meta charset=utf-8>
16+
17+
<title>
18+
Node.js Terminal
19+
</title>
20+
21+
<meta name=description content=''>
22+
23+
<base href='https://ext-code.com/utils/misc/terminal/'>
24+
<link rel=canonical href='https://ext-code.com/utils/misc/terminal/terminal.html'>
25+
26+
<link rel='shortcut icon' type='image/x-icon' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAcCAMAAABBJv+bAAAAQlBMVEVHcEwyODg0ODkzNzgxNzc0ODk0ODkzODgzODgzNzgyNzgzODg0ODkzODgyNzgzODgzODgzODk0ODk0ODkyNzg0ODmObyvDAAAAFXRSTlMABvaSDbPHe15GL5u9hRxvO6rn2VJXM6DpAAAAxElEQVQoz71TyRbDIAh0Ie6J2fz/Xy3Y2pDktZ5aTiODCAMK0QxAPoFsgNk0JrMEQmEwyU5ndt4K2khQEzLhdNeQTznCWREegNEOOe18fRO8i6ooz+gRw1k9gMkyo/E9zY5yKMX+ihbLq8mjFB5N4UepYLGRmdM7OnLlpYtJXWQQkFCIpHcpfBVpCxeRV/KuodHzmfaNxuTmlpxmoEzc5bs0rnGdQQZeybWxRX6Vxf5rJJ116CxTZxX5Isf7Ive+wadP9AAuFg97y3bd7gAAAABJRU5ErkJggg=='>
27+
<meta name=viewport content='width=device-width, initial-scale=1'>
28+
29+
<script type='application/ld+json'>
30+
{
31+
"@context" : "https://schema.org",
32+
"@type" : "SoftwareApplication",
33+
"name" : "Node.js Terminal",
34+
"url" : "https://ext-code.com/utils/misc/terminal/terminal.html",
35+
"author" : {"@type":"Person","name":"Matthew Richards"},
36+
"description" : "Use this tool to quickly setup a terminal with a nodejs / npm environments and experiment without touching the local disk.",
37+
"applicationCategory" : "DeveloperApplication",
38+
"operatingSystem" : "All",
39+
"browserRequirements" : "Requires JavaScript-enabled browser",
40+
"softwareVersion" : "1.0.0",
41+
"offers" : {"@type":"Offer","price":"0","priceCurrency":"GBP"}
42+
}
43+
</script>
44+
45+
46+
<script src='https://libs.ext-code.com/js/dom/component/component.js'></script>
47+
48+
<script init>
49+
console.clear();
50+
console.log('terminal-v2.0.html');
51+
console.log();
52+
console.json=v=>console.log(JSON.stringify(v,null,4));
53+
var df=true,version='v2.0'
54+
;
55+
56+
var ext;
57+
var $;
58+
var datatype;
59+
var menumod;
60+
var keydown;
61+
var debug;
62+
63+
var menu;
64+
65+
var hdr;
66+
67+
68+
async function init(){
69+
70+
71+
menu = menumod();
72+
73+
74+
hdr = mod['misc-hdr'];
75+
76+
hdr.initmod({ext,$});
77+
78+
79+
await Promise.all([
80+
hdr.init(),
81+
]);
82+
83+
84+
initdom();
85+
86+
87+
}//init
88+
89+
90+
(async()=>{
91+
92+
mod.stack.add;
93+
94+
({ext} = await import('https://libs.ext-code.com/js/io/ext-loader/ext-loader.m.js'));
95+
96+
var promise = ext.load.libs(
97+
'js/dom/$.js',
98+
'js/core/datatype.js',
99+
'js/dom/menumod/menumod.js',
100+
'js/dom/keydown/keydown.js',
101+
'js/debug/debug.js',
102+
);
103+
[$,datatype,menumod,keydown,debug] = await promise;
104+
105+
mod.stack.complete;
106+
107+
})();
108+
109+
110+
</script>
111+
112+
113+
114+
13115
<link rel=stylesheet href='https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/css/xterm.css'>
116+
14117
<style>
15118

16119
html
17-
{height:100%}
120+
{height:100%;font-family:arial}
18121
body
19-
{margin:20px;height:calc(100% - 40px);}
122+
{margin:20px;height:calc(100% - 40px);display:flex;flex-direction:column;gap:10px}
20123

21124
#terminal
22-
{width:100%;height:100%}
125+
{flex:1}
126+
.terminal
127+
{padding:10px;border:2px solid lightgray;box-sizing:border-box}
23128

24129
</style>
25130

26131
</head>
27132

28133

29134
<body>
30-
135+
136+
137+
<misc-hdr component=grp>
138+
<img class=title src='images/terminal.png' style='top:-15px;height:50px' alt='Node.js Terminal'>
139+
<time slot=date datetime=2025-10-31>31 Oct 2025</time>
140+
</misc-hdr>
141+
142+
31143
<div id=terminal></div>
32144

145+
33146
</body>
34147

35148

149+
<script>
150+
151+
152+
function initdom(){
153+
}//initdom
154+
155+
156+
var theme = {};
157+
158+
theme.light = {
159+
foreground : 'black',//'#53676d',
160+
background : 'hsl(45,86%,98%)',//'#fbf3db',
161+
cursor : '#3a4d53',
162+
selectionBackground : '#cfcebe',
163+
black : '#e9e4d0',
164+
red : '#d2212d',
165+
green : '#489100',
166+
yellow : '#ad8900',
167+
blue : '#0072d4',
168+
magenta : '#8f0075',
169+
cyan : '#00938d',
170+
white : '#ffffff',
171+
brightBlack : '#7d7a68',
172+
brightRed : '#d2212d',
173+
brightGreen : '#489100',
174+
brightYellow : '#ad8900',
175+
brightBlue : '#0072d4',
176+
brightMagenta : '#8f0075',
177+
brightCyan : '#00938d',
178+
brightWhite : '#ffffff'
179+
};
180+
181+
182+
var x = {
183+
184+
reset : '\x1b[0m',
185+
186+
black : '\x1b[30m',
187+
red : '\x1b[31m',
188+
green : '\x1b[32m',
189+
yellow : '\x1b[33m',
190+
blue : '\x1b[34m',
191+
magenta : '\x1b[35m',
192+
cyan : '\x1b[36m',
193+
white : '\x1b[37m',
194+
195+
brightBlack : '\x1b[90m',
196+
brightRed: '\x1b[91m',
197+
brightGreen: '\x1b[92m',
198+
brightYellow: '\x1b[93m',
199+
brightBlue: '\x1b[94m',
200+
brightMagenta: '\x1b[95m',
201+
brightCyan: '\x1b[96m',
202+
brightWhite: '\x1b[97m',
203+
204+
bgRed: '\x1b[41m',
205+
bgGreen: '\x1b[42m',
206+
bgYellow: '\x1b[43m',
207+
bgBlue: '\x1b[44m',
208+
bgMagenta: '\x1b[45m',
209+
bgCyan: '\x1b[46m',
210+
bgWhite: '\x1b[47m',
211+
212+
bgBrightRed : '\x1b[101m',
213+
bgBrightGreen : '\x1b[102m',
214+
bgBrightYellow : '\x1b[103m',
215+
bgBrightBlue : '\x1b[104m',
216+
bgBrightMagenta : '\x1b[105m',
217+
bgBrightCyan : '\x1b[106m',
218+
bgBrightWhite : '\x1b[107m',
219+
220+
bold : '\x1b[1m',
221+
dim : '\x1b[2m',
222+
italic : '\x1b[3m',
223+
underline : '\x1b[4m',
224+
inverse : '\x1b[7m',
225+
hidden : '\x1b[8m',
226+
strikethrough : '\x1b[9m',
227+
228+
gray : '\x1b[38;5;245m',
229+
230+
};
231+
232+
var chr = {
233+
warn : '\u26A0',
234+
cross : '\u274C',
235+
stop : '\u1F6D1',
236+
prohibited : '\u1F6AB',
237+
check : '\u2705',
238+
go : '\u1F7E2',
239+
thumb : '\u1F44D',
240+
ok : '\u1F197',
241+
};
242+
243+
244+
</script>
245+
246+
36247
<script type=module>
37248
console.clear();
38249
import {Terminal} from 'https://cdn.jsdelivr.net/npm/@xterm/xterm/+esm';
39250
import {FitAddon} from 'https://cdn.jsdelivr.net/npm/@xterm/addon-fit/+esm'
40251
import {WebContainer} from 'https://cdn.jsdelivr.net/npm/@webcontainer/api/+esm'
41252

42-
var term = new Terminal();
253+
var term = new Terminal({
254+
255+
fontFamily : 'monospace',
256+
fontSize : 16,
257+
lineHeight : 1.0,
258+
259+
260+
theme : theme.light,
261+
rendererType : 'dom',
262+
263+
});
43264
var fitAddon = new FitAddon();
44265
term.loadAddon(fitAddon);
45266
term.open(terminal);

0 commit comments

Comments
 (0)