diff --git a/.changeset/poor-candles-vanish.md b/.changeset/poor-candles-vanish.md new file mode 100644 index 00000000..a774deb7 --- /dev/null +++ b/.changeset/poor-candles-vanish.md @@ -0,0 +1,5 @@ +--- +"@devup-ui/wasm": patch +--- + +Fix n, m logic to avoid adblock diff --git a/libs/css/src/constant.rs b/libs/css/src/constant.rs index 585647f2..ba095ff8 100644 --- a/libs/css/src/constant.rs +++ b/libs/css/src/constant.rs @@ -163,12 +163,12 @@ pub(super) static F_RGBA_RE: Lazy = pub(super) static F_RGB_RE: Lazy = Lazy::new(|| Regex::new(r"rgb\((\d+),(\d+),(\d+)\)").unwrap()); -pub(super) static N_BASE_ARRAY: [char; 26] = [ +pub(super) static N_BASE_ARRAY: [char; 27] = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', - 't', 'u', 'v', 'w', 'x', 'y', 'z', + 't', 'u', 'v', 'w', 'x', 'y', 'z', '_', ]; -pub(super) static M_BASE_ARRAY: [char; 36] = [ +pub(super) static M_BASE_ARRAY: [char; 37] = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', - 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', ]; diff --git a/libs/css/src/lib.rs b/libs/css/src/lib.rs index c17cc0a8..23e29aab 100644 --- a/libs/css/src/lib.rs +++ b/libs/css/src/lib.rs @@ -155,8 +155,7 @@ pub fn sheet_to_classname( }); if !filename.is_empty() { format!( - // avoid g-ad class (google ad) - "{}_{}", + "{}-{}", num_to_nm_base(get_file_num_by_filename(&filename)), clas_num ) diff --git a/libs/css/src/num_to_nm_base.rs b/libs/css/src/num_to_nm_base.rs index c0be4248..c33bd2c5 100644 --- a/libs/css/src/num_to_nm_base.rs +++ b/libs/css/src/num_to_nm_base.rs @@ -24,7 +24,12 @@ pub fn num_to_nm_base(num: usize) -> String { } } } - result + if result.ends_with("ad") { + // avoid g-ad class (google ad) + result.replace("ad", "a-d") + } else { + result + } } #[cfg(test)] @@ -59,72 +64,74 @@ mod tests { #[case(23, "x")] #[case(24, "y")] #[case(25, "z")] - #[case(26, "aa")] - #[case(27, "ab")] - #[case(28, "ac")] - #[case(29, "ad")] - #[case(30, "ae")] - #[case(31, "af")] - #[case(32, "ag")] - #[case(33, "ah")] - #[case(34, "ai")] - #[case(35, "aj")] - #[case(36, "ak")] - #[case(37, "al")] - #[case(38, "am")] - #[case(39, "an")] - #[case(40, "ao")] - #[case(41, "ap")] - #[case(42, "aq")] - #[case(43, "ar")] - #[case(44, "as")] - #[case(45, "at")] - #[case(46, "au")] - #[case(47, "av")] - #[case(48, "aw")] - #[case(49, "ax")] - #[case(50, "ay")] - #[case(51, "az")] - #[case(52, "a0")] - #[case(53, "a1")] - #[case(54, "a2")] - #[case(55, "a3")] - #[case(56, "a4")] - #[case(57, "a5")] - #[case(58, "a6")] - #[case(59, "a7")] - #[case(60, "a8")] - #[case(61, "a9")] - #[case(62, "ba")] - #[case(63, "bb")] - #[case(64, "bc")] - #[case(65, "bd")] - #[case(66, "be")] - #[case(67, "bf")] - #[case(68, "bg")] - #[case(69, "bh")] - #[case(70, "bi")] - #[case(71, "bj")] - #[case(72, "bk")] - #[case(73, "bl")] - #[case(74, "bm")] - #[case(75, "bn")] - #[case(76, "bo")] - #[case(77, "bp")] - #[case(78, "bq")] - #[case(79, "br")] - #[case(80, "bs")] - #[case(81, "bt")] - #[case(82, "bu")] - #[case(83, "bv")] - #[case(84, "bw")] - #[case(85, "bx")] - #[case(86, "by")] - #[case(87, "bz")] - #[case(88, "b0")] - #[case(89, "b1")] - #[case(961, "z9")] - #[case(962, "aaa")] + #[case(26, "_")] + #[case(27, "aa")] + #[case(28, "ab")] + #[case(29, "ac")] + #[case(30, "a-d")] + #[case(31, "ae")] + #[case(32, "af")] + #[case(33, "ag")] + #[case(34, "ah")] + #[case(35, "ai")] + #[case(36, "aj")] + #[case(37, "ak")] + #[case(38, "al")] + #[case(39, "am")] + #[case(40, "an")] + #[case(41, "ao")] + #[case(42, "ap")] + #[case(43, "aq")] + #[case(44, "ar")] + #[case(45, "as")] + #[case(46, "at")] + #[case(47, "au")] + #[case(48, "av")] + #[case(49, "aw")] + #[case(50, "ax")] + #[case(51, "ay")] + #[case(52, "az")] + #[case(53, "a0")] + #[case(54, "a1")] + #[case(55, "a2")] + #[case(56, "a3")] + #[case(57, "a4")] + #[case(58, "a5")] + #[case(59, "a6")] + #[case(60, "a7")] + #[case(61, "a8")] + #[case(62, "a9")] + #[case(63, "a_")] + #[case(64, "ba")] + #[case(65, "bb")] + #[case(66, "bc")] + #[case(67, "bd")] + #[case(68, "be")] + #[case(69, "bf")] + #[case(70, "bg")] + #[case(71, "bh")] + #[case(72, "bi")] + #[case(73, "bj")] + #[case(74, "bk")] + #[case(75, "bl")] + #[case(76, "bm")] + #[case(77, "bn")] + #[case(78, "bo")] + #[case(79, "bp")] + #[case(80, "bq")] + #[case(81, "br")] + #[case(82, "bs")] + #[case(83, "bt")] + #[case(84, "bu")] + #[case(85, "bv")] + #[case(86, "bw")] + #[case(87, "bx")] + #[case(88, "by")] + #[case(89, "bz")] + #[case(90, "b0")] + #[case(91, "b1")] + #[case(987, "z9")] + #[case(1026, "aaa")] fn test_num_to_nm_base_rstest(#[case] input: usize, #[case] expected: &str) { assert_eq!(num_to_nm_base(input), expected); } diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-2.snap b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-2.snap index 9536c88e..e316a3f8 100644 --- a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-2.snap +++ b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-2.snap @@ -23,5 +23,5 @@ ToBTreeSet { }, ), }, - code: "import \"@devup-ui/core/devup-ui-0.css\";\n
;\n", + code: "import \"@devup-ui/core/devup-ui-0.css\";\n
;\n", } diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-3.snap b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-3.snap index 1946e0b1..bc3c3ce7 100644 --- a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-3.snap +++ b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-3.snap @@ -23,5 +23,5 @@ ToBTreeSet { }, ), }, - code: "import \"@devup-ui/core/devup-ui-1.css\";\n
;\n", + code: "import \"@devup-ui/core/devup-ui-1.css\";\n
;\n", } diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-4.snap b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-4.snap index f30b43d9..95377a9c 100644 --- a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-4.snap +++ b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files-4.snap @@ -23,5 +23,5 @@ ToBTreeSet { }, ), }, - code: "import \"@devup-ui/core/devup-ui-1.css\";\n
;\n", + code: "import \"@devup-ui/core/devup-ui-1.css\";\n
;\n", } diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files.snap b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files.snap index df11ea3a..34220c2d 100644 --- a/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files.snap +++ b/libs/extractor/src/snapshots/extractor__tests__extract_just_tsx_in_multiple_files.snap @@ -23,5 +23,5 @@ ToBTreeSet { }, ), }, - code: "import \"@devup-ui/core/devup-ui-0.css\";\n
;\n", + code: "import \"@devup-ui/core/devup-ui-0.css\";\n
;\n", }