Files
agentic-studio/network-poc/frontend/node_modules/prismjs/components/prism-uri.js
Jaakko Vanhala a8c4af0975 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>
2026-04-09 20:17:39 +03:00

97 lines
1.8 KiB
JavaScript

// https://tools.ietf.org/html/rfc3986#appendix-A
Prism.languages.uri = {
'scheme': {
pattern: /^[a-z][a-z0-9+.-]*:/im,
greedy: true,
inside: {
'scheme-delimiter': /:$/
}
},
'fragment': {
pattern: /#[\w\-.~!$&'()*+,;=%:@/?]*/,
inside: {
'fragment-delimiter': /^#/
}
},
'query': {
pattern: /\?[\w\-.~!$&'()*+,;=%:@/?]*/,
inside: {
'query-delimiter': {
pattern: /^\?/,
greedy: true
},
'pair-delimiter': /[&;]/,
'pair': {
pattern: /^[^=][\s\S]*/,
inside: {
'key': /^[^=]+/,
'value': {
pattern: /(^=)[\s\S]+/,
lookbehind: true
}
}
}
}
},
'authority': {
pattern: RegExp(
/^\/\//.source
// [ userinfo "@" ]
+ /(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source
// host
+ (
'(?:'
// IP-literal
+ /\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source
+ '|'
// IPv4address or registered name
+ /[\w\-.~!$&'()*+,;=%]*/.source
+ ')'
)
// [ ":" port ]
+ /(?::\d*)?/.source,
'm'
),
inside: {
'authority-delimiter': /^\/\//,
'user-info-segment': {
pattern: /^[\w\-.~!$&'()*+,;=%:]*@/,
inside: {
'user-info-delimiter': /@$/,
'user-info': /^[\w\-.~!$&'()*+,;=%:]+/
}
},
'port-segment': {
pattern: /:\d*$/,
inside: {
'port-delimiter': /^:/,
'port': /^\d+/
}
},
'host': {
pattern: /[\s\S]+/,
inside: {
'ip-literal': {
pattern: /^\[[\s\S]+\]$/,
inside: {
'ip-literal-delimiter': /^\[|\]$/,
'ipv-future': /^v[\s\S]+/,
'ipv6-address': /^[\s\S]+/
}
},
'ipv4-address': /^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/
}
}
}
},
'path': {
pattern: /^[\w\-.~!$&'()*+,;=%:@/]+/m,
inside: {
'path-separator': /\//
}
}
};
Prism.languages.url = Prism.languages.uri;