aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/properties/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/style/properties/build.py')
-rw-r--r--components/style/properties/build.py43
1 files changed, 20 insertions, 23 deletions
diff --git a/components/style/properties/build.py b/components/style/properties/build.py
index 186018e99a4..45d8fa676ab 100644
--- a/components/style/properties/build.py
+++ b/components/style/properties/build.py
@@ -101,21 +101,32 @@ def main():
pref_attr = "servo_2013_pref"
if engine == "servo-2020":
pref_attr = "servo_2020_pref"
- names_and_prefs = [
- (prop.name, getattr(prop, pref_attr))
- for p in properties.longhands + properties.shorthands
- if p.enabled_in_content()
- for prop in [p] + p.alias
- ]
- write(OUT_DIR, "css_properties.json", json.dumps(names_and_prefs, indent=4))
+ properties_dict = {
+ kind: {
+ p.name: {
+ "pref": getattr(p, pref_attr)
+ }
+ for prop in properties_list
+ if prop.enabled_in_content()
+ for p in [prop] + prop.alias
+ }
+ for kind, properties_list in [
+ ("longhands", properties.longhands),
+ ("shorthands", properties.shorthands)
+ ]
+ }
+ as_html = render(os.path.join(BASE, "properties.html.mako"), properties=properties_dict)
+ as_json = json.dumps(properties_dict, indent=4, sort_keys=True)
+ doc_servo = os.path.join(BASE, "..", "..", "..", "target", "doc", "servo")
+ write(doc_servo, "css-properties.html", as_html)
+ write(doc_servo, "css-properties.json", as_json)
+ write(OUT_DIR, "css-properties.json", as_json)
elif output == "geckolib":
if len(sys.argv) < 4:
abort(usage)
template = sys.argv[3]
header = render(template, data=properties)
sys.stdout.write(header)
- elif output == "html":
- write_html(properties)
def abort(message):
@@ -153,19 +164,5 @@ def write(directory, filename, content):
abort("Found \"{}\" in {} ({})".format(python_addr.group(0), filename, full_path))
-def write_html(properties):
- properties = dict(
- (p.name, {
- "flag": p.servo_2013_pref,
- "shorthand": hasattr(p, "sub_properties")
- })
- for p in properties.longhands + properties.shorthands
- )
- doc_servo = os.path.join(BASE, "..", "..", "..", "target", "doc", "servo")
- html = render(os.path.join(BASE, "properties.html.mako"), properties=properties)
- write(doc_servo, "css-properties.html", html)
- write(doc_servo, "css-properties.json", json.dumps(properties, indent=4))
-
-
if __name__ == "__main__":
main()