}
@JvmInline
-value class TextParserTags<TContext> private constructor(val tags: Map<String, TextParserTagType<TContext>>) {
+value class TextParserTags<TContext> private constructor(private val tags: Map<String, TextParserTagType<TContext>>) {
operator fun get(name: String) = tags[name.lowercase()]
companion object {
val asTags: TextParserTags<Unit>
get() = TextParserTags(values().associate { it.name to it.type })
- fun sanitizeLink(html: String) = html.replace(Regex("[^#a-zA-Z0-9._\\-]"), "").replace("..", ".")
+ fun sanitizeLink(html: String) = html.replace(Regex("[^#a-zA-Z\\d\\-._]"), "").replace("..", ".")
fun getSizeParam(tagParam: String?): Pair<Int?, Int?> = tagParam?.let { resolution ->
val parts = resolution.split('x')
meta(name = "viewport", content = "width=device-width, initial-scale=1.0")
script(src = "/static/gltf-viewer/bower_components/webcomponentsjs/webcomponents-lite.js") {}
+ link(rel = "import", href = "/static/gltf-viewer/gltf-viewer.html")
link(rel = "icon", type = "image/svg+xml", href = "/static/images/icon.svg")
- link(rel = "import", href = "/static/gltf-viewer/gltf-viewer.html")
link(rel = "preconnect", href = "https://fonts.googleapis.com")
link(rel = "preconnect", href = "https://fonts.gstatic.com") { attributes["crossorigin"] = "anonymous" }
box-sizing: border-box;
background-color: var(--input-bg);
border: none;
- border-bottom: 0.1em solid var(--input-ul);
+ border-bottom: 0.15rem solid var(--input-ul);
color: var(--input-fg);
font-size: 1.5em;
.lang-tylan {
font-family: Tulasra, monospace;
- font-size: 1.5em;
+ font-size: 1.25em;
line-height: 1.0;
font-variant: normal !important;
}
textarea.lang-tylan {
font-family: Tulasra, monospace;
- font-size: 2.25em;
+ font-size: 2.5em;
line-height: 1.0;
}