1use std::{collections::HashMap, sync::LazyLock};
2
3use crate::parser::ansi::{Ansi, AnsiOptions, DuoEffect, Effect};
4
5pub static BUILTIN_STYLES: LazyLock<HashMap<&str, Ansi>> = LazyLock::new(|| {
6 [
7 (
8 "b",
9 Ansi::with(AnsiOptions {
10 brightness: DuoEffect::A,
11 ..Default::default()
12 }),
13 ),
14 (
15 "d",
16 Ansi::with(AnsiOptions {
17 brightness: DuoEffect::B,
18 ..Default::default()
19 }),
20 ),
21 (
22 "h",
23 Ansi::with(AnsiOptions {
24 hidden: Effect::Apply,
25 ..Default::default()
26 }),
27 ),
28 (
29 "i",
30 Ansi::with(AnsiOptions {
31 italics: Effect::Apply,
32 ..Default::default()
33 }),
34 ),
35 (
36 "k",
37 Ansi::with(AnsiOptions {
38 blink: Effect::Apply,
39 ..Default::default()
40 }),
41 ),
42 (
43 "r",
44 Ansi::with(AnsiOptions {
45 negetive: Effect::Apply,
46 ..Default::default()
47 }),
48 ),
49 (
50 "s",
51 Ansi::with(AnsiOptions {
52 strike: Effect::Apply,
53 ..Default::default()
54 }),
55 ),
56 (
57 "u",
58 Ansi::with(AnsiOptions {
59 under: DuoEffect::A,
60 ..Default::default()
61 }),
62 ),
63 (
64 "uu",
65 Ansi::with(AnsiOptions {
66 under: DuoEffect::B,
67 ..Default::default()
68 }),
69 ),
70 ]
71 .into()
72});
73
74pub static BUILTIN_TAGS: &[&str] = &[
75 "a", "b", "blink", "br", "d", "del", "dim", "div", "em", "h", "i", "input", "ins", "k", "o",
76 "over", "p", "r", "s", "script", "span", "strong", "style", "table", "td", "th", "tr", "u",
77 "uu", "ziyy",
78];