mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Make predefined counter style names ASCII-lowercase.
This commit is contained in:
parent
e7a2a98d8a
commit
82c04113d0
3 changed files with 117 additions and 1 deletions
|
@ -22,7 +22,28 @@ use values::CustomIdent;
|
||||||
|
|
||||||
/// Parse the prelude of an @counter-style rule
|
/// Parse the prelude of an @counter-style rule
|
||||||
pub fn parse_counter_style_name(input: &mut Parser) -> Result<CustomIdent, ()> {
|
pub fn parse_counter_style_name(input: &mut Parser) -> Result<CustomIdent, ()> {
|
||||||
CustomIdent::from_ident(input.expect_ident()?, &["decimal", "none"])
|
macro_rules! predefined {
|
||||||
|
($($name: expr,)+) => {
|
||||||
|
{
|
||||||
|
ascii_case_insensitive_phf_map! {
|
||||||
|
// FIXME: use static atoms https://github.com/rust-lang/rust/issues/33156
|
||||||
|
predefined -> &'static str = {
|
||||||
|
$(
|
||||||
|
$name => $name,
|
||||||
|
)+
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let ident = input.expect_ident()?;
|
||||||
|
if let Some(&lower_cased) = predefined(&ident) {
|
||||||
|
Ok(CustomIdent(Atom::from(lower_cased)))
|
||||||
|
} else {
|
||||||
|
CustomIdent::from_ident(ident, &["decimal", "none"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
include!("predefined.rs")
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Parse the body (inside `{}`) of an @counter-style rule
|
/// Parse the body (inside `{}`) of an @counter-style rule
|
||||||
|
|
60
components/style/counter_style/predefined.rs
Normal file
60
components/style/counter_style/predefined.rs
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
predefined! {
|
||||||
|
"decimal-leading-zero",
|
||||||
|
"arabic-indic",
|
||||||
|
"armenian",
|
||||||
|
"upper-armenian",
|
||||||
|
"lower-armenian",
|
||||||
|
"bengali",
|
||||||
|
"cambodian",
|
||||||
|
"khmer",
|
||||||
|
"cjk-decimal",
|
||||||
|
"devanagari",
|
||||||
|
"georgian",
|
||||||
|
"gujarati",
|
||||||
|
"gurmukhi",
|
||||||
|
"hebrew",
|
||||||
|
"kannada",
|
||||||
|
"lao",
|
||||||
|
"malayalam",
|
||||||
|
"mongolian",
|
||||||
|
"myanmar",
|
||||||
|
"oriya",
|
||||||
|
"persian",
|
||||||
|
"lower-roman",
|
||||||
|
"upper-roman",
|
||||||
|
"tamil",
|
||||||
|
"telugu",
|
||||||
|
"thai",
|
||||||
|
"tibetan",
|
||||||
|
"lower-alpha",
|
||||||
|
"lower-latin",
|
||||||
|
"upper-alpha",
|
||||||
|
"upper-latin",
|
||||||
|
"cjk-earthly-branch",
|
||||||
|
"cjk-heavenly-stem",
|
||||||
|
"lower-greek",
|
||||||
|
"hiragana",
|
||||||
|
"hiragana-iroha",
|
||||||
|
"katakana",
|
||||||
|
"katakana-iroha",
|
||||||
|
"disc",
|
||||||
|
"circle",
|
||||||
|
"square",
|
||||||
|
"disclosure-open",
|
||||||
|
"disclosure-closed",
|
||||||
|
"japanese-informal",
|
||||||
|
"japanese-formal",
|
||||||
|
"korean-hangul-formal",
|
||||||
|
"korean-hanja-informal",
|
||||||
|
"korean-hanja-formal",
|
||||||
|
"simp-chinese-informal",
|
||||||
|
"simp-chinese-formal",
|
||||||
|
"trad-chinese-informal",
|
||||||
|
"trad-chinese-formal",
|
||||||
|
"cjk-ideographic",
|
||||||
|
"ethiopic-numeric",
|
||||||
|
}
|
35
components/style/counter_style/update_predefined.py
Executable file
35
components/style/counter_style/update_predefined.py
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
import os.path
|
||||||
|
import re
|
||||||
|
import urllib
|
||||||
|
|
||||||
|
|
||||||
|
def main(filename):
|
||||||
|
names = [
|
||||||
|
re.search('>([^>]+)(</dfn>|<a class="self-link")', line).group(1)
|
||||||
|
for line in urllib.urlopen("https://drafts.csswg.org/css-counter-styles/")
|
||||||
|
if 'data-dfn-for="<counter-style-name>"' in line
|
||||||
|
or 'data-dfn-for="<counter-style>"' in line
|
||||||
|
]
|
||||||
|
with open(filename, "wb") as f:
|
||||||
|
f.write("""\
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
predefined! {
|
||||||
|
""")
|
||||||
|
for name in names:
|
||||||
|
# FIXME https://github.com/w3c/csswg-drafts/issues/1285
|
||||||
|
if name == 'decimal':
|
||||||
|
continue
|
||||||
|
f.write(' "%s",\n' % name)
|
||||||
|
f.write('}\n')
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main(os.path.join(os.path.dirname(__file__), "predefined.rs"))
|
Loading…
Add table
Add a link
Reference in a new issue