Frontend uudelleenrakennettu: Astro-komponentit, Wasm pääsäikeessä, ei Workeria

Vanha frontend siirretty temp/. Uusi rakenne:
- StatusBar.astro, Terminal.astro, Editor.astro, Guide.astro
- global.css erillinen
- Wasm pääsäikeessä (ei Worker — yksinkertainen, debugattava)
- Tab-completion, dropdown, projektikortti, Monaco, GUIDE.md
- Ei tokenisointia eikä koodilaboratoriota

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaakko Vanhala
2026-04-09 20:17:39 +03:00
parent e3fdb91ac5
commit a8c4af0975
9617 changed files with 996171 additions and 5349 deletions

View File

@@ -0,0 +1,49 @@
(function (Prism) {
function createBlock(prefix, inside, contentAlias) {
return {
pattern: RegExp('<#' + prefix + '[\\s\\S]*?#>'),
alias: 'block',
inside: {
'delimiter': {
pattern: RegExp('^<#' + prefix + '|#>$'),
alias: 'important'
},
'content': {
pattern: /[\s\S]+/,
inside: inside,
alias: contentAlias
}
}
};
}
function createT4(insideLang) {
var grammar = Prism.languages[insideLang];
var className = 'language-' + insideLang;
return {
'block': {
pattern: /<#[\s\S]+?#>/,
inside: {
'directive': createBlock('@', {
'attr-value': {
pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,
inside: {
'punctuation': /^=|^["']|["']$/
}
},
'keyword': /\b\w+(?=\s)/,
'attr-name': /\b\w+/
}),
'expression': createBlock('=', grammar, className),
'class-feature': createBlock('\\+', grammar, className),
'standard': createBlock('', grammar, className)
}
}
};
}
Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', { value: createT4 });
}(Prism));