mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 13:49:16 +00:00
AK+LibWeb/CSS: Add lower-greek
counter style
This commit is contained in:
parent
938f27bbe3
commit
52a23dc02e
Notes:
github-actions[bot]
2025-07-21 14:19:45 +00:00
Author: https://github.com/dmaivel 🔰
Commit: 52a23dc02e
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5514
Reviewed-by: https://github.com/AtkinsSJ ✅
Reviewed-by: https://github.com/trflynn89
8 changed files with 27 additions and 3 deletions
|
@ -492,6 +492,21 @@ String String::bijective_base_from(size_t value, Case target_case, unsigned base
|
||||||
return MUST(from_utf8(ReadonlyBytes(buffer.data(), i)));
|
return MUST(from_utf8(ReadonlyBytes(buffer.data(), i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String String::greek_letter_from(size_t value)
|
||||||
|
{
|
||||||
|
static StringView const map = "αβγδεζηθικλμνξοπρστυφχψω"sv;
|
||||||
|
static unsigned const base = 24;
|
||||||
|
|
||||||
|
StringBuilder builder;
|
||||||
|
while (value > 0) {
|
||||||
|
value--;
|
||||||
|
builder.append(map.substring_view((value % base) * 2, 2));
|
||||||
|
value /= base;
|
||||||
|
}
|
||||||
|
|
||||||
|
return MUST(builder.to_string_without_validation().reverse());
|
||||||
|
}
|
||||||
|
|
||||||
String String::roman_number_from(size_t value, Case target_case)
|
String String::roman_number_from(size_t value, Case target_case)
|
||||||
{
|
{
|
||||||
if (value > 3999)
|
if (value > 3999)
|
||||||
|
|
|
@ -102,6 +102,7 @@ public:
|
||||||
Lower,
|
Lower,
|
||||||
};
|
};
|
||||||
[[nodiscard]] static String bijective_base_from(size_t value, Case, unsigned base = 26, StringView map = {});
|
[[nodiscard]] static String bijective_base_from(size_t value, Case, unsigned base = 26, StringView map = {});
|
||||||
|
[[nodiscard]] static String greek_letter_from(size_t value);
|
||||||
[[nodiscard]] static String roman_number_from(size_t value, Case);
|
[[nodiscard]] static String roman_number_from(size_t value, Case);
|
||||||
|
|
||||||
// Creates a new String by case-transforming this String. Using these methods require linking LibUnicode into your application.
|
// Creates a new String by case-transforming this String. Using these methods require linking LibUnicode into your application.
|
||||||
|
|
|
@ -138,6 +138,7 @@
|
||||||
"disclosure-closed",
|
"disclosure-closed",
|
||||||
"disclosure-open",
|
"disclosure-open",
|
||||||
"lower-alpha",
|
"lower-alpha",
|
||||||
|
"lower-greek",
|
||||||
"lower-latin",
|
"lower-latin",
|
||||||
"lower-roman",
|
"lower-roman",
|
||||||
"none",
|
"none",
|
||||||
|
|
|
@ -304,6 +304,7 @@
|
||||||
"local",
|
"local",
|
||||||
"longer",
|
"longer",
|
||||||
"lower-alpha",
|
"lower-alpha",
|
||||||
|
"lower-greek",
|
||||||
"lower-latin",
|
"lower-latin",
|
||||||
"lower-roman",
|
"lower-roman",
|
||||||
"lowercase",
|
"lowercase",
|
||||||
|
|
|
@ -79,6 +79,8 @@ static String generate_a_counter_representation(CSSStyleValue const& counter_sty
|
||||||
case CounterStyleNameKeyword::UpperAlpha:
|
case CounterStyleNameKeyword::UpperAlpha:
|
||||||
case CounterStyleNameKeyword::UpperLatin:
|
case CounterStyleNameKeyword::UpperLatin:
|
||||||
return String::bijective_base_from(value - 1, String::Case::Upper);
|
return String::bijective_base_from(value - 1, String::Case::Upper);
|
||||||
|
case CounterStyleNameKeyword::LowerGreek:
|
||||||
|
return String::greek_letter_from(value);
|
||||||
case CounterStyleNameKeyword::LowerRoman:
|
case CounterStyleNameKeyword::LowerRoman:
|
||||||
return String::roman_number_from(value, String::Case::Lower);
|
return String::roman_number_from(value, String::Case::Lower);
|
||||||
case CounterStyleNameKeyword::UpperRoman:
|
case CounterStyleNameKeyword::UpperRoman:
|
||||||
|
|
|
@ -52,6 +52,9 @@ Optional<String> ListItemMarkerBox::text() const
|
||||||
case CSS::CounterStyleNameKeyword::UpperLatin:
|
case CSS::CounterStyleNameKeyword::UpperLatin:
|
||||||
text = String::bijective_base_from(index - 1, String::Case::Upper);
|
text = String::bijective_base_from(index - 1, String::Case::Upper);
|
||||||
break;
|
break;
|
||||||
|
case CSS::CounterStyleNameKeyword::LowerGreek:
|
||||||
|
text = String::greek_letter_from(index);
|
||||||
|
break;
|
||||||
case CSS::CounterStyleNameKeyword::LowerRoman:
|
case CSS::CounterStyleNameKeyword::LowerRoman:
|
||||||
text = String::roman_number_from(index, String::Case::Lower);
|
text = String::roman_number_from(index, String::Case::Lower);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -108,6 +108,7 @@ void MarkerPaintable::paint(PaintContext& context, PaintPhase phase) const
|
||||||
case CSS::CounterStyleNameKeyword::Decimal:
|
case CSS::CounterStyleNameKeyword::Decimal:
|
||||||
case CSS::CounterStyleNameKeyword::DecimalLeadingZero:
|
case CSS::CounterStyleNameKeyword::DecimalLeadingZero:
|
||||||
case CSS::CounterStyleNameKeyword::LowerAlpha:
|
case CSS::CounterStyleNameKeyword::LowerAlpha:
|
||||||
|
case CSS::CounterStyleNameKeyword::LowerGreek:
|
||||||
case CSS::CounterStyleNameKeyword::LowerLatin:
|
case CSS::CounterStyleNameKeyword::LowerLatin:
|
||||||
case CSS::CounterStyleNameKeyword::LowerRoman:
|
case CSS::CounterStyleNameKeyword::LowerRoman:
|
||||||
case CSS::CounterStyleNameKeyword::UpperAlpha:
|
case CSS::CounterStyleNameKeyword::UpperAlpha:
|
||||||
|
|
|
@ -2,8 +2,8 @@ Harness status: OK
|
||||||
|
|
||||||
Found 687 tests
|
Found 687 tests
|
||||||
|
|
||||||
658 Pass
|
659 Pass
|
||||||
29 Fail
|
28 Fail
|
||||||
Pass background-attachment: scroll
|
Pass background-attachment: scroll
|
||||||
Pass background-attachment: fixed
|
Pass background-attachment: fixed
|
||||||
Pass background-attachment: inherit
|
Pass background-attachment: inherit
|
||||||
|
@ -468,7 +468,7 @@ Pass list-style-type: decimal
|
||||||
Pass list-style-type: decimal-leading-zero
|
Pass list-style-type: decimal-leading-zero
|
||||||
Pass list-style-type: lower-roman
|
Pass list-style-type: lower-roman
|
||||||
Pass list-style-type: upper-roman
|
Pass list-style-type: upper-roman
|
||||||
Fail list-style-type: lower-greek
|
Pass list-style-type: lower-greek
|
||||||
Pass list-style-type: lower-latin
|
Pass list-style-type: lower-latin
|
||||||
Pass list-style-type: upper-latin
|
Pass list-style-type: upper-latin
|
||||||
Fail list-style-type: armenian
|
Fail list-style-type: armenian
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue