mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +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
|
||||
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
|
||||
|
|
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